diff options
Diffstat (limited to 'ansible_collections/cisco/ise')
899 files changed, 18466 insertions, 1801 deletions
diff --git a/ansible_collections/cisco/ise/.DS_Store b/ansible_collections/cisco/ise/.DS_Store Binary files differnew file mode 100644 index 000000000..f79cfc1f5 --- /dev/null +++ b/ansible_collections/cisco/ise/.DS_Store diff --git a/ansible_collections/cisco/ise/.github/workflows/sanity_tests.yml b/ansible_collections/cisco/ise/.github/workflows/sanity_tests.yml index dd455afad..a98328054 100644 --- a/ansible_collections/cisco/ise/.github/workflows/sanity_tests.yml +++ b/ansible_collections/cisco/ise/.github/workflows/sanity_tests.yml @@ -14,8 +14,9 @@ jobs: strategy: matrix: ansible: - - stable-2.14 - stable-2.15 + - stable-2.16 + - stable-2.17 - devel runs-on: ubuntu-20.04 steps: diff --git a/ansible_collections/cisco/ise/.vscode/launch.json b/ansible_collections/cisco/ise/.vscode/launch.json new file mode 100644 index 000000000..306f58eb3 --- /dev/null +++ b/ansible_collections/cisco/ise/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Python: Current File", + "type": "python", + "request": "launch", + "program": "${file}", + "console": "integratedTerminal", + "justMyCode": true + } + ] +}
\ No newline at end of file diff --git a/ansible_collections/cisco/ise/.vscode/settings.json b/ansible_collections/cisco/ise/.vscode/settings.json new file mode 100644 index 000000000..4f6146612 --- /dev/null +++ b/ansible_collections/cisco/ise/.vscode/settings.json @@ -0,0 +1,24 @@ +{ + "esbonio.sphinx.confDir": "", + "ansible.python.interpreterPath": "/usr/local/bin/python3.10", + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#65c89b", + "activityBar.background": "#65c89b", + "activityBar.foreground": "#15202b", + "activityBar.inactiveForeground": "#15202b99", + "activityBarBadge.background": "#945bc4", + "activityBarBadge.foreground": "#e7e7e7", + "commandCenter.border": "#15202b99", + "sash.hoverBorder": "#65c89b", + "statusBar.background": "#42b883", + "statusBar.foreground": "#15202b", + "statusBarItem.hoverBackground": "#359268", + "statusBarItem.remoteBackground": "#42b883", + "statusBarItem.remoteForeground": "#15202b", + "titleBar.activeBackground": "#42b883", + "titleBar.activeForeground": "#15202b", + "titleBar.inactiveBackground": "#42b88399", + "titleBar.inactiveForeground": "#15202b99" + }, + "peacock.remoteColor": "#42b883" +}
\ No newline at end of file diff --git a/ansible_collections/cisco/ise/FILES.json b/ansible_collections/cisco/ise/FILES.json index 68d896522..72c9d6a53 100644 --- a/ansible_collections/cisco/ise/FILES.json +++ b/ansible_collections/cisco/ise/FILES.json @@ -8,6 +8,13 @@ "format": 1 }, { + "name": ".DS_Store", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "437cf9da8611bcc8837aef2444e9e00fc44f8f071f750224be185a74168f2e5f", + "format": 1 + }, + { "name": "LICENSE", "ftype": "file", "chksum_type": "sha256", @@ -18,7 +25,7 @@ "name": "requirements.txt", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5a620581f1eb701a6e7bce54457bc44c196732cc5b8d82ae728c285e8d51264", + "chksum_sha256": "b600386bb9438017eed5b1eec6a8cfc7ea2879afef9adb1013e15ebf581deb12", "format": 1 }, { @@ -29,6 +36,13 @@ "format": 1 }, { + "name": "plugins/.DS_Store", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "389b6b15b162e5db97c1c6d4ddc0f1161590c016eb06e49734d10373aabc3c56", + "format": 1 + }, + { "name": "plugins/doc_fragments", "ftype": "dir", "chksum_type": null, @@ -67,889 +81,1057 @@ "name": "plugins/action/device_administration_local_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25b5da09d0ea52097cbb4f353dfb78b1120527e4c1eab6a749097f9607cc52ab", + "chksum_sha256": "a4ba9cdacad6befa4e7f2b181a1d324c1fd998dfac9f8f216ea3a2ff764bca26", "format": 1 }, { "name": "plugins/action/device_administration_dictionary_attributes_authentication_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fce24fbf7df39e961b11241a54e93c64204d0e734b2b7cdc5ac6f21d7fc29dd8", + "chksum_sha256": "6a85ce7f52141a38752b4b48bc6fe706ce39529622fe4b5ec4331a6987bb0876", "format": 1 }, { "name": "plugins/action/licensing_tier_state_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "efe8167ebc7915126cbe60f37d7bd49a188d3e86a6a3563f41022468ce412cee", + "chksum_sha256": "5d8b70394ca660dcebaa66bbdd82f0daded331ded0d8135ee044350ca1c4d50f", "format": 1 }, { "name": "plugins/action/trusted_certificate_export_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1914c7faa9abb01416c2951f49e15502d66d1fc192b1db3239b0cf34edecb2ef", + "chksum_sha256": "e70e1786f6bcb1a2ca6170d0285c05758c39c90916a617bed244bfa26e701b61", "format": 1 }, { - "name": "plugins/action/test_connector.py", + "name": "plugins/action/network_device_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f16380be3ff68f3e263a612f4a051c045e84dda1eeb5f635d5317b26ec9b8c7e", + "chksum_sha256": "36bf61970a68e7d79fa06fecf2583de7b7eec6728b16850cd08940162259e6e5", "format": 1 }, { - "name": "plugins/action/network_device_group_info.py", + "name": "plugins/action/px_grid_direct_sync_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b1a4ae7b73a246e2c6d970ab18cf35223fce247589dc9b278f6c444b433ca34c", + "chksum_sha256": "29cf00d1089c4a78e9f858078053c138520d01c0e98fae4689bd50df38eab40d", "format": 1 }, { "name": "plugins/action/sxp_connections.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eaac021792b3ac8b1b94fbf874fb2e4ce4a518ca6365c37cc639d647ce6f09b7", + "chksum_sha256": "f05f1fc25c14e1a3ddf9db853d16ef4f2652b8f5c17a955d13c171e9e4fb9ba9", "format": 1 }, { "name": "plugins/action/guest_ssid.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a5e918558117a5da2af0bd8d3917a54fb376068d98f5a2f28e8a853666077d05", + "chksum_sha256": "4c611ad0ea29d90a81812554160fd6f5c50a126335483706084269f1ecd675d3", "format": 1 }, { "name": "plugins/action/proxy_connection_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "07e682acd78773d77c24af74347e1c73df6cd0697b74d2e9c71c22ce8b2da385", + "chksum_sha256": "415615360f329c5f406496e49084e50624204e414010a789a9aac5bda5a28edf", "format": 1 }, { "name": "plugins/action/node_services_profiler_probe_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7be342544dfbae8faf4f698ecd0038b92d8570831cff0667502502894d496bc9", + "chksum_sha256": "c950b782e6d6cfd4bcf5c9ef9c1de1024cd789ad221c62981eb7de6a837f3c07", "format": 1 }, { "name": "plugins/action/network_access_dictionary_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff9271ecc8c45dbadfa9658c499608e1e7398d82bee75d7484533ff7bf765e9e", + "chksum_sha256": "0a1d2d449ba06fd0b49068ddbf3a9c3905025e6cac26cdaa5b6bf4f913fc2ce0", "format": 1 }, { "name": "plugins/action/network_access_policy_set.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2108f17089a82191a3f545588c4fd7bc81d575824bed8d033f75ea760c19c7ac", + "chksum_sha256": "9d12c30b13e428d10c06289d6bad5359f405636d529b09886f052726fa0b3eed", "format": 1 }, { "name": "plugins/action/repository_files_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "721c8d823402e1857e78e90df19b0f6a9a43c43c325b00fc99a3ce664b44143a", + "chksum_sha256": "c0d3261207a5c5a94b63c94aa614f311c15d34740a112d515c1650cf9a1c01c5", "format": 1 }, { "name": "plugins/action/repository_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "09c065fc28692f5340f915b18b0e7431d5cbfa9cd01b2e1c64888c32f520faf5", + "chksum_sha256": "4c18857c59a72a310664cfb0be574846a76005d47bd71b1c678f25cb67e142fd", "format": 1 }, { "name": "plugins/action/rest_id_store_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ebac6dccebccaf3b64050b6e1b8ac794f8fb37a4f8901c72e953275168c47fa", + "chksum_sha256": "ac4e3e69ac971fd5a5dbe940ade928d0324911bec1faf29ff001d3740c8480f0", "format": 1 }, { - "name": "plugins/action/dictionary_references_info.py", + "name": "plugins/action/anc_policy_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a03f8b3e5467296dee3f555d61ebed7b93c74a7e7e527b40fa52a42d90164819", + "chksum_sha256": "19f41a929abdcd34687f76ed11f00949706aee935f6c57ca4f4c7a773372ca12", "format": 1 }, { - "name": "plugins/action/anc_policy_info.py", + "name": "plugins/action/tasks_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1a8f2de5f6d90c48814dabe242a5d498fd5c0084a848c57ba2a6b2509decd8c6", + "chksum_sha256": "8d13632289066a4e0a0c4810e9c37473e5b4c3cb13be56cc9ff07e50902882c0", "format": 1 }, { - "name": "plugins/action/tasks_info.py", + "name": "plugins/action/configuration.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d0521f7d5e3a5203aaaa628422e7933838a410b6b1ee9179f0dc3f605186a2c", + "chksum_sha256": "b03ca6301a30a01bd8a649762cb29a962aaa3da4df90a0e2d151da5f9cf3ca2c", "format": 1 }, { - "name": "plugins/action/configuration.py", + "name": "plugins/action/trustsec_sg_vn_mapping_bulk_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "28c31c878ee196752d7c003c4c69720b4dd5251739ca70de97cc0001547dfdad", + "chksum_sha256": "b63c63bd64d89a8babfd3699a2fe5c05d0d902f15aadad59f75074401652a618", "format": 1 }, { "name": "plugins/action/device_administration_authorization_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "93a8218bd6642a7a08242a341e5934dd6e6c025ff84d0eb10289adeede6ec2de", + "chksum_sha256": "b2de3e41d31c52fe68f1202cb2bfd557120cfc27ad7fb238c7bf2700f2cb2c0a", "format": 1 }, { "name": "plugins/action/guest_user_email.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5030c3871becf22e728dc276e501620c04127417cfd8de9137a5d61cf2c0a461", + "chksum_sha256": "35ebe17629dc4c15af5be81b2d385a76447dfaeeb3aa5023cbb15deefffa7cc5", "format": 1 }, { "name": "plugins/action/node_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1e2b504a05ceac5488d9c6c76334f7462f0e9e6bfefb9e9e163a4ea834256f94", + "chksum_sha256": "2d16019fb10178b806f52fd1f912b5637cbb69e03c7ae511aa313ffbfae34d4e", "format": 1 }, { "name": "plugins/action/mnt_authentication_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "83a9b888282c1de0e79ed9c61a8e3f87a76ef7a17f6de89f0b670cbeb5d61e07", + "chksum_sha256": "b891a17b88c0da08c35a393f3edbf3cb2eb7155d0beb98a1b951d5d15eea4107", "format": 1 }, { "name": "plugins/action/pxgrid_healths_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49627a9fbf52a238801d10d814d98dd9d581cb3e59cf40a4bd0d2d09d29524f1", + "chksum_sha256": "6e01bc11d8fbaee1757b5792912463e8671250caf56693320728b54e68744d06", "format": 1 }, { "name": "plugins/action/hotspot_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "01d064f8b2a5ad4530662a0660618fbfaa360d33f7e9c9b6cc9f3f148d0e707c", + "chksum_sha256": "22ca652e0a6eb62c593e536e4794ad5adafc7894c8bdc1cfc8de0a40814dfcb1", "format": 1 }, { "name": "plugins/action/authorization_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "af00fbb10e16cf2826d39538c2a434d4da1168192ab516ed32d70e425447ea1d", + "chksum_sha256": "30f03d5d4672f2ea1930c3f6c8c5bb34eaaa664cc7c96f51118e658f18b72b73", + "format": 1 + }, + { + "name": "plugins/action/reservation.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "48a30fa2dc9213e5b044d5c7fafd727de6696636a770cbf883e7f5e0a37b6275", "format": 1 }, { "name": "plugins/action/hotpatch_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f5815fa047d4f5c5030e9f6fd22271d4c906a0aa93c882102d51c841fb8c2ad8", + "chksum_sha256": "aaf766118a77bbab4d05e85f13374a0c214c48750a64a90c6508b194f9346359", + "format": 1 + }, + { + "name": "plugins/action/trustsec_sg_vn_mapping_bulk_update.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5910d1083cde4e24cddba783606e273f1cfc5a8e5a24617422526d9dbc4b3cf1", "format": 1 }, { "name": "plugins/action/node_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1e3ab5405a5ac12557b4d7c3c52689b9f5ff2562fb47deab64c6c14ed3bc963", + "chksum_sha256": "3951289a17c428330df70c3c4f770b784dd4a5aa28fad32a3571dc49b5b5c03a", "format": 1 }, { "name": "plugins/action/personas_export_certs.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b73decde11488e39b11d2d7605b69a91d8987967b41b900a42dea24d85e02e0f", + "chksum_sha256": "18e69825d50e3a9b2376151d9962144cc67c308ab3e4907aa39a441206477d3f", "format": 1 }, { "name": "plugins/action/network_access_dictionary_attributes_authentication_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4224839be0e82ecf2a24067ca29bbb614b1808fcfd192fb2eb455469aad30b82", + "chksum_sha256": "0ac7f731ad3bad49217bad9d738c45b742dd8c04cb72e3319861c3f5e224ae09", "format": 1 }, { "name": "plugins/action/aci_bindings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c69c9fa563713ae0196edb0ab26909b9f8c71b39c0a2980bf3f99fe1fb0f8455", + "chksum_sha256": "fbc5ff3668cab815fb35936ffb16f4b5999487c0d4215acde4e1e3e6a1061ae2", "format": 1 }, { "name": "plugins/action/network_access_policy_set_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55faa4563f57c55897c27380a0798c232274d59243b261436eb710d2d2bd4c5c", + "chksum_sha256": "7a307c6922a7a679a31fd953dbf14d2fb54ab89c8d6220dd5e1de49eb9da3b72", "format": 1 }, { "name": "plugins/action/subscriber_imsi_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "91ef4ff7daa43a4895cc80a845d0c66f2ccaa9e1b57d833e651e4a6557374f8f", + "chksum_sha256": "ec6dc7ba756214ca444fa61b09b8e31702f7e6f376743b17982a32b813f6bda3", "format": 1 }, { "name": "plugins/action/id_store_sequence_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d7d047ef40d9fb2da4c9a2f27d797e59b6d8a52a113bd11e16967e490ea1ce16", + "chksum_sha256": "147d1e11a94a6e30b66063c3fe05b02f8f561ff5b32f11c85c4b6d1e4578ef2f", "format": 1 }, { "name": "plugins/action/device_administration_policy_set_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "afffe8d167c5a86cb35b87ceca420d6bbf6e1f48fd4d016068b442dcc0b5fee1", + "chksum_sha256": "0aeeecbaa19ad0e822573333b9f02b30ad10068fbeb5facdc2dd9c835f6fbc8e", "format": 1 }, { "name": "plugins/action/sxp_local_bindings_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "48574b6a1762eadd7eed6cd9ec83f6d373bfb2dd5c4a6433cab399bb0c2f66ba", + "chksum_sha256": "51b555624c34ae0135ded07ac479a3be687a3a86d9ad0f2d7aa54667d33b9186", "format": 1 }, { "name": "plugins/action/ise_root_ca_regenerate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7e8d218cb0dee5730fdf28a5ed44e180b65794c9f13a16f0de328fb2b952f28e", + "chksum_sha256": "a8af7ecb3f43e653a59bb9a8e74ab0fe2d268bf28bf63339645fc108843e931e", "format": 1 }, { "name": "plugins/action/mnt_sessions_by_session_id_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f82df0e267c51914a535393b2550d4fd98d345070aae567899a8941e3262bd2f", + "chksum_sha256": "e4bf061e1839498549a2c013189b905767b10a9d58871ac35999a89e77e39026", "format": 1 }, { "name": "plugins/action/network_access_service_name_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "911ef6ffb6250d40249d3f87ff5be07d46349d0ea634514b88d8e20f0c9cc0e6", + "chksum_sha256": "284ac01392a34dadd263cc169314dc60d51b23b6d70bcd26bd1d08072a8b1f56", "format": 1 }, { "name": "plugins/action/configuration_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec026ed478f51cedfce03de9d8ed59e78f59d414f74061f0d324ae128f93a082", + "chksum_sha256": "a4426989ff59c9dead8dcee8fa0627bfcac52c8c8d2c524f4899ede418fdf92f", + "format": 1 + }, + { + "name": "plugins/action/custom_attributes.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "183d163bde8841a9e33dfdca4e4ae0bc9540819dbd7249c293b1dcf4fd84376d", "format": 1 }, { "name": "plugins/action/guest_user_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3106158cb218b1b5120b5efaff83f99a7bfd01560fadf51c52edf29b7ff0a17f", + "chksum_sha256": "c2bb34516ca07c993cbeba1b2e887826018e5f0cc2763b1e593624193454a5ee", "format": 1 }, { "name": "plugins/action/aci_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "906352b851ba4a6319c4ee40299376b7cae96a730d53f4887544a182db1845f1", + "chksum_sha256": "89fef53b8f2019a2a4af26f074b473c6169e23ba1804ec5b66f6f0f51066b175", "format": 1 }, { "name": "plugins/action/bind_signed_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd1230b7fb053ebc156c10c5f01424a24c5ad23a50b704fd488790827e923fa3", + "chksum_sha256": "21790152fe2313e3d74019a4d1592eaf5dae440d1777882153747ce2c706467b", "format": 1 }, { "name": "plugins/action/endpoint_register.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b89858a9744fc7bf7b17549c05928da46c9b5e6fbff70be3c95e90095b246ffe", + "chksum_sha256": "cfda17738b96fb5210c004eea32ee9b97138abd512c72421bd468c6563a49f74", "format": 1 }, { "name": "plugins/action/px_grid_node_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f2f5ad212cbaa6145289d836b0cf4c9c550ae2945526a744785deb32b0ed3bde", + "chksum_sha256": "2cd5eece8549d0bf1428c8ae8d6ed948f5a03cfcb9e2e97c58eb9a7edd028486", + "format": 1 + }, + { + "name": "plugins/action/px_grid_direct_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "95184c8ff3fc07b2661eb4296d355b4552a939023b6b915f4016bc8fec02b8d6", "format": 1 }, { "name": "plugins/action/device_administration_network_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52aa8a8a8b067fc670a3255d6abd7121313e05af4a5bc3ca9781461faa861261", + "chksum_sha256": "1236ed9d78da3ccd1844a81c83b1b04637fbc63c7297fdd644496e7137fdcdec", "format": 1 }, { "name": "plugins/action/node_primary_to_standalone.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43bbca7b7f51510a95fef2d707cbeee0f752c9697b7cb5e2d8f977c0d776b9c8", + "chksum_sha256": "a4a49eecf67384d49785445a7bea3b359b1855125d27ad01eb6ee72778792a35", "format": 1 }, { "name": "plugins/action/active_directory_leave_domain_with_all_nodes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ebd5bd36ce8f89952b10bfc992eace59fdd6a821141d1b119bd24da98827a242", + "chksum_sha256": "78b3c44fe04ce977b1f0339545c9a363964220be85d809d9817ec2e81b2a0169", "format": 1 }, { "name": "plugins/action/trusted_certificate_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8aa467083afc591c8f70fbaa783c6952ac17256d9a0b94bb07c7b81c55716cba", + "chksum_sha256": "a66a26e20d00aad8c66afe6cdb0173313db3c1741b6ec57a64d1d971ca5fc056", "format": 1 }, { "name": "plugins/action/licensing_connection_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb9b4d3ee8eddfa9509fa548f932e147b598aabc1c2c5d6243032786ff73ee1e", + "chksum_sha256": "59e9752ea1aeb93e5b34f77a952e2ad85ff0a45d708a0eac599196927e5f95b2", "format": 1 }, { "name": "plugins/action/mnt_account_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55d7613d3bf2fcc696d292f47dad21361dbe8d255ab7757bc395abaae4fcacba", + "chksum_sha256": "b8cb07afb64bd3941ab053d5c5e1fc2eb116554692786ab3864f8367fbb3778e", + "format": 1 + }, + { + "name": "plugins/action/trustsec_sg_vn_mapping_bulk_create.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "74ff79ba7961ac4536852979f3fe570189c3cb33b70a408306581b6efce8e691", "format": 1 }, { "name": "plugins/action/node_deployment_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "58c048cec4d4f1f244137605d60a27c494aa193d3f13781a9fbddfda20a5db99", + "chksum_sha256": "6ee7a4e0b16503e6e2962e4a296fb8477bbec34a54ee01cde92f876784140597", "format": 1 }, { "name": "plugins/action/subscriber_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "16469a8610935851ae04741fd71adc955a98359756b03e0084d0d3f5e285fb0a", + "chksum_sha256": "bab5542d237a2a0b7e2525f7574fbdab0e4bfe2e3554fb22b912a86bec5bd4f6", "format": 1 }, { "name": "plugins/action/pxgrid_failures_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f7962c2045e6210f5febb237640f7f01547a953fb11e6442a0291d5061239349", + "chksum_sha256": "75b17986f17d8fac536b37d6277fc63220384a8c95cab02ba16fc75ad4a6b9f9", "format": 1 }, { "name": "plugins/action/network_access_global_exception_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52fb7c5f93a202647ac8b09439393e99a0442b4be074194ef2aa8d422df7a72e", + "chksum_sha256": "a681a7ab605be6b1367942e77fc045e636a273ad9d4733d4934f33e2779368a8", "format": 1 }, { "name": "plugins/action/device_administration_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3278a1f4e11231dc4df15b6de5b54a1141008bf04802d9ddf965dd516fa0afd3", + "chksum_sha256": "a5783fa88fb75ff61997dc275f3bdd3add89df7300b472bb3e791bb41444443d", "format": 1 }, { "name": "plugins/action/pxgrid_security_group_acls_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f55ae36b728fddbb4152b495bb496725fd8f1e56aed353dfddca5d89b9dfac9e", + "chksum_sha256": "9ac05feba25e8e7689d07751923e569c1a80ec9431dee9cdfa28fdf8f92305cc", "format": 1 }, { "name": "plugins/action/guest_user_deny.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9341c445e56691abbee98190f112a79c938ced37ebb4c8ad5c9bc788d6c69f5f", + "chksum_sha256": "ad287a6bef105a2ef5d31316b31a90aa6f58e20b323e9ee1297534bede1e9d63", "format": 1 }, { "name": "plugins/action/admin_user_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf0d4570a1871a36dee60c90c9d152dc6012693df6efe8d367ead00ddd90e48d", + "chksum_sha256": "9b3dc97aad0a58b7c3159316507ea4221b98ae8262d4cf7814cb6ca972927a31", "format": 1 }, { "name": "plugins/action/endpoint_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "492e636e3f10e6a60399d5a9e714410bca46f9c13f7df1ed3870d4d7fdae44ff", + "chksum_sha256": "ebce91118e808fdced33e40054540822887d03235972b0facbae4d9ba384dc73", "format": 1 }, { "name": "plugins/action/threat_vulnerabilities_clear.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8235d926add067ecf8b6cab89fbace6e127bd4a1b01dd7c29700c06484abad06", + "chksum_sha256": "72dcd4b20d5fa4f2bf5bbe4cf986e192bd03997112c12cbe43776b85c549ac2b", "format": 1 }, { "name": "plugins/action/identity_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3fa884e91832b84541847850e92ff6760b3576fa53a432b331e4dcecb278ea86", + "chksum_sha256": "4a1faa49e121840e580095d18a2b0d8a5ff30265472229a7bedbf59c6ef0e8c5", + "format": 1 + }, + { + "name": "plugins/action/duo_mfa_testconnection.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f65d2bdb2ccf8f2ce89d50dd4ed1ec2cbb2ae13e82a373b0ead91d0aebae50a2", "format": 1 }, { "name": "plugins/action/network_access_dictionary_attribute_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d327a3b52d0235995e69c72af2c0deb12d46a116c8d89dc33bb2caa8e2298184", + "chksum_sha256": "2d4a57d5126356219e8ca1f0e413ecf361bd77f8b3dd4fe474b9fb84f4427706", "format": 1 }, { "name": "plugins/action/sxp_vpns_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a2d57a86fdca49908d160a8da4a8a69e6b4173680111034b2772890880fab56c", + "chksum_sha256": "71263fe3b550fb446c6a80c3fec61f674dda8e4368a2f7aadd5a0c7d4fdff9d6", "format": 1 }, { "name": "plugins/action/network_access_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bdb109d68e3d2699c5991c4c8a090d81175010616ece761a5740e421be73ea13", + "chksum_sha256": "12264cfc5e755dbb71c9d896f910c1225cff5aa676ff2103ca8d63893e818b2e", + "format": 1 + }, + { + "name": "plugins/action/user_equipment_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "eb4d0e25e806cc5e2c066b438326b65a7205c4105f87890752cb21e709df630a", "format": 1 }, { "name": "plugins/action/certificate_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3740f776ae855110e2af32d04e91fff3709dfb8daa10e894dc5e28f75aad333c", + "chksum_sha256": "1d841388b7ef6be82f7c3fbbdab61d9bdd3b53dded4edc3cee25705b35c24975", "format": 1 }, { "name": "plugins/action/pxgrid_settings_auto_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c8809c6072c47aed001af0490373c4c1cb665959ce6e0196b0e9aaee6e53990", + "chksum_sha256": "5027e7c607587d0959f40e813505bed43c62690a0099de22ca4c150d4fcf9f31", "format": 1 }, { "name": "plugins/action/guest_location_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f6c34b166c24c0a9d24b0e638fb4f6987a8f774b15be50627cf106128cf74915", + "chksum_sha256": "7722fbce450a9c04c5fba37031864480939ea498656d374a34fdb6708012a0bb", "format": 1 }, { "name": "plugins/action/native_supplicant_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e8ffc1fa4ba22956fcd6dc57b7fbfb8019515e2c19c7f0a8fdd64880333ddfda", + "chksum_sha256": "3dc014c1b44792244514097d83626d31a6e293a4b50c4e8bcad5f0b5eb5f4fd8", "format": 1 }, { "name": "plugins/action/device_administration_dictionary_attributes_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ae4e89b4dcbf281fe5d377f6817fd1afca83e40bf6494a0caf2210fcf3ad6d2", + "chksum_sha256": "f1aa9759ad6c0e1b9a2c631ce922e67f519374188492c8d12e3031a8907af9e4", "format": 1 }, { "name": "plugins/action/network_access_conditions_for_authentication_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd6fe7a8624953d683789be2ada4391c73d325c305530210e9161c4b8438e6fe", + "chksum_sha256": "f319ce7d8b51713456505b2c43ba909adb9b9544fec9e85df4878d067e3b5496", + "format": 1 + }, + { + "name": "plugins/action/ipsec_bulk.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "40121e3fb31fa04ca837123a8fb86cdfe1f59e6d220e845a2bd689448018aafe", "format": 1 }, { "name": "plugins/action/mnt_version_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c8af439cf0c6a976e3b1cda03b2db9ce0c22c43925bbcad1133c9cfc15073aba", + "chksum_sha256": "e5c02e43a649432488b9dccd4d37298c8de5e5e97d9e12cbb3178eb2ab9de06a", "format": 1 }, { "name": "plugins/action/sponsor_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "891973ebfd794e3f4841c2f3ad38d5b4e2aef0e1d48fa2f1e1f76e8180f08eef", + "chksum_sha256": "a83bdf93b5ba5bf1903b3d0e5a874486349e1bd31a7c01200895bc0c555cb0b2", "format": 1 }, { "name": "plugins/action/device_administration_local_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2dbdf71eddcf95352dc2964af1fd12c4557f7b40d43d639ab4608882d6050a9b", + "chksum_sha256": "0b1c39e2553b049af64e5e01240448d348a156fa28be692add0b15021944294c", "format": 1 }, { "name": "plugins/action/system_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cc4b608a73575c36fdaa8f1c7beedcc9dd121f1165e999acf4082e8b93e7dc18", + "chksum_sha256": "49941e9f3d87069c75b7bbcfd85ea647e23a2d00193aa2802f6bf2b2c38186b2", "format": 1 }, { "name": "plugins/action/pxgrid_bindings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3093776a619d92a1d7dc5a43eed1862b576a52255a20da943b28d9555dfafbb", + "chksum_sha256": "ab5dbdefe42bb4ac5f7e9c516625db2ccbf19c62871264153f0679960f9b4ecc", + "format": 1 + }, + { + "name": "plugins/action/ipsec_delete.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "af1cad8030c51882043f2f7c252f7ca74e18a36935cd8096a8bd337ea78826f9", "format": 1 }, { "name": "plugins/action/tacacs_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "513312a04d04fce8c9b5bba32561b70a3762eaa488df80163f4596fccd5ea9a9", + "chksum_sha256": "85b7a3f145ff2a89b7b51096df4f293b471cb4be1c325bb442118c3b65a88014", + "format": 1 + }, + { + "name": "plugins/action/trustsec_nbar_app_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8c1531dcb4e4609977610bda033f05e8f60af0962f296017b1b4fd727e0239d5", "format": 1 }, { "name": "plugins/action/tacacs_server_sequence.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d0fada35eb399f88fbbce525a5db969e10e8c19f1057b6c0d9f80b2e82903b59", + "chksum_sha256": "6a7e15499bddb79cf8126bd7a3b2de5b625ff7e735dc369ead610a438a571e25", "format": 1 }, { "name": "plugins/action/network_access_global_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "33690d3b6b97fd8bea631e080ed394827ebac5007ee7a4f0c57eaac4cb8b4310", + "chksum_sha256": "2cdb6222f63d019bc208af8bfe6508d8f95896222416c5185312f2afd83e5090", "format": 1 }, { "name": "plugins/action/mnt_session_profiler_count_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff290aa82f395e53dc32d479a40219dbda575545cc63312d40c6e6eab980e7b8", + "chksum_sha256": "658a8d44a3b93cfafb947c6b87dc49fca8b983f77bce894f97807338492e6fb7", + "format": 1 + }, + { + "name": "plugins/action/duo_mfa_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "71fb29724cc90453134274a7c21952318a26d119c89a12024fda69125c88a8fe", "format": 1 }, { "name": "plugins/action/external_radius_server_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "953cd1cdfa03ca919d8a730334e638c9337704107f9e3c0eaa1c689f27686dec", + "chksum_sha256": "e59a35fa1e1192a892c43fea891cf36de10c40cddc8cb995d3b691165e8ff204", + "format": 1 + }, + { + "name": "plugins/action/custom_attributes_rename.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f498342b060a57849d0f5e9475d5ae1402b75b1e5328ffaedecc4de9cac718b7", "format": 1 }, { "name": "plugins/action/session_service_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d0a5f020030946d7d60025b6e5e7629866019fdeaa14c62dfe8f8c92ed075438", + "chksum_sha256": "5145d72eb8d35c45d572b4d0a0c1415d45aafdc423da35ea556591991476562f", "format": 1 }, { "name": "plugins/action/network_access_global_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e2ad4f96a0e00267a93cf134a1e1606bc3446c245ca04ba650a83525b20e2820", + "chksum_sha256": "2655515cfb1e80d5a99909bbba5632a30afd58cf534a9080be5d29e60cf8b4c8", + "format": 1 + }, + { + "name": "plugins/action/user_equipment_subscriber_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "49d7d5506aff2c129b6d57bef5aceeb8ac786895f9f95bed95672c0e00e820b5", "format": 1 }, { "name": "plugins/action/sxp_local_bindings_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "50d9d9adcaad9725c9ed0c80f9faeca32b0cce45ca365255bae21d599af60685", + "chksum_sha256": "72e50a3738b5b7e9444483f6995c53589f9cc0e6b5f7eb866afd1d2f1a7acc28", "format": 1 }, { "name": "plugins/action/pxgrid_performances_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bd6e479403908fea8682b2ca17f98708fcda4fdce7d70380e9e5ed4e1f3c8416", + "chksum_sha256": "7f8b2f4a2f1ce2d4493a54c02c3a01c3d09ac0914455954c18297e616c86d350", "format": 1 }, { "name": "plugins/action/csr_generate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5f3e097ef6b174ace0776ea2d2829c0cf9a0b318942e42d54d51d096b72ffc6d", + "chksum_sha256": "3613c6b5d139b8371db30e91cae630c8990fdfece6fb4101f61c65dae83b4f2c", + "format": 1 + }, + { + "name": "plugins/action/duo_identitysync_sync_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a913aeefaaa32c10c51568e902cc0bd08b720572c387a88e702c63aa0ea098c5", "format": 1 }, { "name": "plugins/action/dataconnect_settings_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "767abf8104ce3772b9657a8a4be56f87c97dc33355572e59587f828d29c01770", + "chksum_sha256": "459e452436d6f386d4f19d614518ee7adc11bee010020e70941ceb4c4936a821", "format": 1 }, { "name": "plugins/action/pan_ha_update.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0ee7ca29e528c5de211e91462f0a9f019f3cc06e61cdcf3fd6691b481b9562d3", + "chksum_sha256": "4f1c3981d89fd64dd8170304609b97c39972ba6804175cad43a7dc03cc42448e", "format": 1 }, { "name": "plugins/action/mnt_session_by_username_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5015521c73fb5adc5bc8039744a55f37eef160209b828adec9b002f3d9a0211b", + "chksum_sha256": "e6e29aef1ca8807fde2c480bdeadf9f40429f4e67e0edc55bafd94ebe5310405", + "format": 1 + }, + { + "name": "plugins/action/duo_identity_sync_status.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "02b9bb18dd136f7fcff904d8c848b00eceb48f0df86dc8376d2df6680d938199", + "format": 1 + }, + { + "name": "plugins/action/duo_identity_sync.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "416ab59ccec77137d046bac48fd17ac40062bc252160d998792468f73f4aab9a", + "format": 1 + }, + { + "name": "plugins/action/ipsec_enable_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1163b19b6a1d420764586e5e99295210cb396b1b1ab578b5b84f6e8856453d77", "format": 1 }, { "name": "plugins/action/network_access_time_date_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd6181558a6ab7b5e026b3ec098cedea9ba109d00ecf61e8b400c3d147698963", + "chksum_sha256": "41644a2deeae783330076fc9ba34989e4d6426c214e6e8fc8915c8834b9c2431", "format": 1 }, { "name": "plugins/action/device_administration_time_date_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c7adf3188769d12e91f1a0c0832d8acfe994fad2f6196a081507adcb52221ae7", + "chksum_sha256": "7d16ee38cba9332789edb2dd14f5b7522a1a97287cc8ddaab55ce906a6868510", "format": 1 }, { "name": "plugins/action/byod_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "59e40e852f601c9b982254a41f3f0b739bb39a009f4544617537f0404c939a18", + "chksum_sha256": "b0c0c073fe84d690b8ece4b07c8cf6923e3a4af912e4e934d6f91db7419e931d", "format": 1 }, { "name": "plugins/action/node_services_interfaces_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be2f02885115277c3851b16a7a67bb149f7d16656c9cfb19daab5a7850a3b9f3", + "chksum_sha256": "d236d7ed4f580dd1763d4e6e46ef52cc83a1c04034c0d07c8adb50ceb665b6d2", "format": 1 }, { "name": "plugins/action/pxgrid_endpoints_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24897493a3bc5736d92adf6e19c0f4ddf9f533344e062e5a65aad03153f324bf", + "chksum_sha256": "505de7df53fc9bbabbe6138537daafe41f22f3392a1b315c89d8a8d935aabb4a", "format": 1 }, { "name": "plugins/action/portal_theme_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "919ddea9316dd1b4e7fab48a8473ec866e0fa23f02583b559554162f810a0c51", + "chksum_sha256": "9b3e2354dddb639abd160bcad0bf8c31c4fc080779a0252210a7c83cd0c5d7b8", "format": 1 }, { "name": "plugins/action/guest_user_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a93dabf221402a365bd997f349a7da7133427e667f8ce8ca901b4918d9be2e5d", + "chksum_sha256": "b9e5cf77f37351e460f87af41f7bb14b8bf433e6ebc550841945ad7243e9116d", "format": 1 }, { "name": "plugins/action/pxgrid_session_for_recovery_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e1bf34ecf38817436326271284760afed434a45c003e5e9aafe9577b2bbece62", + "chksum_sha256": "32b0172ee1547a0499eb32bf340b30f90b6acd28afcdf7d5b02a08c6bad0e95e", "format": 1 }, { "name": "plugins/action/licensing_registration_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "328de7bf06b1bd5a47ebc97cd0979790e588c1c0d41522ba8249a9bb9eb06d13", + "chksum_sha256": "9824913ac61f9f2260d4fd918728bcc18991360390e415b418eaf6cc583b03a7", + "format": 1 + }, + { + "name": "plugins/action/stop_replication_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "19a1187bc04148eef2488ac63c7818f9a58454aea783d791a9076b787e349bbd", + "format": 1 + }, + { + "name": "plugins/action/trustsec_sg_vn_mapping_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6b8626cbb36ac1f667d42db48eda1c331c1ad1afa03c9c3613cb4857a041a85e", "format": 1 }, { "name": "plugins/action/tacacs_server_sequence_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "008f9abdadca0fb0e8bbb1109a6f070042b8329d4005b54f64c22057107953f8", + "chksum_sha256": "0e315f3c362a23c22ee91a415598d057d950aef3c37e138172c558a9e7611bb2", "format": 1 }, { "name": "plugins/action/sg_mapping_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b23dc598542aea533c99eacce9a84756cafaf372c951daac5c82ef8450adae9c", + "chksum_sha256": "42f75e1dc8001f6c9feb6bf8853c9ef08c7a832589cea213205b0a8b10976885", "format": 1 }, { "name": "plugins/action/dataconnect_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54c74d4796a53e5dcf6ddee6510b309ce8e2037f91eb6aa2929c394de2192ee4", + "chksum_sha256": "135ad8464c5485784b121ba38ec27b21f206a7fa22deb745c7ab8342eaaa93ad", "format": 1 }, { "name": "plugins/action/system_certificate_import.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fbd926c55f5d8c54ae2ecf10741b5c9fef2fb8290d549cdb6c0ed85de6715410", + "chksum_sha256": "c1c146c93ab6812c946b046f29938b1e4e80631f1516be20dc0b1b1c9e321b21", "format": 1 }, { "name": "plugins/action/mnt_failure_reasons_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6f50536e256d0f4e8bb52ef61754c0dd9d1540f864743ffa60e781e2648b3b22", + "chksum_sha256": "87738b6b641b717d01af9fcd88edbb573118baf7488fc5969d6e343088de437a", "format": 1 }, { "name": "plugins/action/transport_gateway_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c294b21def715ca2ae632ce6fa0b543c8023d292031ac3c1c2f762f21b8a6795", + "chksum_sha256": "bb095e45a24a1356c82390710bd0ca16c1000723d22c385c6ef99b2adb81b8b7", "format": 1 }, { "name": "plugins/action/network_access_network_condition_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1645fc6a8c79d2ad5e105db65ffe4ecb9fcd51d01d7e0f46a80ade0da0ac0ec7", + "chksum_sha256": "fd6579a75bb2c494578796730af6582a66de23bf3202589f20759678d8fdfecb", "format": 1 }, { "name": "plugins/action/device_administration_authentication_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c93ef8fc9e50d073a8c5c6f47f6eae589b6e32462f27d950cdbf16928f953005", + "chksum_sha256": "d901cd1dd85ce95dee607e0b2937527596b63128b74ac88f35047f4ea540abeb", + "format": 1 + }, + { + "name": "plugins/action/user_equipment.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "658f7de30108028f421ad1d3d1d868d510d715b1f93c40c5276dc0a67a8a4ff7", + "format": 1 + }, + { + "name": "plugins/action/trustsec_sg_vn_mapping.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b5c35fedc2499b31c3a9ff40ecf551b5676d1b7ef3ea9847f3422c6d244ef47c", "format": 1 }, { "name": "plugins/action/backup_schedule_config_update.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "12aeba065f115bb76b595e14eddc280626a0a01e72ba4e2e36967da33ab7fbf7", + "chksum_sha256": "118f468450a435540ab33419e5752b26fe12685abc32a0a607a7f725e252dfa2", "format": 1 }, { "name": "plugins/action/network_access_authentication_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2e7b8a6fa1ea028935242cd364d7f34397e63d5ad1eadacfd98bdfc4af61bc84", + "chksum_sha256": "942eae4a9089efdb004e53f7960eaebfb83e6605ad5453929047e16a55774bdd", "format": 1 }, { "name": "plugins/action/anc_endpoint_apply.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "81bec6614af12f67e56d58d807857ee1b4889a38321a247fed7fc93f70e88b1b", + "chksum_sha256": "ede7c08b13c27370a3c17d827cb973efcc73b17ccb19c02f25242f274de91a3a", "format": 1 }, { "name": "plugins/action/endpoint_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5f3977aa95a7424a7b43f346c90e2af3205df338391b9ce12b454077d5a43497", + "chksum_sha256": "5f47ff9b112ec0d673aa6bd6743ecd5922cb62d3d4538b66ba225e1221fbcd2f", "format": 1 }, { "name": "plugins/action/guest_type_email.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "236988cebd9fc7912726d597a884cd6e2c120a27c56e4845aefcdc0a4b3014c2", + "chksum_sha256": "5d736aeeb528b30bee803631be62f935d392059ba44e415a3319424922640de8", + "format": 1 + }, + { + "name": "plugins/action/duo_identity_sync_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "deaad4ac1d69a799c51965e2814c37bfba38d2bcbcff4c4cd254c2498163a08d", "format": 1 }, { "name": "plugins/action/rest_id_store.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3da2434a0c5bfe546c46cd039174d8377690efe131403da72df075285d98a2d9", + "chksum_sha256": "4937cca746d107f00c11f03bc119d4db14139708abf41eeeee4b7dd2dff73b2a", "format": 1 }, { "name": "plugins/action/licensing_registration_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9fde6f7ea5be674349cfdeb4ee6c002c71ffa777ccf50ebe26e881368a270dd5", + "chksum_sha256": "b71bcf6c47a5ecb972417588410624f790569185490a4f036bc7f4f283175e6b", "format": 1 }, { "name": "plugins/action/my_device_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "486f298e42a584033cd03593b32b24f27ad192e8963156c7c09198056517d9d9", + "chksum_sha256": "b2be21207cf94dcb81b9e102f45ca0ca0545bdfb5cc36a3d33ed204ff81be663", "format": 1 }, { "name": "plugins/action/network_access_authorization_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6afbc0c55506af063a3a29ef7b2ab07640811656d02cbb77d843469e5a7a7b5d", + "chksum_sha256": "bdebaa94f2fb6578d5ddfaf7b2cce124c595fc570d9ac41d48db1f3ddae16d79", "format": 1 }, { "name": "plugins/action/pxgrid_egress_matrices_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8c328babbe6b06d9bc574418235371cf56518d824e2bae38c57e9c9189ac125e", + "chksum_sha256": "69583b01cf001f1335d1fa1a242fc0d55784f8596e89aa60c39ef2706ef0e032", "format": 1 }, { "name": "plugins/action/active_directory_join_domain.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc11558964b4f2c0eb0e4a09d7667ea21234e1163aab3cac0f9e458ecfafe2b7", + "chksum_sha256": "6ce0a8e1af758625958be9555d26d60fd33a9480cb57c20461f055220a1cc041", "format": 1 }, { "name": "plugins/action/device_administration_conditions_for_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "62451a4dfff28303d406124c1682823258db90ce1f427ebccf019f6fb54a0d99", + "chksum_sha256": "07db1ee2d4c25e9efb9447de80c725bbe4587368ecf8c443d7ac90fc6e09dbe3", "format": 1 }, { "name": "plugins/action/mnt_session_reauthentication_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f921ac8a4958de2f80bcc09f2094fadc3ebfcafa264d6b72a8e5954667cd66ca", + "chksum_sha256": "a63a695162d8e6367a1384cf42c0c9f626102476095de501d21651b00496a67e", "format": 1 }, { "name": "plugins/action/support_bundle.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "61aa1b6e7e2edb49ac7d1366c2cad08e9c6515c83d97366074b4aa398722881f", + "chksum_sha256": "a668e1d019e1ec843bb34b4b8d083027e55a3c09193ba94b426421233472655f", "format": 1 }, { "name": "plugins/action/device_administration_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54e51a7b9bd46c33ebc3d3c77ed0fa037fb354ef5c9c54df0811b34c1c16c760", + "chksum_sha256": "e0fc78f346a8d56b06dcd74e3795d04138bf691feb82c7e374f3298c71927af3", "format": 1 }, { "name": "plugins/action/subscriber.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "029e75c9c59feedc8a1dbb5bf26e453f5728b2100bc92587708ac63a40e57bbb", + "chksum_sha256": "f628bbd70db236c45167acb19e71e6e192eb3b9755de08d4eb4606f27464d420", "format": 1 }, { "name": "plugins/action/pxgrid_endpoints_by_os_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f5eb537d596fac3fb45f1934b4bfb46c05499216fac5f119315f479f4ed005c6", + "chksum_sha256": "4758580f7e5a64644b0ec991c711e94a1b3acbcfdbac4b65d800abfde6a14a2b", "format": 1 }, { "name": "plugins/action/egress_matrix_cell_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d07149ede80bcb613244811e3809d73c9ef5f3bfb7e5d77124195702aecc4881", + "chksum_sha256": "47f885327398492e8b59e0514efe822baf4e1399cf095c2261a76046b73b9850", + "format": 1 + }, + { + "name": "plugins/action/upgrade_stage_start_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "62b0a8930f7335d69a2761021b31346b6d14f7d18d90fbb938ba21a806b2f1a4", "format": 1 }, { "name": "plugins/action/node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c18e0f918c1234a162ee6cffe9b6ddbd559f07fa1fbe8f3cb278270be66847f6", + "chksum_sha256": "03d5838168f4341e94a074c90d541fb76457eb17a1605a19b00315120f980520", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_vlan_mapping_bulk_update.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c9a3313e12028defd1d8037421747a28a5f7f33b2583d278508a8067102362be", "format": 1 }, { "name": "plugins/action/licensing_smart_state_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "85b7566a0d12c964623facff701541483b4e555feba429f9252c836b0f5f0dfc", + "chksum_sha256": "87852fb6d40c288685e5dda1f9cdb3a897e5aa139240e92e5c6b9509739f69bf", "format": 1 }, { "name": "plugins/action/sxp_connections_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef75c7b7cb3547f7bb3b4026b7cb0f91b69378bf75c480a7eb9f102134051e56", + "chksum_sha256": "0f4e8cd24b1806fb1339c8c02df52d846221437ed971c38d11f5b0147408e171", "format": 1 }, { @@ -963,1771 +1145,2051 @@ "name": "plugins/action/guest_user_sms.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d5d01f13a01ae7498cc7f4b6fa838e502368322cec7683b0feb3238ef6cccb2e", + "chksum_sha256": "a9a04070720a5b532975c194c6aab7cd2ee6f85f59b2c7e875e7360858b59cee", "format": 1 }, { "name": "plugins/action/pxgrid_user_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c12083f264581005534005b21c392dbdde0172c9e395bec849ee63dc3721550", + "chksum_sha256": "7de87e9be438b0b67ab5dbb346b62906961ebce69a228643e11e49a47cfebb2d", "format": 1 }, { "name": "plugins/action/pxgrid_profiles_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e30fb1331d33b09bbba2cdd041effabeb47ccf5071acd403a840676e9dc101ab", + "chksum_sha256": "8778b5c586a6b3740fe909c48909cd8d4469bade161061caa8d709df4ac2ec7f", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_vlan_mapping_bulk_delete.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1968ba582863c958f17469a832661d0ddef0ac77d4f038c57936faab5978c0b8", "format": 1 }, { "name": "plugins/action/licensing_eval_license_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "137f8a9a10d2e8b99ca9fdc8259fd84d2028b90b10e6e2d8bb6b352b8124bac6", + "chksum_sha256": "1ed3dc405c9ee87e1a79815e9faa973007726f6f8137cb491c90f97b2481a6ce", "format": 1 }, { "name": "plugins/action/guest_user_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "77ca503988a06be7b97fec0316a8e146441a7b54ee1cddbf636f226e3b7cecb0", + "chksum_sha256": "4080f239c92775b9f7a009570df764ccc654ab2647bb0f03f48fa96ba85b89da", + "format": 1 + }, + { + "name": "plugins/action/endpoints_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1eb7a0b67a086b26de08a772cbaa8996a022bf26002c36868ce7170d97cf736", "format": 1 }, { "name": "plugins/action/node_services_sxp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ced864beb7f33934d3f24afddff8bb59133f4b5d1ee451bd7b3808e7beee2f4d", + "chksum_sha256": "9c4d84e6debad53a1715cbe9296ee4da2651f302969dab83459d2cd96ae21b59", "format": 1 }, { "name": "plugins/action/sg_mapping_group_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "96763934d6763639d6eda043dea775fa0cd20fa014806a651377a1b0a7c3febb", + "chksum_sha256": "aad7d35674765a27a9e7c6d428486ebb7067ebcbe48aa0ff807c3a5116cad3f4", + "format": 1 + }, + { + "name": "plugins/action/upgrade_proceed.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7bfc89066dd3553e09de1cebdea398ea7c127db8c065a809261e8f1e90100b53", "format": 1 }, { "name": "plugins/action/network_access_conditions_for_authorization_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b800eded78302c6a06bc05e2a809c6f12100019368d5afa88c57a399e1bbe4a0", + "chksum_sha256": "4dd486cd8cd95f07f3cbbdb29fc88f2a67a6ac104da660b300203aff773f428c", "format": 1 }, { "name": "plugins/action/network_access_identity_stores_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "377bb02c2049a6041aa3799a19ac58e1cb78af59596b2f3b9655a3599ab766e5", + "chksum_sha256": "74943440409ab2b0405a7bdee42d58576528d3b52761c8853608ac04f9f2178f", "format": 1 }, { "name": "plugins/action/pxgrid_account_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0473093397a4c16cfec4c63349dfee71b640b24e850a146e67d5060d292c20e1", + "chksum_sha256": "abb8b038fe8fa42ea0c3249f77435535619da31321cb9fb6cad2c5652a94d3cc", "format": 1 }, { "name": "plugins/action/pxgrid_access_secret.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec11c17ea9a18f7d4cc7ad14e0e9c610ffe1f65da35b2b749b1cc42858664014", + "chksum_sha256": "cc82a60bd082d23542db0a261c6f7d29f23c6729bb3997c833eb1564b8ca49b7", "format": 1 }, { "name": "plugins/action/personas_check_standalone.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7ac40aebabdc8ad0861b2fd777eb42d02d46f86d2bcc6c11555c430c638a3c5", + "chksum_sha256": "648402929285735fe1c76f366bca26b040f7f7652d641061a00ecd594e873d96", "format": 1 }, { "name": "plugins/action/device_administration_authentication_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4dfaeb4ab84310cd5b4bb002ec4238247262fed038d4c4b5b8dcec53182f9eae", + "chksum_sha256": "addfddb289ae1e8540c8afb30c3c23c9aaf3f2141317dbcf6c89c20e609470a1", "format": 1 }, { "name": "plugins/action/active_directory_is_user_member_of_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ad5b9aac210f4f2a63a336bcdceb77d9dadfa369096e1afb982ad18f7688d181", + "chksum_sha256": "67d55446e1ab6e467bb0b2349052a000be1108d393aeb72d93d3121bf6e2b366", "format": 1 }, { "name": "plugins/action/sms_provider_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b6604538f4e954ee42b51cba53bbdee8292f7dcce1287ec95ebc34dc55c65714", + "chksum_sha256": "986e95384a1b500e8d851553593d14c22eab2ca4b14c6c5030bef8b4544fe868", "format": 1 }, { "name": "plugins/action/sxp_local_bindings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d3a1c1c6a03b8a85a8d2a03c825e97a85093bc023f222e122223db3572881734", + "chksum_sha256": "55e8a07292ca09f5cbdf33c724b3c88aa6ce4d043480c18a902c982b657a05b3", "format": 1 }, { "name": "plugins/action/aci_test_connectivity.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "65be27b52efa48cbdcce9102991394c06e1bb96416262228084045c0e9550f4f", + "chksum_sha256": "21f4106f8e580fc5b28c7816ae4a235e569c488b821a20ac6be2e4d1eed76214", + "format": 1 + }, + { + "name": "plugins/action/upgrade_proceed_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "009296d074e18f962aed9f6c1164568ac482cea93be39371130d0573bddaa4b7", "format": 1 }, { "name": "plugins/action/device_administration_identity_stores_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "db6b95a00401320d47f853d7d6f736a98dca9d63a408dbe062bff492d0b67932", + "chksum_sha256": "58ce0eb794a10e5f269ce6a028cdd6aac9c761ad2d27fe2b01ca6fa55f13ff35", "format": 1 }, { "name": "plugins/action/id_store_sequence.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "51f0a679ed4baa143507d3fecd75156800061106d552b21e2480fb317d479cb1", + "chksum_sha256": "208d2fefe6f32cd3a44217bc8995f19083704feb6c699ca445beb153df3a3e57", "format": 1 }, { "name": "plugins/action/sg_acl_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4189580510d2efe03ed31822f9e374c8da18cae6dd556f8d928865e89a8cd346", + "chksum_sha256": "1e798dd9aabe1cfa55bac7e2aade7937d6bf0afa134a40268fd60a45d9329d55", "format": 1 }, { "name": "plugins/action/pxgrid_egress_policies_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "06aed10db4eea3997a4cbc3bb144d19ef3791ca06997268518037a75367421f0", + "chksum_sha256": "3191020f82ce67ad277c7b6b52afaa33b91c0ec045e289255af332b569546ac0", "format": 1 }, { "name": "plugins/action/anc_endpoint_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97bc52a139f913d6aa117f719bd2d4bcbe6e7ad2b18ced3a2394c7712a6cd2eb", + "chksum_sha256": "7cbcf540883eacb0c870644890bc93f27ee8a3daba74b295a028052d6fb8c6d3", "format": 1 }, { "name": "plugins/action/guest_user_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e658c24410a6a0b9c412f69da7491047caadf7c5ac7c89bdff162fb6699adc54", + "chksum_sha256": "fdd828f6a53af0da89e2163738635ba621e2f0f85d1933c1c95e1b24c851fa9e", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_vlan_mapping.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ec0c4de4fc33b86f10c9064dc67772b0253e43e590551675e490d6e8cae7f240", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_vlan_mapping_bulk_create.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5a0708ee8060548538a92445cf68155918fe0dbfbb8692378a1647732b10ba30", "format": 1 }, { "name": "plugins/action/sponsor_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6f12ca65af1120e9637bb107e9a075a55b915e11b352f9faf682b47ec22b43c", + "chksum_sha256": "7f71b8ce19994b57822f6f1cc96c29cabd9c1b4a4ab84d494c5b900321305477", "format": 1 }, { "name": "plugins/action/system_certificate_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a86f6e4c18d57b01d705f6e93dca4b640e30d9255589e4f53cbf629328a09f9f", + "chksum_sha256": "6b94bce023f557413eb8c5bf4c2ace8313ef8b30de1fa9cada49f66c6f4375f4", "format": 1 }, { "name": "plugins/action/network_access_dictionary_attributes_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc87569f66316141c43c549a768e4cb64b5235197b297d9407acadff604ec7a4", + "chksum_sha256": "36b77071d7941ab0cdad7d30aef544fb09ed8346e15f239e6bc2e5505330bc8b", "format": 1 }, { "name": "plugins/action/px_grid_node_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4691ab3f8b78cc6f03511232876dabce7890a98b144dbee8c405b6081cc76785", + "chksum_sha256": "43fabd816b62ef1cc8861ab0c6f2833ac8b9c14592378311f754706633192a67", "format": 1 }, { "name": "plugins/action/device_administration_global_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "71f7f337b4f2e125fcadcb5edb8ba618a8e121ccf35abd7e8813cda903073205", + "chksum_sha256": "a02b6de4b11bc5d003a7dfaa40c610eb349afed1df4df8b4ffebc5e4cfa58100", "format": 1 }, { "name": "plugins/action/sg_acl_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f115fdf62481647f4eeceed207e437fae9327c42c72051f4a564d00b3e8d64e9", + "chksum_sha256": "fe71751cb69e064ef6ce445f69cc1c51a6cabae5218072a8ae3e9b8019ed5466", "format": 1 }, { "name": "plugins/action/hotpatch_install.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "841a5f1484910ab249e2d67a0327931bf83d40cb27aadc4e7883fb6d1b558eaf", + "chksum_sha256": "d5c60e4b9971e65f517f0f178b6e219b4b7fe3832fb01363db4cb77f51fdda74", "format": 1 }, { "name": "plugins/action/active_directory_user_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "32f96d8ffe0cfdc346f6b21416fd17cceef2e826934e20630f7d6ad97725f15d", + "chksum_sha256": "aaaad9669db6a42a656fe15e87006b8db335a1e930bbe3505cdec10bd73beff4", "format": 1 }, { "name": "plugins/action/pxgrid_node_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f2f5ad212cbaa6145289d836b0cf4c9c550ae2945526a744785deb32b0ed3bde", + "chksum_sha256": "2cd5eece8549d0bf1428c8ae8d6ed948f5a03cfcb9e2e97c58eb9a7edd028486", "format": 1 }, { "name": "plugins/action/personas_register_node.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08ebf1dcb40cadfe6b938a7622443bca291a46a5b3bbc7e2c8be1566dc63a0e7", + "chksum_sha256": "f0d104340c2f26f68794410613ed9877477a3ee5b366ebfe77f21d9aaa46e2e4", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "aa32b01dac813559b6365d95aad350196f466e3a737bd503a7958149b49573cc", "format": 1 }, { "name": "plugins/action/backup_last_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2cf3b261fce8a2feee6636bae3d3a9d4a5ddede52754001aaad55de0a161f526", + "chksum_sha256": "e79188112d82ca5e120670d6f77b89e9c337d42a065f1e7fbf867f5d035dfab7", "format": 1 }, { "name": "plugins/action/deployment_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ea06557d917f1d5b20eaccf8430bf164fb025f785049042854205811539d3d2e", + "chksum_sha256": "51be649203f8669decac7aabb114468d09abbd5088382b6e6d57652b89e25d02", "format": 1 }, { "name": "plugins/action/sponsor_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d2dc4f5e84b3b4e897fc70bde7ccfca13055191a39d8f66c00fcdff5da6b91ea", + "chksum_sha256": "a4b8be4ec35e3fee83eee4814b8c90bef11752d2a9abbe0fb34710eb9fe17225", + "format": 1 + }, + { + "name": "plugins/action/duo_identity_sync_cancel_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "517b8d935b6c7dd3e6188b5d99fbd7817dcba4ca427ed7666d6647564a9bd4b2", "format": 1 }, { "name": "plugins/action/csr_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "07c019bced417d3dbb0a491d5f21a23b69a41a0078c672e871e51a72eb24d0eb", + "chksum_sha256": "af84064d676e0a13624c5c5a2214fe4e2c5e6fce5c1fb009c01b4bad295ddb58", "format": 1 }, { "name": "plugins/action/personas_promote_primary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "281be6dd4a9d2ef171ad7451f32e782b6a9682588244a5fd9c870ad15d3f2b80", + "chksum_sha256": "e1bcee6c4e5e6820e27e11f848380138fcb6ae23ef81c5d43175d999b822015a", + "format": 1 + }, + { + "name": "plugins/action/ipsec.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1019bb6c2b251598f0bf735f586a435723664dcf7cb3929f26d8d4a2754b5c86", "format": 1 }, { "name": "plugins/action/pxgrid_session_by_ip_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2b6fd8d5212751802f62b7bc385be8c971ebeec299919368184382b2cce8e6b5", + "chksum_sha256": "7badadf5fbf2c85d5c4faf43bf0798f515b67616ae6f8e9068ac328b2730ef41", "format": 1 }, { "name": "plugins/action/node_replication_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b14f04fc660905c91d132e4893292394f10c04c8cf9aaa8bcc1af06ef9db4c55", + "chksum_sha256": "24038dd7603a167ad22cbf14e4da6bfcbdcd8611619026ddbc590d2eac1d06b1", "format": 1 }, { "name": "plugins/action/egress_matrix_cell_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97e517bc059ba29cb31b96a35970bd2ebc79e2df113118f05f80e75086c86d9e", + "chksum_sha256": "1ef155efe5fd75c40688536a8407ee2929371a119e3be48848e7e494025dd0b5", "format": 1 }, { "name": "plugins/action/guest_smtp_notification_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3aaafebb630ff8b6039da968413e8e3a218965d30740a62e25ad14db9d6a6063", + "chksum_sha256": "8bb41eecf7408831483247d4a62d9ba3fcb9447026c19eb09efb5197d2966c91", "format": 1 }, { "name": "plugins/action/node_standalone_to_primary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "883c2bea469a9a8ee73608d94aa033e31e154704347caac07130b04b9483dd7d", + "chksum_sha256": "97fae9ea0d32b489cd92f1e22a0802c0611b9d47133d4e09b00b5ab755cb23bb", "format": 1 }, { "name": "plugins/action/endpoint_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f2b2e8da191845dfd03ac61e1bb249c8db96a51661fa58c9b7ad5da71a2b4df1", + "chksum_sha256": "7888102dc8f7c6c625efd7844154e63814549b4f24f6c644a25370c229006b2a", "format": 1 }, { "name": "plugins/action/sg_mapping_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4fe01960c8bd83eb0f06c81dd5f447374fc61ad4cd6d48a721575d0693c5adb0", + "chksum_sha256": "0b40e296d6bde384cda1fb2796c8f48dfb277d16371dd0e321bc19d4426f536a", "format": 1 }, { "name": "plugins/action/egress_matrix_cell_set_all_status.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "882027e49f14f3731ddd1ee4368fe1bf8d43185c018f7b4029c14526d13f6504", + "chksum_sha256": "833be63abcd92dd09b697dd05473d58099b9d7a29dae5d05061ecfccc4144596", "format": 1 }, { "name": "plugins/action/pxgrid_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "527031a4bb8825baafb40a2316c6f5667e2938d46c98fcda310666822b8b59f5", + "chksum_sha256": "7caa0ca7d19c6f6afdbd71b271b9c0a03b3fd963df482e6b8b90fc421cd40c45", "format": 1 }, { "name": "plugins/action/sg_to_vn_to_vlan_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "707e4e97807c6ad12c5025c3ec05fd1380f68a8439cf147b37e8556790ea05ab", + "chksum_sha256": "c5bcabcf3f1ee6e7afde1f1b1df57cb9ede100962e90d715e2530926b4fba28c", "format": 1 }, { "name": "plugins/action/trusted_certificate_import.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c24c7c5d3c6e64ae2fa866b2dba44c919b3122296032b4a08bcab99f34cbc15e", + "chksum_sha256": "3a527f6dc0dc792b35d5cee2bf9d10be14d4c9567ae5a425e1d5f437bd852161", "format": 1 }, { "name": "plugins/action/network_access_network_condition.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "906dda5e785d909b4a00a8d1691be6d4e60e132dd89f14a8a2502d62777c2f6a", + "chksum_sha256": "1ec607570f8179d31c5a87e7478d1904c1538a3a7654de26fd6783826c01ed00", "format": 1 }, { "name": "plugins/action/device_administration_authorization_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e83b48036a3a794e48993214700fb9ec5946ead5e127b523a403d13cffa8093d", + "chksum_sha256": "ffa716aec1ff60059d5e75e9ee891a402ca6cf59199e5690e56a77a0048b162b", "format": 1 }, { "name": "plugins/action/backup_schedule_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9771efa4438fc058f6ca3026e7565e4e3ebb7b35ca83d0e8186f4c9fdf40e8c9", + "chksum_sha256": "d1a66c9e1ed6a3fc65e1e63b94a90405ebc621b2d69b5a303c65943cb31bbacd", "format": 1 }, { "name": "plugins/action/pxgrid_session_by_mac_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8586b78a6585d526d3d660592c98f6f4c53201c047a040396dd07f0f4bf49860", + "chksum_sha256": "a4438204bf65d872dde9cbfc4fb671f44e827be4b0bedd6c296c258777bce17a", "format": 1 }, { "name": "plugins/action/network_access_local_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21c2f6057be6e3e1da5195f37d7fc15898ad043baf50893163c58d406c2bf617", + "chksum_sha256": "b9d3f568b45babc52c2aac233e7a3f6acf5647252932aa0dbf179058452836cb", "format": 1 }, { "name": "plugins/action/sg_mapping_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0428b5b353f7c58c7d41f8051ff0bc836cf9888be9034084c3be2e61d4b37115", + "chksum_sha256": "35490e5f76dd72b112b0e4bdaeb95bfee8d93b2c7ec80764d0aad0f962e93276", "format": 1 }, { "name": "plugins/action/network_access_security_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6d5e12d17071818146bacbab7acd3ef3cb5172c949ebbeb36e1553d826ec60f6", + "chksum_sha256": "f04850aa85790a2ae4131164f81cc60548f62af9ea958a2996ebcbd6a37f41c1", "format": 1 }, { "name": "plugins/action/device_administration_global_exception_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0add95d4a29e2e7dbee7367adfd57a3832962261ef5941b59c239938942eced0", + "chksum_sha256": "0784b8498f68672218c1bef5214bebea3949e1311469c3d6d8747fa799f1354a", "format": 1 }, { "name": "plugins/action/device_administration_network_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7be2ed7ba81700afed9ebd90249dec20fb76324623b6fa695a619e8c92283995", + "chksum_sha256": "74870b8df8fc343cdb26687e04d0947a1dafecefef185715a587119f2cebf513", "format": 1 }, { "name": "plugins/action/network_access_dictionary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "221b6b7ea9290a11dd2725fb9bb9812e83b676ded45fe30a7d02d084d108f0a2", + "chksum_sha256": "266672eebdb36359f80fa15229b428186947188814572996414b090dc601202f", "format": 1 }, { "name": "plugins/action/sponsored_guest_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6777bb2489b7264db145ebca7e71faea0bbb38c89fc8f7b932849a9923e2e1fb", + "chksum_sha256": "082b7102bfa4d0e0155f39bb04e5731947630cc76b6098bf09dacca392c2ee0b", "format": 1 }, { "name": "plugins/action/node_group_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1ba71e78e750e8d7a418da1d02aa6ebab1db9b8e59d4b7eba3e8c4c96ad6ea98", + "chksum_sha256": "7151f2931deb33b8d6853969402c7c8a7ebf6dd4091d83593d02f9a4bd918b62", "format": 1 }, { "name": "plugins/action/sg_mapping_group_deploy_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "540642fb0b7ba1f346b6fad72b7b59560d74bb6eb30a277956937539544f19c5", + "chksum_sha256": "846060e545a0ca748c0595471f6be952cba61fda60feec8f95c16ba587527ec2", "format": 1 }, { "name": "plugins/action/mnt_session_disconnect_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fc6285c85c08a28fe20a13e5dedb554f1348a4b7ab8ba757b69731b5e8e38c6c", + "chksum_sha256": "ea98b6dbf3f3062f067566d18532afb77a584551e8a10b857916f36cfb154a04", + "format": 1 + }, + { + "name": "plugins/action/px_grid_direct_test_connector.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fdef71a2b4f2dd3e2be341c047a0290781981e5d8968e6f9c81bec1cfd059314", "format": 1 }, { "name": "plugins/action/mnt_session_by_mac_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9aeb743e09eed3a6581247a9b833173d98496657ec4c94d940581b26ced16073", + "chksum_sha256": "7aee5b2a5f243d908fa461fcbb9af1779fd5e84b3dc309962b62bf64ffd2a1f3", "format": 1 }, { "name": "plugins/action/aci_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "86a3e778c6ec172ca6c168a8ed2ccf82b52e799d0f8f70362497e1ebb91a46d7", + "chksum_sha256": "be0f9765feb99857f77b3040ee4948c53244fcd34d8eac37995c6169af6323e0", "format": 1 }, { "name": "plugins/action/network_access_dictionary_attribute.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "27b81df2fae2aa6b55748d830277a32448407f876ae775bb5990a4024d00c0f2", + "chksum_sha256": "cfee13f4c9c74ad7d03735660b146957fbfa8bc7c1f834d8256653289c80166c", "format": 1 }, { "name": "plugins/action/node_sync.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cfc559303f3c3fb60705520b7addf8d7d3e071b495d0061bb363ec1b52cb499c", + "chksum_sha256": "ad9091f497a7025793779008c8fd5ad9d07349dfe7aa70f54b2bd242631bdb08", "format": 1 }, { "name": "plugins/action/endpoint_get_rejected_endpoints_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "256e6b53e158da430e1431d91d1246325841ee051f8031ab5400da13918d0895", + "chksum_sha256": "edf3988f5dbdd14c543534432161170a8d679686e0c147b3597741ec89e3d15e", "format": 1 }, { "name": "plugins/action/anc_endpoint_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "91e3840214cdf1060d68ff1b8d1fa7161ad9cf069fdb8e2db66a7c6ece0724d0", + "chksum_sha256": "f622fe386ac75330949a9b906d59a33900615385290e0634702242057ecee730", "format": 1 }, { "name": "plugins/action/licensing_feature_to_tier_mapping_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "572c20cf0d0344c229782242746ce74395c1a7da4605d64710a2e5a6b67f621f", + "chksum_sha256": "54b1d130d09dec22e36bbfdb16eab725c8a6cfd370ddf5045d715874974b5e00", "format": 1 }, { "name": "plugins/action/mnt_session_by_nas_ip_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "93c3de9ea05824196621a61171799460b5421c9665804b510ca57ca18a40848a", + "chksum_sha256": "889bef482098ac03c5862c560debd02df2b0f70e9dab2d55cace1d79cc68affb", "format": 1 }, { "name": "plugins/action/node_promotion.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c63bf3f57c7b454f0e5402b10242bf9d43c97bc3037acc17d453af951588399", + "chksum_sha256": "78eb8e20158d00a5943bbcab095270188e92692bfacb20f7ffe5502cc03208aa", "format": 1 }, { "name": "plugins/action/tacacs_command_sets.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "72af3001ae07c29fcd5047dacab10b951adec4671ed8f7c05a66a3bd2f5357fc", + "chksum_sha256": "f45ca03694a51b313cbf650815e93ecdf10eea0ac34974f531e4f6444b036838", "format": 1 }, { "name": "plugins/action/pxgrid_service_register.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4022f3eb7ba4072470203b32335368029258b9212232a7c1b6475a20162d6513", + "chksum_sha256": "e374edeeb197fe9cc271ef4b254adcd02eab120f27bcebe781cc9018b4157b28", "format": 1 }, { "name": "plugins/action/guest_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2923717e24bb2a7ce68f57b9ec4ca27fe7970828ebd1f574198ac360c5ac9a60", + "chksum_sha256": "be161be43110b9582f94d566c81b956057a98c61300328bed2778e694bd1c865", "format": 1 }, { "name": "plugins/action/network_device_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3e76bb2bdd57a5eecfe5e474893ed9779cc75701730ebc535c7a5dcefff64a7c", + "chksum_sha256": "4ab1234be64034288363f3c759c4477a16b64d45739f392b46934b583749036e", "format": 1 }, { "name": "plugins/action/tacacs_external_servers.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "29a052208e91750d6af08c02ec9e99adf443b67483594476ca8f6dfce7bed187", + "chksum_sha256": "5e489be45ed467ed3b154f147d7be91f6fcf52a4fd41ec54d7eb5a65a766dd83", "format": 1 }, { "name": "plugins/action/proxy_connection_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9f7cbf945362417e0c925734beee7fb9eac9b95dd769bb12b259542c9e45032a", + "chksum_sha256": "2413821585156bbed02be9d53ebca97d12341ab455712d9373264d49d885de20", "format": 1 }, { "name": "plugins/action/pan_ha.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f53de4b2401c1419684a71ac3260e3ee4c281a36440241b282dfb92c25db9d4e", + "chksum_sha256": "a9f8f280286ef85d7d12ca7fd61a9051ecaa9da11f4854b8fff0860b6177d699", "format": 1 }, { "name": "plugins/action/system_certificate_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8a38c7b7300b2d94976e6f08981a35a176ebd6d88720f50f68957f2d02b28470", + "chksum_sha256": "789eb23fcd2058b31bd565e0a5b8768c00f7ff7fcbf1034c4a0be4a67aa6e5dd", "format": 1 }, { "name": "plugins/action/telemetry_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a279a32f12c8c0b3cbd275117680db81d9a840da39d04ab4007c7392a27d2a45", + "chksum_sha256": "c2768a2651548fa283b2c69a6f4600eba030ab2c85f4b937775e1168cefeb441", + "format": 1 + }, + { + "name": "plugins/action/endpoints_device_type_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1911ba757a9a82f4c09239d50ea88ac29e8df970743541a10f501e2b4d2148da", "format": 1 }, { "name": "plugins/action/sg_mapping_deploy_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e2968da05a6c25bfd6412f3f8f68b8f60b41339c778d2442c07d79c302363d84", + "chksum_sha256": "3f53602bbe6f3642937824a7883f1a546f2c8cfbf26e5c0f3f688e18dac8c72a", "format": 1 }, { "name": "plugins/action/endpoint.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "671c3a0bc9391b9e07fa36e0246643c6274cac6c46ff5ffdc5947ffbcff717dd", + "chksum_sha256": "7efd23867a5ec8cf7a923c4c591f940e92460dd2d6a1ead06ce7afb4c95d18a9", "format": 1 }, { "name": "plugins/action/egress_matrix_cell_clear_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff35387092b1c28f8aabc8a7aad21fc03c17b1132675f52b440d35547bc22457", + "chksum_sha256": "550692b395681cab66c388ce1878439b022b80d12ade34027af767e52911face", "format": 1 }, { "name": "plugins/action/endpoint_deregister.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb168d3628a38dadd7c34752450a11343d1e2488c6a2fa4963a4fefd3d8ce770", + "chksum_sha256": "894f7d877ecbda2cf62aa444c94b86ec1317449e6c587749509d553dfa883fe2", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_bulk_create.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "964b4fca7e52904a55f72a3ac0b9fc22814a202a1518e83dce36c81157289530", "format": 1 }, { "name": "plugins/action/node_group_node_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "32bdea5ee6789f79786936dd973f6bceca43122272e6ba246d46b8b8ec96125e", + "chksum_sha256": "c73a6b5ef975c5bfcd9393577d8b2add6f35d6d90d8ee56f344125cae1073388", "format": 1 }, { "name": "plugins/action/system_config_version_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "751f59d10e5184e464e07f5482133544d0494e43f1dc37b3f2ab5586d11826f3", + "chksum_sha256": "709dc39b62342d8155e54dc44638fa7e48e6fec53abed656d8d7bfdb03438bec", "format": 1 }, { "name": "plugins/action/downloadable_acl.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21e9ee7a41080aba2a719ee7df891e3bdecdbf1e9cf0b96466d8084fd3e4e2a7", + "chksum_sha256": "4f2a68d7c0045088838b04a870c3d2736e24f0776563c4f323cbbafea32b66a8", + "format": 1 + }, + { + "name": "plugins/action/ipsec_certificates_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b4d525786a9343640ed0dfbadbe8e4613d0a3c156fe1af1e62b4edfaef060b08", "format": 1 }, { "name": "plugins/action/csr_generate_intermediate_ca.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d2834b5da282b6c627a5b0a5e5569bb5902f087009ebe36d19326ca3e29105e3", + "chksum_sha256": "ce41c338f8df2978fb147f1ccb272ecdde30a4b01ec5ca54d348c6801add21c5", "format": 1 }, { "name": "plugins/action/guest_ssid_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d02b89280bbe686a2d1995edc826e76816c9b676e94ec089d19d45964ef03cef", + "chksum_sha256": "430a8adb9ae77525f652c8b7a5aeb4a7767b9b4398afd504ff82cb7ebe010195", "format": 1 }, { "name": "plugins/action/anc_endpoint_clear.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21e22bdc140a04d5b6b3b56a424cf1f78dadebf29ecb02a1d3d01f967d97492e", + "chksum_sha256": "d653c2067ef9c629d072f61f3975ee297085129aa3757372cb56356f68fac537", "format": 1 }, { "name": "plugins/action/sxp_connections_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "50af0f8cc0f2f368de1a8f9fa6ef95c28a8b442ca469407e3945ecea41350dd6", + "chksum_sha256": "8d89546d1230b19b5f365bc0eb6f1a66949c78c90302efc777625c9f7e1a8e2e", "format": 1 }, { "name": "plugins/action/filter_policy_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "054512d1e2c3116378ec6d55ceaa16ad3d8305cb73e3e98c799892fd2f16efae", + "chksum_sha256": "1e5e48119c665d1a1879d01d224ef99d0337c38dffc4495b427159b6c2eb57af", "format": 1 }, { "name": "plugins/action/px_grid_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "527031a4bb8825baafb40a2316c6f5667e2938d46c98fcda310666822b8b59f5", + "chksum_sha256": "7caa0ca7d19c6f6afdbd71b271b9c0a03b3fd963df482e6b8b90fc421cd40c45", + "format": 1 + }, + { + "name": "plugins/action/endpoints_task.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e4661a2121077cf3631520a1d4ca44a9b3ebb60e4b95c52acbed9dc897994edc", + "format": 1 + }, + { + "name": "plugins/action/ipsec_delete_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1163b19b6a1d420764586e5e99295210cb396b1b1ab578b5b84f6e8856453d77", "format": 1 }, { "name": "plugins/action/internal_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3c181385b8c11a611dce9e0cd1f3cb26fa6955bc74da4ee2f2fb902367cc24be", + "chksum_sha256": "602efb33dba4f1c2596c3b132dd2c6bc375a03632a608ea4b18e6cd31030416d", "format": 1 }, { "name": "plugins/action/licensing_tier_state_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9759fcd1edcc8f97d7e6987243849d95242925574316649c8551437420946298", + "chksum_sha256": "c7b9c080ca42840e4daac6e218b45a6c0adaf5368ba7e6d06fa0d80a5bd94714", "format": 1 }, { "name": "plugins/action/anc_policy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff8a7ad7ac28d1fb1aead5e2d2334a621b24ed1183443c6030acd49f815a564c", + "chksum_sha256": "c94e7b4441b4efb10c0b78f1af87a4ed41ce0c37be08b72e5bea2883fb5690d2", "format": 1 }, { "name": "plugins/action/device_administration_global_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e6654d9a39f8295e29229129b85ba927cbf0bd1331f3f6b027579526bab6e110", + "chksum_sha256": "806ff118c4b21e0009ed7c10dc686ade2b47e7963dad25b95828d1b6c344bd58", "format": 1 }, { "name": "plugins/action/sgt_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d84f6adb500c00b89adbd2801048de7e584bb5cc5ad03d551940a5982d0e79b4", + "chksum_sha256": "bea452d87bc9955d77db8a477ef9d49ef8dff048c9547f5883a6e49a3388255e", "format": 1 }, { "name": "plugins/action/certificate_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "821c9bd702a2972a8e5f6f232a86042488a7d94a8ea51d2425bec20ee4dbd2f4", + "chksum_sha256": "07eface0af9e271e3398fe3b4e03e9e631dc5b3a2ed02805d43946610bad8297", "format": 1 }, { "name": "plugins/action/sg_acl_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5b87b20c459bc5ea2fa0e632b451b46381fe9e82a4156d15a699c3a28023b2c9", + "chksum_sha256": "50ddc0816d674f4b599a0106a11bfb53bd2b4e3b7fdca2f885e3573a2febb78b", "format": 1 }, { "name": "plugins/action/patch_rollback.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ae64d351be77d3212111a4f3f602f9b24b347a92ce1409b4e38ed828abd44f4e", + "chksum_sha256": "aeb3bf41778083e58ac00ef86acc222ae4e0d76bffcdc878224ea74eb1f5a89b", "format": 1 }, { "name": "plugins/action/anc_policy_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "21aaf26f23973dfd268ab68189ce989b777310190a2ff92f1d1fadcd24270a21", + "chksum_sha256": "76daeaeb31e04df63e02160143877b2d1922a3cb1827df7fbb75ecd7c640463e", "format": 1 }, { "name": "plugins/action/dataconnect_settings_password_expiry.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1a322b5dda55d9f723529862f74efc35aa7a949f84a301827f3e6da8ffe6c441", + "chksum_sha256": "278ea5e39acd56d384d4f57c540150cdd937280267cbcdd0414722010b5aedf7", "format": 1 }, { "name": "plugins/action/pxgrid_node_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4691ab3f8b78cc6f03511232876dabce7890a98b144dbee8c405b6081cc76785", + "chksum_sha256": "43fabd816b62ef1cc8861ab0c6f2833ac8b9c14592378311f754706633192a67", "format": 1 }, { "name": "plugins/action/network_access_dictionary_attributes_authorization_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2dd190928a558250c182e570a30b0d9e5f30d966e1737be5a79c04862a4b91f8", - "format": 1 - }, - { - "name": "plugins/action/connector_config_info.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "a890d6dd2cebcc4802fa8043011b320f5fb58f79116f8899e53377455ae3f6dd", + "chksum_sha256": "a50a61d57521c3253ccd8895e436c2aaae536e44ca2bd3f043b8682cf82fb99e", "format": 1 }, { "name": "plugins/action/guest_user_reset_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2d104e9e6d6f48bba5ccfd5b4172736ceda636eda41a28c52412236614fbf274", + "chksum_sha256": "537ad74274de6009b67a12290c45bec4aa9920ca5b1a44deeb74f52a627b774f", "format": 1 }, { "name": "plugins/action/network_access_authorization_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b753a48d43e272266d432df6dbb4135b319511983af7feecde4d26ad4fd6abd1", + "chksum_sha256": "51e764939b39b932312960bd486bdc1fe3ea7cb9fd12b46f497b55950c636202", "format": 1 }, { "name": "plugins/action/mnt_session_active_count_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05e60cf3485bf22b50bf7ff003b58ed1d5029e103287a9498265df643c298b40", + "chksum_sha256": "06a963894b3c51880561f5c61a6bd18c0a12a59991983b48480a07e6bd14c67c", "format": 1 }, { "name": "plugins/action/sxp_vpns_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7c0267c3dba096b081506b16b6169fac96bae866cfde6dfa8cd2f8d775c53d9f", + "chksum_sha256": "34d2ac51e134c1e562105d4fc4f06bf40a682a92ae851a070049cbcea0e389a4", "format": 1 }, { "name": "plugins/action/portal_global_setting.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f7bee1b19fb5fe94b699bdd6fe951e9fb66bbf2a9e3ecf8c467f0740d9e4730b", + "chksum_sha256": "9825c7059170cfb427744853f67a893423ff6f6db3e5aa3135968de97fd093a3", "format": 1 }, { "name": "plugins/action/device_administration_conditions_for_authorization_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b22f410bb20522ea16f730c28c481fe1bf218535c50655fb380c0656e124825", + "chksum_sha256": "42ede25941eb7a1c9a6ddf1a267819aac9c454df7641bdd72012ee96e00301eb", "format": 1 }, { "name": "plugins/action/portal_theme.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d68476c4ba5d63a95d6472fc54548c9d3326c09468ffcbcfc163220b173ccca1", + "chksum_sha256": "bc80c46bbd75258fec812c640d022cdcb46a815646f23a379e3b8604535ed601", + "format": 1 + }, + { + "name": "plugins/action/px_grid_direct.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "98b60e62976a9a7154b515755d7c3b9fbb0127ab82beefb3e6537f5cad83c463", + "format": 1 + }, + { + "name": "plugins/action/user_equipment_imei_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2777ca990b9b46da909804886f437ea5e9963d9569b574589aa3c7bac65c6244", "format": 1 }, { "name": "plugins/action/portal_global_setting_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1bfd37b6bb21d5d1c7c45609ca20e4380f60f4de3985451eedd7538d23cd5f6", + "chksum_sha256": "d1bf3c23a275872f4e8a21eb0c0db09a10828d475627efd5cb7cd0c250cd8af0", + "format": 1 + }, + { + "name": "plugins/action/active_directories_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "514e4a086a24ce494ff0d6291d2b0d93a7707f9cfc207c870afd1237b9861635", "format": 1 }, { "name": "plugins/action/sg_mapping_group_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e559f9c3337c3845905d165090036017232f1aab0ca73cbf9eedf318da510398", + "chksum_sha256": "80f4a3fe81cfad2309e77a8434720d484fcf73632126f51a37cc1ca16e61948e", + "format": 1 + }, + { + "name": "plugins/action/reservation_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b0d317aa8aa137b99610bc2a78824279a2fd1a481e074c8629593c74a48f118f", "format": 1 }, { "name": "plugins/action/backup_restore.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a39ae2b623ee17e9336371e6f4d1dbe7eaf7fd8730cf3b61ac6d83d0e3f9b6be", + "chksum_sha256": "ba15db99b560845e4a5b0dcb2e91883122c557c7f0d868efbab0c0448ca1bdf8", "format": 1 }, { "name": "plugins/action/node_group_node_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f30f0abdd62daecd6b86f8d292791a0c8edb8ec427fff4755c59d0707e080ad0", + "chksum_sha256": "39027d526dbd6b7c3e23569a85a99bc25fbeb4af089841f0090d8801b829421d", + "format": 1 + }, + { + "name": "plugins/action/ipsec_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6d63f53115df4056e1eeaa62d643059251f5c7274487a9db18bc048c2431e0c7", "format": 1 }, { "name": "plugins/action/sg_mapping_group_deploy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "546b230ceb411bb41d6119ae5bf51d58afa6106b811e83da5eab4f902597aa71", + "chksum_sha256": "9d499dde89f727e9f1f58f154b0130049c7216d25f8c7ea534509dbf9b319537", "format": 1 }, { "name": "plugins/action/allowed_protocols.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a7a9158fe7c3b7a5b5c1028027fa4c26882b70f30ffd725d1b4672d36a771fdf", + "chksum_sha256": "1f7c9a0f92c0872f45a2c9d62337c9123a3179d6b5dc85c6e9b6616e8870e703", + "format": 1 + }, + { + "name": "plugins/action/user_equipment_bulk.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a222897ce4480ea1524352b051ce880437aced4c2ef2e68f82d0074f24f85806", "format": 1 }, { "name": "plugins/action/active_directory_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f61a27ba961612508ebcca8b2a99927add160bbe4386cdbc12e0e608fab931a3", + "chksum_sha256": "5db35926afd823b74b7a6784b2e122af9b375cd5986d146312d594d180bdb139", "format": 1 }, { "name": "plugins/action/sg_mapping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "87cbd2f9b280e45aaddf60f3ef3c17b60bf798e1b38ea41a994b47f64eab6641", + "chksum_sha256": "a653c64b91b6605e780c7cd90265436a2e1de98e07d6d27f173b594417941c4e", "format": 1 }, { "name": "plugins/action/sxp_local_bindings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "072eb2459d3b13d639932c14e8b4c3e76c5d7afd0c14234e49835e20b6d74b16", + "chksum_sha256": "5de1697093ef70b92ebe4345082daf4cce9e729b7c863376dfa8bf8f2a88284a", "format": 1 }, { "name": "plugins/action/support_bundle_download.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b8113418b64673e1b41e6fa422b52519f1f4a9bdfad2e69ce8a4ff8ccb1ddbe7", + "chksum_sha256": "5503a8464d7e0c2b5189c4f9999dfcb2c516507f1fba7b08de43f739db398740", "format": 1 }, { "name": "plugins/action/self_registered_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "633a835de729b9549beba77626cba2626e282b03a32fe5c9bc489beaa1238ea3", + "chksum_sha256": "577549b576b5ee1b29d917da1afd3071deb3f8d1dc050b428f1c50d4f6d06511", "format": 1 }, { "name": "plugins/action/node_secondary_to_primary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7e68dae78a3ed0b0729f98ba9ac28d25facdd22189962304638a31e954f89bfc", + "chksum_sha256": "6e1d3771686fa6c6d16825c1a5773967a0b4d28ea31afb53965d927ed1cafd77", "format": 1 }, { "name": "plugins/action/guest_type_sms.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "78684d500e2e7dbdb5a847e548440fe4707d08b0a7ad5eab405fc256446e6e6c", + "chksum_sha256": "2a6de376f160d4b7884f81420c29e566205781bd4175650a7f6a761c72301585", + "format": 1 + }, + { + "name": "plugins/action/trustsec_nbar_app.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "269133229dd7d8eb014cc1daa6049a2dc694fb22d1833668ea8a93b457e39eca", "format": 1 }, { "name": "plugins/action/sgt_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ff4e929ee3823a8656d26da72aeb39ad3eb5e3da4b9711121f3fb424fcfccd71", + "chksum_sha256": "0121137909e2ecb29d997bd8489e62444945804fe1f600c6f79e781a9bfb78ee", "format": 1 }, { "name": "plugins/action/mnt_session_by_ip_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "58835ca34c38a99ebe71f3b7351943e3ddff1e7e9974eb106212313da53b924e", + "chksum_sha256": "fb6a0516a4e111e28e476cbbbd6ad38b78ac399d4a9ef946f0a7f868b4cd4f30", "format": 1 }, { "name": "plugins/action/sg_mapping_deploy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a7849a5738f1ac2d8117ef6c310effe5f586ab4f9324683dc822de68f41cecd4", + "chksum_sha256": "d26a60f8dbd28b01dbac12fc94ec750d9525fd1b41516866c487f1c4a405011b", "format": 1 }, { "name": "plugins/action/csr_export_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ec37edd025598d026c5cd3d2e2338ec9efe1841b785ffa6484e46a4bfcc5ff5", + "chksum_sha256": "7ccea174b779a921268440c18a9453bb87812229322898c28289c9046383221c", "format": 1 }, { "name": "plugins/action/trusted_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ad48fb7af2367a6ed35be4068bc4745ca44f4457e071a58db3637a433e3aa5bd", + "chksum_sha256": "ee268b82d3b351743e87efb1ac8885b986d6a0bec8d6eabcab93752012580ad9", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "469bee3d839ab0e408a012013f61474e6e8305ce0686ab2c044456196f926677", "format": 1 }, { "name": "plugins/action/filter_policy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c47d833c364e1f85e82f6cbdd1eb224350ddd17aca726d1e74e3a0dc28c6472", + "chksum_sha256": "050fa28012b596bc080c03e074bc5264702dfec5df2c16697ffca5a749d8a1d3", "format": 1 }, { "name": "plugins/action/network_access_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "64c7ba1b6c46e8478c28177acc74b8a15119b7aafedf1469786da4dfb0a232ee", + "chksum_sha256": "2cf115e6a03d463fd2067415cd16f359496ca08ee803aa341ed9815cfc0def1b", "format": 1 }, { "name": "plugins/action/pxgrid_endpoint_by_mac_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1b40455d74c7fdcd0bc0c86a267492dcfb17c2b12df56ed244f920168f8ca76a", + "chksum_sha256": "69015ec2d680654a60b0d96b00a9a4277ac6c6cc8f121f7a7b0d630fffbb67df", "format": 1 }, { "name": "plugins/action/radius_server_sequence.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f1ea00865e326337aa3dcfd92128faac6beeea8f6dc3d67b207e7309004766e0", + "chksum_sha256": "f8931a770a595431ebdf87e0a29eedf2b25f973d1381ea311c98131a65c06029", "format": 1 }, { "name": "plugins/action/device_administration_time_date_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c24bab194baaaba0d3e8bfc418a422475a4628589ecb23657639c8d2884cc13a", + "chksum_sha256": "c1faabfb1b984df09c3feeb6f5de7170fe074dcd351dd317f3376c5c8639bd5d", "format": 1 }, { "name": "plugins/action/node_services_profiler_probe_config_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "887d5d13c67c46f7d0593b30b66aa063eacd00b0aa6899f1256fd99f458db042", + "chksum_sha256": "49da73184864587f945544681053eae5e37ab3aac5abd0fdc52e0af1e4c1b7c2", "format": 1 }, { "name": "plugins/action/pxgrid_sessions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "98acf5afc3de26c005d72cfa34f099499d1142b51b19aff35cef4bc9f14985d3", + "chksum_sha256": "0b593b397ce3fbe8c478e95b87c0016c9d50637de65fb8ab3a8e27d5cab3cc01", "format": 1 }, { "name": "plugins/action/allowed_protocols_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b11ff534bc6fe1b7d05cfc5f258885bb858dd05e76abc74e7b6070f96b7808b", + "chksum_sha256": "1f2a7d266d1bdc039cd2a02fcdf7c9441bb0b71f597aa4012af91527250b9ea1", "format": 1 }, { "name": "plugins/action/sg_acl.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4928fdbcd889d86bc06c8c88f8b157dfe8038ad1044039c2bc081e85a45135ab", + "chksum_sha256": "45c457905cae8fcb2aef85b1435795cdd319ab1a0f15b4710c9378951e309bfb", "format": 1 }, { "name": "plugins/action/network_access_time_date_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c3027998e448a69499ded02fec99e06035c3f91aab8ac975d8327b193d88955c", + "chksum_sha256": "964e2b059bb92997f60087715448e895f56f864a6a38857ddd87fe0a6afb55f1", + "format": 1 + }, + { + "name": "plugins/action/upgrade_stage_cancel.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1f5dde4c4308bee81bf7f29231852f9ed0f142c5d1822c637e7551bbf0c8415", "format": 1 }, { "name": "plugins/action/mnt_session_posture_count_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "34dfef43f5642efb4307817510545348784c3dbd9cb550223fdfec47d64124b8", + "chksum_sha256": "7f394165e72575dffa834bcf41ff1e829a97c6bca3c99720a8dd516597267d93", "format": 1 }, { "name": "plugins/action/sg_to_vn_to_vlan_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "38f2bb2a355983e02fba174f8340cfa517a9a192e21fc24b5e75fba0cabdda85", + "chksum_sha256": "1d84060842c3ed88aaffff315e1f582c889a3623bcff14edd0cf3cfeffffcc5a", "format": 1 }, { "name": "plugins/action/profiler_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "062dbe83e1a0abab15e08257b2affb95f951a6891f7abfeec671cbf8f9094728", + "chksum_sha256": "8f6ea7667ed4cf8a9498171e8c833c92092017da692c89fc6c020f13defdba5d", "format": 1 }, { "name": "plugins/action/node_services_sxp_interfaces_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54a6238ab84a19570645c636b12f43b2a5c52c9e89ff1517c943bfb7bd778b5d", + "chksum_sha256": "bf12eb0f200807860b85d6267a3a841a59b118fcba0379ff463654b09737d565", + "format": 1 + }, + { + "name": "plugins/action/duo_mfa.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9751d23bef64384a5ffef49ebbcc8f59735752e5b86c1c3ea6a9a195fb70c8b6", "format": 1 }, { "name": "plugins/action/active_directory.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fb557aeb8c753d18ea93b8dd7cc8b365ca48552268071ab72e5e981ca4aacd0e", + "chksum_sha256": "984aca4b5024caca0947045b33764d54cd713d4cf50c76feb08d9072e1816e3c", "format": 1 }, { "name": "plugins/action/identity_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "12011106fa6d5a23c88c21261ce6d8efbef82ef7c15cd229324ab46e41a35e32", + "chksum_sha256": "c45ed6168e2f08c8391224960fe029c5bfc7c5bc6b3e425fc4694da658565135", "format": 1 }, { "name": "plugins/action/mnt_session_auth_list_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c19fd4eac090031ece6b443641a43a2b26f99ba93e59ba8edb1017813ffe7c14", + "chksum_sha256": "d1477d2b361bccbd81fd40381f74d12a0b04fe11fea29f09ef28d96260c6ce91", "format": 1 }, { "name": "plugins/action/subscriber_bulk.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "16fdf4fcf23dca3250a9b0a973f321fe69e632771f090d7cae9712c681a93160", + "chksum_sha256": "885010d17ff94ea79069a691613b2cced9d88f10cb0199ae72891170831306c7", "format": 1 }, { "name": "plugins/action/patch_install.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "91b63e82314d36684ebeaecc578dd96600c5fe4d9001f5eeb3223adee009bac3", + "chksum_sha256": "37c708e779f9aa82319b2d08e33b359e879569ded30683889ea8bda160953833", "format": 1 }, { "name": "plugins/action/network_device_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e63101cc9853cd30514eb6f877f4fe736c6a6a926d644094dcedb8c420a5dc39", + "chksum_sha256": "a3bd695dabd12a4e214093f2c617d3f302a321bfda228eb3956386fae7f960df", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_bulk_delete.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "20b1b179eff8ff40da8d34b8c24809a8897b76c216dc84c25bf5d9857613cf79", "format": 1 }, { "name": "plugins/action/network_access_authentication_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6b2fde7af450d3f009b508f441d0e357c76d24ead12a31773121e41ca7368eb1", + "chksum_sha256": "b39e85d3dcbb34835eb2b2eef82acaa05db49148a66cc1d2085a251e3c2d5c45", "format": 1 }, { "name": "plugins/action/device_administration_authorization_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a156be3fde0a268aec6f60763232bb8ac816c4712584ab8619912f6da4c00d73", + "chksum_sha256": "e5fba8b1250307f6114feee6aa0be9b881cd2dff0b51275f46533068abb16e8e", + "format": 1 + }, + { + "name": "plugins/action/ad_groups_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fbb618d71e7c59e00f8acdaac175e946efd1e1b0e394eb84110bc983fbc775f4", "format": 1 }, { "name": "plugins/action/tacacs_command_sets_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c85e27ee547b3a92b0450301003d41b2b59ed940fafadaae1a9456f5559a6923", + "chksum_sha256": "b4b42aefc616c9678421fc46f947b22890ad6c3de0ff6b613ad36e7a2112de02", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_bulk_update.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "576e54a6bb6e226f99ae16c65e36953666f665be5cc7f9825e0980b6f5eb319e", "format": 1 }, { "name": "plugins/action/support_bundle_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cfd3f314aacf21d4ef405c92a9773551c8a1c74b88adf46538fdf4f98e9511e0", + "chksum_sha256": "4e5034869a91a28c6bb5d282f870c36fd45fb7cc5501b7534d34fd7e81a10d49", "format": 1 }, { "name": "plugins/action/active_directory_leave_domain.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c7045820ae4f6a7985e8aa2ce1aee79374c6f7f36ed18bfc2f934df62322312", + "chksum_sha256": "960262f97cceefd1ce1030d40eef7850609dccfad8f3dfa694a77e2c419a59ab", "format": 1 }, { "name": "plugins/action/endpoint_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "febe819b4abd344db593fcf09f9c15a62c06420ef5d15664927503c33161b0e7", + "chksum_sha256": "52dc5ca6068a257c36e7893bb26648e26e9034e39bdb9962fe0fe7532c33c289", "format": 1 }, { "name": "plugins/action/guest_user_change_sponsor_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "757a527f8181bafdbd82c0da7c874b8d769e84a4541bb7010a38a342b2591695", + "chksum_sha256": "b51ba3e5d34a860234a5012683413fb2780e101380f95bbde1246ea054102603", "format": 1 }, { "name": "plugins/action/network_access_authentication_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "281a0c1c38210f1b4b71e44ff2235450e06163cd6cb655a5b079292900c8671a", + "chksum_sha256": "5c486e61d27a086dc2d9db0eb56a16e06099bf937d352b7657f5874dc2a4f530", "format": 1 }, { "name": "plugins/action/downloadable_acl_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1e291a2d67c7aa327951138eac047905ab6e5e07df653183c8052cd437fc3b9", + "chksum_sha256": "467223adfdbf05090f4ce025b904b49fd9e537274f1b9c555c4e38bc1adda7aa", "format": 1 }, { "name": "plugins/action/device_administration_conditions_for_authentication_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d9aa455d384060edaf2cbae03693b897e8ff97e4113be736d7f1808f159ad9ff", + "chksum_sha256": "27275587a58182d03fc310b75a4c01ec933a41efcde9fb484a786d91771ce1de", + "format": 1 + }, + { + "name": "plugins/action/endpoints_bulk.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e5d59bd4b0b368b8b8cb5bc0828592ad53d67054b7cf6c071d50158a5ba4cfc8", "format": 1 }, { "name": "plugins/action/pxgrid_account_activate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "65ae45eaa149c4946847a513c0b7f4f67d2a8a036322fdab3be9212b81e33ccf", + "chksum_sha256": "bf3991285f7f75f2f3cbd83b38bb37ecde65e854d6ce073ca425f4149cbd94b5", "format": 1 }, { "name": "plugins/action/sg_to_vn_to_vlan.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0cec12000173656b0201ed9d43935eb61c1017d9769fa3493dda7efbca50581c", + "chksum_sha256": "80dc896f40242b4c2c8cd66c190ca24bef7f5d93ee1c306581242aa139602752", "format": 1 }, { "name": "plugins/action/network_device_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8fd994e555b2a36c107507034698623bb97aa36fad12c645f816075f0bf796fd", + "chksum_sha256": "7f30655cd79dbce30475fa61dc5a88f1f83220e51bd2461ca26d712a0e5d4332", "format": 1 }, { "name": "plugins/action/device_administration_authentication_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cbd7f0075e61bd3f3a6307bc43e830817346ee27e117efe1c1324ef257f2fcfb", + "chksum_sha256": "b381c218a6d65ad66b7aec11ed9b6297349d894f7ef411a43fc79bada93e37b7", "format": 1 }, { "name": "plugins/action/csr_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14c4b1cbc840d29da160ffb039f4669945666a877c935c5eae5aeaa6ae5d2b34", + "chksum_sha256": "46b474f4ad82f649477b5b2df436f63c1d5d8d30d07a369a936344517255ec20", "format": 1 }, { "name": "plugins/action/authorization_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "964959f5b0c69feaa5c4858dd6db4f9b5af88486223cd900496d7edb9a950133", + "chksum_sha256": "c83c8522ab442cfc98dd6013f9ad597ce675ae787e822e39bdda6b8630890803", "format": 1 }, { "name": "plugins/action/sgt.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "33f77a80a42fb603193a221817e610094a0205e7ee195b206b18b690d802d5e4", + "chksum_sha256": "697e8601eaf7e347541e4f9d9aa6f732c19f9618913d3f6caac974cfd69f9f3e", "format": 1 }, { "name": "plugins/action/patch_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "96dfa7ffe58c42ab0a2b40a0c54e6e40f6b2cee9e805e105a2c4cb77a673df4b", + "chksum_sha256": "e9fb32aeb0262b364037d82ee8e7a5c1c996ed80ad8c1155cfde0853109e5822", "format": 1 }, { "name": "plugins/action/device_administration_service_names_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ce7358df18078fb78a72a53e4abaeed8e442f3b8b7dba1620a085a7ada3909de", + "chksum_sha256": "75a639cf6775404020f719087621208fb93eb1b384f47bb4ee75a924380f88b1", "format": 1 }, { "name": "plugins/action/mnt_session_delete_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "071493359cef91feed68fbc1825e1c2d6abdfd730974fd8826ddb39b77ecfe6b", + "chksum_sha256": "b658164f2011ff475268c50fee0f9149f63c1f140fafd4911f3df753d914b201", "format": 1 }, { "name": "plugins/action/px_grid_settings_auto_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c8809c6072c47aed001af0490373c4c1cb665959ce6e0196b0e9aaee6e53990", - "format": 1 - }, - { - "name": "plugins/action/connector_config.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "64b85d5d97fe9b46c1c0a76c0de783665ff809ca6f878daca6fcabe25cb60038", + "chksum_sha256": "5027e7c607587d0959f40e813505bed43c62690a0099de22ca4c150d4fcf9f31", "format": 1 }, { "name": "plugins/action/endpoint_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5526a8abbdb4d7580b7d5f945f127caf7734f6aa88118c06fa3727fd47320920", + "chksum_sha256": "cb0f5d2da744152eaf5fc963cd866328cd8f8779a599d11ee292edf1747695c4", "format": 1 }, { "name": "plugins/action/network_access_authorization_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb6f488bd1b5a36cdd2969afd03c99e9c75fe6b212609c4da88a028d3026001b", + "chksum_sha256": "bfcd93c493dc2256cf5f7ce1b780e7e1b2a14d005e2f6929d41f1945d6d727c9", "format": 1 }, { "name": "plugins/action/mnt_athentication_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ea8108a1d3011e45ad733579747c00162395de42f687cc880c97f66f08d643d8", + "chksum_sha256": "5770ca9a34b42b9003461a9ccc9d0317e086df19b141cc73c54e37ab926a6232", "format": 1 }, { "name": "plugins/action/dataconnect_settings_status.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "af13187b10320c878946b8b6d35dfa2e75d90a99b1c1bd3b58e711b13aa0e303", + "chksum_sha256": "1f53d7db17bd4b1df612cc3b906febd757b139558f1054fc03e4d4088656f7cb", "format": 1 }, { "name": "plugins/action/device_administration_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "63b7a36946e865ba2f780cd0b480f365ebf84f28b06aed8ac49e17023c2cccb1", + "chksum_sha256": "3de543a2f68d02ce08216e5fac0bf1a7d5ce352092cf9d1bfefae63ce73eef0d", "format": 1 }, { "name": "plugins/action/sxp_vpns.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6f1b2e35d7182d03a7a39eb1eab233034f44e713e0c7ffeb4ca5727aec1e063", + "chksum_sha256": "e0ae9103093448215f2675164cf494e39fb326e65dda587588772b53305826af", + "format": 1 + }, + { + "name": "plugins/action/endpoints_bulk_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1eb7a0b67a086b26de08a772cbaa8996a022bf26002c36868ce7170d97cf736", "format": 1 }, { "name": "plugins/action/device_administration_local_exception_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7fc076224b36225f5432b8ba9daf3ea294882d21be11caf4eb27867874f07e59", + "chksum_sha256": "03f3b65c465255a3ed7db3d97d14c7377d5c45388d670a0c3342d13556869ff9", "format": 1 }, { "name": "plugins/action/resource_version_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e218612c3319d2ffdb9d375c10226e52dc8664240b589561f44acce7df7608e7", + "chksum_sha256": "32b3c3591cd08fe47b3aa755f06f35e1400719183c7d66f5b22727913b63d333", "format": 1 }, { "name": "plugins/action/renew_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "935a15ac39e8bef1001f3186a8c9525ec4fe844d07c84f4ae7ed2971ad1ea63f", + "chksum_sha256": "4c1607c08c321859b9576f78627cf9d82c15ce45e1a90c4bf632aa5599cb5a8b", "format": 1 }, { "name": "plugins/action/endpoint_release_rejected_endpoint.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "04a91e46eda870ef2f313c504f4efd72da9157c62f72da31af7232a5068941a8", + "chksum_sha256": "f3bccffaf0dd45e779699bca987b7c7c64bfb4981cbd9807f8a83453f63bc907", "format": 1 }, { "name": "plugins/action/guest_user_reinstate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "27232d155fc2d7fb7b012a391247b814db3ffd9d2e04db83f97e5e553215e593", + "chksum_sha256": "a15d4e2473c71abfed35a2c0eb6acf16e170c2d30cd385405dbe398cbf13b7d9", "format": 1 }, { "name": "plugins/action/egress_matrix_cell_clone.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "591c90ba039f9490f037e0a865a7ae3651c2f41cc1b7fea238cc4714bbb0c924", + "chksum_sha256": "3f37c7a6309179124115ce90eaddea6a3e750718ccc9e4d7d734c70db06a136a", "format": 1 }, { "name": "plugins/action/my_device_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "25dec8b3b31d9718286d48f4f709be4f2288423e411a336f9b871bc892f3986c", + "chksum_sha256": "b4947129e764851ea0a50176918f3ec5cad6d94e7cbf6ef70686d921c9a34853", "format": 1 }, { "name": "plugins/action/network_access_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "af9c68f336218b8a82aab7d8928ea3f876243b91283dc813e7f3ba5860391ad7", + "chksum_sha256": "0910c62b5a7d7cbe11a2d72ddc21ff4543ae89c36c5709b2afb313ec7ea8b50c", "format": 1 }, { "name": "plugins/action/pan_ha_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9799c82a85dba29a2efbbe4e8b42a294836cd85d24d00ebd26b119844e8d6576", + "chksum_sha256": "5682196666d56d420bf8dbc09447669eb535adf638c2965992f716fefcc3f61d", "format": 1 }, { "name": "plugins/action/pxgrid_user_group_by_username_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e86b097e3d6b9074465081280d5d4e3a348d93ebbbc675f49a3012537c15d9df", + "chksum_sha256": "df51b205ef9eb18cb8726e0de327e28fbeb70bd6f485b5f1384e4c2b9b6ff51e", "format": 1 }, { "name": "plugins/action/node_deployment.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7f335ec09d999759a89965e9403b8173099c4b41f9e5741cd83c1d6a4f0b41cc", + "chksum_sha256": "09a6cb6d4f3663f5c0268a6623cfd76cb14e8fb7c59763a1292854fe26739b73", + "format": 1 + }, + { + "name": "plugins/action/custom_attributes_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1938cefcb1cc467e5ebe54a6cb6511c08ba9d276b65ecba4a7b505ead603c492", "format": 1 }, { "name": "plugins/action/certificate_template_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bca920eeac07e75945bd5c0bb75d5cb0d48f01d5cb761961f64ee6aa108cdac3", + "chksum_sha256": "ac27e544495dfea32112c4d34ad5cc1fcf09a15325208fe7bbb07cb742cc435c", "format": 1 }, { "name": "plugins/action/tacacs_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a679a8a87db2412e19dc4a87bef77fbc1c5023ad11ead30e690034d62d1b9a85", + "chksum_sha256": "b8351cca94d4346311f66b2e3890f21f819a5b41069fbfc806b74e248dfb8428", "format": 1 }, { "name": "plugins/action/sg_mapping_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "096375f223734bc6c09f72e40371fd7bf86936540173c480ffd41f535843748d", + "chksum_sha256": "c6a9604354792f9e633fd8f40857b35e6ace3a0202a14a118417154bb5035b5e", "format": 1 }, { "name": "plugins/action/sxp_connections_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "681cc9405ba4ac68a5ac88cbcc7c4bfc34b46c364a2ba63b098d1722e31e9aec", + "chksum_sha256": "8c84cc51ab547f90435c1a8de55e0db4a9a1c99ce9378171f13768ef973d6a6d", "format": 1 }, { "name": "plugins/action/pxgrid_service_unregister.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b182fe1338bc509579a5acb41cfc9fa58ee8e3744b3bebef9cb99471261d82da", + "chksum_sha256": "c32fb479542c7efef3c436f4716dfdc132184272e79feade3491205f031ae512", + "format": 1 + }, + { + "name": "plugins/action/ipsec_disable_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1163b19b6a1d420764586e5e99295210cb396b1b1ab578b5b84f6e8856453d77", "format": 1 }, { "name": "plugins/action/byod_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1a965cf326b2f5bc88375dd1f0c51de17ff2990fe6d2491ae64ce10a7a0a55f9", + "chksum_sha256": "8c4161d9a2005f340d55ad7959f2667c964aded4e4fd0440c8062dd7c04f8392", "format": 1 }, { "name": "plugins/action/sg_to_vn_to_vlan_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "01add89f1198e0a10abf0e3affcc7c7fb4a8968d4f786f805be1cec019a55dbf", + "chksum_sha256": "480a571e539da600b9fa63ce09832231b485332a640f51da13e692aeaf1f5c1a", "format": 1 }, { "name": "plugins/action/active_directory_trusted_domains_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "842161fd50e4cbfe563385fb5d42cad81db4bde0696657f9e4feae78de5f467b", + "chksum_sha256": "643b7432b6d7ff6f9c176a71ac6e52a7b7ebe1e9dd61fdadf14d9f40e78843d8", "format": 1 }, { "name": "plugins/action/pxgrid_authorization.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "164fe32558732672fc4b29499652a9eaf06dcf681995f77d13e0f225bc288476", + "chksum_sha256": "21eb0acbe96d3efa81151e713f863183a91f9799d81c918bec19fcec4ae789c6", + "format": 1 + }, + { + "name": "plugins/action/stop_replication.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fef607d68f1ff2a9579a914739ea105bec537b3e672fa748021f5e162adf2ea9", "format": 1 }, { "name": "plugins/action/licensing_smart_state_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3fa2031f029e2895fbffc37ac17c43e05fd4e68b4053ed5c90ffd96dd5ef046f", + "chksum_sha256": "a43bcc358a7c7af7d65520ad4c6747692bf822cbaa196fdb10b995565a4f3eac", "format": 1 }, { "name": "plugins/action/egress_matrix_cell_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "53e0a1f6deff33a9798ebdee10606a0af18b1248e7a77c5d2d4d87d87d56e73c", + "chksum_sha256": "913d3945fc635068c2c98164e01585fcf09f2df90dc560cb692b02fd71f8c2fe", "format": 1 }, { "name": "plugins/action/sg_mapping_deploy_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "95ef74136199dfb3a464acac96f73cf9e60ad41c486dc2ddee7592926bff3d09", + "chksum_sha256": "c088e8b848cf49c0b4d6b82ddf493a037941b3bf0e72400b08cd502079cf1085", "format": 1 }, { "name": "plugins/action/sxp_vpns_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f8504aeee386eb36e1a0520b7c658c1255ee7653be4f1a3d980290eafe209621", + "chksum_sha256": "87082944dee47654af1bfc248d0dcb3344e84b88a2f3d453c03639273a404974", "format": 1 }, { "name": "plugins/action/device_administration_command_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3ca0c98146a76537cefdefc8be407491c7b7f863dd4ed6d70b494c4373057290", + "chksum_sha256": "68043eb75d719d7eb4c4bb1cfa54d3bfc6b7e0c977f8ce0afcfc5ceece225211", "format": 1 }, { "name": "plugins/action/sg_mapping_group_deploy_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0976ef3e751d67107a530401cf032ceeda4d5263feab1b186c26669941f6ac37", + "chksum_sha256": "6b062a0c3a489d72505618e6f12f3261cf477069995a03e00198b842f6dc0257", "format": 1 }, { "name": "plugins/action/repository.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "39233c9082ba5e4d122df594ae33d2008f275a53179bb90eda917cc55e757115", + "chksum_sha256": "198c5f217d0ebd3b6aa7d33d90d79db44adcfcc4a318d411d7550e89da2278e9", "format": 1 }, { "name": "plugins/action/guest_user_suspend.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c8bf1355fb8fd14ba00151ebef7906383b05f63cdb3a92bd203827aea5a4e2b5", + "chksum_sha256": "a3b9fe817179609756bd7647ef2170884595ba66db1a74141b751e6e391ff965", "format": 1 }, { "name": "plugins/action/network_access_local_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cc23ad75fba43f06663a8774d4177ddb5d6ce5c0059a1d30c7f82e174b3c3dd0", + "chksum_sha256": "cac3089a7ef97fe9c6c81538642ebc8f6e76bb0910e2cac89b6597bcd9735593", "format": 1 }, { "name": "plugins/action/endpoint_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d55e8067da1064224f4cd6f5b819b9958afa4f76eb8abf3f54081ac39e8c651", + "chksum_sha256": "a4cda8a7904ac2d486d9789b1029e0232db8bd21466049f7759d029e2f5ddbd2", + "format": 1 + }, + { + "name": "plugins/action/endpoints.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e36b9386dff1c7e45c9ff666866f05fef684cb111cd1143a5ef8b0a6992a94db", "format": 1 }, { "name": "plugins/action/device_administration_dictionary_attributes_authorization_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43e4cceec5175a45136326ebbdb91ae4495bf8af04ac224ce36759c587ad4d9f", + "chksum_sha256": "4b315544e1cbfed18070ff8c1860251630fdb9afbc831f9ab90e282df5bacd43", "format": 1 }, { "name": "plugins/action/transport_gateway_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "01dd914695935470f9070df258a809740f4aeaec336f49866e712fe8fa4d133f", + "chksum_sha256": "aa41b05aa906cebc591dfa8f0a6053ae7a968efdd8aec6c3701733d4eb5f2bb3", + "format": 1 + }, + { + "name": "plugins/action/upgrade_stage_start.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "66e83705b9cd2fd158659afef54093417454224d1965723527be785413d5193f", + "format": 1 + }, + { + "name": "plugins/action/px_grid_direct_dictionary_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0f3647ab61c274168518d704a5ff543b3959447693de78ca5d4c9b97a39a3dcc", "format": 1 }, { "name": "plugins/action/backup_cancel.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c05cbdae22a61b8648e6aabff62cd06964d72c80589b03b6a60832c3968da768", + "chksum_sha256": "cf4bc728f2f26ef7045cc879a63750ec02ea01bbaa90a12cf0efbb4ec22b3c6c", "format": 1 }, { "name": "plugins/action/system_certificate_export_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2f13ad574e60af54f0d20a00e0f99ae0517f35d940207cd6d6d6839834a061c9", + "chksum_sha256": "80c9e402506bf395f667a5242d031f8b8e41d94273f9bc9262c751370a41244d", "format": 1 }, { "name": "plugins/action/guest_smtp_notification_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c4d2505abeb338fb5bc581536bfa65493d86895b29d37a533bc60a1808a11df8", + "chksum_sha256": "fc161d2bf2f041eadb928d93d8b9090896b7c82d1089ad759d78dfa389d95d21", "format": 1 }, { "name": "plugins/action/network_access_profiles_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "191f5ec8fa5073b6731b42f278491bd244441b20a13215de527ba0b805fd0720", + "chksum_sha256": "b54742170f7c820889f234cab1a0ef21d85416f7d84ceb8bc30cc7421f03b605", "format": 1 }, { "name": "plugins/action/active_directory_add_groups.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "97295c2b7e7bf154805438922b9d4c2b136c4e3563a6409da2c9d0a1fcf90647", + "chksum_sha256": "3ffc3b6f6ffdf0eaa359504af1a1f1fa852c3d063d8ba07a82e2819dcfe121e2", + "format": 1 + }, + { + "name": "plugins/action/ipsec_enable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c71e994752679a68feee521547409eba3b4b80914925d66eb212895e31f92fe8", "format": 1 }, { "name": "plugins/action/mnt_session_active_list_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bc366451453119a0093db804567e2fdcbbcbffd57be720f96aef6b4eacb12d6e", + "chksum_sha256": "dd2b36e3a9dce6538afafbf03ad8d35a50d7e5a3f4bef6da7cdcc1eb02b0ceba", + "format": 1 + }, + { + "name": "plugins/action/ipsec_disable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bdccbc4cb65890c0fe8fbbc92ef29095133d8ef5914ce634eef8793e753a3124", "format": 1 }, { "name": "plugins/action/anc_endpoint_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1b496268db3678eaccf1fd69fdb6281c891b0f628dbfd79a51afd218800010bd", + "chksum_sha256": "d77bcad2e0fa7a98cf598ab183d6df51e24f7e26fd5dac9fe8acc23b2e870e2e", "format": 1 }, { "name": "plugins/action/guest_type.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f3dcbed4e2aba5d68c5122fc9e026e395e0a15a36f42762d5e1bbb2a8e136b04", + "chksum_sha256": "176e9cd33c38774d7916d3b096bdd24a44a79e253ea16fbe6c8d2009aed20d43", "format": 1 }, { "name": "plugins/action/active_directory_groups_by_domain_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cab601e9a87b6be84a397f18c1f4b205bbbb42af2518551594f7f665dbae5025", + "chksum_sha256": "46496ca97c8901998753dbdbd02cb836ab6a6a9acf322f3d35c3cf3a7d7b6459", "format": 1 }, { "name": "plugins/action/network_device.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49b73ec27b42cad62bcd8376870735ae0f3e6a64e8563cee5a5689205e77413b", + "chksum_sha256": "ff7e6efc3f6cf472c73c49d45826f0a2c6245aabc491a0d3132009dbd851c9ab", "format": 1 }, { "name": "plugins/action/network_access_conditions_for_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f8d52f5390f848d613529595a6225c51ee0c717bef979de32fa4290ca7ff6932", + "chksum_sha256": "0459e70d289e3b4fe4cc6d979370f563f246e18d80bd41b2a54bcc08e59f278c", "format": 1 }, { "name": "plugins/action/tacacs_external_servers_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6fd21513e50284510c90bf2ad6fc29f2a5b019a26fb773af3adda980a90122e9", + "chksum_sha256": "588cb2521fd870b891db2fe2219d45b843ee6177c084d7af35d54e5eac5b33f2", "format": 1 }, { "name": "plugins/action/active_directory_join_domain_with_all_nodes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7562db5aa714230b24706439845cf0d6bc7dafe41297695412622ce7878c3327", + "chksum_sha256": "03fa4a2e352add7f7ca5c43d3c132b44f1b0bdf666152d77ca0f40c01623168d", "format": 1 }, { "name": "plugins/action/pxgrid_service_reregister.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1702869a6c2a59a0eb86ee64dd3d0e01a836be675647d511336689eb1a039e62", + "chksum_sha256": "cff4d03e86f0b42c5f06b073bddbd1d3c42311d189df2b67cd20fbc4a1fc6bc1", "format": 1 }, { "name": "plugins/action/device_administration_policy_set.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "59631633fa15933596394ac10eed5f93cb8fe6b1b410f032c7d411470395a323", + "chksum_sha256": "265ee9f0bfc8fbf4fdb75271d65eb4fd4ecef86673f43d6b7be4d1ca4873a079", "format": 1 }, { "name": "plugins/action/hotpatch_rollback.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6af236dfd2a1227f87bd4741c2d1922aea9baedb70956f42c36ed313896a6563", + "chksum_sha256": "741c32544d6fa04edee9f008b6af4a66c97817937011831f8460e10ff9997641", "format": 1 }, { "name": "plugins/action/pxgrid_service_lookup.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "02044ae53dc826fa07e493eadf232f29b0c1e7dd61e1167e563d6d52b8efffd7", + "chksum_sha256": "eb4479bc1993ecaa6c54171a7679f0446d0fdd5761342f62364608f8ef1e2686", + "format": 1 + }, + { + "name": "plugins/action/user_equipment_csv.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "62602cc3302bd7ac936e8bbe014faf0c1c7691add814aff16db8f037677e1780", "format": 1 }, { "name": "plugins/action/portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba4df7e93774c450a0373494036c2aafe249c496e4e9a8a0a7e050ee0bbfe83a", + "chksum_sha256": "8aecb82a92048eefda36084f3854e22c01e8a395cab1cc6ae6229a1ef92a144d", "format": 1 }, { "name": "plugins/action/anc_policy_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "64f677f0cf2dfba00fcafc68ee1cd5f37deb64ae728519daefec0a6acf8eebd7", + "chksum_sha256": "74bea84fc374cf7a035691efef0e12a1caf1c562813c734f87c33bb045a96a63", + "format": 1 + }, + { + "name": "plugins/action/upgrade_stage_cancel_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "62b0a8930f7335d69a2761021b31346b6d14f7d18d90fbb938ba21a806b2f1a4", "format": 1 }, { "name": "plugins/action/network_access_local_exception_rules_reset_hitcounts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1e77fe86a7570db61e2f3da404d138cd412e7c2215c2715e6c4bd5e907e47b9b", + "chksum_sha256": "e06d3cc6c25d7770167e70f06d354418a57f5754a6605aa96daaf23966403599", "format": 1 }, { "name": "plugins/action/device_administration_profiles_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0d63a3bc0c2c057a75f7c79f57bf4dd11ffc08bbcbe92dc3ae05a2287a03da46", + "chksum_sha256": "c0d0d5998f88e77d82ec0e8109c6e94ffe6b438e25513e5ac9ef9e95a52ce28d", "format": 1 }, { "name": "plugins/action/hotspot_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2eaa8e92f722ddb179f033a61ef74e70d56dd70b6be82fe1b55c8dce4ebd34ab", + "chksum_sha256": "2f2ece300fa70cd38f19efa66737152d7de2d4cd4b48e66792c0b279c1b3da06", "format": 1 }, { "name": "plugins/action/backup_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7560acc48a82b3040e02a4af91bab9c886c65576aaacb26d5c7ecf10a05c4ddf", + "chksum_sha256": "d9a77b83208b0b231a639a8b644e7ca260f4981b1f383b89e32ce2f78cd57a41", "format": 1 }, { "name": "plugins/action/sponsor_group_member_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a40e186fa8b8d29ab44c91ed33a5eb95f0b6adc2984de884a3c63410ce4a153b", + "chksum_sha256": "85faa24b9f66bde5014d344cda9729b7ded46dc5c8d906bd4bba7b5caf55e1e3", "format": 1 }, { "name": "plugins/action/native_supplicant_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "da5ba7417c132f2174f96743065ee6ff09b066fc310d394f12c05c945b433c33", + "chksum_sha256": "0ec266b729faaaa7e9bdea10cef86fa3abef3f4260948b6a137625ef89b31c8b", "format": 1 }, { "name": "plugins/action/network_device_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac43e02124c51a2065f8e5345970ebb87b47a71ad00c1f63aa9da3601746ae7c", + "chksum_sha256": "479c9608c3d980f47cee6ad04dd15ae333108a95461066bd8818965060756665", "format": 1 }, { "name": "plugins/action/egress_matrix_cell.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8a8d7450d118f78138af296625e70805ef58276a5d5c913556162799ab55393e", + "chksum_sha256": "3990d5fcf7b8eae63794189a601401087150d24604b43397e8b594809c76b9fd", "format": 1 }, { "name": "plugins/action/self_registered_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b44e8baadd0d37a2875b45952c31be9a35537366c233b5191f496e47df849f1", + "chksum_sha256": "891423f1dc81c17738113f5aa156255de7805362cac4b096d5aee46f5d37279d", "format": 1 }, { "name": "plugins/action/pxgrid_endpoints_by_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4a0124d6eea9e3fdfdbc59067fa8f524d6422a41e1393198cf57a24b377de93e", + "chksum_sha256": "43c72731605a085e4730c96c1694d6953c86f9929b32404a3cc5659d56d25e99", "format": 1 }, { "name": "plugins/action/selfsigned_certificate_generate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bd774f12f3935f21423517c7323514182cb08ad2b81e0ceee4dac2072111cf41", + "chksum_sha256": "8ba33175b27be1a3d166097a6da3e9d1dd42ea2df8421cd7c3767c73893383db", + "format": 1 + }, + { + "name": "plugins/action/trustsec_vn_vlan_mapping_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1483a76b949f36ba3e88a82d40e0d81acb1cb3697820293f1b126ce7388ba7e7", "format": 1 }, { "name": "plugins/action/external_radius_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4d6e3bb3023b33797f53367f96ebc7ae5c99659bc6d50546ee2a8714778cf951", + "chksum_sha256": "4419e579752a46efb1f35a14ab98a3fa7c6f72ab0af5ed6b66b758023e889907", "format": 1 }, { "name": "plugins/action/dataconnect_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13ed05d46bc6d8a554c4118e01188caac059f872da15d5661564847413402e76", + "chksum_sha256": "e0d8df1604e2d62e15bb7b3cda7109e73f169c3e0f182693c72a4038be0f9677", "format": 1 }, { "name": "plugins/action/pxgrid_security_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55670ec42f2fba6762834642bec08d971f37b83c23a7e407d7e12e5d97ac9716", + "chksum_sha256": "c0c93d148e911bad18aba2ba70d380cdc0ab512e03998e9cdfb4c730adf0ca9f", "format": 1 }, { "name": "plugins/action/internal_user_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "68a12a24b3875f37bbfca7a79080ef1290c1ad6386940f701df7c1d70fe84903", + "chksum_sha256": "dd8eb6e2c6ed94ea255943059b6f123dcfa95db6d55ec6184707b2b83f84d420", "format": 1 }, { "name": "plugins/action/sponsor_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "450565abd7b820154166dfe62c015958d3f1a02a803d4ed2f7f4bde3571e4306", + "chksum_sha256": "385a8805e70612040efcfb578709b8114bd4a9f8c25060c10f0d4961b57394c4", "format": 1 }, { "name": "plugins/action/radius_server_sequence_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5ddc23ab77b097ace4abef075ae05703bf547d04a61f897ec1bcb1a848f66d6a", + "chksum_sha256": "5d66c270c0285a4edd6e77f906c88b8f04c6d5ddf328bed64e72c274186cfd58", "format": 1 }, { "name": "plugins/action/node_deployment_sync.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "985024b588acff250440173d2218af1e50edb72fe5e7d407ab27b045e02d1fb7", + "chksum_sha256": "033fb4f1a538c77eea1990d66f64f2c721b38e1115b7999fca7fad391dc1a966", "format": 1 }, { "name": "plugins/action/sponsored_guest_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "43b206a8cd30f0095b70c803ef8589ac7731373a9e4f470f20ae1b98b6801c78", + "chksum_sha256": "1be0f64cc8002c545879b33c8f5726b973c15fe0e202df24e00fb01943e303ea", "format": 1 }, { "name": "plugins/action/guest_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "15d2c9edb6e7bd54ce8f0b0f2ff45af5d9b82a16cbdd4ebcde77b9c515e5ef96", + "chksum_sha256": "59fc66a019ec3cb7842e154a52bc64bcb58fb3c18825e40838bea49d99195aa5", "format": 1 }, { "name": "plugins/action/sgt_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c8aec7bbaf09fd5f06d53ac91930425cb94de43c3a2d2d31f2f448e8143f07b", + "chksum_sha256": "c1d0315bde58c60f0b7f686f0e6afd5584785ee640b8b968d56512187218984a", + "format": 1 + }, + { + "name": "plugins/action/px_grid_direct_sync.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "d2d0ae1f76a427b1e9a5b31b3acb0dc82501413f461d3004caf587bd090a124b", "format": 1 }, { "name": "plugins/action/sg_mapping_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6f6f7e2714b6194e25bfd1830308c0f3354849dcd8f3344ad25da21554584239", + "chksum_sha256": "8c0a2f73c173a3587787241081953c2aa694a100a787d92198fcc499c5695644", "format": 1 }, { @@ -2748,7 +3210,7 @@ "name": "plugins/plugin_utils/ise.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "75af06fa992137e1506d5daba3fe7da1eda9c590fb4190294af256782ee78a60", + "chksum_sha256": "58b9cba5e3fd3e37567e1a6673b76fdb295dc97014c946e1f2bec44cc9fa0bab", "format": 1 }, { @@ -2776,196 +3238,210 @@ "name": "plugins/modules/device_administration_local_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "09ae30cafdfdaedff939f4b2c930cb542fd43b4561624277d409aae46157f7a7", + "chksum_sha256": "ac47c5e0b08f771868c2c56bc988e13c5e9ce93793361b28bc7987e3e8d76ee7", "format": 1 }, { "name": "plugins/modules/device_administration_dictionary_attributes_authentication_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8476e48894a7656205fc78df7eac32ab88ea67689b3f93062dc5b23c018e0461", + "chksum_sha256": "ab243a37d3fd93977eb431aae03530a531248f4eaad3a684fb20018d37ed57b5", "format": 1 }, { "name": "plugins/modules/licensing_tier_state_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "63fb977d105ee74a82916f0ba2298cab112a91c126b43ec2f6eac8031c20bbd5", + "chksum_sha256": "b8d9ffa12dd9a7697382ed8da35dc1ca86954087323d98674592b7c285e99db1", "format": 1 }, { "name": "plugins/modules/trusted_certificate_export_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7005a773193d4c2af2306f641b10c106f205a563ef5903cce77353726b7bc080", + "chksum_sha256": "9ac672294aab0cc66f02e81e045c2096a06105dd17edae9ea6dcf9e312ff2a23", "format": 1 }, { - "name": "plugins/modules/test_connector.py", + "name": "plugins/modules/network_device_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f8765f75d2dc3d2e7b12bdbcca138d78e63c90b4d47ddcdd969eccbded3bb6b6", + "chksum_sha256": "a3bc6ac15cbff97155915dfb398f3c92fb16d2227a5e8ccf1752df17ead0cc16", "format": 1 }, { - "name": "plugins/modules/network_device_group_info.py", + "name": "plugins/modules/px_grid_direct_sync_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f2fe4359fc0c23d30519fb22b73700330ca25377e18153339c591d3cc17bca54", + "chksum_sha256": "ecd491e9e40037acd94ff089cc0b7b0d78e2d041d0de68125b6057c392ee459f", "format": 1 }, { "name": "plugins/modules/sxp_connections.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7a3c087ea9a964262bc9c18b16b592536c2ac56a76ce8c20b48a7157ef166cac", + "chksum_sha256": "559a7a759cdb1216046034c53dd9788c1f7a75635fa60e127c27209a3a03a8cb", "format": 1 }, { "name": "plugins/modules/guest_ssid.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dede565f2ffb62d09f9bfecc241cf110f74ea4cfb5d36fc89059dc9c9b66653a", + "chksum_sha256": "50c2509b6b9d62c250a9f1c4025152a66929e9cda43c1067c943cdcfa1fb5784", "format": 1 }, { "name": "plugins/modules/proxy_connection_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1cbb52e38a4f8e52c5fe3f7cd05370657404d99ee22c4f662fafaa68797251d5", + "chksum_sha256": "51419ce21abb9e2a0ab936fa30f9bea02930380af4222acf5f040a5c3a9cd3b9", "format": 1 }, { "name": "plugins/modules/node_services_profiler_probe_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d2f4e2aaef44e1310805589382a1ea7f3c6d93ee2c0b6ed322428fb520455257", + "chksum_sha256": "02ae3b8cb8601e5de52a98362e55dbd3cdc671a8a0353be056a4128f17057633", "format": 1 }, { "name": "plugins/modules/network_access_dictionary_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d69bb851277d9e75a8b93c8ce1dd8c578e6118526abe491a8c6f22c898a764c1", + "chksum_sha256": "3f806085b6c35ae4dc46f73fe03dd3ed3a3206a253882a55fc8b744f6357d058", "format": 1 }, { "name": "plugins/modules/network_access_policy_set.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5713ef3d393066e493d3c87cc9a719c7d16551a1b835b341ea811f977f7c1888", + "chksum_sha256": "feab28fe053e32c968713067f6919ca47daa8f820ab2f2cc7e6a10dfef826782", "format": 1 }, { "name": "plugins/modules/repository_files_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "081546c6c87db20ca51c38d82b012ba8b1bd5070cf652e0d69e9f5a2ab078a2a", + "chksum_sha256": "c076d9bfa537f7bfcf757d061310fbc91f407bd33ac9b521a138e791c29bd67d", "format": 1 }, { "name": "plugins/modules/repository_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1703f4d06378c7020d3f94421a47556b13dbd7cea9941f7f679b81c8d1e83fb9", + "chksum_sha256": "5b9b744e1267aa1a61c452fbfa8f0a25711e0f46a57d3c54c91b79d1f6b7e278", "format": 1 }, { "name": "plugins/modules/rest_id_store_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14b572f096432cf70b51d5baaf706e6d0ba28d86820ea8703dfe5132862561ea", + "chksum_sha256": "394d9ad2b997ab7bd55af93043acf3857db4206787c521e2d517a568e42e89d7", "format": 1 }, { - "name": "plugins/modules/dictionary_references_info.py", + "name": "plugins/modules/anc_policy_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be0b8b39394faa8fcec5576e32b80f640b9226d8f7e07a9c010edd60df55a206", + "chksum_sha256": "d726d9e5f0130e29bdcb4b83c6145691db91e6d20a7a68136baaa3b7196f03e6", "format": 1 }, { - "name": "plugins/modules/anc_policy_info.py", + "name": "plugins/modules/tasks_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "294257a71721b5d974d429af6b3ddff783885fcca6330621af88d5db6fb37d33", + "chksum_sha256": "3751d8e5654a2cf52a81c4086f59c0bbb73a3b09d16bfbe748c1344fde12a5f5", "format": 1 }, { - "name": "plugins/modules/tasks_info.py", + "name": "plugins/modules/configuration.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9867e0e226170cae411c75ec11449a512ec0bb13a344affdf4759217f3e2b1ed", + "chksum_sha256": "e4c6bfea279c8c48bd9f4d31840ec7a37a6e49e1d31be78e9e07796155620db5", "format": 1 }, { - "name": "plugins/modules/configuration.py", + "name": "plugins/modules/trustsec_sg_vn_mapping_bulk_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "716c2d97dfa29982d894ed7b6eed49df77788bf629c12ad17d54b4bd91d2dd9e", + "chksum_sha256": "9058695b4ee0e8a83cecab2f37783154e7c2d13eb78b49c765f4acb019b9fa92", "format": 1 }, { "name": "plugins/modules/device_administration_authorization_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "739ecce2426b8e3de909cfc839fd96205bee964536e62f493becded908ca8eb9", + "chksum_sha256": "f2b4525b7beebd058983763818deae4e016aa629b5948ccba2c79c7ea90d3333", "format": 1 }, { "name": "plugins/modules/guest_user_email.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d7d89a26275bc421969561f4dad11a78b569337f49dce8582fcc3eaf213dff98", + "chksum_sha256": "5d6ff83f2a049a4d01d4ccfcc5861569e855117297055b320221f2c0e83e6341", "format": 1 }, { "name": "plugins/modules/node_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6999a49500155c2bb7f46c35c615249636e24b590b584fe9a2a1e0eff1826d44", + "chksum_sha256": "877b3485538320139f6f45f8e1732df5fcf3536ff0d2919eda672a17b68468c1", "format": 1 }, { "name": "plugins/modules/mnt_authentication_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7f0681c527c0536669cdfe189906f1a0d50b956ed7d2c62d5ab09a5bd1d164eb", + "chksum_sha256": "3e8a05dca3960d8b236b4e6ab86a1937c74a819158721b469c2228f844ab6550", "format": 1 }, { "name": "plugins/modules/pxgrid_healths_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5ccba2e9d5158dfea68ed16f7a88d20ee607adb1230f571d405aef297ec72331", + "chksum_sha256": "b4524c8967bb9433dfa0830d81b34ea13cdb0bbbdf4cebd544047c1912c1501d", "format": 1 }, { "name": "plugins/modules/hotspot_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3faf22154e3697a6747b9a125c97715d01acc6ec9f68075b41dac7ac3e2f411e", + "chksum_sha256": "4fc83c7da5fbf2834960d484faf566e29b79b97289fe45b6dce0fef80cdf1061", "format": 1 }, { "name": "plugins/modules/authorization_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9313dad0b5059a1248e29e1f6e7c8e85c1295fc1b078a7770380c24fce5c7a88", + "chksum_sha256": "6adffa8ca5b3db5f5208645c31c89689c8f84a18f924f026f266216813960760", + "format": 1 + }, + { + "name": "plugins/modules/reservation.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5008fd7a7382a62dc1b1a2181f06aa3214c42df2469778487cfec1d35d6a543f", "format": 1 }, { "name": "plugins/modules/hotpatch_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0e2c05a9c3a3d0202f0cd9b6b5388815a7021c6caed8bf7237ef7569bd93b03d", + "chksum_sha256": "2e029116dd07b353e86b7e2934d962e28ed99893651c9a2059e977760f212f7f", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_sg_vn_mapping_bulk_update.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "917c137cdb7e435e769ef3ef303c29980a5ab74fd108e1edc1bb1fe5ffea85ab", "format": 1 }, { "name": "plugins/modules/node_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "882b934437c291fb9fad34742acf7dc90fc37d4b3eb026dfb42f30b1457acf50", + "chksum_sha256": "3fb8c32338f9f4018b1dd9b518c766f135e28e9d1739d9573662acf703d8a7d1", "format": 1 }, { @@ -2979,686 +3455,840 @@ "name": "plugins/modules/network_access_dictionary_attributes_authentication_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6c304ee66b0e51c1a3cb95d4a387df3347fc8d34c22b28a8d065a9d79db8674", + "chksum_sha256": "93e1675b10320c085a488b9fb9bdf5a35f0955c4430009f3ead5dcddbe63053d", "format": 1 }, { "name": "plugins/modules/aci_bindings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d00714589a5f15f66f45f8f448144376d3ee8b7fe585909ac7ab35c3ecf49f5d", + "chksum_sha256": "ebe6afd9e611d9545150ab18b9459e8a3d7d48313a968c4110de80a3572a6ffd", "format": 1 }, { "name": "plugins/modules/network_access_policy_set_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8bbef6ddcd1b4622b2a97d7c18e1b0b1f9f9a8e160fbb3a4c5dfde4688b6dfbe", + "chksum_sha256": "0fd31d304d73fd40b924764e2fdc8adb3352a42ab427aa348a2133d79c529358", "format": 1 }, { "name": "plugins/modules/subscriber_imsi_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b2ce392430ce97f2daa5d4246e2ea99d9f32b6eef1a962bb8a448f4cd021cc8d", + "chksum_sha256": "4a2cf4bbfec20a1722d5585fb2d326ab21ca859bbe3ce7c166f8e706782d2dfc", "format": 1 }, { "name": "plugins/modules/id_store_sequence_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f493269344feb6a4033def5c0e6d0c3c4d440463b9c19f8ae7a79fb8bcdd7cc9", + "chksum_sha256": "fc48b1ca5b046ded29ccc9129240d51aa1956679603e0f5719227a942d9be5ad", "format": 1 }, { "name": "plugins/modules/device_administration_policy_set_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b82251d9ce28fdee92a44b24606c72313b90ecd377fbb823d528d6fe3bea1a91", + "chksum_sha256": "a8d61f3e4adcf681f45cbc59cc91dbd895bdce6d0c43e631db61eb47938e0dc5", "format": 1 }, { "name": "plugins/modules/sxp_local_bindings_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "35d00be52dbc47268c254ab700bf84d859dc92df667f1b07c62ef68fbb6d4c98", + "chksum_sha256": "a5a1db630c06d02e485769b74193478a058f9219d01c408cc90be2c8a4b689f7", "format": 1 }, { "name": "plugins/modules/ise_root_ca_regenerate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "29bd7c7145a9160a485b567a58e97d06b0522f5f610c1efe2cfa9c4243b7bd69", + "chksum_sha256": "e0dd09a066e736a3f37b9a6bcd0f085c968f0efce736af75245fccf011db7b7f", "format": 1 }, { "name": "plugins/modules/mnt_sessions_by_session_id_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2babc37c2aecaca3cea9206bd2f41f0495b3909a4e0a4ab631abd16766499212", + "chksum_sha256": "46f2647089ac4047c8679c2f84a002abc69e56db79d0be02496327fdea7e4eb4", "format": 1 }, { "name": "plugins/modules/network_access_service_name_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1b03b476ef2df82c065af8343f272c6b7d88d6853686afea82102e701f707a28", + "chksum_sha256": "39ac2337f4065700e41ca7433d4fe97340c24c6f1f37bd845999a3edc07d2f6c", "format": 1 }, { "name": "plugins/modules/configuration_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e29f02240b3d31ed366388e4cc75fc8da676e639a5cc925c342099a4b785a91e", + "chksum_sha256": "1c2050849d0a945e48d0fe23982953b2584af6c148e4520dbe51e910a9003f11", + "format": 1 + }, + { + "name": "plugins/modules/custom_attributes.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b2d5955ab5976fdf109a7c9dda9ca996c4943908861752defc76f6fa80087e5d", "format": 1 }, { "name": "plugins/modules/guest_user_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "69c182eddf6fa234727d6ed1e37ce07746e7fae7c88c4a29c4f39895ca39ad2e", + "chksum_sha256": "dd77272ba72cbdd1355cfbbad74794c0d2e8bf946b12fc37830ab2b148eb4626", "format": 1 }, { "name": "plugins/modules/aci_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2586669093619adb07848595b89811aa8954a4cb8c052cde2a31e2c840b9dad3", + "chksum_sha256": "7b5dec294797f6cdd34f411cfeb36c5ec722f924ebf220cfaed392fe83ebddca", "format": 1 }, { "name": "plugins/modules/bind_signed_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2e29bbdf7db56a3801a7bc49509dd30c59a99d31d19c3ed34868258d29f63ecf", + "chksum_sha256": "4ac0aa93e4c0041f10f68fe4068d81913244c1f1a1a2306defaa1a8a271ef95b", "format": 1 }, { "name": "plugins/modules/endpoint_register.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9f49a5222503a73a905aa489517c5d5c2c4d42c8fcefbb41418731eaed3cd6ac", + "chksum_sha256": "f9b487a611b8591549d23193f252bb2b6714a7081a69071a757fc3bcd8e9552c", "format": 1 }, { "name": "plugins/modules/px_grid_node_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2a784dc14d4e256ae046acae41a8aac1e00e3a35365eb7f3358137695cb4a717", + "chksum_sha256": "7d26da31dbabcd1c31e555259bba968157190a612b7828470e2d1f156bbcaf22", + "format": 1 + }, + { + "name": "plugins/modules/px_grid_direct_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b71d90d1808b21127e6284b2fba18384b9daeeb6416a84629a48980a0dd18469", "format": 1 }, { "name": "plugins/modules/device_administration_network_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "39d47ee06a7c2bb9464fb4ce8c3c509010ec682b82fd5d7b8fe172a0dae90802", + "chksum_sha256": "8ed2e94752756a77fcea7238d4c63c819921310eb640a80e1a895a170a651434", "format": 1 }, { "name": "plugins/modules/node_primary_to_standalone.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9aeee0804d23f71e8228af812a2ba0be44719e1d81c6324fb88805a4be56f540", + "chksum_sha256": "ada3ba0b6f339fcbdb63ae1f958b0402bb27b6046f9be0a73c7d958d2fd76382", "format": 1 }, { "name": "plugins/modules/active_directory_leave_domain_with_all_nodes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "748402df727ade75ccb80cd8dc5184c585428649b88a6bdac12f5a1910c115f5", + "chksum_sha256": "0066b9396f3fddddbb7d83a8ae660f9fdf9cf621fd09158b25c2a788cec5f253", "format": 1 }, { "name": "plugins/modules/trusted_certificate_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7866b5a7c01dfacb8500b37a6c9fefabac57fe53e1cca6c4c5269320371b33d2", + "chksum_sha256": "8e0eeb1632c6d0f4e1152355208455cac353aefe5508a17a960be2c5aa00b758", "format": 1 }, { "name": "plugins/modules/licensing_connection_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bdcd9d2705e8a2100da6cb81ff01e381f000ff3eb60273e7970d656ae0170861", + "chksum_sha256": "ab725bade0873d2bde546f332273845b0718fe89ab68fa81aa5a7a721f79758e", "format": 1 }, { "name": "plugins/modules/mnt_account_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c4fc3f6fccf8aa815b68914c5fa073ade60fc06c84586aae609557e5620905a6", + "chksum_sha256": "18bfecca4ac2e2c5ed908907107b69cab21fc597968e81ceee2963ad359b2a48", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_sg_vn_mapping_bulk_create.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0918cfd05c084b6c8de7d89297eed9687a6e0ed4af10fc7b10a449e59bd57fe2", "format": 1 }, { "name": "plugins/modules/node_deployment_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "166ab9970563ba3d6d8de08f901e34d08dd445d242ea31b4c518d9f135610b79", + "chksum_sha256": "8b2e37193fd639d0aa1c62c0a4f9d17a1e8c6abdbc1763763151ace639e341cc", "format": 1 }, { "name": "plugins/modules/subscriber_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "92c9e14e1f6a087757a766e596ed0e5cb6a94189257fb7e9d0c216d3dc096ce9", + "chksum_sha256": "28870c94f0b4e58ae128f3eddc02cdeec0781c6e4d79da71ce0ad4ac8806c08a", "format": 1 }, { "name": "plugins/modules/pxgrid_failures_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ec85b40aede2c5c985ff8f3b5795d207112c65c6c6675fdf9f9143c7e0211988", + "chksum_sha256": "620047e2528a525cd5198ba9fc2985a02678b3726a5f600a848a69e0b60d538d", "format": 1 }, { "name": "plugins/modules/network_access_global_exception_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d6596b2bc770e1e393410b9d91a510e529a71caef529e88d0ca102e244c98b5a", + "chksum_sha256": "117d1bb60bcf8ecb8775b5684ec40be25792214f878c5151246fad899fdf7ff3", "format": 1 }, { "name": "plugins/modules/device_administration_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "92c92206e422eb46973b3b0d0d1b6a1994732b6a4f305e91d1d0843435242c59", + "chksum_sha256": "e0b50ebbb32f33385a443e2645d4a10e282710885e66cab4d41c488329d8d8e8", "format": 1 }, { "name": "plugins/modules/pxgrid_security_group_acls_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c5e496a8ed7524abbfa731d8cbb265303e5bd353e64b6d546eb024691400a827", + "chksum_sha256": "0dba9f1f51446eb104b3296dacf9b40d866e15ded14e5b830dcb5cb83507e843", "format": 1 }, { "name": "plugins/modules/guest_user_deny.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ccc7be67ebbae53ee7a9cec8e343351ebf128407dda3c44c793d55dbe3ccd8c6", + "chksum_sha256": "7bc3112a2a8b49ed740fecbadcdf7e7f75f5856060c0feb1c63cd4ee708300e3", "format": 1 }, { "name": "plugins/modules/admin_user_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6ae8b4f80470b4fbb690374441da5eb486a6df30f1d805df753b62ee8131fbdb", + "chksum_sha256": "774a439b8e515bbe7a580e770ff677e425e307f3d78226455f896cb28db1c27b", "format": 1 }, { "name": "plugins/modules/endpoint_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7234182a4d90dfcc8d61e69cee62087dd92fa001e0dea6e222da1aad0515d065", + "chksum_sha256": "26c00439c81dfad5e2bc625783ddfbe92681636b77ca9624190e3987ec781169", "format": 1 }, { "name": "plugins/modules/threat_vulnerabilities_clear.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5a65e21240cbdef08c72c22f3fc38024fdf2872157bafb8c9d052d4cd9723e2", + "chksum_sha256": "cae0061dd1bfcf823ac070f1de21842a978a7b4a5506221783cd43c6b245bd54", "format": 1 }, { "name": "plugins/modules/identity_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a7c579389a51f5895c6834b9bc58a1a6078a63c8f56838e40eaec496788c00de", + "chksum_sha256": "a505ca5b027f332777860685058d1ba4fd50c76c7f66c3cd08ca9c4bceefea76", + "format": 1 + }, + { + "name": "plugins/modules/duo_mfa_testconnection.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c074763e5b98d13012981a39b30bc6ba66f912a41cf34b130e806fe627f39938", "format": 1 }, { "name": "plugins/modules/network_access_dictionary_attribute_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f70a53a10f74a5f5c4018edbdaf4ddd5cecad5afa3d9912badbbe38f607d5bae", + "chksum_sha256": "d4d79fe7a6264cd452dc7117a59eab54a95b8a6f8c50ca8c4fda11ec4f2e40f4", "format": 1 }, { "name": "plugins/modules/sxp_vpns_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8f365397225b9fbe923f97d2e7fdf2424d880079c1c39e7432b79fbaef99a315", + "chksum_sha256": "ec3f454a459c375788ab58470ef2b0630116743d6dc6834d243dbbba1be36fad", "format": 1 }, { "name": "plugins/modules/network_access_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c71c394baee493813c269df1b56c4c7266cb66f8e9e01765c088ca17af0dc0a", + "chksum_sha256": "3a66e03ae6077503a69f831faf64ccbd6b58aa48ae06945a51907d72d9f167ee", + "format": 1 + }, + { + "name": "plugins/modules/user_equipment_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8b133983435d3199ec07ffe19c655eb388afafa630f8619c5ba9ac544f415708", "format": 1 }, { "name": "plugins/modules/certificate_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1a60ddf2d4e06b73c26a3fd67fcc0ea49f5a1a7204d31dcaf11d7a84b1b5dc32", + "chksum_sha256": "d9b698133cd644bf1a881e17f2a459e50699a6bce7f261758dc5ac941a0a9045", "format": 1 }, { "name": "plugins/modules/pxgrid_settings_auto_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c71ffca5fee2bf40c945757640205103b8a8dc10244255639f32980d363c996a", + "chksum_sha256": "2211b486ea3eb1e20cb049fc8fdde248cec8b83b1331fe4ded293ecf80c77dcd", "format": 1 }, { "name": "plugins/modules/guest_location_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7524ac95d885e8cd03250c3559cf2d7e27f680de671e8735eb8ce273e8f65bd6", + "chksum_sha256": "189f182a2112405d25ad0f5de587df471cf1a3c67c39077fa1ace5fb944102f6", "format": 1 }, { "name": "plugins/modules/native_supplicant_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c105f24de5e238f0d2d6e67d977fb7aea951d4d846100f071b07045c08a9a15e", + "chksum_sha256": "fef2ef5e316a1314a7de8861e3075e1ade946acc962233d254e48a763ba74293", "format": 1 }, { "name": "plugins/modules/device_administration_dictionary_attributes_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08d859de5c2944ba7ccabf2605e0d1cc7bc560fa3f0bba947593c8a9bebce930", + "chksum_sha256": "7fd5231cb8ea0e426aef8e76622d61aee17c18b1b42963bb7a45825d542d21da", "format": 1 }, { "name": "plugins/modules/network_access_conditions_for_authentication_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "990e98e15ed154a9a30a89853ea49931719f6d53ea6c8c67194a94ee81fc52a9", + "chksum_sha256": "2dcac024072557a9b757ae00a16b27e2961e0f8171b4f6aef79cb68904cbc558", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_bulk.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c8a77cbfd51071fe77a6f19172ff435f08cc69a18a0eb1f85e2dd3d5e6537d66", "format": 1 }, { "name": "plugins/modules/mnt_version_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c673c5c9cc1e42b94130c122a68dc8537483da2cd9d497f0e5aa18c667d03059", + "chksum_sha256": "460117dc5633e2e2d8ef509a060a1ce9e9356bcb798bb30510460361ff2cf6e3", "format": 1 }, { "name": "plugins/modules/sponsor_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "440830d53446c8e995da69cbe9b1321ee5fe90a3fbb56800020dfecf5a792f64", + "chksum_sha256": "4669cc15bf064790912c7e810dd22ffa814a878d7c66a3688da3180935e924db", "format": 1 }, { "name": "plugins/modules/device_administration_local_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "49552d90f4c02e903bdf3d927bb4a14ea72cecea862ea4d391d666aca92c5122", + "chksum_sha256": "4f7b27ee724d152e0353bbbe109d24f0ff31770aa4ea396ebc60772d63c66134", "format": 1 }, { "name": "plugins/modules/system_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13d091928dc59c166119864b976ab912927180878d62b21113269b6fc8e2921e", + "chksum_sha256": "921cc7c7092f734f3f1c5ecb163a38bc552882b3e67fe666d6b6ab48b7933a8d", "format": 1 }, { "name": "plugins/modules/pxgrid_bindings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a44b764670fd210b48bca6484acd60bc1ba75962bd9a863001199aab9ac2d879", + "chksum_sha256": "3f29d60e31f9d0a0a739eb9f70eab09ba31b0657b99f24b6acc1ce51e44db76f", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_delete.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "92fe6dce1651fa4fd30b0fdc7ef41bac345dced536af349f2b3a7f25ee6d99e8", "format": 1 }, { "name": "plugins/modules/tacacs_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24632d1746e614d367f8830fb90e54e811f170bbe72f142846e2353acec6d138", + "chksum_sha256": "6cef78394a831fa057d15dfd2aa7b95ec348f7a6bc45fd0c007735983699bb38", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_nbar_app_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9811782cbdfd59a9fe6fbc68573e5bc3e8a82ecd5f7a6d7791a7e9068a2c71be", "format": 1 }, { "name": "plugins/modules/tacacs_server_sequence.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5cf7cec337806216ce8d2095ac7bde8ef3efba1ff1b449a0076d305f63cab5e5", + "chksum_sha256": "c8970e3784b6e61112a5a3587df1edaf544d89cd21a894160961cfcbf17a9a13", "format": 1 }, { "name": "plugins/modules/network_access_global_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "da1584ca3b1a9fd0308554c2726cea2d838cbc3ae42289de3657227c6033ca5e", + "chksum_sha256": "8c99eeb2747cd3255806d6f99f49a2ab28f7b5bd26c2cbd35ec71fcdbb8e38ce", "format": 1 }, { "name": "plugins/modules/mnt_session_profiler_count_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a981bc86da64317d0fb2e5e92d9e8c0390469061923274cdc6359975c707b3fe", + "chksum_sha256": "c454055915d4abb383e7e7e5ce309ca6a3ccca39a1ab303319ed1e38ddf98205", + "format": 1 + }, + { + "name": "plugins/modules/duo_mfa_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0c5ad7fa301e60afd67560f964c7360754e7b74f8a10d88d5a82e856bd57603c", "format": 1 }, { "name": "plugins/modules/external_radius_server_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "814af5eea5adedaf71567040fe7b0868aa1148430395c8cb73efd3d89bc21e2a", + "chksum_sha256": "e8125a7a5ab0e3de44aed06d4c7e87d1e8fe319a7dfbcb558d86fd41baa9e7ff", + "format": 1 + }, + { + "name": "plugins/modules/custom_attributes_rename.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e99533228e2a60cc16b7211f0d6c2398a903764e2aa2ee4f8d5d89af1dee540d", "format": 1 }, { "name": "plugins/modules/session_service_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "285305471b4e4b424bf55002cb53b29582264c933c9eeae0a683823e81732c67", + "chksum_sha256": "eeba4cb3e28da3747ecefe61c3ef13dd5bb1dbd85ec39f00128ba57f1f813f25", "format": 1 }, { "name": "plugins/modules/network_access_global_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8b8ec79d4392452c1091d30cfa2d5a58866a38b876094aa4923f12c7bc801b88", + "chksum_sha256": "7482602be007b622d901477297bb41fb958652e90c632834337fe6e91581228b", + "format": 1 + }, + { + "name": "plugins/modules/user_equipment_subscriber_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2ccdb846d7ba9d7341cde3aa3209fa9282a6b8d3a04f5f9a2b6cc013df625c74", "format": 1 }, { "name": "plugins/modules/sxp_local_bindings_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf6e0e53c061a0c1808d77e85e0eefe546b5524fd5b62d2b7e670e13140f217d", + "chksum_sha256": "7b9ce5c822ec519cf2dfdb3bbe4086f26a1ba6c41f0362bb960b7dc67f5c9b2f", "format": 1 }, { "name": "plugins/modules/pxgrid_performances_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "efeeb776fe85cea5921d284fd296181f0ed12a607b5fc3f6fbe7ea6a40a348e7", + "chksum_sha256": "05c10d7a9cba232f1b3929936aa0ee680763cc07e2468d5c35cad7c09d9c474c", "format": 1 }, { "name": "plugins/modules/csr_generate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "119d441b532c45269469923f9bceb3fdadc23c8ea96b126ec40cb0663ee282fe", + "chksum_sha256": "330d7f3f7272a72606f2e52f059df7902c73ae251d9d1b17d70682d7cf3a582c", + "format": 1 + }, + { + "name": "plugins/modules/duo_identitysync_sync_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ac97730bac3cbbd796f3d49faa4bc3c8da15fdbcdc6739b4c005b5f2b5e1696d", "format": 1 }, { "name": "plugins/modules/dataconnect_settings_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "de0cee6f0f7dafbf1064c2a527765ce3c6ca9238d096763b08bfac161d45d79b", + "chksum_sha256": "3a601b4d44de93859f85f2bdf300d52e9034dbb64b0317b82ae49a1a3e060a8c", "format": 1 }, { "name": "plugins/modules/pan_ha_update.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7704e611ac6a19e9ff118adeec6d3a1eb46c3d1e8dd4597b87190c8215a73a3e", + "chksum_sha256": "bf0a0869e4a1c3c0a04f8b3d6dd720a0be9d229bb97b2679735af97f08766280", "format": 1 }, { "name": "plugins/modules/mnt_session_by_username_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cbab19d5b0c29f5ef2b89a86ee72ba8b2992ef1ecfba05a79a4eb5a0df197cba", + "chksum_sha256": "a80439a8b89b90979476669c37f6399627654ba811a10cedfe34ff92e52d1938", + "format": 1 + }, + { + "name": "plugins/modules/duo_identity_sync_status.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3b7be870c5e4a006f55abe15832dba12650bd97d7975378ed3d82ba1aeb2dfcb", + "format": 1 + }, + { + "name": "plugins/modules/duo_identity_sync.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "63ae97b12506e987db02fd71c1e03d8680c2158939894d2b42a407e595d8fcd3", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_enable_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "92dccabe3a211166e6bd4566468ed48043b03feec309869e0f52bd79f0c9db3c", "format": 1 }, { "name": "plugins/modules/network_access_time_date_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "512c68e0c3177570b77d3ec64c88ed2f317d36b1e628ab5de3ac474c2097b660", + "chksum_sha256": "f8f782383444dd79bfc3357d2c4b280271fdd2391436b255ed9564cafbed6a4b", "format": 1 }, { "name": "plugins/modules/device_administration_time_date_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cef7f7b1bb08dfbcfafd73b3503eed875821ba10e5bfa7b10cbc9bd162e3b89d", + "chksum_sha256": "7f759aff760e0e1898f69d84e442478994ab98e9210d2705d19a13d37142a571", "format": 1 }, { "name": "plugins/modules/byod_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4da7335799d04544ba7edc2a85772d5b098293ae6c7c88cfe43a6bb25a299ac5", + "chksum_sha256": "ad2edc5d162c1595764a22cebde04246eb4dd7d5fc7f0c89c133dd752e952116", "format": 1 }, { "name": "plugins/modules/node_services_interfaces_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "178d0c64a801a7692df4bcae630a603bb9c4099c27ba763247d6f15c4e56b275", + "chksum_sha256": "ef69350ccf607ca8bc324f5cd79f7c6e0e4e5d32d87c1a8e5c2db7327e30315e", "format": 1 }, { "name": "plugins/modules/pxgrid_endpoints_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "72465579a8aeeeb2744940cf3d0c35a1b4960639d4cf2f1b44c4b1eac62e219e", + "chksum_sha256": "4ea877870a4c4a50d697c153d7c6f6d6dc1e5bd20b87b6c204d01d69a1535308", "format": 1 }, { "name": "plugins/modules/portal_theme_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8bcfbe78101b725e2e239015a34293ae387d65c87df63fd2dc2569c15b827077", + "chksum_sha256": "366fb7ad1bf2bf00957e5f100d1dd0df518c9e37885701cca3f25e15e01f0544", "format": 1 }, { "name": "plugins/modules/guest_user_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b3fae6c1c1d24e9c807f5a78354f84c35e75f4897a7d1fb3dc1a217dbde532ec", + "chksum_sha256": "b1eea3235c1410c2b7e28f1dcd22faafc0e9e0a1a1d6e39a0fffbb54f5070f61", "format": 1 }, { "name": "plugins/modules/pxgrid_session_for_recovery_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "334e6a36a312cd82103e3af41686ebe5fba1ff067e26ced5204bbb392bbe3d60", + "chksum_sha256": "af21b421849fb0bc5a84e0e077ce1304acfa17fd9adf0be5e3e88d5c7694fa8b", "format": 1 }, { "name": "plugins/modules/licensing_registration_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9d6ba9ad31d635db24412aa750982fc42482821b3ee1acd6b3571f50757f02e7", + "chksum_sha256": "2c513aef1fd12b52e19bf4a0dcfc60943e2c0e58a576db318bf4aa732f101a2e", + "format": 1 + }, + { + "name": "plugins/modules/stop_replication_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "57b18e342ec7fbdb9e16dcbccb5e946aee3b42a3b850d98ea979dab2f6234f2a", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_sg_vn_mapping_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "69c105abd0ca2a082bba7ee91eee97966c6cc40416d674706527e46a91f0ca1e", "format": 1 }, { "name": "plugins/modules/tacacs_server_sequence_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82dbccd8a46ae6cbbe2894e54f9a0fe503c02ea351705ea7d079fe1125496505", + "chksum_sha256": "6d11a6e729668dc0923eb50eb70fd547c6137ba5a8bcfdbbe6ef41b5b8eaf70a", "format": 1 }, { "name": "plugins/modules/sg_mapping_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "54a0b58cf1763da689c16f4b2f3912bd0f3f6a96dfa1816d4b7a11e6cf8db529", + "chksum_sha256": "b3be0ea1cc652844fff7f76387eaadeeab54a7c38bb20cbc602a15c981064cac", "format": 1 }, { "name": "plugins/modules/dataconnect_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "69d5919d86041f3bf3d7f32ba6720c162e8165e0368b711cad9ede31058c1e2a", + "chksum_sha256": "cc3c211e7f50ed1647ba273085dba91c9958ef6a22bcfad623cfb6684d450ecd", "format": 1 }, { "name": "plugins/modules/system_certificate_import.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dbac596ac6bb7456841a9591a69df3527e48bf82cf78feddf31c6500f0080c8e", + "chksum_sha256": "3dc15f6c5ecf9b1e5e95c9aeb73814655ef2afea5d3395368b989758c92b8eb1", "format": 1 }, { "name": "plugins/modules/mnt_failure_reasons_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84366cea6d069a821d8cabcd550f5deb4af75df67baf7bbb35863199898bc69c", + "chksum_sha256": "d6ca039e54599bafd492c33cfc102aa0392f443ea3d57a9aa9062528ddbf4557", "format": 1 }, { "name": "plugins/modules/transport_gateway_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1e40a2d87828b48159c32a5ab798f8ad6741dffe81257ce95f61ae09af4382e7", + "chksum_sha256": "f63139744260ff98cead71b4b5957929a2216bbeb5b11940ac20a165b3f110e8", "format": 1 }, { "name": "plugins/modules/network_access_network_condition_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "66e707026f332f82158fd2012fea22d24ff86f290aa599b532e4ef34e19a66ef", + "chksum_sha256": "84da2192aa78d4080aa1bb5ff64974e70e875c2cc551abf8bc168d12f29e24ab", "format": 1 }, { "name": "plugins/modules/device_administration_authentication_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4b693e5505c39c7694e72e228aaff5af8f068f7537d2a35cc95e0f7725f7f8a1", + "chksum_sha256": "f3a3aecd1aa7e19a80af3e09bfcd06807f3f2e9a548bb654f4aebc6fd78c4b03", + "format": 1 + }, + { + "name": "plugins/modules/user_equipment.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6a9b8e6698d97f9a42160f4f037595d7a79d9528f2328acc65997fcdd36d7841", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_sg_vn_mapping.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "30fedf5fc2eacf1345801d559fa607ba88cb36ce5b8f4352ff2efa326511de17", "format": 1 }, { "name": "plugins/modules/backup_schedule_config_update.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1f41bdce3c7fb3c2a82dd5b94eecbbbb0db53e1b4488fb76a9254d3b4a70205", + "chksum_sha256": "0c0b65a09ddd28a20347a084433164ca11cc49dc0c0fa03c4fe50a066a4e86e2", "format": 1 }, { "name": "plugins/modules/network_access_authentication_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6ac7edb1debc0ea05a61a364c0eb790fdb27778c30a201c0cf592b3e68a3ed5", + "chksum_sha256": "0b35c9212dc0af4c69f07d7faa7d5a2becd3a9d3ddf84760b8ccb644f5383d19", "format": 1 }, { "name": "plugins/modules/anc_endpoint_apply.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fe21680d72da158ac8b28a2f7b2bcea76d2870cf1c605cffc85ff70b5a43f8d2", + "chksum_sha256": "6f22f5e5d63b466d2dfb25741c4e12416785809f29f7e2c55e4bf59a6c3f0f3b", "format": 1 }, { "name": "plugins/modules/endpoint_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a5062fb00b4ca90a7bd677004552a6672b14fc5773bba33d3c630ede90a3556b", + "chksum_sha256": "5f444d6c4b17b177a7b172b27acf9292a4842dd6b599f7c1b5138c5f459981ba", "format": 1 }, { "name": "plugins/modules/guest_type_email.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e1b5094c48c7f68b9977588a1276f51fadd56d6653d5b03280a7c997af53526d", + "chksum_sha256": "c5a34caf5a31fc7038c3887d17d207a5ff106ade4729edc02eb2c7a4a6d0db3e", + "format": 1 + }, + { + "name": "plugins/modules/duo_identity_sync_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "5387436173ca763a75a616417292dfa947995fb10e36401b7d95a129fe0af6ec", "format": 1 }, { "name": "plugins/modules/rest_id_store.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6c89b2fb2ba44a7da3fca22b4f4c3fdf0157c2f4bdc16edd3fe76ffa6be486d0", + "chksum_sha256": "42a18d7f0a19edb93554897443b7f8b5ecf6f2fa1fac5277ee61a589b98bb0de", "format": 1 }, { "name": "plugins/modules/licensing_registration_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8e143bbbd3bb0225a2cad0e7c00e00998173ced91eafbd034f1f0963f6efe509", + "chksum_sha256": "1d2eea6269b815f1c46b17ef4061a7abcad04fa36796836091368609a0ff5a4e", "format": 1 }, { "name": "plugins/modules/my_device_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "748f7fb5d09d5eb40a2b621298f0df711ade50999329a6b2b2e24625a98f081d", + "chksum_sha256": "178d3599068faec82ffb363fca7cb7d2657d74ab9edec6df0530d1d4bc1bed9c", "format": 1 }, { "name": "plugins/modules/network_access_authorization_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3cd0179101a1b1efbe61a53a7cb97799ed08e6880bc32d7cbfc89fcae7e98868", + "chksum_sha256": "68fdffa587b0d288d15c49e9c304f8a4455540ab038db5a66c70523024524a66", "format": 1 }, { "name": "plugins/modules/pxgrid_egress_matrices_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "523b21b2be6cc6e4b690615bfa798b85049351b5d5485ac890f3df7abb97fa91", + "chksum_sha256": "2f8a445c311179d1f59584ca6a79cf0ab8d93a156d14064ef851284f64908715", "format": 1 }, { "name": "plugins/modules/active_directory_join_domain.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "113d4c750156d522edd5bba6c030644d9e654e0ae5f04fa73eb39122fec4c032", + "chksum_sha256": "6de6fc619c72d8a30e94462f77c7e9da8d43c73eb75f74713e648b8ae5bf228f", "format": 1 }, { "name": "plugins/modules/device_administration_conditions_for_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2773bf27387c8d366320e3c5c77bbc980c9559ae372087c79dd483fc1896ed63", + "chksum_sha256": "abc9645b45555b7329505e6a20b124f88341d57a802e20b9533f2fa2b6d591fd", "format": 1 }, { "name": "plugins/modules/mnt_session_reauthentication_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b2ce45b6bc3c47e65b3262807827399ca8ab390c71e1fdbd83f49559adc975fa", + "chksum_sha256": "7da35619c4d51c859b687bfc329065be793a9f0fe515d2342bf3bf160d5b774c", "format": 1 }, { "name": "plugins/modules/support_bundle.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4b8df8794ae6ef84a2e4ac025033160e625427d2e9abb6f77c35324ac5bec8c8", + "chksum_sha256": "546c16eecf5e8881acc2fff934c02f9d1d6886d4fc57df40291f88607e4f73c6", "format": 1 }, { "name": "plugins/modules/device_administration_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a1a5863fb9eb462402511388a0c639b2439870103a278bfa5b6be90005608f70", + "chksum_sha256": "0b307e15d97aea18d609f7f8f37199b1e07d3e725ffd3df7a0d503d3bedc5b1c", "format": 1 }, { "name": "plugins/modules/subscriber.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "55c8d1822050944e73ee3ca1d8536fd57ebeab064bfd5881ce3a70877ed05d61", + "chksum_sha256": "033b5ef3c647ce487107516eaf82dee404870a6bab352dfdaf3cf84306b734be", "format": 1 }, { "name": "plugins/modules/pxgrid_endpoints_by_os_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6879191201617c64df2ef196f44fdfacf4515e504659376dc61f252502eb6f45", + "chksum_sha256": "ea477dbf5b1a610067fafe0b971765921636fa929f30d3ef62ea5eb281d788c1", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd3da0a71a6c9aa56fd691517a7e2006251b511f17563c09daceb3ce4be732da", + "chksum_sha256": "41bda1f89e4e555434ea70b41bcf5a0350259cdb231617d2d844405720db417e", + "format": 1 + }, + { + "name": "plugins/modules/upgrade_stage_start_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9442995cd3e5915eb6ffe81993982626fb07cd23a913e4d5ebc4f512391b9e64", "format": 1 }, { "name": "plugins/modules/node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8522a08959d780c1a5ba51814ed143e40fddc75065bfba19ab0fc85260d31c58", + "chksum_sha256": "1919b5acb4d2705cdff3e09754101b3c581aa63ba6d042160de6379f11ec028f", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_vlan_mapping_bulk_update.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4f322e9da75a7f723909e9aa93f824fb55dca64e4b5d6747eed027fd81962b82", "format": 1 }, { "name": "plugins/modules/licensing_smart_state_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "07e975c845af65bf8c846b1fae10f3d86701964d7dd79561c194fae378ddd680", + "chksum_sha256": "128a67b82de9bb7f031beac784b73fc54fcf22f9843fd0333b7e03ebe7667d75", "format": 1 }, { "name": "plugins/modules/sxp_connections_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "385d9ceff4cffac0ad5569b6c541cde80dc25ff8a5f513e90314d410e04af9f3", + "chksum_sha256": "0abcfd9c3744e3688806d473d0ce91d324e28d1d2b790301f12dc680830f018c", "format": 1 }, { @@ -3672,77 +4302,98 @@ "name": "plugins/modules/guest_user_sms.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cf01c8ef62234046237fd016db6586ddc6f15e0bbef425b852ea87bd2ee093e4", + "chksum_sha256": "cd04818d94bbba39a5aeadc46d37e62f8a0ac0ebf2cef10d5193f5de7bb104b6", "format": 1 }, { "name": "plugins/modules/pxgrid_user_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ebc990799cf775a81fa9103b042a5998d29072c602427c8225365136b3867b27", + "chksum_sha256": "0172e4cafcc03ece894801cd090daf72990554a64391374e618981a3b5efe017", "format": 1 }, { "name": "plugins/modules/pxgrid_profiles_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "63b60b03369e703b7e98ac8698d2dc8541674f4d10b96cbad4d28a955e6f2e9d", + "chksum_sha256": "ad1eed4067fa97b34f925473869f5cc14c019e811a212628e1eef1a990991a5d", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_vlan_mapping_bulk_delete.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2bde54dea645cd71e42ec81996d71f3c5959ea8b33135f661b18bfd8eb778648", "format": 1 }, { "name": "plugins/modules/licensing_eval_license_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "092ad108df75727a6971b82fb7d1faae739f2df3480e3b19961e59fbc27abec5", + "chksum_sha256": "9b9d619cc1f96cf6a22eab84ce705748c34f84b6e21c95b76ef1279c2be4354d", "format": 1 }, { "name": "plugins/modules/guest_user_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2e7089d767d922a615f4317503f763dea12565f10c53e88b6f9e9dd1155a9c18", + "chksum_sha256": "d28d76530d43636408cdbf1ae4ec68afaf2b1c236c70b92b42e21bd8d860fd9c", + "format": 1 + }, + { + "name": "plugins/modules/endpoints_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a8877073464f8db929da4b6f48373852a0dd99d23c334d68484c1d65d3dab776", "format": 1 }, { "name": "plugins/modules/node_services_sxp_interfaces.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c1f9359b6fd1cfd0bbda6fe0b62db6f5d577c6bd0caff3e0d8e18cc5efb6aa59", + "chksum_sha256": "fe9a2f5497d33707745ad86a5561e78a8d19c7df5fe56b0739e676ebcea200bd", "format": 1 }, { "name": "plugins/modules/sg_mapping_group_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "896fb1b8f2b0a354b94629f9f69fe4d56b72c90cb0dc66d0dc0cb8b5460f2d61", + "chksum_sha256": "f8ac6c93e347e9c0a5c86d552b0a784c2807c66e8644e1f804f9459a284300ff", + "format": 1 + }, + { + "name": "plugins/modules/upgrade_proceed.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "276b83407eb1f54b9ca1b50b4cb713973ccf91ce57882ddc14747d11441d5782", "format": 1 }, { "name": "plugins/modules/network_access_conditions_for_authorization_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f7f6808078748da83fbd3bf33193a980e16a478823ef26545bf8376fe4c513fa", + "chksum_sha256": "5c56ff749002ab29dd9966a767042458268e50b8a3e4cd0cf6a26aa7c69e3223", "format": 1 }, { "name": "plugins/modules/network_access_identity_stores_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2bff7a962e88648ef38e6a5fc7e4e769d6546ab4bd5530bf229fae94fda7d0cf", + "chksum_sha256": "44eff08307b6dd1817fed439dcb713f5eac3d9926ada966098ec4ab0e2c0e83b", "format": 1 }, { "name": "plugins/modules/pxgrid_account_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "798828d1f1dea8ce271d0d85fac10ae88c58761ebd6d2b68e9654648df813ffe", + "chksum_sha256": "f16fd84646a2ecbada20ed0c915cb5e44236cf058266a754834679298307f491", "format": 1 }, { "name": "plugins/modules/pxgrid_access_secret.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dac8bbd08f48b3dfeb5b2965cef8a570be1b03d56cb778c48d1c94bfe4929e5c", + "chksum_sha256": "a63db44aa753833cd8ca3d5a05cc2b9fb45d697245279e5d3aea977d9bd90085", "format": 1 }, { @@ -3756,56 +4407,63 @@ "name": "plugins/modules/device_administration_authentication_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2216f1e10d9fc493239b212404de1152a8e93a5424e40781ec2c7bc99b3d419e", + "chksum_sha256": "9d2a8085d550b3a4df87bda8b819573c2f16c8c3bf8a083d51de1430ca9c4307", "format": 1 }, { "name": "plugins/modules/active_directory_is_user_member_of_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "392340331831e8f57852bc3fe52fc67346b503b8014aacbbc5daf9b37e12a2f4", + "chksum_sha256": "25ac2d77ebea51facad4f9e47bbc933b6b92bbf942bf1688a75c8e15b21ed0d9", "format": 1 }, { "name": "plugins/modules/sms_provider_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "30e61a30963a7a6953ed62f1cd59222baacef3ba48d6116ed679213367c48626", + "chksum_sha256": "5b627ab07fa9a97a70a744c4b747f4283b2a81dcee761b73761174ec8a06a0f2", "format": 1 }, { "name": "plugins/modules/sxp_local_bindings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ab261305426b3606760af2e46fe6d00a84e943192bf2ad51e859904e12680fd8", + "chksum_sha256": "8599221f6b993c53fcb7e03e71b3e706d6ac664b985a80e8c636d872558fced5", "format": 1 }, { "name": "plugins/modules/aci_test_connectivity.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "69b1406fcaffea2e9d7677bbf4f308bb16501522b18fdf4f4255c537d5375654", + "chksum_sha256": "8e781b03585d5cc06de5bef21ca5ea8b94397001d5dc87a3ae1bb1e4bc7b194d", + "format": 1 + }, + { + "name": "plugins/modules/upgrade_proceed_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8e60539e6c20a7724491a76a733576876b65d7517cf8db692d9ef26a07394252", "format": 1 }, { "name": "plugins/modules/device_administration_identity_stores_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "47fc19911d0f0cb5ef9d7339d2241caa26ed596e894bdd5bb69d6de031366ce7", + "chksum_sha256": "45cd6f5e9c4552935b061e361ae915a68a0fa7916efb11a8e71217df785047ba", "format": 1 }, { "name": "plugins/modules/id_store_sequence.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "06a6d1fce26994757c7825ea6defbe0c29b653011e30a235afff1ce65136accf", + "chksum_sha256": "2cad7a2d00478de198446755fb9685224c080203d2b23bfbfebbcc089821dfed", "format": 1 }, { "name": "plugins/modules/sg_acl_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d36d21be01c91c21b52a0ea673b78b90e660cc3a883940e8cf1a9d6e948e721", + "chksum_sha256": "78eda82cd5d2e6fcfb3aee784a7facb6cd684eedca982997ff6c11ddd816dceb", "format": 1 }, { @@ -3819,84 +4477,98 @@ "name": "plugins/modules/pxgrid_egress_policies_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d1def0e1c8170e585c9c59e841c35e8f51a917501ec0e719150066e29462832", + "chksum_sha256": "80e2158c652841847d656bdc897ad5a53c8470a77df6e2fda4bc20a9702b9f26", "format": 1 }, { "name": "plugins/modules/anc_endpoint_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5d0ed60026d2b75683149dd72c08d85ce9c26ea28566c600a1a9c966e4731420", + "chksum_sha256": "0251bd432e1e195f2dd0ba3edb36c6aa5dcbe3a8de7d4b217bea76772dfa464b", "format": 1 }, { "name": "plugins/modules/guest_user_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc502233f4ebb19bd8baaf8ff496101371bebfb2174243d89140fc85baf8d501", + "chksum_sha256": "600ee4efbeb8470828c0fadad2439e872e0b66628d74a0ade59fd07aa0cfd6c1", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_vlan_mapping.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4323c5fa5e926b7ef55a707d31eb90ea8499b60fde51b2d07644f14778f105a6", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_vlan_mapping_bulk_create.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "800a53452dd653ed3922612968862b2a8bef4c92ef92bbe24e824e8026aeeb08", "format": 1 }, { "name": "plugins/modules/sponsor_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "95514c959d1472f12f379ae7fba7ba17bf369ba32c73538ccc0191d04e047056", + "chksum_sha256": "13e19499252bb2db4d2c90fcbf4febfe6261c1082d2e3b434d566a67261d87c3", "format": 1 }, { "name": "plugins/modules/system_certificate_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b891fbc93ccb6ffb7c1efcbd0b660689a9ed9555c42ec34ff43710c1a1d218f0", + "chksum_sha256": "9626d2b80dd56c3effdc329745ef52b9a17a53f3ad080d2cf7fe699bc658c0b3", "format": 1 }, { "name": "plugins/modules/network_access_dictionary_attributes_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "02eb22fda74bfa91c4c6efc3cb5e34467020ec60d2f9a722d838e70269b4992c", + "chksum_sha256": "9ef480b18d743caad7195ea5c6b756c92854c969eb9175be35cf87438e4aab2f", "format": 1 }, { "name": "plugins/modules/px_grid_node_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a460cbcfddbd6be09f3e917dc6b8a222204c846b94e3af6c49196b1e6a9f3064", + "chksum_sha256": "f0870327516d620805cd04b38faffa3915c9c8379d9e84da616d12b6ef8addee", "format": 1 }, { "name": "plugins/modules/device_administration_global_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "89e67650f326e57f65431f863ce0c83116db2fc27aae9fe7107f88d16fba7ac3", + "chksum_sha256": "bf84613f4db177bdca1fe10cebbfa5e668bd49184e84539080439bbc8a15850e", "format": 1 }, { "name": "plugins/modules/sg_acl_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "73e37949c269a92d51118fba46c5aec3c01a4805ae11ecabf34dece0291a9da9", + "chksum_sha256": "7408ca20199cfe69cd76e41c69ede5a9ea875643dea600afccd2785c7c8ff3ce", "format": 1 }, { "name": "plugins/modules/hotpatch_install.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3931a962d0425130321b383c1374c205b818f3862f434acb3e0582e2aa7ead5", + "chksum_sha256": "fd6272cce1660cb4ccd65081ce88e0e1272b1a40cb4e6f33bf6d94b737c49aa0", "format": 1 }, { "name": "plugins/modules/active_directory_user_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5ce0e60fe79af6b6d2ba5ee11f5f01bdd80b5292d7ad365dc16f7bb62ad9ad13", + "chksum_sha256": "9b3e51208f0cc03886e2a6d61699ba4f4b27dcb54a494155046199b30de82470", "format": 1 }, { "name": "plugins/modules/pxgrid_node_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "67f1f80ae6dfc2f01981388e29aad05165795bc025532d0d4310dc8df83e63c5", + "chksum_sha256": "cf3d637df34d81bd6b131ac16277ea3d65d9c6e6d593536e705af631d728b946", "format": 1 }, { @@ -3907,1543 +4579,1781 @@ "format": 1 }, { + "name": "plugins/modules/trustsec_vn.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3e93c0c467d337abfaa9184cb8520f9f41a258bafca4d28b8a2427b83975e759", + "format": 1 + }, + { "name": "plugins/modules/backup_last_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b78f418fa38d677084fb822fa2d09f118db3fad42e89258dd737ee7f5c7c048", + "chksum_sha256": "f015b73a7340e5a08190da357a36f448a73026271e87de2f03687c92c35fbc25", "format": 1 }, { "name": "plugins/modules/deployment_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d05249cd5e5409a1aa6e1b63570775c7ca533217bd6d5bdda3b946e9e870488a", + "chksum_sha256": "e6bfee97e6ab3c5af1105c148cec377b36667616d622be50300984711c0e6cdb", "format": 1 }, { "name": "plugins/modules/sponsor_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cafb343c491e9eccbf48d6910110ed8fa59990c51be6cc1792db13450417b03d", + "chksum_sha256": "bc52aa8987b819d75b25275b07295bfae8e92c9f9358cfc7cbc54e888b0291fe", + "format": 1 + }, + { + "name": "plugins/modules/duo_identity_sync_cancel_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c1684d439a3231b2be2e2af718c3fa2710b83caba7c3880384bed160f66a3442", "format": 1 }, { "name": "plugins/modules/csr_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3d9cf9e7c183737edf91c9ce7c523af5271caa44838591b781887656c07e045e", + "chksum_sha256": "356c568e4bdddf1feda1a5f32084d2d88cd475a655abb755153860690a252b2b", "format": 1 }, { "name": "plugins/modules/personas_promote_primary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "978ab627cb06946f6ac276032a3dfd2d93d4f5819d79708fae074eaffb03098c", + "chksum_sha256": "a2ff9e4cee86312203fd2d62dd43808bc9abde87f001a083b78d38198ff37a7e", + "format": 1 + }, + { + "name": "plugins/modules/ipsec.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "b48883695d916b31c0a25cddc528d4f9f2ea118832ca11b0bab6f3d2dfd5dbda", "format": 1 }, { "name": "plugins/modules/pxgrid_session_by_ip_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a2623aea5d62e93d061703884869a27d158912ac0669c22a9a7c42ef5a84df36", + "chksum_sha256": "be428ac5652d453b5c27eebc2306a41eb1370b8ff4b6906c540ab42b27dfa0cc", "format": 1 }, { "name": "plugins/modules/node_replication_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9fa2e77980a669234911cbe0225449bb6f3a548e220624e44a1405d4014830aa", + "chksum_sha256": "f78360cb150330456439de0c1f3ba839f8da38d6d915b7bd9caeef00cad3be4e", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6cbacde8df0e160ea8007fe5f926159b1af70194896e1fe93296cbc5f1fca3d4", + "chksum_sha256": "6cfe8faa310b75842a7d4ba12508864f083b3732eff8d6566aca1deb23a8f55e", "format": 1 }, { "name": "plugins/modules/guest_smtp_notification_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a113c197beff41107c9522004d60993e53174c1b4193e56f8dbc7c09f4d2eb50", + "chksum_sha256": "2424ac874cbf6e8e056ec4ccdf7a53a2a50994ffe7fbfcb7c8f45ad38bb5a4ff", "format": 1 }, { "name": "plugins/modules/node_standalone_to_primary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "80e251a43c388dd7c921437dd4614161b0fc8da80ca73df2fe37e74c16cbd580", + "chksum_sha256": "9b3d9745242f186138703f3474e1862761d6172af63b359bfb21ebdd5192e16f", "format": 1 }, { "name": "plugins/modules/endpoint_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a4bbd0ffcad1d1415e8c0c4a14fb246d1d4ab3b58dedcf3fe5ea39698817866a", + "chksum_sha256": "ddbfdc08d2cab48638db0974629ebeea3cc4492fe71e7f7b30bed1b5c9b6d998", "format": 1 }, { "name": "plugins/modules/sg_mapping_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "bf6af349ea1a7235560bd8431a0c061bfda1f534f6bee96950f7b018a2a7170f", + "chksum_sha256": "f197d7587b7cad64936701937399aec232f4506eacd7ab70d7a6f078c3278aa6", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell_set_all_status.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8a29cee6650c646328b66ab750e3261551ec3ee3b3097f5c528e99d0f9caa733", + "chksum_sha256": "dfd8b5428bc8010428ab0b7bc181ab95c577307db6c5363dea0c5056d291a4bf", "format": 1 }, { "name": "plugins/modules/pxgrid_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7fba508877c438c68f2092df4a7b4dcaec6dd510c266fc26372831ad6239724c", + "chksum_sha256": "727a21ce03bd3b538b018bc07a38f192c95c2c631fc92a8871c175f590aeee67", "format": 1 }, { "name": "plugins/modules/sg_to_vn_to_vlan_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0e59d1c968814b6c0dab7d9233f0c2e26cb9c037f385ecda25290768ca8ae20f", + "chksum_sha256": "9af6fd0128a51487aba392a99ccd3e0ffa5fd600b368cf35ba2d4f0060b0ca63", "format": 1 }, { "name": "plugins/modules/trusted_certificate_import.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d74fc6796e27f3f666bf81f9f082491d902b36a56bbe234e050c3fdfcfcc030a", + "chksum_sha256": "fb5bd083ee81ac746708bfb466e1890b34776e6960cd67ee0e3d3f201dd4c917", "format": 1 }, { "name": "plugins/modules/network_access_network_condition.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a2c19331da2a9a784bdf4b80748b8b3ebf566b83e01c84aeed2b8f2fdccc24cc", + "chksum_sha256": "9b0df6d8c9bf00b178c0c3fe313d369765b77fa791511355e51ccc6c76ffb95f", "format": 1 }, { "name": "plugins/modules/device_administration_authorization_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1eb8aeeed5f6fb7ad12dd76b8b900a1515ac5988b115f7eea36d0b4367fb7717", + "chksum_sha256": "07c9de09e900b30cc6afc471ef0b27ea15c925dbb22daba8bc1a0db7e8693e33", "format": 1 }, { "name": "plugins/modules/backup_schedule_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "53f2f0cd988436f036b16318e7102e2d1ef51f91ab5482e703b3c4cabbd5a9df", + "chksum_sha256": "cf1cd7cc8d7314ca4ea380bc6aac696615622bc285a3fb0decd6255a668d9eea", "format": 1 }, { "name": "plugins/modules/pxgrid_session_by_mac_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a390646559f4b45bd5ecf7dddd0a13c2c0bf68907a16a1276f3dcd6e019c2693", + "chksum_sha256": "ef2ba51b33ea9e2feb8ed8129543749b465ae55d51d6e69c42379685c40cad87", "format": 1 }, { "name": "plugins/modules/network_access_local_exception_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0e5a2bc4e2226a937203a521aa4ea6588725a67dc9440b39c281c3001b9a8feb", + "chksum_sha256": "23bc624fedd72b6bd7b2c12c88ae5cc0e8cd9b982e712c1e07a7f648fd4f4e5f", "format": 1 }, { "name": "plugins/modules/sg_mapping_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2c86a83f3f03df71b9a9f0ad23f5edefea91445259ba2f6a5610cd734242e2a1", + "chksum_sha256": "4a0c4d9e5eb2fd4e6b0f5dae1ea820eadc1e1b8f247cfc07aaafe5e9e33445b7", "format": 1 }, { "name": "plugins/modules/network_access_security_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "132aea148538582861c38e7b7d828b6fddd1886760ba73f92db3bb004626a744", + "chksum_sha256": "571ab834c7dac64d37f67c2f247fd006621244d0da64a5258c02673f2c3ce99c", "format": 1 }, { "name": "plugins/modules/device_administration_global_exception_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "599cb938596c3fd993c1a5c4e7374aa40f34410a25a68955cf714d09208c5016", + "chksum_sha256": "d0f27905685ed94a9e4e79dc004fcf4e23a58e1b0c3046072530c4266536f065", "format": 1 }, { "name": "plugins/modules/device_administration_network_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8884d0f1d01999a9ebbefd81a55f08b4ac3d35335293e9b860b2325c7600155e", + "chksum_sha256": "dbfe6bdc5f65d297c0ea1d25ddb930cd5bf4fc20777eb2cafadb0e4d7175ed09", "format": 1 }, { "name": "plugins/modules/network_access_dictionary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "be74a8e486006207c7a811f7578e76fb9e014bb60f3c71dbe4cb75ed7f5b800d", + "chksum_sha256": "2e9cff1489140d5d436a6dcd3d28442af07d5d15e970618121f8bf1b180f321b", "format": 1 }, { "name": "plugins/modules/sponsored_guest_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb7ed5d6de0033b9ac29ef3f0019d8641786e8035792643fed1cd1ab099d9dbe", + "chksum_sha256": "7b503c914e360bf87a0f550970bbb0faef46d28d4a64729f78a22c84aea437cb", "format": 1 }, { "name": "plugins/modules/node_group_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "750421162829c5ce10e54ca66917cec11cc3aceee353c541add40fc74fdc81d0", + "chksum_sha256": "6fe67b2c74447b430fd4906f07056259212268f84931248b8b587f2dcf88709e", "format": 1 }, { "name": "plugins/modules/sg_mapping_group_deploy_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "465afd9c1280c55f7f866b93d62592363532329b4d29626f823ebf5aca4e02c3", + "chksum_sha256": "be5dfaa5a23c222d5667c62f9dd0e36ac091bf546aa637e16d62bd4fe1c13e59", "format": 1 }, { "name": "plugins/modules/mnt_session_disconnect_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "928b75e31e821d6d8f85eb19ba70d5fc9eb633d8a3d94e7f4b2a467a1f500b00", + "chksum_sha256": "162781e129807345db650e2ac71384432bdd59e72f13781571d56993e1423bd2", + "format": 1 + }, + { + "name": "plugins/modules/px_grid_direct_test_connector.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "235a37645dfbca938b5075d9035c635547f1036572893c7d85882dd6f9ebe31b", "format": 1 }, { "name": "plugins/modules/mnt_session_by_mac_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3f838a5a43a4d49a1d8014bf910dc69bcf416ce65b018c8dc4f5493de6b4a987", + "chksum_sha256": "b65ee7e6ad71f33f34502d57fca2c28535a81e6a371c71283b56aa639ad848bc", "format": 1 }, { "name": "plugins/modules/aci_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "054f8da3aa7d75e80d6368e6291f65706b6018b3354f86a9d83dc394fdcd6264", + "chksum_sha256": "f9cd03f0e49273185483366f7774a6d6e7bd3d414f3ce01c080a833c4e9850fa", "format": 1 }, { "name": "plugins/modules/network_access_dictionary_attribute.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "64a7414da1cca2e1525d343b3023b413290ee5d0ba8cb0a18368517f502194c1", + "chksum_sha256": "72800995a4c74af5684822839b17be2592729b200ad45099b2ec1cb564eed93b", "format": 1 }, { "name": "plugins/modules/node_sync.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ef27395f52d776aee8b2b1f16f5a1217ead7e25418668010c9741ce82793fb15", + "chksum_sha256": "a60363d047b6432dcd0adf1441df0c563d37ecfcab99c212d3b6d90fe46845f9", "format": 1 }, { "name": "plugins/modules/endpoint_get_rejected_endpoints_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ba9420c59d0d036c66b144beb2d2d9fb3b052a74c5351d5097b6158c3db1dcbb", + "chksum_sha256": "f380fe0bcfd1f6108555bc49e4a0c37ff86488b75fbee196cb2b7b8b93693588", "format": 1 }, { "name": "plugins/modules/anc_endpoint_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "302241ea02e2aa8c92899a39fba5cd53584f99fbd6c8932eeea9fd718c2bc547", + "chksum_sha256": "059d60e03f527b84d9fd10c42c91090fb82c5cfefd14335ff5ce277cc9aaf00d", "format": 1 }, { "name": "plugins/modules/licensing_feature_to_tier_mapping_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eed26481748e0b3999a12d26ae44d5ffc7fc59f584bd469b8b704ab9cc1ddcf6", + "chksum_sha256": "0564d4ea56dc373a6c401c1f13334180fd8cf8b4427542597d5c4f77b1e95604", "format": 1 }, { "name": "plugins/modules/mnt_session_by_nas_ip_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "388f3cb3c7e525e0f9a66639be2b7bcf1185afd65aa505c787eb1c7fc3213e80", + "chksum_sha256": "a68dae35403ff802b962442f8683e9eeafaed07ff12c27189f8c9338eed5d987", "format": 1 }, { "name": "plugins/modules/node_promotion.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "99ec57d08a5609872dda46df7a131b37f5a13f4cc1e8bd60877c0bf1e1e61e9b", + "chksum_sha256": "ade67fb4d29e54ad812de160257e1e6cf1b4361a8053b3f26b10401713ef1e9d", "format": 1 }, { "name": "plugins/modules/tacacs_command_sets.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0320dc2599e63a64fc094b258b0d31b03a5461173df251d592239b62034cca06", + "chksum_sha256": "bb64dcd852e0d1a405a76a3cff22df02f32fde45dbc68d32506d5b8b84ef9809", "format": 1 }, { "name": "plugins/modules/pxgrid_service_register.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "592f8d9ed04c8b3052fab71ffdace5bbd8e877785b8f7a976a0ca06ae52cafa0", + "chksum_sha256": "c7946e09c79d17fb02f7517c5762758b2051fca4d241c4ad01ad2807db56facb", "format": 1 }, { "name": "plugins/modules/guest_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "303a13936efbc79fdb335fe060e914b7642270bcab224de2408bb4491866a943", + "chksum_sha256": "0ae64abe95d719ce7d0aded42b1c0d0e7f3e830e38b4b0585d352ae1eb05d666", "format": 1 }, { "name": "plugins/modules/network_device_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0a6ae9cae466b24c6f89ed26beb98b96ae23c2006fa392fae57b35d8d21a7064", + "chksum_sha256": "0edec77c1e46da322a8d5de6cd0429a0059acc2de5e756a7757be0f147fe18a1", "format": 1 }, { "name": "plugins/modules/tacacs_external_servers.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6a2d34d1340291d32d7d0a75ffc349a9f373fea318f798577f1a9bc18af30459", + "chksum_sha256": "fc2de64477b87716e13470d866ec2c41a53c5a95f966c5bbfc12da00b0c13194", "format": 1 }, { "name": "plugins/modules/proxy_connection_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ee97d1c9e53a778ed5d7016a15e2476aa7be7dbb5881a9528a37434398a4ee2", + "chksum_sha256": "6153d1cc26151c5acf6d9d121bb65fe3a047a379dfa6cb7ed49974d1b1646004", "format": 1 }, { "name": "plugins/modules/pan_ha.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e88ddf214d69522d4fa0f339857a5edf2645c642dfcf70985955d2f153bd0434", + "chksum_sha256": "41f7626509003fd1adaccc7ccfa392df113dbad87e90211db2b3f80ad7d22658", "format": 1 }, { "name": "plugins/modules/system_certificate_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0879141fb1e747d2396e75a53c6b7578ee0313f96d3ec03da506f729f026b400", + "chksum_sha256": "62cb6cef5698eec7f39c6aa106c4e7c2b0226232734e8626f32f6e3755f9cc69", "format": 1 }, { "name": "plugins/modules/telemetry_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4e1e94af427bc360c5e2d7ab1b0318ff36e1330ae3e7a68ff15027798df198da", + "chksum_sha256": "6b9b60bb368f47aa1abfa9d040e2bb1174c51a9303dde2881f2d643dceeb2172", + "format": 1 + }, + { + "name": "plugins/modules/endpoints_device_type_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "fa452ad53d40728d4821dc3d7e7f2c24ce9c32d4e41c4b66c7ed869af6e0b25a", "format": 1 }, { "name": "plugins/modules/sg_mapping_deploy_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c9ffae7055a016b677ee64586fce1fba74e5cdeac39d2356c3c19b71d0615add", + "chksum_sha256": "698841e082f029b371f43411c3c5ce196c09e64f4413dba4ac3db993f56c7489", "format": 1 }, { "name": "plugins/modules/endpoint.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d3ca520ea3b391e222f10e3db2066dcc8aba9225fed6a6ed4cac9029dc5c83f0", + "chksum_sha256": "11dbbccd4f995ebb6b09d5eaef1d565eec061734e3ebb60bbd81d980a8cc0f2e", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell_clear_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "37c4a01ba9712458b187d4f7a2ebc8c1abafc59d35e46a821fe3c8289634ee34", + "chksum_sha256": "a41061d183bb654b00eceffefc6c4c91d8949732bdafd0bd45ec3841ee63392c", "format": 1 }, { "name": "plugins/modules/endpoint_deregister.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a2ddca60a7917b948f22ff4b7c3e34ddc7230afa3bc2de39316461c83242463a", + "chksum_sha256": "fe9196cc2b02bad3ffc222e9d44485fb17bebe814e030f405196c8e1fec84b1c", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_bulk_create.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bebc8b569009b309ea24cc21abdda066b0fe00e8c1b418bd59a133366ce522f3", "format": 1 }, { "name": "plugins/modules/node_group_node_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d0fc32454bf5e66f351919851ff14bae266323f9271e814b696fd41209f6b54d", + "chksum_sha256": "1afe95cdb82090c56c6f52ffbb2ea7159711c8c5bb73489a6ef52704691eed91", "format": 1 }, { "name": "plugins/modules/system_config_version_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "85c283de9723c7cc0471b7deb9df5cc7619440ee0f864ce7b403e1b78541c7e8", + "chksum_sha256": "a9f125988d1f770b5829ab988f2a7864474f3d0e0cd126b59b22eeeac61a9bc3", "format": 1 }, { "name": "plugins/modules/downloadable_acl.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "88aebabd41e114775ba25632aa9d34fc806593b841dfaef2c6872ff44a473d53", + "chksum_sha256": "ad3a3a84a5627770470c6d77ed6030f44e62452f983e4223dd6530a4a13fac4f", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_certificates_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f45520bba2660390137b24b1e82305bfdc33e96c9b6b4ce35905d621a8f8343c", "format": 1 }, { "name": "plugins/modules/csr_generate_intermediate_ca.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7043f73b25c85cec1b4c8871e4672ded7582652a405fa17c555af3f7a1fe0467", + "chksum_sha256": "2bb1c0e311a1e5b4d580683d425aeab08dce29ea3bb4749646833b2888f5dee0", "format": 1 }, { "name": "plugins/modules/guest_ssid_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "df41e0151e33bbabaddc14dcb1ae54921f33897ca0725134d80e56622e36d6e9", + "chksum_sha256": "b4eccdf2b434bf47787742e45f0c4cbc807b3c3c739c9c7ae68c80ed7b01ecb1", "format": 1 }, { "name": "plugins/modules/anc_endpoint_clear.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eedc32e574d15d50f354af4ce5bb827a15d460ac00ebd605896edff86d9a41af", + "chksum_sha256": "1e3b73a1240c6e580ac72778b70553e8d6a98a9ca297fa92af51f53ccd70de2e", "format": 1 }, { "name": "plugins/modules/sxp_connections_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "84e10a79b7ddd984af08aea91e7c67097dc2e0ff25e17a76fb9da3846c7b88b7", + "chksum_sha256": "154a49cb51f8a09a5cd08cf1df5b38858d932460719758eb82f9164b7edce4df", "format": 1 }, { "name": "plugins/modules/filter_policy_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5a4ee69d83504f63cb90cdede8343dfb6b6f123e104b3f3081ccb4de0b0aca10", + "chksum_sha256": "f9f8f83f039b06ae6e03409a3a4d83adc807a1399b168a6e19c9d6e3f115fe3f", "format": 1 }, { "name": "plugins/modules/px_grid_node_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e3174d034610bcbb566c84d5bdc9516bb2d645dd4dcd4da9b5a3b7e18647c2bf", + "chksum_sha256": "66daecd4ad243196a5274019d2dc02dfb53e876085549631bd7fdce5eb247796", + "format": 1 + }, + { + "name": "plugins/modules/endpoints_task.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f62777075ffe95cb823f74da23db8b052135c11c14b16985b7ee2bf752628021", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_delete_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "04ea6994df8a2ec6c1e7bd8da578a79261a841d5cff24d681508e8ea85f0d9b4", "format": 1 }, { "name": "plugins/modules/internal_user.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "decac83ce362739183afe6784a3fcb60598ed04b5e27395b5dbf000a84d6dd08", + "chksum_sha256": "1e07cd9ce2095ac196809469fb73b46c94af045f2f30f3026d4dab5e40ba0d8d", "format": 1 }, { "name": "plugins/modules/licensing_tier_state_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "61a3cb27c81ddd2b24e850d7f1a06d5f7aa4501311bdb0aa394e8a1657bc1d39", + "chksum_sha256": "23f58ed59638757b96d02a5dbc8faf3214ffb40a65e008b6e8ff1c2648271d6b", "format": 1 }, { "name": "plugins/modules/anc_policy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd48b6e6fa1adb5142c672481943c4595fbf0a7c19b685a02a34ba71346b1eac", + "chksum_sha256": "9627e20f72250a89828dad08ad946c8a4e5f1c760296acd9ae5f0de74d358112", "format": 1 }, { "name": "plugins/modules/device_administration_global_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "37f11866c9db5c493a42bf69b755bf6a75b0ebb9f1446a7e1cf1dc68ba24cd88", + "chksum_sha256": "9f6a9fc73b61c19157be399eeb2bec332e158ceebb9d1588722e4bd37cde4ebd", "format": 1 }, { "name": "plugins/modules/sgt_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0314620f736cd3b52e5e0b0daa6cee1c5a4b81f4b4750db1014e15428ed7ff93", + "chksum_sha256": "5439ff5759bd302ae19e73e0f6e611b71051ea74ca4c72b750a213f2c6933e0a", "format": 1 }, { "name": "plugins/modules/certificate_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "854360af02395589593d7bcc70860f21668748ff4be0584b30c10e64fa3e3e8e", + "chksum_sha256": "d7d66b0498a474510833d77f49d9e7bf6be14909093da183a735960a12738183", "format": 1 }, { "name": "plugins/modules/sg_acl_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "85248ccb3dfa12c2d39bc9229b8330d38a0e20ed302adbd2e98e985909ea5204", + "chksum_sha256": "078bcfbb6f2f6d7bf8197279c72e94f3af8696e32a7195c05a474cd7a949f5bc", "format": 1 }, { "name": "plugins/modules/patch_rollback.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3233069812fd1b2216d3028928cb27cdebcb0967a8548d4f00fcc8e69a75ce98", + "chksum_sha256": "fe1934dcc5fea2aaa7aae7ad1884744e35a570775f244bcefbef302111d325f4", "format": 1 }, { "name": "plugins/modules/anc_policy_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7436d0ef8ddf89f89c57783f432e793b3cc1e513ecf99d65f6eb16bead437643", + "chksum_sha256": "7f9457f519054ca9556db9ad6e984eb42a710761822f8b8e4b819173f65b9411", "format": 1 }, { "name": "plugins/modules/dataconnect_settings_password_expiry.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c66810eeecb2a946475a1bd433e0c281e060d2214b343d5feea2eb8a7879b14d", + "chksum_sha256": "1d1390e1432b724568ee09e7744e38afc7dfa47f6042a18f395197ba5d4c6318", "format": 1 }, { "name": "plugins/modules/pxgrid_node_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b06a5996f311f83bcd5dec8223fc1c7e2caf3ee1de058211280abf9b7b05ebc1", + "chksum_sha256": "c0ab1e02f95ed44271e1009db465105581fd94b8bb92a5df43cc4210831b47d0", "format": 1 }, { "name": "plugins/modules/network_access_dictionary_attributes_authorization_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3b627f20f6bf439ff07b4e4c164ba9de4d56f6f9f0718aa8a1e207e5107205de", - "format": 1 - }, - { - "name": "plugins/modules/connector_config_info.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "1b02dee83a5885f217e8b6f3eb36038c9b7ae92483e220d725878f580d8c4199", + "chksum_sha256": "5710b9404639e48ca8cd05dc5d81cd588678dea3b51e6cc829e34863720e8ad7", "format": 1 }, { "name": "plugins/modules/guest_user_reset_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "edd84d13bd4585b21bf8f2d3f22618a68f9a7382ff894375d55edae29276aea8", + "chksum_sha256": "bf6dbeb3cbc04b47d5dfb127aaf86f138abb8ad344bc35e5494a37d2f8c6f64c", "format": 1 }, { "name": "plugins/modules/network_access_authorization_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c6c4c6eb914b018d631c7d8c2554d25dad66358fd4fcb7bea10e5aacf2afb04b", + "chksum_sha256": "274065fcf90dce57eaf9025477aa54cd21e7cc7b7163e9db52ca3bd2264658b7", "format": 1 }, { "name": "plugins/modules/mnt_session_active_count_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "51d442b3b9d20113be6251325fd453aaf74da8ad9a687b8b5071314aa504ef64", + "chksum_sha256": "c983ccc98d202d3f84abe966f8fa2cf59baa61ea2fcb0b0fe7110d99eaa77c52", "format": 1 }, { "name": "plugins/modules/sxp_vpns_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d3f85081ffd0db6815dd8c437fa1804339a497695002f7a3dd38b4a739cf7d8c", + "chksum_sha256": "2e8d963b544399e17ca096d7842b8749c6d3ea9aace15ff51298ed32612b6dcf", "format": 1 }, { "name": "plugins/modules/portal_global_setting.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b54fc63fffdf5b95cb8d4b96b4f2eccc8342028595c39297387f4352c3b9b2ae", + "chksum_sha256": "8b21f1cbd93547ae7c358ea7b4e1109d2b1318aad2d05e88ce6926dec2933457", "format": 1 }, { "name": "plugins/modules/device_administration_conditions_for_authorization_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac0ac34579d1eb813b436f24e5ff6301aa4892012fce09aeb839e7c6303bda07", + "chksum_sha256": "199c276cccce5da361a55e273549da02addcf676e88d53f7e9f5e4b370a1cd74", "format": 1 }, { "name": "plugins/modules/portal_theme.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eac74a6eab83f7eea6b4dcb79218495d9be828c5055b952d320b95abefd9f903", + "chksum_sha256": "c49940e13f7c1927949eec869061b281aecbb90af05cc564d2f614b7dfddace8", + "format": 1 + }, + { + "name": "plugins/modules/px_grid_direct.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "58071a3dae9cb47d49b8c1f9ac9f8665403437295dcb580c22998c58f69666b5", + "format": 1 + }, + { + "name": "plugins/modules/user_equipment_imei_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "03d559ed5b0b7f768f245fa234c0014ff24107783162604dc1fab1268fc57633", "format": 1 }, { "name": "plugins/modules/portal_global_setting_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e832880b77d196074d3db6dd2ecbd5d8a113258054b3fd0c6f1db4e8d80e6549", + "chksum_sha256": "5f54932adce8f3deb6a68858e1d21fbddbd1da3801b684332c743346e62de1e6", + "format": 1 + }, + { + "name": "plugins/modules/active_directories_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "7cd476a7ce0e88aa3673d6baa05f12e37d29c32b43171e250b302b8bb2962f6c", "format": 1 }, { "name": "plugins/modules/sg_mapping_group_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fae0b02d5163f8ebbed8648af13143912a5ab3863f4dc432a8bd71b77609a4c0", + "chksum_sha256": "e41b92725029498d87b3a736a69874115ac87a8e69c4bff9e472eeb2b065c300", + "format": 1 + }, + { + "name": "plugins/modules/reservation_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "9afff59bb22738968f2b5419b5e16f6ffd31136948ab659b9693ef1fc8e85a52", "format": 1 }, { "name": "plugins/modules/backup_restore.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9adc139c28a598cd729c8cfe383aad08619712a6b33caf6f21802bf62bdea82b", + "chksum_sha256": "162bf5d90e0b8a47d128d39655fddef6e47c0a67f312bb1fb54b5c2a72e01ad4", "format": 1 }, { "name": "plugins/modules/node_group_node_delete.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d7d21f4ad4493d9a1e84787d34632bf37c55084f6f79f5f084fb97899e255dc2", + "chksum_sha256": "d0a5895e937ad2362670e5051873f203bb6001edbebaa0148be8c58710070ff9", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "41efb0fe8511c5f594cf292f3396ce8a6706a026931adee5495b2f0c043707e7", "format": 1 }, { "name": "plugins/modules/sg_mapping_group_deploy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fa70dd51e24afa87b6842eb88077010e0a01196ebf2855813866568d6179538c", + "chksum_sha256": "7d8a717efb167e3c4e07dd87068a9609aaa2b791bdaa00da4f28bd13495d4ebd", "format": 1 }, { "name": "plugins/modules/allowed_protocols.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5fd8030b06461a911f78269b93e6ab1eb16e486701e9f3d0b4e163965ef40a14", + "chksum_sha256": "a774c63a75d9cdad6dff3cb0e7ef1b45756487935712cf7d3fe294be40614b05", + "format": 1 + }, + { + "name": "plugins/modules/user_equipment_bulk.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "faf468a9ba4250f358da8e2efb8809ffbb42d3a26594b7f83092c6c396c770dc", "format": 1 }, { "name": "plugins/modules/active_directory_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "42b2ceb4e49afe80bc417544029f550291558f42198b49addcac44946c7a617b", + "chksum_sha256": "65abf12b8b5aa913248acf21b4c5956272c2dbcfff5bacb9708e48bb2fc330f0", "format": 1 }, { "name": "plugins/modules/sg_mapping.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e6a62e48d67d99e02e6846a1319c945328d01bf66c3f6885b7812865e46b0410", + "chksum_sha256": "b22a46c81fdf93748b85214f51b7cfa40de1f3ecd435e081e2d6e14bc72a09a8", "format": 1 }, { "name": "plugins/modules/sxp_local_bindings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "135b08abf5d4b53db32136e5d6990b28fe93c49c733e7c304102b387f2135f8e", + "chksum_sha256": "53cb63f49ec5a0f4dd44ecac2bfbf746eba2401bad659605639bef29a2884199", "format": 1 }, { "name": "plugins/modules/support_bundle_download.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "31a5652b2de6d2c210928246dcce7c889ccc53b66514527fc5572e062724bbd7", + "chksum_sha256": "2774f2de4503b6bcab4305c3e5a516b35716feefc4add487508ffa4e3ccb2190", "format": 1 }, { "name": "plugins/modules/self_registered_portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1f89c65ddda5385838c739f0bf1225ded48be6c2011b4ea0d718689ca0378f7f", + "chksum_sha256": "0966778adaa9fbc1e3e74fbd1d38647a6e4d60c151c521aac23664b63dfbeba5", "format": 1 }, { "name": "plugins/modules/node_secondary_to_primary.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "65ae947ee89f1b01906e504a9f6d50db8d646148d31b810da2dcac54badf90d3", + "chksum_sha256": "b28f5ea00a64025165db7bdc367f4fb3f123b7404d14d8e1b8d1bf03599550e0", "format": 1 }, { "name": "plugins/modules/guest_type_sms.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2b1ce1e32ec0486a3aaed2e0110b432b58dd1409ceae1ec4686a00eff771114c", + "chksum_sha256": "4e11d0d8e4fd71fa865d107f6637823ca243aca3f26a05a39a0cf8f061382041", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_nbar_app.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "86d9bdc0255428795a81c20dd8b3228f482bb732fd72dc43dd8bbd47ed0095a2", "format": 1 }, { "name": "plugins/modules/sgt_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "39625699166c8a5ef6a7847951a338289995107068a507ff3fadfc3392f71395", + "chksum_sha256": "154c171586f4afd82cac58be3d768073d495e188d6fce5254fcb4ab2b22d34e3", "format": 1 }, { "name": "plugins/modules/mnt_session_by_ip_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "26cea499bea2703550f16836edc00bda73e43568883915ee84ea241cedfa0fbd", + "chksum_sha256": "4995c86579c61504bd8272876339dffb9ff0c324338eeec0f4ba548d6dfa22c6", "format": 1 }, { "name": "plugins/modules/sg_mapping_deploy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cfdc27f93b4de8e932c0a9fd64bcbb3f44fc5f7e68f91e8851718680af258860", + "chksum_sha256": "40b6bc68b93af9d4ebaacf51561eff389bee9e7b4d8858c5be3634039f3a31a4", "format": 1 }, { "name": "plugins/modules/csr_export_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c222e5e60eb643e121607ba219e39ed65ab2df91e2a93f252074a9bc736b7b4", + "chksum_sha256": "5e4a4633f605b9f223f3f695f9da62a7ad8126a0359e760149af9ff5b3097c30", "format": 1 }, { "name": "plugins/modules/trusted_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8122f76bf6346b714aa5503e3beaab91fb06a771ae82315fdbadf2f664883b38", + "chksum_sha256": "cbf379e97ca33e82daeef94fae3b530ce409182b104fa9d3676717976f003091", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "2458f522034753cb508adb909f2096882132d4fa3adfb4b97cbe79e99b4b8fe1", "format": 1 }, { "name": "plugins/modules/filter_policy.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "776fcd99f707be4bdeaf66bb0621bb9cb7295d249c135e0fc4c85e59f9361713", + "chksum_sha256": "41a49e10021768a5fce05582f39172c2959f4d0b871d215398e6311c57141009", "format": 1 }, { "name": "plugins/modules/network_access_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6963091d925e8f14277c0e017da5ba2923cac9a95588b9fd3bfa2f08884b42c8", + "chksum_sha256": "9bd7fe908892dc35bd81ac1aeac98e1ad62ec6eda0447d82b2c25a594f8b2ae3", "format": 1 }, { "name": "plugins/modules/pxgrid_endpoint_by_mac_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b43ba620feaecfc0443cd1c20a2955684aa22c777871c8bbb21529a1156fc5f4", + "chksum_sha256": "b313da9b510b593c63b867b02bd10734d41c2275673d9589bad6c53487e23978", "format": 1 }, { "name": "plugins/modules/radius_server_sequence.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4009b312701993ebb7547211501f4ce87fdbd347b022b439970b896e734ea10a", + "chksum_sha256": "13b454b89c568f95ee8d5905b6d754940c3ad4cfbba7d16e2fe247ca9c154179", "format": 1 }, { "name": "plugins/modules/device_administration_time_date_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "29850221d9e680f6ae463b47b2950c27d4c53151fef92029f6690065214ec6f0", + "chksum_sha256": "4b7fb9b154f277e72f1768ae668149720706fec1bc7375f53fe1ea62182eaa99", "format": 1 }, { "name": "plugins/modules/node_services_profiler_probe_config_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82d7d053ad481186e46a981eb1a1d48001c3a0f014633fe4c40dd9eaf0d5675e", + "chksum_sha256": "34b035684a2f3d92ebfefa1601af3081ee785c5d8e74d541be0b118af0718e91", "format": 1 }, { "name": "plugins/modules/pxgrid_sessions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d91b3a54f7cddeda8733304fc81554dcc007461196df950926d7bc3d26373e4b", + "chksum_sha256": "8a647d4bcfcf20417aa71c4b29f9888c425ae41276194472bd2bc835a6fc1105", "format": 1 }, { "name": "plugins/modules/allowed_protocols_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7abcb03fc3ff329d890f4d08a400362d5265a0197edb2531e650e810d6c7e0a", + "chksum_sha256": "24c126452f1f381d7f3a28557dd56322e719746e7f5a8fd7201b7aa3a1fc4efd", "format": 1 }, { "name": "plugins/modules/sg_acl.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b50d52db5a2d56665b884b52c233d1d9935df74258c8f4b74b019a8f4929ff4b", + "chksum_sha256": "808ed5919b8f422b5894968cbcc8cce4bc27a3aff23fdfdae049157d5043ee7e", "format": 1 }, { "name": "plugins/modules/network_access_time_date_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4e5e7b263490fd8129188741d92f478ef7a365133517bd43db464c448a4a68dc", + "chksum_sha256": "0ed5cc093b377beca13e2eab678f86ca8985ae76f7769eec69d88f6721329488", + "format": 1 + }, + { + "name": "plugins/modules/upgrade_stage_cancel.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "25aee6f4b815805c9673c470966c431f1503fdaada40ac0c47426bd763f24bae", "format": 1 }, { "name": "plugins/modules/mnt_session_posture_count_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e7ab7510580547456ab47e229b696b50e78fabc01df31ce3dc0a71c32b40e1fa", + "chksum_sha256": "112fa103d2ea1fe24877c6a0ce9d3dc263213406ebf7b8645b8ec41df942a619", "format": 1 }, { "name": "plugins/modules/sg_to_vn_to_vlan_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "16634c15df9a30b3297ab08b36c92ce03ae44fd11fc34ab2e77913adbd142fb0", + "chksum_sha256": "813fe52df9bd58217c8e667152da13937607ff2f0e02ea18d539a5738b928401", "format": 1 }, { "name": "plugins/modules/profiler_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "928d672be6b828d2a83c3c49dbaa21542255c1a59d7186ce3640996fc2e11a77", + "chksum_sha256": "82d62e37b79dcac8afa4b9af054e817d6c3d2009c8152188f1a500480c5d75d8", "format": 1 }, { "name": "plugins/modules/node_services_sxp_interfaces_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "08f1727ebf79110d851dbe1f4e3e676bcaf579a8a7d4d0a157039a7949e26f81", + "chksum_sha256": "947afc88468293445e98d3aa91958336fa498b1a16c8f1e2d53bcec2e83b781d", + "format": 1 + }, + { + "name": "plugins/modules/duo_mfa.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "da1a50463ccd9255c68aedc7169045141bc3bdf6f63e4399c091aef6db2b58d0", "format": 1 }, { "name": "plugins/modules/active_directory.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "60f8354f4f55feea9a38372f83d86c4ec2ac29f63a67a2c402b68f7929addb88", + "chksum_sha256": "a45b0d94114f744bb1b4ae44ad779bc631026cd8f0b3f8c62859128973f971eb", "format": 1 }, { "name": "plugins/modules/identity_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0ed4883cb6c36f789f4c5751c23ccb42bfa59d5a958c0934f136384f246b4b58", + "chksum_sha256": "d0645f4d91ac9f629a83b9f2d92765cfa67c10ed4d41986865ab272f18305d55", "format": 1 }, { "name": "plugins/modules/mnt_session_auth_list_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "067df7408dadca42dc20f52efac9948264c57c77faf27b726b57847efdb7adb1", + "chksum_sha256": "c70ed08511723bac837ff3e978510336046aa04e6c5fac204de2d2dfd8984d12", "format": 1 }, { "name": "plugins/modules/subscriber_bulk.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "70a3ef2f608019f7f0f8c8c34fec3e5249d6b46fea8adc8191ec47e10c86c595", + "chksum_sha256": "7cc827fafa232955686c23a39cf1348348602c57d57f1ee0be033d46bbf29689", "format": 1 }, { "name": "plugins/modules/patch_install.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f99520bf466f21469bbd60d167fa894a875b31aa5ad52e5139a45db3a1ce828c", + "chksum_sha256": "89a43faa76fc15312885613e03e7ad889f6107661237ff28fe237eb17fc01d35", "format": 1 }, { "name": "plugins/modules/network_device_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "934c9fefdd7d0e684791455f315f78d2bc5e82cde15a3c72ca5c8fb60c8ec082", + "chksum_sha256": "fc115ae9180680c17db4179df561dbee06db2f76970541193052c574ddab2050", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_bulk_delete.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "88b83e6178140fe46d0e41ba3c526be032e1aa7169f61fb8f7b80fcbc28e62fc", "format": 1 }, { "name": "plugins/modules/network_access_authentication_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "056e3ab2968b328dbb33ba1f39a6e1f26c824351774e6140581e5bdd8ab3b6f2", + "chksum_sha256": "629f786f94a4e7ac58f828445a68ba3c5faf8e3eab5c5f3fc08b7d22ddfd1724", "format": 1 }, { "name": "plugins/modules/device_administration_authorization_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e5b3ed079b2b2648aa3ed9667df214f21a123b0cea278706b1d2b55903653dc1", + "chksum_sha256": "da60260838d8be160645a5609bd7ed04264e690e395ff2aee68d3fa502f520f2", + "format": 1 + }, + { + "name": "plugins/modules/ad_groups_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "af101c6a5edb345750db2c12bb91dbdd8e839d22b246e659aafcd2121f83f76e", "format": 1 }, { "name": "plugins/modules/tacacs_command_sets_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6078960ad6d221b7d90b7d1c3f7b42194e4b150d4190288242ea2af6445573f5", + "chksum_sha256": "e3580709711eaedd6a08a810c7378cf0053775e6d93d387cc0103166f485c2bc", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_bulk_update.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ab45a8df0632c28782c563a42436e9ff28ddc5cfbbaeab11c91c3eccc07bb189", "format": 1 }, { "name": "plugins/modules/support_bundle_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d1676d8c7b2e873fe2e9a1cc71177d8ad46334e5030b245f9a961f3fe235f3b1", + "chksum_sha256": "0eff8e72d911c986dfa81a985ab5deef7ce0d5deb01a30bbbcd9dbd45c06a330", "format": 1 }, { "name": "plugins/modules/active_directory_leave_domain.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9c172684a67855d31bb015f9791e44a37aa7c6958200c5ca92dd30ca12b49975", + "chksum_sha256": "0e3a7e3cea68e096e3b4dc5260c66c82588b3019cd822092a2c9e97ff59efb26", "format": 1 }, { "name": "plugins/modules/endpoint_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "52663b0e052d8e99c6d88563115c3557a1f549a377b1703107a0bc878378fa8d", + "chksum_sha256": "d7f57b3e39f34d4d84925f29197a90971f68e9289158282ab51e89e6c3f6a8e1", "format": 1 }, { "name": "plugins/modules/guest_user_change_sponsor_password.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8ce2b5a24d0096e497b6130fbb03f0c9ec813a53605d6c921474aa9e9b67ca12", + "chksum_sha256": "3dfcc50bbd11c6db1bba70dee2d33b455d7a1e1b3321a2365429f4b4246db8a5", "format": 1 }, { "name": "plugins/modules/network_access_authentication_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aed94f53f09a5f7d861d4482bece10dd484c4362a6a0f02829315f0fd1c72818", + "chksum_sha256": "7ecf4c7a911a73352738dc79cc67e9a67bf7d1659fe3ff07b139f515ca690dae", "format": 1 }, { "name": "plugins/modules/downloadable_acl_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "140ba57c9d7b7f4f0a5b0ea1a51fa0008bc921d6513b0ab39a7622daa43771df", + "chksum_sha256": "d05cbeb7a96328f37cb361de8cdcbb681ffed30a18effeedbd295b8e21fcde5b", "format": 1 }, { "name": "plugins/modules/device_administration_conditions_for_authentication_rule_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d480b64169c3027e837a91cb230f565246041fb282d7229f13d364f04118f01c", + "chksum_sha256": "e36f0b0472155b59c099b8ef1d73bb882b24f8bba57880770e4fd863f45521b8", + "format": 1 + }, + { + "name": "plugins/modules/endpoints_bulk.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "860e72bf418f788c78cb23501e6cabb8813d722478d4f5bd16c7bb2048fa3de9", "format": 1 }, { "name": "plugins/modules/pxgrid_account_activate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c739ef48014d48c8f8c13d6c6508a4c4468083ba1c36d14548175c67ddac24f7", + "chksum_sha256": "908e306db423b3b5a8985b4ade72373be9121b54b0344ad05d9a34fd5dfc748c", "format": 1 }, { "name": "plugins/modules/sg_to_vn_to_vlan.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b0be26d7e8114496c0975235ca07110a05e4b1ec928a646f8949b5790f2bd3bf", + "chksum_sha256": "89102900a85ec1b17b8177cbd125f0e34db1801e845d4e783fe6607a42d2a6b2", "format": 1 }, { "name": "plugins/modules/network_device_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "de59f2824111470884b277f2adee0b3192623514426558fed5a640ad533bed4f", + "chksum_sha256": "6adb2a5daa1a78d66caf7c852cbeee25efb0dc3c5a361e8e7f2484092f122b0f", "format": 1 }, { "name": "plugins/modules/device_administration_authentication_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aad476fd584a0cbbb9e5da60c648e07d19384e111863f323d14ba3915750b844", + "chksum_sha256": "c8c7f2285f66e80e4605b9b8dc27dd8e3769489bbaf7259996a11d6a71fcafc6", "format": 1 }, { "name": "plugins/modules/csr_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c8cd0a19db8c2ff90701470eaec2c40eac41fd7e6a1890802aa743e4adaf8317", + "chksum_sha256": "4bd13cbadc4b4249d4be9ca09fbf6973a094d3357b2ad717e463b37ecf860f8e", "format": 1 }, { "name": "plugins/modules/authorization_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7f7c133399f06a9a77d4d855195333a9ad9f482c91b1ed12f7715c477316b35f", + "chksum_sha256": "4310b18a46ec20409692387ee47deb19d02f9945b07e703d962398a0cdadd55d", "format": 1 }, { "name": "plugins/modules/sgt.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "11990c1d407ad61e77dafa8ddcc1a173c8039a2abb41f30189f0dde0c54ba6ec", + "chksum_sha256": "60059b47046583ac98e5f1c417c9e2b8ca763faee3a93a7cfd67ddf37ea16bea", "format": 1 }, { "name": "plugins/modules/patch_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a0b11e871bfa667c3c162c3e685d0abef3c0ec7bf844bfe2274278dee8123698", + "chksum_sha256": "6e3cb55b3a7f098d01e9635ad999f51ce108953e9a4903aa644f381f7d40238e", "format": 1 }, { "name": "plugins/modules/device_administration_service_names_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "fd08d6d64c3a1e845cf0c4f12f6965d9c20addec0fc30c3240877e9ddcb98fbf", + "chksum_sha256": "1c9e2766826d22475d0c0138f9d41daa4e2a1ef7b0e9e9d787ee27533d68166f", "format": 1 }, { "name": "plugins/modules/mnt_session_delete_all.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5efd226d77f42f8b8aba5dd2384ff129961c2b9ed6ecded473725d29245779a9", + "chksum_sha256": "8664ac554a3ac412f362b2fb0a59f6ea025daafbf73d6f795cca018c9b039bc8", "format": 1 }, { "name": "plugins/modules/px_grid_settings_auto_approve.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0143c9da5cc4178d9960b3fc8ac7e683e53573eb8e08a506b464fac48aa77c21", - "format": 1 - }, - { - "name": "plugins/modules/connector_config.py", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "9e44ac4997b4bdcb9567bdeba890e619a3e794801a89eca2bb4ac71b81ab9206", + "chksum_sha256": "61a09f7433f3103661e06fceae9216776f9dddfb31f3e5749dc4d0fd7f8c51ba", "format": 1 }, { "name": "plugins/modules/endpoint_group.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac2ee91691d27021b47ea49c39b34865b50917d0a30750d651db0341139d3928", + "chksum_sha256": "289b6fccd57a1e5e0da0e505f5a1c49418ee4bc702d4eaa780f7b366771e551b", "format": 1 }, { "name": "plugins/modules/network_access_authorization_rules.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "81f196ad4a4027c1a2d9514d92b5459ac2afe68292e5fa28747ab0aab23a932a", + "chksum_sha256": "873645ca49f94de1881101924d2b5c4c6ac484167844948b3488076ffe89deb0", "format": 1 }, { "name": "plugins/modules/mnt_athentication_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "135f75ff102f2cfc50870846320bec461beb3bfda1f0a68acf2b856cbea4ce91", + "chksum_sha256": "08d65ac247f4a004cc821cf386599bf7c5466b702cd571ae9dcdce411c6ca6af", "format": 1 }, { "name": "plugins/modules/dataconnect_settings_status.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9e785130c64b7bfda6ec5d0d5916ff1894dfec94406f07c1ec99e82118bdfc04", + "chksum_sha256": "0de1db8238fdebca377a515f9c74863366a686ad375f9b369d810b431563374b", "format": 1 }, { "name": "plugins/modules/device_administration_conditions.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "affd4a8462b694bc6073efa52ec4aee7153864b5f9d9a4c2d43c978d5e11d639", + "chksum_sha256": "83dc201d68cf592977aa0d0e5727ab8d68478a18f1e072fe3b76c4725dfb2fb8", "format": 1 }, { "name": "plugins/modules/sxp_vpns.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "886f4337df0e82da7c94965276eed8638535fa4a3585b97c21afb8f386110963", + "chksum_sha256": "a9315fdfc053e50601672bf287c0c41e169c4bd20ff0ad863c20c87977a7007a", + "format": 1 + }, + { + "name": "plugins/modules/endpoints_bulk_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "0de420b05150ef416579f913b6f5bc18d7c83d19b41a0c4deed4ec45c251d79b", "format": 1 }, { "name": "plugins/modules/device_administration_local_exception_rules_reset_hitcount.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8b5a1a060008f3d62d51a6461b940471fccf67fd1214f665684d8c131a277ad2", + "chksum_sha256": "a1f1f8034f8bfc16b0ae916af3f5a66366cc793dd4e1807b8843b4d2ca2d0807", "format": 1 }, { "name": "plugins/modules/resource_version_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8cfbf5996672a5cceee6c0cbd8b3855808ddc8982304bc05b87157d0ae8972a4", + "chksum_sha256": "1d4a553c8c18eada55b08c9b204032750f6e0bc82ac1647d4f132e386d60145d", "format": 1 }, { "name": "plugins/modules/renew_certificate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9138ed3377ab770a024a0565d6d56806e31438a3e00bc4ec8c1d61c598424c54", + "chksum_sha256": "62cdce4552ad2051e218c8efa3f161b5f658e91c6a05caa089ec5fe888fe711f", "format": 1 }, { "name": "plugins/modules/endpoint_release_rejected_endpoint.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "76446a579f2f0c2a848d537db6a18d30d9a2e423604a60955118e0607dd5d002", + "chksum_sha256": "f01d5bfe7bc818fe9339842e73d274127a128920fc3d1b4c65b4d4e2e13406b8", "format": 1 }, { "name": "plugins/modules/guest_user_reinstate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4c59aa7e1d3108236a62c497bb5ccb392f92ac2b39ea313a86ad738aedbebccf", + "chksum_sha256": "44de430a1f7e3454c1ee9fb355469df375e2d7ffef1558aa26936bbe23864f9b", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell_clone.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5c76778fb1db86873357e41b7111e0ffc67d5145c1a647cb1ebe407be2d7fd13", + "chksum_sha256": "e17bc49d6935c4fc7d92f913491e8f4ae3f48d3e2f1bb56ea4111bcf30a2b941", "format": 1 }, { "name": "plugins/modules/my_device_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc58e7e8538e3bbc28dbabdf8f8a1de1d5ddc63ad6353668fd6bbbde18ad811e", + "chksum_sha256": "f7c0d067aa02c7fff1d9e785e300327069168bbf96dd4015e19b2251d856e5fc", "format": 1 }, { "name": "plugins/modules/network_access_conditions_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0dc6bf0621f8e0edbde010726f7adb641d9e9f544d7c2a7a71b58a2196a8b12b", + "chksum_sha256": "486deb6ffc40ba99e12e99aab8aa9a8b38d60840fe17275b2d8fdf4463e5ca86", "format": 1 }, { "name": "plugins/modules/pan_ha_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2a5e12e67ea4100d862876a1a20c1d7a8bc4834a34c98f14d28ebd41fc233dc9", + "chksum_sha256": "53a19f839af2976e7be521b07727ea56b0c008a1c08959dc512d9e4e4ea0dedd", "format": 1 }, { "name": "plugins/modules/pxgrid_user_group_by_username_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b7173618a4c649ba56ca8878371c596350964dc5cf80da2e564ba0846e974c70", + "chksum_sha256": "e578d89683ff31d34b10007dee89299f586adb0b61a9623685c4f86a78367d31", "format": 1 }, { "name": "plugins/modules/node_deployment.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e5c430ca6107d1a0c4e473bc2ec7ee2afd9fcd0d3fd1e532496fe10e2ea967aa", + "chksum_sha256": "4d7ad6ec3bf9eb91e0379d867f0328ae9de14cd3ed61cc7f559153cf411c2184", + "format": 1 + }, + { + "name": "plugins/modules/custom_attributes_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ed8a7c39402fff480d892341d61953722cace5684f2603932a03032a75309c49", "format": 1 }, { "name": "plugins/modules/certificate_template_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "53aac7e9e6cac4e68448da17e9e1492842685deb6ff3f864af87d583093b7912", + "chksum_sha256": "a79b2a37e5f5761849f8d3741fe58f4f6f66daf097aec9458a65584056ce9888", "format": 1 }, { "name": "plugins/modules/tacacs_profile_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "3e504ef810dd3090fbcd437cebbfc7f0e00e77b165400d8a8e4bb7323221d12b", + "chksum_sha256": "7876b60b2a86d549d50f4f6f8dea6a6682c1933b5269922aab0d95dfc6ede5ac", "format": 1 }, { "name": "plugins/modules/sg_mapping_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2086f5e45421eef6a31fef68f51d695f766730072a9b0cb9ee72b6b8ba5bc921", + "chksum_sha256": "6ffe04dbe967694b452458e6982ad56d7b36ba0c55694a2030928762dd09f36f", "format": 1 }, { "name": "plugins/modules/sxp_connections_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d4c68238dec1af718271b3d5306ea000197c632d4821032c9a7c8e55b3770d46", + "chksum_sha256": "657554b981fb050e3cc50e0603a5f87a71a189cbb335fe2de29973316d3da69d", "format": 1 }, { "name": "plugins/modules/pxgrid_service_unregister.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac3fb44bf0da59bab2563ecf232edfeb9f1ddab9776733d1790859c292d4d09c", + "chksum_sha256": "b009b4673700833963fbf8570e5919fa074782623f447e57b64c64d4a97a1ed7", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_disable_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "bc913cd5ae80a7d16051deb5eb147f506cd2738507f6988b3d0e32eeb982acc1", "format": 1 }, { "name": "plugins/modules/byod_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "850da29937bdddd65d1537819a6bb1b4a24dbbe9a22a656a6ffcf7dcb16b6c1c", + "chksum_sha256": "c830029d5268c39c9a2d3649921ed5fd6a6059babc6090809db08eb89be33b72", "format": 1 }, { "name": "plugins/modules/sg_to_vn_to_vlan_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5149b51f0543e13cd156db9f7a5e348d9e2fb93fb8f667cb7b0dbc51b5e40681", + "chksum_sha256": "b6ad84675b206cdbdbc65bae8e0242a153cc9a9a90da1a3d53985d80ea70a0e9", "format": 1 }, { "name": "plugins/modules/active_directory_trusted_domains_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "44e49c7bc5161cba9d58a3369c1280603e9f930f4ce43d89b3b2134c2300f780", + "chksum_sha256": "9d8701debfa107762975d5a8881fad116d36046b5569031a84858e02e110e35a", "format": 1 }, { "name": "plugins/modules/pxgrid_authorization.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "716cbb731974d0a0ccf91ce064d71def0da5c4d69d0b676d7e44b5c014408eb6", + "chksum_sha256": "141c2080d7ea9791b037a8d7953be4f4f6321fdda350ed5030d915b2ce894702", + "format": 1 + }, + { + "name": "plugins/modules/stop_replication.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1f5dfc3fc4fb7474e27ec35821c2944b6c5608715b56d198252e8295f84a19e4", "format": 1 }, { "name": "plugins/modules/licensing_smart_state_create.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "13c2bda14a972d7be86ef90bd61e0c8bd56f7374866f515859bbc003d2d5cdee", + "chksum_sha256": "98d0bef300b43583b1af4418b48d614b83910e2d92e94ac27a8d8791697fbeab", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5a365c7a7d2f0b706a63d649acb7807b8c58c06b2f61538c96e27894ac861832", + "chksum_sha256": "2bb63812013669463955c98f35d5b55eaa969cc7e31fa3ed49f3bddf7816a5fe", "format": 1 }, { "name": "plugins/modules/sg_mapping_deploy_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c082f7ba3c2356f15b80b7fd8b0ba8f25093b07815e8a33dea1703616a5127aa", + "chksum_sha256": "610ef30fd9f2dadc016c4740df59a6cfdc475386b6579d5812dd6256657526b8", "format": 1 }, { "name": "plugins/modules/sxp_vpns_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "961ef697ad94b8234c501b39c29b4c4cfeedeb506dd26c2deaccfa843f4561d9", + "chksum_sha256": "dd4d904a5bc2d994c6a7fd0ef92a34c30dc740219402541a8b1b09679f144e58", "format": 1 }, { "name": "plugins/modules/device_administration_command_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "abfd39aea65d01234aeb547e3b1116eb9e3cc2937fc6352699ec6368836f0c32", + "chksum_sha256": "f5db331d4c560369d12786a8e7ef1d7bcbaf3805a8e5c669a2b56836d44b140a", "format": 1 }, { "name": "plugins/modules/sg_mapping_group_deploy_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "20f33dc8990466d7672f50a8b0f7a20f2e20f144828bfc525c3db0454b5fd855", + "chksum_sha256": "b109c0c39a7ca9b03d5b64041b62b887f981ed4afa844b5e162777ffbe7d4588", "format": 1 }, { "name": "plugins/modules/repository.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0ffa9ec0cacc42ccf95c6220b57e34e6d63a3c9e563e3199b92b7a4ddbd58e7a", + "chksum_sha256": "c286131f037c126260b78bb5f48dfa794c5ead4631e42cc3de33e0b952ef6112", "format": 1 }, { "name": "plugins/modules/guest_user_suspend.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b79b5d16c3b66c3554577c2af772736f964e81bae3a5c4cce2233fb856f4396b", + "chksum_sha256": "84f74b62dee33422da832cac6884532ce6194d99bec29b23b1d0367f6390cfe9", "format": 1 }, { "name": "plugins/modules/network_access_local_exception_rules_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "51f3ca86580facf658cf1abec964895a4043a4e1f5d207a54f9623cdde7f3431", + "chksum_sha256": "17b0880fb5470e13d5da9db9c558ccdb90875216c91206cbdddbe6c99659c8aa", "format": 1 }, { "name": "plugins/modules/endpoint_group_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7fab9f7da635106f2a36d21ba7d1f6ac79693166f3453b50a4b9f4bb29b0bb38", + "chksum_sha256": "0d4eb16c5fe32c76045dc6c2c4d0927d001f36a782097fbf15f75a59265b121d", + "format": 1 + }, + { + "name": "plugins/modules/endpoints.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3ea2ff60c5e1f846bfa63070dfd1e9a449c958055a3b2002e654b4d71d511278", "format": 1 }, { "name": "plugins/modules/device_administration_dictionary_attributes_authorization_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "07cf2f446be9ca3f8ddec70f6fb4f1ea5996c3c021fbb12f342aa2e9a400fbdc", + "chksum_sha256": "e090a2ac42e7995103fac56420f3281a13dca77dfc5ae509b9303adb46b75722", "format": 1 }, { "name": "plugins/modules/transport_gateway_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "24ad7f493db1ce466405b348ee57cb7b97ad40f12810340c89f8612ac61e5d8e", + "chksum_sha256": "9bfc4e7c868384b24dfd2c537b8bd68acd74c30d0b69a05138366be29ea0a5e8", + "format": 1 + }, + { + "name": "plugins/modules/upgrade_stage_start.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "06b0b7527354070805cd2ead7e4bdf8dfecbbfc488f57beee4978f264bdda551", + "format": 1 + }, + { + "name": "plugins/modules/px_grid_direct_dictionary_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "e11f0b8aa737410fe3779d5879cafb13a1a104079a527b866f2f322fec1ac95d", "format": 1 }, { "name": "plugins/modules/backup_cancel.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "8b42e4d9b7f8dd07571306c1fae0cf89491307672d07b482f8d4b0355843d03b", + "chksum_sha256": "6d3be813dbdd206e996fc8d8ed6f0947cdb273d4c3540c7fdd08cc9cd379f598", "format": 1 }, { "name": "plugins/modules/system_certificate_export_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1c01f01b4a086d90244e0ba5ce9348133e88c31f430b01d5b54de5cc5b4b13d2", + "chksum_sha256": "ef5d39e7f834e73ab71f11b2ac325ceee52639c600f41906f0eda678ec25af46", "format": 1 }, { "name": "plugins/modules/guest_smtp_notification_settings.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0305e409cb1ebd535dc7eedeaf444ba65352b9a5cbb17668a2bb136495bac526", + "chksum_sha256": "5396a7f73d87aa41601c4019ff25b2ab485326379aaad8c0cdc35b9091458357", "format": 1 }, { "name": "plugins/modules/network_access_profiles_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "a3c11c1dc47edb236e5f5052c50d822cb84a2acaa2518089493c50b51deb8151", + "chksum_sha256": "1ae3960ffe058aadd1a0995b775a86cec5260cee92828b8f33b6efa8ac38a8a0", "format": 1 }, { "name": "plugins/modules/active_directory_add_groups.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "4e09e04050499f616733bdb2101d8addb5ac566a31c4b295763180e4430b5bb2", + "chksum_sha256": "2689b83d7644fcdbf544e6843230fc84761d9cc6ce186e7ede1f9e094753c670", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_enable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8b43a9dc8ef50f1636a2ef56b02d5a4fde8347a3c8a069b3a5af37b027a70806", "format": 1 }, { "name": "plugins/modules/mnt_session_active_list_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1eb5965437fdc4341e192c2ead750e303c95978af102fa36e592a7f19a73416d", + "chksum_sha256": "b95abf9535f91d098e50684404058fe64f1a73c99d577f2f1ecddecca788f539", + "format": 1 + }, + { + "name": "plugins/modules/ipsec_disable.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "566f0ac360630987f7ec13f5bb80a62f2fd9a11f79e9305db2c974c0c5361f78", "format": 1 }, { "name": "plugins/modules/anc_endpoint_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7a3569d21abf2efc954fc28bae550fa3785f1422afa361eef6cb3a9ae29b1e37", + "chksum_sha256": "48d9b1693a5f469a2dd80e664e966cc6d054200e8f1c4b22eff5a8837484984a", "format": 1 }, { "name": "plugins/modules/guest_type.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "76559dbf5d0dd9789aafc54c94da8a6de33c526b58d7eff513a66ef39719a703", + "chksum_sha256": "3172bcebf4890852d6598733d9cae8d6f2942573c06c386d7bcd0c9a16b06f58", "format": 1 }, { "name": "plugins/modules/active_directory_groups_by_domain_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0eac95f6f75c1fde3207ac1ee8514e5c2052951cc6d912c5234775e844540a49", + "chksum_sha256": "b2bd2b8414eb87a2c36a19953825613102c9ba14a3f8b5e5dd57567de8d8b12b", "format": 1 }, { "name": "plugins/modules/network_device.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f991f5c35be49f5d6fcbc0bd697d4e026fc446a75ca8623be0b709318156ec69", + "chksum_sha256": "e8ef7f6fd98b00dbe5102e0ef0b74585ddb5fd33bdb70dce5606873765889595", "format": 1 }, { "name": "plugins/modules/network_access_conditions_for_policy_set_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0d5430c7a05800cb2d57d78ca3481ca0fef6734cebc64080ae973fe04cbbd75e", + "chksum_sha256": "ee3dae72340064b0d9e576d734a8641e9ab3e3bc3a28affc0f88ba3a75935a09", "format": 1 }, { "name": "plugins/modules/tacacs_external_servers_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cb879f487ea6f18b672115e75eec0ae4fe4026ddc86f13421bcdea7c1ad3fadb", + "chksum_sha256": "71ce3d8ebc4413bd8f113dbfe5f560efe50ef79819263929befce2dcca58f68b", "format": 1 }, { "name": "plugins/modules/active_directory_join_domain_with_all_nodes.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "14b06a4ef10b9b2584e8f532fe1c37677b72fad9c239990b2d50b29502f7e6e7", + "chksum_sha256": "a60462e444838fdce58e85caa375114f6d8b373374f60b644678b3ddad303b99", "format": 1 }, { "name": "plugins/modules/pxgrid_service_reregister.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ac9855f6d676e6f9300c1993cf53fe6728cfb0eebd08ee2f6bd12a8cb0d09eef", + "chksum_sha256": "71e05ebaa60afb7e18e2e2e6e07b1b5f9623337659e32795926d7fefab9d4256", "format": 1 }, { "name": "plugins/modules/device_administration_policy_set.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b1e339b78bc4a644f0b989808b9e32c74d5dcfec162b97dbb0063f0e0058a111", + "chksum_sha256": "59f9267e9d9aaf3d5089f27dc3482028f27f880c38ac0105caaa775e00b40477", "format": 1 }, { "name": "plugins/modules/hotpatch_rollback.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "5bbebb8f1ed74a0d02feab93c65ef1e318512ca91a3439d68a6ff4a95ee7301b", + "chksum_sha256": "6b96430d44af60824dc611361deaece647462e11111f8191d2682b6b3688ad42", "format": 1 }, { "name": "plugins/modules/pxgrid_service_lookup.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "eb23143fd6f111fce408ac8d4e75dac145de82006d52dd37a96ed1ffa05e6e96", + "chksum_sha256": "9e0a4dceededc25fffb8ffa935ed6d74473247ff2c707598585029e44424b15a", + "format": 1 + }, + { + "name": "plugins/modules/user_equipment_csv.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "4ca6d2aad1ce94f8bd2c29cb42f4208b26a1c244e9dc871ece8d715da0417ca7", "format": 1 }, { "name": "plugins/modules/portal_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "86ab7bb424a1c6a4f41c41bd6d7ad204ff661388f684b774af1b49076ee4f846", + "chksum_sha256": "32b8fa6533ef3655464ac4f41f43bbf0acada71e86689e00e6ed770de68de73d", "format": 1 }, { "name": "plugins/modules/anc_policy_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e2db248923a20de099bd0a08ca6005fee8ff8c6d9d86834eebaa3fa3f58b4b6e", + "chksum_sha256": "d074275063a0685ffcc9ed9b1932e69829712ad4e8cbb77247adc70043885f9d", + "format": 1 + }, + { + "name": "plugins/modules/upgrade_stage_cancel_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "165981e3a91180bb75d28734fd771f9b4fc4eef9b5b75905e543680dc6e87bb8", "format": 1 }, { "name": "plugins/modules/network_access_local_exception_rules_reset_hitcounts.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "d77f9887d2c25f06a3b45201865727e8a145ff2d9aafa2be1f1f760acb5382ba", + "chksum_sha256": "940c1ebd73a4ad60c746428ca9bfcbac95c552654104828f81c3ff7c8abb5f38", "format": 1 }, { "name": "plugins/modules/device_administration_profiles_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "76c1ca1262737ffd4d0ed1c5e3602402de168d0b3e79e06f9981683771a8ecc7", + "chksum_sha256": "7565e7732f762f49ecfabf0e0b1721e89799b509c4282b944cbbbeec11b58c0a", "format": 1 }, { "name": "plugins/modules/hotspot_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "348aff0535f872fac8d9513354f67ee2ca67f84ff42b7052ba1b11abe2e1d536", + "chksum_sha256": "de53bb0e628914dc2911252d8409aaeeeb8c4e403eb51317939921030fab075c", "format": 1 }, { "name": "plugins/modules/backup_config.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "7b9ba95bfe05869c4f2ebb1576313c3e277c669686059b9f246fb72c27043a14", + "chksum_sha256": "f66f5ee229dc54fe39a788cc02c6738504fe82e5ad4b5724550999a1351dc968", "format": 1 }, { "name": "plugins/modules/sponsor_group_member_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "aefdc19a57de8b900e577a79b07583c669c19ec64c4c974f80cd1078e6d4d0e0", + "chksum_sha256": "2f29785a45919cbc0a1a63b2c3c5c739154086c59372e6fd0a842382868442b9", "format": 1 }, { "name": "plugins/modules/native_supplicant_profile.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ebe468677f8aecc2f3f0b8cd6eda96438228698d3504d992da990bf50d466531", + "chksum_sha256": "95fb03c48d03d8025fe24af654d84e818b4cff18ee6f16c965957b9ca0fe1d2d", "format": 1 }, { "name": "plugins/modules/network_device_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "2c5f83d40eebe3d0b1db590f20726ade3589910fd444f1de8d6e56afd2466f04", + "chksum_sha256": "c7dcf78b7c931d90182c3951bc0bbd7d5e5cb719ac5ba804d58d28a6d6efcc61", "format": 1 }, { "name": "plugins/modules/egress_matrix_cell.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "168dfa04224c2f353fb93ab9d238d43d5ac8f38dede8a70a8fbdac5cda5c6a63", + "chksum_sha256": "2f2fb087c3ef1c186d1bbbf962e28c3eb42b9ccb9a1a73aa71bc08f051b94917", "format": 1 }, { "name": "plugins/modules/self_registered_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c7002e1b65e71ac66cff428c5bc948675cf580925400216659331f2156983c80", + "chksum_sha256": "0ab020fd123e6f9d7ed372b8eca6c6d0c988942dc6fe4afdfdc75d344e75e36e", "format": 1 }, { "name": "plugins/modules/pxgrid_endpoints_by_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "6c19e5636d12ae13395165460aaad23d8462fa70158fecf4e9b8c91d8e9f4d17", + "chksum_sha256": "419828dc91e57a36b8888047ec5e8facfe27bca3e24aaa5fa8335c4ae9b0597f", "format": 1 }, { "name": "plugins/modules/selfsigned_certificate_generate.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "546a291033d01ea28bb968967a462868266c089a876bf60fb2a445f0542ba2d5", + "chksum_sha256": "ee699e1c3578431f8d66fe89d410cf0cde0d0f5ee0b0beeea7c73656a85de313", + "format": 1 + }, + { + "name": "plugins/modules/trustsec_vn_vlan_mapping_info.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a672bc5d49cb66c6ffe0da2f62be3126c3e58ef3fdc4c2f6c0a91441eff0fb94", "format": 1 }, { "name": "plugins/modules/external_radius_server.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "746b442891b8a9acb1a5bc67b8d2f3ad1b5e27acc2c7fd9f5565b62300d2ac99", + "chksum_sha256": "f5993d5b8b111f3963c53faf66bdc3bb410aa330cc83be6669b554a7b8a3e04d", "format": 1 }, { "name": "plugins/modules/dataconnect_settings_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "890c65c102b37b0306294437f5b1a85973a3a330eb7fc22481799790ea046717", + "chksum_sha256": "3f8999ff3f7ae07f129550692574b748102195cf236d2fc7ece5717984cdb18e", "format": 1 }, { "name": "plugins/modules/pxgrid_security_groups_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "0d1a4531df2dac597cd9b30a29263981f527ad353c2eb13294eb2f1999cada56", + "chksum_sha256": "adcd8c7c832b911d91d2657e1674ef44ba69d17116016bd974022399c49e9064", "format": 1 }, { "name": "plugins/modules/internal_user_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "05a0e8ebb98b6f10b43c4b2b4e359743d3489742ff8aa2ee1c926e3edd105bf3", + "chksum_sha256": "377376cbc40c88da31216720bfddd179ddad160afcc58e6ac907e333f76bfd7d", "format": 1 }, { "name": "plugins/modules/sponsor_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "1d4c4ee1b8aeb96c42bb0a6ed06e8ed37e6a212fba4ff788f177918cea7a9c91", + "chksum_sha256": "53bc9dd242a2178f984594221daaeae6f3ea373bf16d99b41a63bef6c73c17ef", "format": 1 }, { "name": "plugins/modules/radius_server_sequence_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "619ad9d219c78d01a45f712cda378b8ff15945f1d04648c0880feda6e3cd1294", + "chksum_sha256": "498a2a85f1eccf89e853389b55753596de2552bb853468a7ab7c788de605a95d", "format": 1 }, { "name": "plugins/modules/node_deployment_sync.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "64a68a165c75c49095fc1677f6319e5353a976870987d806eadb4b4872e0cf52", + "chksum_sha256": "085da391118527130e5c919d36eb0a36524755ef4411763da41bc710d20d7078", "format": 1 }, { "name": "plugins/modules/sponsored_guest_portal.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e4885db2669c90cd436784c60a5f69733c3b7208f605405444d00b7f9ff683a7", + "chksum_sha256": "b3f4bab1c6000f3833c6b9f986ace4f30def377f9a25e2180cee173d1d9efce8", "format": 1 }, { "name": "plugins/modules/guest_type_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "31174879c6d1341232fbcaf1e136a18396806b4d80be0e077edcdba639f086bb", + "chksum_sha256": "5b8fa8e738f5dd942aa75ea0131a18e0fa14677f7627a6ef49f06dd3518f213d", "format": 1 }, { "name": "plugins/modules/sgt_bulk_request.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "42bf28049da1e968e93c15b189af60fabca2d78bc20be0a931e8b051647a3f94", + "chksum_sha256": "ab11b553b1533ec8508db3b5846232c8f6f744454467877eaf2f9827ca1d692a", + "format": 1 + }, + { + "name": "plugins/modules/px_grid_direct_sync.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "efca245bd4eb986b5c80f2bd3d8aabfb4a5fc893d93ddcaac8e052804847f4a9", "format": 1 }, { "name": "plugins/modules/sg_mapping_bulk_monitor_status_info.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "45dab621404676dc54ca5934ad34b2fd7ba3f876f5f47911c580eccacdaba8df", + "chksum_sha256": "85e29afac27d1f452df35d4a52b68ce69ad3ee0c9a51a66ef5a40f3e07896065", "format": 1 }, { @@ -5821,7 +6731,7 @@ "name": "playbooks/group_vars/ise_servers", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9ac69d55205ddcdb3a2084acb395f4ea26e195b233b37a5fbb01767aff48ce85", + "chksum_sha256": "eb0a366cc83d8539ac2f24b84c4a0f681cd16b06519cc625aafd61d1653e374e", "format": 1 }, { @@ -6171,7 +7081,7 @@ "name": "playbooks/credentials.template", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "b5db043788f88104f89c0273aece227d6c4fc9cbe1a1ac0d993bc81763b958bd", + "chksum_sha256": "740010e9ee833e5a495a186697687e0a60d93d8c071a3e77fb943855a1088654", "format": 1 }, { @@ -6255,21 +7165,14 @@ "name": "changelogs/changelog.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "46af54b2672389b7a9e635b04c480f0697afee607e2e84199b8c5777e1018017", + "chksum_sha256": "140605f83668879d8c78db738188d906df045dfa6d6f30938b06ff48a02fca68", "format": 1 }, { "name": "README.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e0770ec263df253ef1ee1b8f727e1e03c18f8c1198efbd85d7ed1c63006b3b4a", - "format": 1 - }, - { - "name": "Pipfile", - "ftype": "file", - "chksum_type": "sha256", - "chksum_sha256": "17a27a28cca40c85447113986ef3f6491f1e5cae1a17d460adfda229f5296969", + "chksum_sha256": "d1a02a0b361b7e8e37fa4423da5b9c7ac69c9a02c9621a48ee195cc1f5c4f173", "format": 1 }, { @@ -6297,7 +7200,7 @@ "name": ".github/workflows/sanity_tests.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dadf3d50392de4f33e091cf5947f4cf8f4ba153a95b63026e6d8eae8214ebd69", + "chksum_sha256": "c886a00237af058731d9d8fcd9716c646df7f61bac9a410643b5ab837d955376", "format": 1 }, { @@ -6334,6 +7237,27 @@ "chksum_type": "sha256", "chksum_sha256": "1f103c6a9dd07cd13a9a6f17ace6b813f47747eb9cb7e00488cb2073caaf91bb", "format": 1 + }, + { + "name": ".vscode", + "ftype": "dir", + "chksum_type": null, + "chksum_sha256": null, + "format": 1 + }, + { + "name": ".vscode/settings.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ff058b88424cd36c92374f3465470d0c24191746d224d3729d623881464c651e", + "format": 1 + }, + { + "name": ".vscode/launch.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "6a62b2b5cbd6e0edb4942e59fc4451e2e59f12472965990a24029ae24264fcb2", + "format": 1 } ], "format": 1 diff --git a/ansible_collections/cisco/ise/MANIFEST.json b/ansible_collections/cisco/ise/MANIFEST.json index cd7253ccb..0c78fda00 100644 --- a/ansible_collections/cisco/ise/MANIFEST.json +++ b/ansible_collections/cisco/ise/MANIFEST.json @@ -2,7 +2,7 @@ "collection_info": { "namespace": "cisco", "name": "ise", - "version": "2.8.1", + "version": "2.9.1", "authors": [ "Rafael Campos <rcampos@altus.cr>", "William Astorga <wastorga@altus.cr>", @@ -32,7 +32,7 @@ "name": "FILES.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "c0a3e92ae466e59573dc00981d4201e0f64a87340c6ddbbcbdd2a58ed18f8a0a", + "chksum_sha256": "15f432db63325689f8870dba08698116fcf594e05eaa83c4029245933f588784", "format": 1 }, "format": 1 diff --git a/ansible_collections/cisco/ise/Pipfile b/ansible_collections/cisco/ise/Pipfile deleted file mode 100644 index 2bc8501b5..000000000 --- a/ansible_collections/cisco/ise/Pipfile +++ /dev/null @@ -1,13 +0,0 @@ -[[source]] -url = "https://pypi.org/simple" -verify_ssl = true -name = "pypi" - -[packages] -ciscoisesdk = ">=2.1.1" -requests = ">=2.25.1" - -[dev-packages] - -[requires] -python_version = "3.9" diff --git a/ansible_collections/cisco/ise/README.md b/ansible_collections/cisco/ise/README.md index a6471334e..2961ef5f0 100644 --- a/ansible_collections/cisco/ise/README.md +++ b/ansible_collections/cisco/ise/README.md @@ -52,6 +52,7 @@ The following table shows the supported versions. | 3.1.0 | 2.0.0 | 1.2.0 | | 3.1_Patch_1 | 2.5.16 | 2.0.10 | | 3.2_beta | 2.8.0 | 2.1.1 | +| 3.3_patch_1 | 2.9.1 | 2.2.1 | If your Ansible collection is older please consider updating it first. *Notes*: @@ -88,7 +89,7 @@ export ISE_HOSTNAME=<A.B.C.D> export ISE_USERNAME=<username> export ISE_PASSWORD=<password> export ISE_VERIFY=False # optional, defaults to True -export ISE_VERSION=3.2_beta # optional, defaults to 3.2_beta +export ISE_VERSION=3.3_patch_1 # optional, defaults to 3.3_patch_1 export ISE_WAIT_ON_RATE_LIMIT=True # optional, defaults to True export ISE_USES_API_GATEWAY=True # optional, defaults to True export ISE_DEBUG=False # optional, defaults to False @@ -125,7 +126,7 @@ ise_hostname: <A.B.C.D> ise_username: <username> ise_password: <password> ise_verify: False # optional, defaults to True -ise_version: 3.2_beta # optional, defaults to 3.2_beta +ise_version: 3.3_patch_1 # optional, defaults to 3.3_patch_1 ise_wait_on_rate_limit: True # optional, defaults to True ise_debug: False # optional, defaults to False ise_uses_api_gateway: True # optional, defaults to True @@ -175,7 +176,7 @@ ise_hostname: <A.B.C.D> ise_username: <username> ise_password: <password> ise_verify: False # optional, defaults to True -ise_version: 3.2_beta # optional, defaults to 3.2_beta +ise_version: 3.3_patch_1 # optional, defaults to 3.3_patch_1 ise_wait_on_rate_limit: True # optional, defaults to True ise_debug: False # optional, defaults to False ise_uses_api_gateway: True # optional, defaults to True diff --git a/ansible_collections/cisco/ise/changelogs/changelog.yaml b/ansible_collections/cisco/ise/changelogs/changelog.yaml index 6ecbe5f31..d5edc8259 100644 --- a/ansible_collections/cisco/ise/changelogs/changelog.yaml +++ b/ansible_collections/cisco/ise/changelogs/changelog.yaml @@ -982,4 +982,30 @@ releases: changes: release_summary: Changes the requirements of ansible.utils to allow > 4.0.0 versions. bugfixes: - - ansible.utils changes to `">=2.0.0,<5.0"` in galaxy.yml dependencies.
\ No newline at end of file + - ansible.utils changes to `">=2.0.0,<5.0"` in galaxy.yml dependencies. + 2.9.0: + release_date: "2024-04-24" + changes: + release_summary: ansible-ise now support 3.3 patch 1. + bugfixes: + - Service included active_directories. + - Service included ad_groups. + - Service included custom_attributes. + - Service included duo_identity_sync. + - Service included duo_mfa. + - Service included enable_mfa. + - Service included endpoint_stop_replication_service. + - Service included endpoints. + - Service included full_upgrade. + - Service included is_mfa_enabled. + - Service included native_ipsec. + - Service included px_grid_direct. + - Service included sgt_range_reservation. + - Service included user_equipment. + 2.9.1: + release_date: "2024-05-15" + changes: + release_summary: Update network_device_group module. + bugfixes: + - network_device_group - change parameter name from ndgtype to othername. + - network_device_group_info - change parameter name from ndgtype to othername.
\ No newline at end of file diff --git a/ansible_collections/cisco/ise/playbooks/credentials.template b/ansible_collections/cisco/ise/playbooks/credentials.template index 6cafc452c..96e05b3ca 100644 --- a/ansible_collections/cisco/ise/playbooks/credentials.template +++ b/ansible_collections/cisco/ise/playbooks/credentials.template @@ -3,7 +3,7 @@ ise_hostname: <A.B.C.D> ise_username: <username> ise_password: <password> ise_verify: False # optional, defaults to True -ise_version: 3.2_beta # optional, defaults to 3.2_beta +ise_version: 3.3_patch_1 # optional, defaults to 3.3_patch_1 ise_wait_on_rate_limit: True # optional, defaults to True ise_debug: False # optional, defaults to False ise_uses_api_gateway: True # optional, defaults to True diff --git a/ansible_collections/cisco/ise/playbooks/group_vars/ise_servers b/ansible_collections/cisco/ise/playbooks/group_vars/ise_servers index 5153435b4..091be00a9 100644 --- a/ansible_collections/cisco/ise/playbooks/group_vars/ise_servers +++ b/ansible_collections/cisco/ise/playbooks/group_vars/ise_servers @@ -3,7 +3,7 @@ ise_hostname: "198.18.133.27" ise_username: "admin" ise_password: "910457" -ise_version: "3.2_beta" +ise_version: "3.3_patch_1" ise_verify: False ise_debug: True ise_uses_api_gateway: True diff --git a/ansible_collections/cisco/ise/plugins/.DS_Store b/ansible_collections/cisco/ise/plugins/.DS_Store Binary files differnew file mode 100644 index 000000000..874d3d2c6 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/.DS_Store diff --git a/ansible_collections/cisco/ise/plugins/action/aci_bindings_info.py b/ansible_collections/cisco/ise/plugins/action/aci_bindings_info.py index 53de0a3c9..335850891 100644 --- a/ansible_collections/cisco/ise/plugins/action/aci_bindings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/aci_bindings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/aci_settings.py b/ansible_collections/cisco/ise/plugins/action/aci_settings.py index f0f255126..95e5e9f20 100644 --- a/ansible_collections/cisco/ise/plugins/action/aci_settings.py +++ b/ansible_collections/cisco/ise/plugins/action/aci_settings.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/aci_settings_info.py b/ansible_collections/cisco/ise/plugins/action/aci_settings_info.py index 930fdb510..c3914a94e 100644 --- a/ansible_collections/cisco/ise/plugins/action/aci_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/aci_settings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/aci_test_connectivity.py b/ansible_collections/cisco/ise/plugins/action/aci_test_connectivity.py index 60b95623a..83934fd12 100644 --- a/ansible_collections/cisco/ise/plugins/action/aci_test_connectivity.py +++ b/ansible_collections/cisco/ise/plugins/action/aci_test_connectivity.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directories_info.py b/ansible_collections/cisco/ise/plugins/action/active_directories_info.py new file mode 100644 index 000000000..caf0cfa69 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/active_directories_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + response = ise.exec( + family="active_directories", + function='get_active_directories', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory.py b/ansible_collections/cisco/ise/plugins/action/active_directory.py index 0d2a18d78..fd56f0eec 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_add_groups.py b/ansible_collections/cisco/ise/plugins/action/active_directory_add_groups.py index e6afb52d9..3afd0c961 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_add_groups.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_add_groups.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_groups_by_domain_info.py b/ansible_collections/cisco/ise/plugins/action/active_directory_groups_by_domain_info.py index 76f1adff1..c5444ec8a 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_groups_by_domain_info.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_groups_by_domain_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_info.py b/ansible_collections/cisco/ise/plugins/action/active_directory_info.py index 673b0870c..7d77de92b 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_info.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_is_user_member_of_group_info.py b/ansible_collections/cisco/ise/plugins/action/active_directory_is_user_member_of_group_info.py index 1134e7ba5..ce9288be9 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_is_user_member_of_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_is_user_member_of_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain.py b/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain.py index 8da2dfe89..187ff6ada 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain_with_all_nodes.py b/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain_with_all_nodes.py index 3c597a0f2..c26f71cc9 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain_with_all_nodes.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_join_domain_with_all_nodes.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain.py b/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain.py index c3aa7c7ec..cc72028ba 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain_with_all_nodes.py b/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain_with_all_nodes.py index 56b8b3b24..9caca6d08 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain_with_all_nodes.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_leave_domain_with_all_nodes.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_trusted_domains_info.py b/ansible_collections/cisco/ise/plugins/action/active_directory_trusted_domains_info.py index 1415f4caf..36d0ace57 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_trusted_domains_info.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_trusted_domains_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/active_directory_user_groups_info.py b/ansible_collections/cisco/ise/plugins/action/active_directory_user_groups_info.py index 262c9cd95..c5322a740 100644 --- a/ansible_collections/cisco/ise/plugins/action/active_directory_user_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/action/active_directory_user_groups_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/ad_groups_info.py b/ansible_collections/cisco/ise/plugins/action/ad_groups_info.py new file mode 100644 index 000000000..f590ddd86 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ad_groups_info.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + activeDirectory=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + active_directory=params.get("activeDirectory"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("activeDirectory") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="ad_groups", + function='get_adgroups', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/admin_user_info.py b/ansible_collections/cisco/ise/plugins/action/admin_user_info.py index 6ee351a30..e2d67b236 100644 --- a/ansible_collections/cisco/ise/plugins/action/admin_user_info.py +++ b/ansible_collections/cisco/ise/plugins/action/admin_user_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/allowed_protocols.py b/ansible_collections/cisco/ise/plugins/action/allowed_protocols.py index eb9de9f66..c878cafd2 100644 --- a/ansible_collections/cisco/ise/plugins/action/allowed_protocols.py +++ b/ansible_collections/cisco/ise/plugins/action/allowed_protocols.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/allowed_protocols_info.py b/ansible_collections/cisco/ise/plugins/action/allowed_protocols_info.py index 00258f04c..b2bd2af51 100644 --- a/ansible_collections/cisco/ise/plugins/action/allowed_protocols_info.py +++ b/ansible_collections/cisco/ise/plugins/action/allowed_protocols_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_apply.py b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_apply.py index e6b6b818a..b115ac712 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_apply.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_apply.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_monitor_status_info.py index 96e51ce60..eb33874af 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_request.py index eb2dcb101..3b9e29e3c 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_clear.py b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_clear.py index 696acc0ca..502d6b0ec 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_clear.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_clear.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_info.py b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_info.py index 69ccd3d4f..ebc578132 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_endpoint_info.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_endpoint_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_policy.py b/ansible_collections/cisco/ise/plugins/action/anc_policy.py index d429c258d..2d8686140 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_policy.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_policy.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_monitor_status_info.py index 8815b1bfe..045fe60a1 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_request.py index bcd09421e..5a48d7a68 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_policy_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/anc_policy_info.py b/ansible_collections/cisco/ise/plugins/action/anc_policy_info.py index aa54af4e8..a5587e186 100644 --- a/ansible_collections/cisco/ise/plugins/action/anc_policy_info.py +++ b/ansible_collections/cisco/ise/plugins/action/anc_policy_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/authorization_profile.py b/ansible_collections/cisco/ise/plugins/action/authorization_profile.py index cdf71fdcf..7cd9795cc 100644 --- a/ansible_collections/cisco/ise/plugins/action/authorization_profile.py +++ b/ansible_collections/cisco/ise/plugins/action/authorization_profile.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/authorization_profile_info.py b/ansible_collections/cisco/ise/plugins/action/authorization_profile_info.py index da068f9df..220d28e4f 100644 --- a/ansible_collections/cisco/ise/plugins/action/authorization_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/action/authorization_profile_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/backup_cancel.py b/ansible_collections/cisco/ise/plugins/action/backup_cancel.py index 2e27c32b3..167372c73 100644 --- a/ansible_collections/cisco/ise/plugins/action/backup_cancel.py +++ b/ansible_collections/cisco/ise/plugins/action/backup_cancel.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/backup_config.py b/ansible_collections/cisco/ise/plugins/action/backup_config.py index 20b70a7c8..e512c52c0 100644 --- a/ansible_collections/cisco/ise/plugins/action/backup_config.py +++ b/ansible_collections/cisco/ise/plugins/action/backup_config.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/backup_last_status_info.py b/ansible_collections/cisco/ise/plugins/action/backup_last_status_info.py index 6befcecb8..0164258fa 100644 --- a/ansible_collections/cisco/ise/plugins/action/backup_last_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/backup_last_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/backup_restore.py b/ansible_collections/cisco/ise/plugins/action/backup_restore.py index 9898d6fe6..d1495cbb5 100644 --- a/ansible_collections/cisco/ise/plugins/action/backup_restore.py +++ b/ansible_collections/cisco/ise/plugins/action/backup_restore.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/backup_schedule_config.py b/ansible_collections/cisco/ise/plugins/action/backup_schedule_config.py index c26acbfe4..19482ae25 100644 --- a/ansible_collections/cisco/ise/plugins/action/backup_schedule_config.py +++ b/ansible_collections/cisco/ise/plugins/action/backup_schedule_config.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/backup_schedule_config_update.py b/ansible_collections/cisco/ise/plugins/action/backup_schedule_config_update.py index 56aeec22c..a26a3d76b 100644 --- a/ansible_collections/cisco/ise/plugins/action/backup_schedule_config_update.py +++ b/ansible_collections/cisco/ise/plugins/action/backup_schedule_config_update.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/bind_signed_certificate.py b/ansible_collections/cisco/ise/plugins/action/bind_signed_certificate.py index d247db93f..4912aa8c1 100644 --- a/ansible_collections/cisco/ise/plugins/action/bind_signed_certificate.py +++ b/ansible_collections/cisco/ise/plugins/action/bind_signed_certificate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/byod_portal.py b/ansible_collections/cisco/ise/plugins/action/byod_portal.py index 4de9abd9c..e01960c35 100644 --- a/ansible_collections/cisco/ise/plugins/action/byod_portal.py +++ b/ansible_collections/cisco/ise/plugins/action/byod_portal.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/byod_portal_info.py b/ansible_collections/cisco/ise/plugins/action/byod_portal_info.py index ba4017d9a..80526824d 100644 --- a/ansible_collections/cisco/ise/plugins/action/byod_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/byod_portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/certificate_profile.py b/ansible_collections/cisco/ise/plugins/action/certificate_profile.py index a6c13c28d..ba9be072a 100644 --- a/ansible_collections/cisco/ise/plugins/action/certificate_profile.py +++ b/ansible_collections/cisco/ise/plugins/action/certificate_profile.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/certificate_profile_info.py b/ansible_collections/cisco/ise/plugins/action/certificate_profile_info.py index 20505acea..e69ad1a47 100644 --- a/ansible_collections/cisco/ise/plugins/action/certificate_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/action/certificate_profile_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/certificate_template_info.py b/ansible_collections/cisco/ise/plugins/action/certificate_template_info.py index 2d0bab581..71e7982fa 100644 --- a/ansible_collections/cisco/ise/plugins/action/certificate_template_info.py +++ b/ansible_collections/cisco/ise/plugins/action/certificate_template_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/configuration.py b/ansible_collections/cisco/ise/plugins/action/configuration.py index de3fe1eff..4f8a16b2c 100644 --- a/ansible_collections/cisco/ise/plugins/action/configuration.py +++ b/ansible_collections/cisco/ise/plugins/action/configuration.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/configuration_info.py b/ansible_collections/cisco/ise/plugins/action/configuration_info.py index d3ed0d5fe..1bcd43c9c 100644 --- a/ansible_collections/cisco/ise/plugins/action/configuration_info.py +++ b/ansible_collections/cisco/ise/plugins/action/configuration_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/csr_delete.py b/ansible_collections/cisco/ise/plugins/action/csr_delete.py index 6c0a2f6dd..581005716 100644 --- a/ansible_collections/cisco/ise/plugins/action/csr_delete.py +++ b/ansible_collections/cisco/ise/plugins/action/csr_delete.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/csr_export_info.py b/ansible_collections/cisco/ise/plugins/action/csr_export_info.py index 16e74b49e..4381a1384 100644 --- a/ansible_collections/cisco/ise/plugins/action/csr_export_info.py +++ b/ansible_collections/cisco/ise/plugins/action/csr_export_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/csr_generate.py b/ansible_collections/cisco/ise/plugins/action/csr_generate.py index 8c1d62d60..36429190a 100644 --- a/ansible_collections/cisco/ise/plugins/action/csr_generate.py +++ b/ansible_collections/cisco/ise/plugins/action/csr_generate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/csr_generate_intermediate_ca.py b/ansible_collections/cisco/ise/plugins/action/csr_generate_intermediate_ca.py index 50eeb9401..1e30f54f6 100644 --- a/ansible_collections/cisco/ise/plugins/action/csr_generate_intermediate_ca.py +++ b/ansible_collections/cisco/ise/plugins/action/csr_generate_intermediate_ca.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/csr_info.py b/ansible_collections/cisco/ise/plugins/action/csr_info.py index 028e2f318..fcf277978 100644 --- a/ansible_collections/cisco/ise/plugins/action/csr_info.py +++ b/ansible_collections/cisco/ise/plugins/action/csr_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -31,7 +31,7 @@ argument_spec.update(dict( size=dict(type="int"), sort=dict(type="str"), sortBy=dict(type="str"), - filter=dict(type="list"), + filter=dict(type="str"), filterType=dict(type="str"), hostName=dict(type="str"), id=dict(type="str"), diff --git a/ansible_collections/cisco/ise/plugins/action/custom_attributes.py b/ansible_collections/cisco/ise/plugins/action/custom_attributes.py new file mode 100644 index 000000000..b0328ed7d --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/custom_attributes.py @@ -0,0 +1,207 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + attributeName=dict(type="str"), + attributeType=dict(type="str"), + name=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["name"], True), + ("state", "absent", ["name"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class CustomAttributes(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + attribute_name=params.get("attributeName"), + attribute_type=params.get("attributeType"), + name=params.get("name"), + ) + + def get_object_by_name(self, name): + try: + result = self.ise.exec( + family="customattributes", + function="get", + params={"name": name}, + handle_func_exception=False, + ).response + result = get_dict_result(result, 'name', name) + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("attributeName", "attribute_name"), + ("attributeType", "attribute_type"), + ("name", "name"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="customattributes", + function="create_custom_attribute", + params=self.new_object, + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not name: + name_ = self.get_object_by_id(id).get("name") + self.new_object.update(dict(name=name_)) + result = self.ise.exec( + family="customattributes", + function="delete", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = CustomAttributes(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + response = prev_obj + ise.object_present_and_different() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/custom_attributes_info.py b/ansible_collections/cisco/ise/plugins/action/custom_attributes_info.py new file mode 100644 index 000000000..d80c60f68 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/custom_attributes_info.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + name=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + name=params.get("name"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if name: + response = ise.exec( + family="customattributes", + function='get', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + response = ise.exec( + family="customattributes", + function='list', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/custom_attributes_rename.py b/ansible_collections/cisco/ise/plugins/action/custom_attributes_rename.py new file mode 100644 index 000000000..2a6302296 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/custom_attributes_rename.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + currentName=dict(type="str"), + newName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + current_name=params.get("currentName"), + new_name=params.get("newName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="customattributes", + function="rename", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/dataconnect_info.py b/ansible_collections/cisco/ise/plugins/action/dataconnect_info.py index ffd19d387..c4b4322a4 100644 --- a/ansible_collections/cisco/ise/plugins/action/dataconnect_info.py +++ b/ansible_collections/cisco/ise/plugins/action/dataconnect_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_info.py b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_info.py index 5d794c926..45e618b56 100644 --- a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password.py b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password.py index 0fd96ad3e..e871dcb0c 100644 --- a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password.py +++ b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password_expiry.py b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password_expiry.py index f9db60ec8..ca6569d5f 100644 --- a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password_expiry.py +++ b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_password_expiry.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_status.py b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_status.py index e7232ab0e..108b1b9bc 100644 --- a/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_status.py +++ b/ansible_collections/cisco/ise/plugins/action/dataconnect_settings_status.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/deployment_info.py b/ansible_collections/cisco/ise/plugins/action/deployment_info.py index 206b6673a..b6a615332 100644 --- a/ansible_collections/cisco/ise/plugins/action/deployment_info.py +++ b/ansible_collections/cisco/ise/plugins/action/deployment_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_reset_hitcount.py index 02e4e34ae..065d7c978 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules.py b/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules.py index 58e3d55d6..764e9e1b8 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules_info.py index ff175ae64..9cdf45c34 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_authentication_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_reset_hitcount.py index 029a324d0..bdbd6601f 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules.py b/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules.py index 2645800ce..b6ea4f5c8 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules_info.py index dffaf212a..33ca28ca4 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_authorization_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_command_set_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_command_set_info.py index e6adeda11..843282782 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_command_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_command_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions.py b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions.py index 3f32c7c94..f5baa09d8 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authentication_rule_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authentication_rule_info.py index 443fa6b66..e2e164212 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authentication_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authentication_rule_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authorization_rule_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authorization_rule_info.py index 39ec5bf96..b40b3a461 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authorization_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_authorization_rule_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_policy_set_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_policy_set_info.py index 84a3b83ef..05a76aa4d 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_for_policy_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_info.py index 4277903cf..1e7aa9cb1 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_conditions_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authentication_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authentication_info.py index 56a7137b7..32303ed20 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authentication_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authentication_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authorization_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authorization_info.py index 07606e5a8..97e8d9dbf 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authorization_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_authorization_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_policy_set_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_policy_set_info.py index eba176051..96d90ea7c 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_dictionary_attributes_policy_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules.py b/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules.py index 38718ced2..2095fd10a 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_info.py index 3bda0eb07..8c7df99e8 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_reset_hitcount.py index 494b4aeb4..cdca21112 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_global_exception_rules_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_identity_stores_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_identity_stores_info.py index e636a01fc..973e11793 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_identity_stores_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_identity_stores_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules.py b/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules.py index 27f5b3401..3583204ba 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_info.py index 71dbfce79..8b2f54f2c 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_reset_hitcount.py index ce1b78879..0f46ec415 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_local_exception_rules_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions.py b/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions.py index 10bcdc558..d05ffb46e 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions_info.py index f04e29791..c8efdc788 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_network_conditions_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set.py b/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set.py index 23eb54ef5..977687fe0 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_info.py index b344da3f2..51519bdb7 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_reset_hitcount.py index 8c4ca8e24..fa0d4122b 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_policy_set_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_profiles_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_profiles_info.py index 406618fdb..1e634209f 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_profiles_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_profiles_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_service_names_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_service_names_info.py index 020515c1b..d63ed8734 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_service_names_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_service_names_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions.py b/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions.py index e0ffd4d73..f2f602126 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions_info.py b/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions_info.py index 3e8bfad3d..935155e84 100644 --- a/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/action/device_administration_time_date_conditions_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/downloadable_acl.py b/ansible_collections/cisco/ise/plugins/action/downloadable_acl.py index d4a8bf437..7200f6051 100644 --- a/ansible_collections/cisco/ise/plugins/action/downloadable_acl.py +++ b/ansible_collections/cisco/ise/plugins/action/downloadable_acl.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/downloadable_acl_info.py b/ansible_collections/cisco/ise/plugins/action/downloadable_acl_info.py index 8852b8b41..38539b9d3 100644 --- a/ansible_collections/cisco/ise/plugins/action/downloadable_acl_info.py +++ b/ansible_collections/cisco/ise/plugins/action/downloadable_acl_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/duo_identity_sync.py b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync.py new file mode 100644 index 000000000..530bcdd3d --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync.py @@ -0,0 +1,235 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + adGroups=dict(type="list"), + configurations=dict(type="dict"), + lastSync=dict(type="str"), + syncName=dict(type="str"), + syncSchedule=dict(type="dict"), + syncStatus=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["syncName"], True), + ("state", "absent", ["syncName"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class DuoIdentitySync(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + ad_groups=params.get("adGroups"), + configurations=params.get("configurations"), + last_sync=params.get("lastSync"), + sync_name=params.get("syncName"), + sync_schedule=params.get("syncSchedule"), + sync_status=params.get("syncStatus"), + ) + + def get_object_by_name(self, name): + try: + result = self.ise.exec( + family="duo_identity_sync", + function="get_identitysync_by_sync_name", + params={"name": name}, + handle_func_exception=False, + ).response['response'] + result = get_dict_result(result, 'name', name) + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("adGroups", "ad_groups"), + ("configurations", "configurations"), + ("lastSync", "last_sync"), + ("syncName", "sync_name"), + ("syncSchedule", "sync_schedule"), + ("syncStatus", "sync_status"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="duo_identity_sync", + function="create_identitysync", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not name: + name_ = self.get_object_by_id(id).get("name") + self.new_object.update(dict(name=name_)) + result = self.ise.exec( + family="duo_identity_sync", + function="update_identitysync_by_sync_name", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not name: + name_ = self.get_object_by_id(id).get("name") + self.new_object.update(dict(name=name_)) + result = self.ise.exec( + family="duo_identity_sync", + function="delete_identity_sync_by_sync_name", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = DuoIdentitySync(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_cancel_info.py b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_cancel_info.py new file mode 100644 index 000000000..cf2e7fb50 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_cancel_info.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + syncName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + sync_name=params.get("syncName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("syncName") + if name: + response = ise.exec( + family="duo_identity_sync", + function='cancel_sync', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_info.py b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_info.py new file mode 100644 index 000000000..9336c18fa --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_info.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + syncName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + sync_name=params.get("syncName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("syncName") + if name: + response = ise.exec( + family="duo_identity_sync", + function='get_identitysync_by_sync_name', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + response = ise.exec( + family="duo_identity_sync", + function='get_identitysync', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_status.py b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_status.py new file mode 100644 index 000000000..7dbdbf938 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_identity_sync_status.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + errorList=dict(type="list"), + status=dict(type="str"), + syncName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + error_list=params.get("errorList"), + status=params.get("status"), + sync_name=params.get("syncName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="duo_identity_sync", + function="update_status", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_identitysync_sync_info.py b/ansible_collections/cisco/ise/plugins/action/duo_identitysync_sync_info.py new file mode 100644 index 000000000..1b5ab43d0 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_identitysync_sync_info.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + syncName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + sync_name=params.get("syncName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("syncName") + if name: + response = ise.exec( + family="duo_identity_sync", + function='sync', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_mfa.py b/ansible_collections/cisco/ise/plugins/action/duo_mfa.py new file mode 100644 index 000000000..d535bcd8b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_mfa.py @@ -0,0 +1,232 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + accountConfigurations=dict(type="dict"), + connectionName=dict(type="str"), + description=dict(type="str"), + identitySync=dict(type="str"), + type=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["connectionName"], True), + ("state", "absent", ["connectionName"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class DuoMfa(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + account_configurations=params.get("accountConfigurations"), + connection_name=params.get("connectionName"), + description=params.get("description"), + identity_sync=params.get("identitySync"), + type=params.get("type"), + ) + + def get_object_by_name(self, name): + try: + result = self.ise.exec( + family="duo_mfa", + function="get_mfa_byconnection_name", + params={"name": name}, + handle_func_exception=False, + ).response['response'] + result = get_dict_result(result, 'name', name) + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("accountConfigurations", "account_configurations"), + ("connectionName", "connection_name"), + ("description", "description"), + ("identitySync", "identity_sync"), + ("type", "type"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="duo_mfa", + function="create_mfa", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not name: + name_ = self.get_object_by_id(id).get("name") + self.new_object.update(dict(name=name_)) + result = self.ise.exec( + family="duo_mfa", + function="update_m_fa_by_connection_name", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not name: + name_ = self.get_object_by_id(id).get("name") + self.new_object.update(dict(name=name_)) + result = self.ise.exec( + family="duo_mfa", + function="delete_mfa_by_connection_name", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = DuoMfa(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_mfa_info.py b/ansible_collections/cisco/ise/plugins/action/duo_mfa_info.py new file mode 100644 index 000000000..198d5447a --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_mfa_info.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + connectionName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + connection_name=params.get("connectionName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("connectionName") + if name: + response = ise.exec( + family="duo_mfa", + function='get_mfa_byconnection_name', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + response = ise.exec( + family="duo_mfa", + function='get_mfa', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/duo_mfa_testconnection.py b/ansible_collections/cisco/ise/plugins/action/duo_mfa_testconnection.py new file mode 100644 index 000000000..1599d13e3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/duo_mfa_testconnection.py @@ -0,0 +1,94 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + adminApi=dict(type="dict"), + apiHostName=dict(type="str"), + authenticationApi=dict(type="dict"), + connectionName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + admin_api=params.get("adminApi"), + api_host_name=params.get("apiHostName"), + authentication_api=params.get("authenticationApi"), + connection_name=params.get("connectionName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="duo_mfa", + function="test_connection", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell.py index 42f4b0d29..3c65ac475 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_monitor_status_info.py index b64520c54..5583569fc 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_request.py index 5d4b889d0..a2548e392 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clear_all.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clear_all.py index d0f567c59..8281d5cdf 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clear_all.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clear_all.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clone.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clone.py index 46f782895..3df3b9468 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clone.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_clone.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_info.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_info.py index 0a903b42e..cfb885203 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_info.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_set_all_status.py b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_set_all_status.py index 6e51eb944..c5b63c162 100644 --- a/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_set_all_status.py +++ b/ansible_collections/cisco/ise/plugins/action/egress_matrix_cell_set_all_status.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint.py b/ansible_collections/cisco/ise/plugins/action/endpoint.py index 5de00e6d8..5a37247d5 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_monitor_status_info.py index c15d2dad6..e39414835 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_request.py index 346bdb965..729c10fcc 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_certificate.py b/ansible_collections/cisco/ise/plugins/action/endpoint_certificate.py index 7c54400af..1246e1609 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_certificate.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_certificate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_deregister.py b/ansible_collections/cisco/ise/plugins/action/endpoint_deregister.py index fad82b3af..4f4ccdc11 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_deregister.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_deregister.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_get_rejected_endpoints_info.py b/ansible_collections/cisco/ise/plugins/action/endpoint_get_rejected_endpoints_info.py index 5b2f513f2..522140067 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_get_rejected_endpoints_info.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_get_rejected_endpoints_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_group.py b/ansible_collections/cisco/ise/plugins/action/endpoint_group.py index aae2a2f31..5d6f1585c 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_group.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_group.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_group_info.py b/ansible_collections/cisco/ise/plugins/action/endpoint_group_info.py index 369940972..9e224a672 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_info.py b/ansible_collections/cisco/ise/plugins/action/endpoint_info.py index 2dd382b41..fa85a0944 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_info.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_register.py b/ansible_collections/cisco/ise/plugins/action/endpoint_register.py index 8976b3b3f..0a2cc90fe 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_register.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_register.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoint_release_rejected_endpoint.py b/ansible_collections/cisco/ise/plugins/action/endpoint_release_rejected_endpoint.py index fdbf701c0..7ae1af1b8 100644 --- a/ansible_collections/cisco/ise/plugins/action/endpoint_release_rejected_endpoint.py +++ b/ansible_collections/cisco/ise/plugins/action/endpoint_release_rejected_endpoint.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/endpoints.py b/ansible_collections/cisco/ise/plugins/action/endpoints.py new file mode 100644 index 000000000..6aff81d62 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/endpoints.py @@ -0,0 +1,310 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + connectedLinks=dict(type="dict"), + customAttributes=dict(type="dict"), + description=dict(type="str"), + deviceType=dict(type="str"), + groupId=dict(type="str"), + hardwareRevision=dict(type="str"), + id=dict(type="str"), + identityStore=dict(type="str"), + identityStoreId=dict(type="str"), + ipAddress=dict(type="str"), + mac=dict(type="str"), + mdmAttributes=dict(type="dict"), + name=dict(type="str"), + portalUser=dict(type="str"), + productId=dict(type="str"), + profileId=dict(type="str"), + protocol=dict(type="str"), + serialNumber=dict(type="str"), + softwareRevision=dict(type="str"), + staticGroupAssignment=dict(type="bool"), + staticProfileAssignment=dict(type="bool"), + vendor=dict(type="str"), + value=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["name", "value"], True), + ("state", "absent", ["name", "value"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class Endpoints(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + connected_links=params.get("connectedLinks"), + custom_attributes=params.get("customAttributes"), + description=params.get("description"), + device_type=params.get("deviceType"), + group_id=params.get("groupId"), + hardware_revision=params.get("hardwareRevision"), + id=params.get("id"), + identity_store=params.get("identityStore"), + identity_store_id=params.get("identityStoreId"), + ip_address=params.get("ipAddress"), + mac=params.get("mac"), + mdm_attributes=params.get("mdmAttributes"), + name=params.get("name"), + portal_user=params.get("portalUser"), + product_id=params.get("productId"), + profile_id=params.get("profileId"), + protocol=params.get("protocol"), + serial_number=params.get("serialNumber"), + software_revision=params.get("softwareRevision"), + static_group_assignment=params.get("staticGroupAssignment"), + static_profile_assignment=params.get("staticProfileAssignment"), + vendor=params.get("vendor"), + value=params.get("value"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="endpoints", + function="list_1_generator" + ) + try: + for items_response in gen_items_responses: + items = items_response.response.get('response', []) + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="endpoints", + function="get_1", + handle_func_exception=False, + params={"id": id} + ).response + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("connectedLinks", "connected_links"), + ("customAttributes", "custom_attributes"), + ("description", "description"), + ("deviceType", "device_type"), + ("groupId", "group_id"), + ("hardwareRevision", "hardware_revision"), + ("id", "id"), + ("identityStore", "identity_store"), + ("identityStoreId", "identity_store_id"), + ("ipAddress", "ip_address"), + ("mac", "mac"), + ("mdmAttributes", "mdm_attributes"), + ("name", "name"), + ("portalUser", "portal_user"), + ("productId", "product_id"), + ("profileId", "profile_id"), + ("protocol", "protocol"), + ("serialNumber", "serial_number"), + ("softwareRevision", "software_revision"), + ("staticGroupAssignment", "static_group_assignment"), + ("staticProfileAssignment", "static_profile_assignment"), + ("vendor", "vendor"), + ("value", "value"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="endpoints", + function="create_end_point", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="endpoints", + function="update_endpoint", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="endpoints", + function="delete_endpoint", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = Endpoints(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/endpoints_bulk.py b/ansible_collections/cisco/ise/plugins/action/endpoints_bulk.py new file mode 100644 index 000000000..43dbb06a3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/endpoints_bulk.py @@ -0,0 +1,313 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + connectedLinks=dict(type="dict"), + customAttributes=dict(type="dict"), + description=dict(type="str"), + deviceType=dict(type="str"), + groupId=dict(type="str"), + hardwareRevision=dict(type="str"), + id=dict(type="str"), + identityStore=dict(type="str"), + identityStoreId=dict(type="str"), + ipAddress=dict(type="str"), + mac=dict(type="str"), + mdmAttributes=dict(type="dict"), + name=dict(type="str"), + portalUser=dict(type="str"), + productId=dict(type="str"), + profileId=dict(type="str"), + protocol=dict(type="str"), + serialNumber=dict(type="str"), + softwareRevision=dict(type="str"), + staticGroupAssignment=dict(type="bool"), + staticProfileAssignment=dict(type="bool"), + vendor=dict(type="str"), + payload=dict(type="list"), + value=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["name", "value"], True), + ("state", "absent", ["name", "value"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class EndpointsBulk(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + connected_links=params.get("connectedLinks"), + custom_attributes=params.get("customAttributes"), + description=params.get("description"), + device_type=params.get("deviceType"), + group_id=params.get("groupId"), + hardware_revision=params.get("hardwareRevision"), + id=params.get("id"), + identity_store=params.get("identityStore"), + identity_store_id=params.get("identityStoreId"), + ip_address=params.get("ipAddress"), + mac=params.get("mac"), + mdm_attributes=params.get("mdmAttributes"), + name=params.get("name"), + portal_user=params.get("portalUser"), + product_id=params.get("productId"), + profile_id=params.get("profileId"), + protocol=params.get("protocol"), + serial_number=params.get("serialNumber"), + software_revision=params.get("softwareRevision"), + static_group_assignment=params.get("staticGroupAssignment"), + static_profile_assignment=params.get("staticProfileAssignment"), + vendor=params.get("vendor"), + payload=params.get("payload"), + value=params.get("value"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="endpoints", + function="list_1_generator" + ) + try: + for items_response in gen_items_responses: + items = items_response.response.get('response', []) + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="endpoints", + function="get_1", + handle_func_exception=False, + params={"id": id} + ).response + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("connectedLinks", "connected_links"), + ("customAttributes", "custom_attributes"), + ("description", "description"), + ("deviceType", "device_type"), + ("groupId", "group_id"), + ("hardwareRevision", "hardware_revision"), + ("id", "id"), + ("identityStore", "identity_store"), + ("identityStoreId", "identity_store_id"), + ("ipAddress", "ip_address"), + ("mac", "mac"), + ("mdmAttributes", "mdm_attributes"), + ("name", "name"), + ("portalUser", "portal_user"), + ("productId", "product_id"), + ("profileId", "profile_id"), + ("protocol", "protocol"), + ("serialNumber", "serial_number"), + ("softwareRevision", "software_revision"), + ("staticGroupAssignment", "static_group_assignment"), + ("staticProfileAssignment", "static_profile_assignment"), + ("vendor", "vendor"), + ("payload", "payload"), + ("value", "value"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="endpoints", + function="create_bulk_end_points", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="endpoints", + function="update_endpoint", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="endpoints", + function="delete_endpoint", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = EndpointsBulk(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/endpoints_bulk_info.py b/ansible_collections/cisco/ise/plugins/action/endpoints_bulk_info.py new file mode 100644 index 000000000..3df235103 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/endpoints_bulk_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + sort=dict(type="str"), + sortBy=dict(type="str"), + filter=dict(type="str"), + filterType=dict(type="str"), + value=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + value=params.get("value"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("value") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="endpoints", + function='get_1', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="endpoints", + function='list_1_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/endpoints_device_type_info.py b/ansible_collections/cisco/ise/plugins/action/endpoints_device_type_info.py new file mode 100644 index 000000000..fb2386ae6 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/endpoints_device_type_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + response = ise.exec( + family="endpoints", + function='get_device_type_summary', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/endpoints_info.py b/ansible_collections/cisco/ise/plugins/action/endpoints_info.py new file mode 100644 index 000000000..3df235103 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/endpoints_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + sort=dict(type="str"), + sortBy=dict(type="str"), + filter=dict(type="str"), + filterType=dict(type="str"), + value=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + value=params.get("value"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("value") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="endpoints", + function='get_1', + params=self.get_object(self._task.args) + ).response + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="endpoints", + function='list_1_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/endpoints_task.py b/ansible_collections/cisco/ise/plugins/action/endpoints_task.py new file mode 100644 index 000000000..e8c1862d3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/endpoints_task.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + connectedLinks=dict(type="dict"), + customAttributes=dict(type="dict"), + description=dict(type="str"), + deviceType=dict(type="str"), + groupId=dict(type="str"), + hardwareRevision=dict(type="str"), + id=dict(type="str"), + identityStore=dict(type="str"), + identityStoreId=dict(type="str"), + ipAddress=dict(type="str"), + mac=dict(type="str"), + mdmAttributes=dict(type="dict"), + name=dict(type="str"), + portalUser=dict(type="str"), + productId=dict(type="str"), + profileId=dict(type="str"), + protocol=dict(type="str"), + serialNumber=dict(type="str"), + softwareRevision=dict(type="str"), + staticGroupAssignment=dict(type="bool"), + staticProfileAssignment=dict(type="bool"), + vendor=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + connected_links=params.get("connectedLinks"), + custom_attributes=params.get("customAttributes"), + description=params.get("description"), + device_type=params.get("deviceType"), + group_id=params.get("groupId"), + hardware_revision=params.get("hardwareRevision"), + id=params.get("id"), + identity_store=params.get("identityStore"), + identity_store_id=params.get("identityStoreId"), + ip_address=params.get("ipAddress"), + mac=params.get("mac"), + mdm_attributes=params.get("mdmAttributes"), + name=params.get("name"), + portal_user=params.get("portalUser"), + product_id=params.get("productId"), + profile_id=params.get("profileId"), + protocol=params.get("protocol"), + serial_number=params.get("serialNumber"), + software_revision=params.get("softwareRevision"), + static_group_assignment=params.get("staticGroupAssignment"), + static_profile_assignment=params.get("staticProfileAssignment"), + vendor=params.get("vendor"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="endpoints", + function="create_end_point_task", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/external_radius_server.py b/ansible_collections/cisco/ise/plugins/action/external_radius_server.py index 4beda906a..3a6d9b3c8 100644 --- a/ansible_collections/cisco/ise/plugins/action/external_radius_server.py +++ b/ansible_collections/cisco/ise/plugins/action/external_radius_server.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/external_radius_server_info.py b/ansible_collections/cisco/ise/plugins/action/external_radius_server_info.py index e0043a0d0..330e05631 100644 --- a/ansible_collections/cisco/ise/plugins/action/external_radius_server_info.py +++ b/ansible_collections/cisco/ise/plugins/action/external_radius_server_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/filter_policy.py b/ansible_collections/cisco/ise/plugins/action/filter_policy.py index d2a3ca73e..b13a8eeee 100644 --- a/ansible_collections/cisco/ise/plugins/action/filter_policy.py +++ b/ansible_collections/cisco/ise/plugins/action/filter_policy.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/filter_policy_info.py b/ansible_collections/cisco/ise/plugins/action/filter_policy_info.py index 8b19e248c..8eb9b9747 100644 --- a/ansible_collections/cisco/ise/plugins/action/filter_policy_info.py +++ b/ansible_collections/cisco/ise/plugins/action/filter_policy_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_location_info.py b/ansible_collections/cisco/ise/plugins/action/guest_location_info.py index 64c33c097..52127c847 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_location_info.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_location_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings.py b/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings.py index 2744262be..16235ac99 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings_info.py b/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings_info.py index 42f64bcf4..dc8c672c9 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_smtp_notification_settings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_ssid.py b/ansible_collections/cisco/ise/plugins/action/guest_ssid.py index b1549161f..9145d09ad 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_ssid.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_ssid.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_ssid_info.py b/ansible_collections/cisco/ise/plugins/action/guest_ssid_info.py index 7e6efd130..77484a38c 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_ssid_info.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_ssid_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_type.py b/ansible_collections/cisco/ise/plugins/action/guest_type.py index 0891266e2..72e271d9e 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_type.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_type.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_type_email.py b/ansible_collections/cisco/ise/plugins/action/guest_type_email.py index e8d763c7b..b9592741e 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_type_email.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_type_email.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_type_info.py b/ansible_collections/cisco/ise/plugins/action/guest_type_info.py index 1de1cc2d7..5cd3978fe 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_type_info.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_type_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_type_sms.py b/ansible_collections/cisco/ise/plugins/action/guest_type_sms.py index 366f1d6fe..206a207d5 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_type_sms.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_type_sms.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user.py b/ansible_collections/cisco/ise/plugins/action/guest_user.py index 6e0c4c416..45076be9b 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_approve.py b/ansible_collections/cisco/ise/plugins/action/guest_user_approve.py index 0b66958c9..0c8cb477a 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_approve.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_approve.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_monitor_status_info.py index 738d2a50f..eada3c3b3 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_request.py index 9f5409056..309a388ff 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_change_sponsor_password.py b/ansible_collections/cisco/ise/plugins/action/guest_user_change_sponsor_password.py index d8cba2089..254b38ec2 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_change_sponsor_password.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_change_sponsor_password.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_deny.py b/ansible_collections/cisco/ise/plugins/action/guest_user_deny.py index 6318526bd..b141a674f 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_deny.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_deny.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_email.py b/ansible_collections/cisco/ise/plugins/action/guest_user_email.py index 16c8793b5..83a34c730 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_email.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_email.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_info.py b/ansible_collections/cisco/ise/plugins/action/guest_user_info.py index f6b61c088..64d0247b1 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_info.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_reinstate.py b/ansible_collections/cisco/ise/plugins/action/guest_user_reinstate.py index 33d20d1a1..e50c06eec 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_reinstate.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_reinstate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_reset_password.py b/ansible_collections/cisco/ise/plugins/action/guest_user_reset_password.py index c2eedfac8..92facda82 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_reset_password.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_reset_password.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_sms.py b/ansible_collections/cisco/ise/plugins/action/guest_user_sms.py index 9a84b457a..435d3bf8d 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_sms.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_sms.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/guest_user_suspend.py b/ansible_collections/cisco/ise/plugins/action/guest_user_suspend.py index 81f8a1423..5f93e63f8 100644 --- a/ansible_collections/cisco/ise/plugins/action/guest_user_suspend.py +++ b/ansible_collections/cisco/ise/plugins/action/guest_user_suspend.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/hotpatch_info.py b/ansible_collections/cisco/ise/plugins/action/hotpatch_info.py index 0ef0efbc4..4bcf5acd5 100644 --- a/ansible_collections/cisco/ise/plugins/action/hotpatch_info.py +++ b/ansible_collections/cisco/ise/plugins/action/hotpatch_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/hotpatch_install.py b/ansible_collections/cisco/ise/plugins/action/hotpatch_install.py index 3343ed071..f6da42823 100644 --- a/ansible_collections/cisco/ise/plugins/action/hotpatch_install.py +++ b/ansible_collections/cisco/ise/plugins/action/hotpatch_install.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -28,6 +28,7 @@ argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( hotpatchName=dict(type="str"), + isDirectoryListed=dict(type="bool"), repositoryName=dict(type="str"), )) @@ -67,6 +68,7 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( hotpatch_name=params.get("hotpatchName"), + is_directory_listed=params.get("isDirectoryListed"), repository_name=params.get("repositoryName"), ) return new_object diff --git a/ansible_collections/cisco/ise/plugins/action/hotpatch_rollback.py b/ansible_collections/cisco/ise/plugins/action/hotpatch_rollback.py index 8e976eb50..d7d224d85 100644 --- a/ansible_collections/cisco/ise/plugins/action/hotpatch_rollback.py +++ b/ansible_collections/cisco/ise/plugins/action/hotpatch_rollback.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -28,6 +28,7 @@ argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( hotpatchName=dict(type="str"), + isDirectoryListed=dict(type="bool"), repositoryName=dict(type="str"), )) @@ -67,6 +68,7 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( hotpatch_name=params.get("hotpatchName"), + is_directory_listed=params.get("isDirectoryListed"), repository_name=params.get("repositoryName"), ) return new_object diff --git a/ansible_collections/cisco/ise/plugins/action/hotspot_portal.py b/ansible_collections/cisco/ise/plugins/action/hotspot_portal.py index 31894a9cd..618a916bc 100644 --- a/ansible_collections/cisco/ise/plugins/action/hotspot_portal.py +++ b/ansible_collections/cisco/ise/plugins/action/hotspot_portal.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/hotspot_portal_info.py b/ansible_collections/cisco/ise/plugins/action/hotspot_portal_info.py index 928265dfb..200e5fec8 100644 --- a/ansible_collections/cisco/ise/plugins/action/hotspot_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/hotspot_portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/id_store_sequence.py b/ansible_collections/cisco/ise/plugins/action/id_store_sequence.py index 8fff8a901..0703c2df3 100644 --- a/ansible_collections/cisco/ise/plugins/action/id_store_sequence.py +++ b/ansible_collections/cisco/ise/plugins/action/id_store_sequence.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/id_store_sequence_info.py b/ansible_collections/cisco/ise/plugins/action/id_store_sequence_info.py index ec8ce7d66..6a7b9f9a4 100644 --- a/ansible_collections/cisco/ise/plugins/action/id_store_sequence_info.py +++ b/ansible_collections/cisco/ise/plugins/action/id_store_sequence_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/identity_group.py b/ansible_collections/cisco/ise/plugins/action/identity_group.py index 42bf63fc6..f98c65897 100644 --- a/ansible_collections/cisco/ise/plugins/action/identity_group.py +++ b/ansible_collections/cisco/ise/plugins/action/identity_group.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/identity_group_info.py b/ansible_collections/cisco/ise/plugins/action/identity_group_info.py index efa113971..16675a298 100644 --- a/ansible_collections/cisco/ise/plugins/action/identity_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/identity_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/internal_user.py b/ansible_collections/cisco/ise/plugins/action/internal_user.py index 47cb0ea2b..84c182550 100644 --- a/ansible_collections/cisco/ise/plugins/action/internal_user.py +++ b/ansible_collections/cisco/ise/plugins/action/internal_user.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/internal_user_info.py b/ansible_collections/cisco/ise/plugins/action/internal_user_info.py index 5f7315391..98baba812 100644 --- a/ansible_collections/cisco/ise/plugins/action/internal_user_info.py +++ b/ansible_collections/cisco/ise/plugins/action/internal_user_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec.py b/ansible_collections/cisco/ise/plugins/action/ipsec.py new file mode 100644 index 000000000..f435fa5ca --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec.py @@ -0,0 +1,257 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + authType=dict(type="str"), + certId=dict(type="str"), + configureVti=dict(type="bool"), + espAhProtocol=dict(type="str"), + hostName=dict(type="str"), + iface=dict(type="str"), + ikeReAuthTime=dict(type="int"), + ikeVersion=dict(type="str"), + localInternalIp=dict(type="str"), + modeOption=dict(type="str"), + nadIp=dict(type="str"), + phaseOneDHGroup=dict(type="str"), + phaseOneEncryptionAlgo=dict(type="str"), + phaseOneHashAlgo=dict(type="str"), + phaseOneLifeTime=dict(type="int"), + phaseTwoDHGroup=dict(type="str"), + phaseTwoEncryptionAlgo=dict(type="str"), + phaseTwoHashAlgo=dict(type="str"), + phaseTwoLifeTime=dict(type="int"), + psk=dict(type="str"), + remotePeerInternalIp=dict(type="str"), +)) + +required_if = [ + ("state", "present", [], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class Ipsec(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + auth_type=params.get("authType"), + cert_id=params.get("certId"), + configure_vti=params.get("configureVti"), + esp_ah_protocol=params.get("espAhProtocol"), + host_name=params.get("hostName"), + iface=params.get("iface"), + ike_re_auth_time=params.get("ikeReAuthTime"), + ike_version=params.get("ikeVersion"), + local_internal_ip=params.get("localInternalIp"), + mode_option=params.get("modeOption"), + nad_ip=params.get("nadIp"), + phase_one_dhgroup=params.get("phaseOneDHGroup"), + phase_one_encryption_algo=params.get("phaseOneEncryptionAlgo"), + phase_one_hash_algo=params.get("phaseOneHashAlgo"), + phase_one_life_time=params.get("phaseOneLifeTime"), + phase_two_dhgroup=params.get("phaseTwoDHGroup"), + phase_two_encryption_algo=params.get("phaseTwoEncryptionAlgo"), + phase_two_hash_algo=params.get("phaseTwoHashAlgo"), + phase_two_life_time=params.get("phaseTwoLifeTime"), + psk=params.get("psk"), + remote_peer_internal_ip=params.get("remotePeerInternalIp"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="native_ipsec", + function="get_ipsec_enabled_nodes_generator" + ) + try: + for items_response in gen_items_responses: + items = items_response.response.get('response', []) + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("authType", "auth_type"), + ("certId", "cert_id"), + ("configureVti", "configure_vti"), + ("espAhProtocol", "esp_ah_protocol"), + ("hostName", "host_name"), + ("iface", "iface"), + ("ikeReAuthTime", "ike_re_auth_time"), + ("ikeVersion", "ike_version"), + ("localInternalIp", "local_internal_ip"), + ("modeOption", "mode_option"), + ("nadIp", "nad_ip"), + ("phaseOneDHGroup", "phase_one_dhgroup"), + ("phaseOneEncryptionAlgo", "phase_one_encryption_algo"), + ("phaseOneHashAlgo", "phase_one_hash_algo"), + ("phaseOneLifeTime", "phase_one_life_time"), + ("phaseTwoDHGroup", "phase_two_dhgroup"), + ("phaseTwoEncryptionAlgo", "phase_two_encryption_algo"), + ("phaseTwoHashAlgo", "phase_two_hash_algo"), + ("phaseTwoLifeTime", "phase_two_life_time"), + ("psk", "psk"), + ("remotePeerInternalIp", "remote_peer_internal_ip"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="native_ipsec", + function="create_ipsec_connection", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + result = self.ise.exec( + family="native_ipsec", + function="update_ipsec_connection_config", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = Ipsec(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_bulk.py b/ansible_collections/cisco/ise/plugins/action/ipsec_bulk.py new file mode 100644 index 000000000..b4d0a2039 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_bulk.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + ItemList=dict(type="list"), + operation=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + item_list=params.get("ItemList"), + operation=params.get("operation"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="native_ipsec", + function="bulk_ip_sec_operation", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/dictionary_references_info.py b/ansible_collections/cisco/ise/plugins/action/ipsec_certificates_info.py index 4b4d92cbe..f8a1dd1a7 100644 --- a/ansible_collections/cisco/ise/plugins/action/dictionary_references_info.py +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_certificates_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2023, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -81,8 +81,8 @@ class ActionModule(ActionBase): name = self._task.args.get("name") if not name and not id: response = ise.exec( - family="edda", - function='get_edda_dictionary_references', + family="native_ipsec", + function='get_ip_sec_certificates', params=self.get_object(self._task.args) ).response['response'] self._result.update(dict(ise_response=response)) diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_delete.py b/ansible_collections/cisco/ise/plugins/action/ipsec_delete.py new file mode 100644 index 000000000..3126bac27 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_delete.py @@ -0,0 +1,188 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["hostName", "nadIp"], True), + ("state", "absent", ["hostName", "nadIp"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class IpsecDelete(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="native_ipsec", + function="" + ).response.get('response', []) + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="native_ipsec", + function="get_ipsec_node", + params={"id": id}, + handle_func_exception=False, + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("hostName", "host_name"), + ("nadIp", "nad_ip"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="native_ipsec", + function="remove_ipsec_connection", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = IpsecDelete(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_delete_info.py b/ansible_collections/cisco/ise/plugins/action/ipsec_delete_info.py new file mode 100644 index 000000000..2733b3741 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_delete_info.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("hostName") + if id: + response = ise.exec( + family="native_ipsec", + function='get_ipsec_node', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_disable.py b/ansible_collections/cisco/ise/plugins/action/ipsec_disable.py new file mode 100644 index 000000000..2d48762fc --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_disable.py @@ -0,0 +1,193 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["hostName", "nadIp"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class IpsecDisable(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="native_ipsec", + function="" + ).response.get('response', []) + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="native_ipsec", + function="get_ipsec_node", + params={"id": id}, + handle_func_exception=False, + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("hostName", "host_name"), + ("nadIp", "nad_ip"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="native_ipsec", + function="disable_ipsec_connection", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = IpsecDisable(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise.fail_json("Object does not exists, plugin only has update") + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_disable_info.py b/ansible_collections/cisco/ise/plugins/action/ipsec_disable_info.py new file mode 100644 index 000000000..2733b3741 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_disable_info.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("hostName") + if id: + response = ise.exec( + family="native_ipsec", + function='get_ipsec_node', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_enable.py b/ansible_collections/cisco/ise/plugins/action/ipsec_enable.py new file mode 100644 index 000000000..e42d0ff63 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_enable.py @@ -0,0 +1,193 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["hostName", "nadIp"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class IpsecEnable(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="native_ipsec", + function="" + ).response.get('response', []) + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="native_ipsec", + function="get_ipsec_node", + params={"id": id}, + handle_func_exception=False, + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("hostName", "host_name"), + ("nadIp", "nad_ip"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="native_ipsec", + function="enable_ipsec_connection", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = IpsecEnable(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise.fail_json("Object does not exists, plugin only has update") + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_enable_info.py b/ansible_collections/cisco/ise/plugins/action/ipsec_enable_info.py new file mode 100644 index 000000000..2733b3741 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_enable_info.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("hostName") + if id: + response = ise.exec( + family="native_ipsec", + function='get_ipsec_node', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ipsec_info.py b/ansible_collections/cisco/ise/plugins/action/ipsec_info.py new file mode 100644 index 000000000..8e183c204 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/ipsec_info.py @@ -0,0 +1,143 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + filter=dict(type="str"), + filterType=dict(type="str"), + sort=dict(type="str"), + sortBy=dict(type="str"), + hostName=dict(type="str"), + nadIp=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + host_name=params.get("hostName"), + nad_ip=params.get("nadIp"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("hostName") + if id: + response = ise.exec( + family="native_ipsec", + function='get_ipsec_node', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="native_ipsec", + function='get_ipsec_enabled_nodes_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/ise_root_ca_regenerate.py b/ansible_collections/cisco/ise/plugins/action/ise_root_ca_regenerate.py index 37822dd98..8b03a8b04 100644 --- a/ansible_collections/cisco/ise/plugins/action/ise_root_ca_regenerate.py +++ b/ansible_collections/cisco/ise/plugins/action/ise_root_ca_regenerate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_connection_type_info.py b/ansible_collections/cisco/ise/plugins/action/licensing_connection_type_info.py index 200fb43c7..5c55282b1 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_connection_type_info.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_connection_type_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_eval_license_info.py b/ansible_collections/cisco/ise/plugins/action/licensing_eval_license_info.py index 199837b1f..d5eefae2b 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_eval_license_info.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_eval_license_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_feature_to_tier_mapping_info.py b/ansible_collections/cisco/ise/plugins/action/licensing_feature_to_tier_mapping_info.py index 106410e6e..76ab3424f 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_feature_to_tier_mapping_info.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_feature_to_tier_mapping_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_registration_create.py b/ansible_collections/cisco/ise/plugins/action/licensing_registration_create.py index b5bea1654..20ac6b2aa 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_registration_create.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_registration_create.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -27,11 +27,11 @@ from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( + token=dict(type="str"), + tier=dict(type="list"), connectionType=dict(type="str"), registrationType=dict(type="str"), ssmOnPremServer=dict(type="str"), - tier=dict(type="list"), - token=dict(type="str"), )) required_if = [] @@ -69,11 +69,11 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( + token=params.get("token"), + tier=params.get("tier"), connection_type=params.get("connectionType"), registration_type=params.get("registrationType"), ssm_on_prem_server=params.get("ssmOnPremServer"), - tier=params.get("tier"), - token=params.get("token"), ) return new_object diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_registration_info.py b/ansible_collections/cisco/ise/plugins/action/licensing_registration_info.py index becdca1bc..c9b2446af 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_registration_info.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_registration_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_create.py b/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_create.py index 6760b5089..f29e57cc1 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_create.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_create.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_info.py b/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_info.py index 3ebd9ae99..b9d00853c 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_info.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_smart_state_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_create.py b/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_create.py index 2ef2ac224..f5c52263d 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_create.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_create.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_info.py b/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_info.py index b4855b92b..a85ba4aef 100644 --- a/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_info.py +++ b/ansible_collections/cisco/ise/plugins/action/licensing_tier_state_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_account_status_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_account_status_info.py index 335f25c0d..4a6a47620 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_account_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_account_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_athentication_status_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_athentication_status_info.py index 31a06b209..c990aa483 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_athentication_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_athentication_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_authentication_status_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_authentication_status_info.py index 7f9538455..f670b1baa 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_authentication_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_authentication_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_failure_reasons_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_failure_reasons_info.py index 4a2bfba14..e47756d89 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_failure_reasons_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_failure_reasons_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_active_count_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_active_count_info.py index 643df1b6d..c05407545 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_active_count_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_active_count_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_active_list_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_active_list_info.py index 4e374bc3d..ff8402569 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_active_list_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_active_list_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_auth_list_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_auth_list_info.py index 991c800cb..dd78451c5 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_auth_list_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_auth_list_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_ip_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_ip_info.py index 41a6b108e..4c08f0cec 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_ip_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_ip_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_mac_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_mac_info.py index 57e658c92..9755b956f 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_mac_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_mac_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_nas_ip_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_nas_ip_info.py index 964c6ab28..16beddf16 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_nas_ip_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_nas_ip_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_username_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_username_info.py index 8c79838f6..c40014429 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_by_username_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_by_username_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_delete_all.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_delete_all.py index ce0a3e687..253212705 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_delete_all.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_delete_all.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_disconnect_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_disconnect_info.py index 36218b231..a9d8c3c6b 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_disconnect_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_disconnect_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_posture_count_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_posture_count_info.py index b67f5da4f..70795380d 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_posture_count_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_posture_count_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_profiler_count_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_profiler_count_info.py index 2cbb1a65b..1bbc0b748 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_profiler_count_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_profiler_count_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_session_reauthentication_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_session_reauthentication_info.py index 351aa4af9..c583b5de4 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_session_reauthentication_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_session_reauthentication_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_sessions_by_session_id_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_sessions_by_session_id_info.py index 2b4a8b240..59df8c752 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_sessions_by_session_id_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_sessions_by_session_id_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/mnt_version_info.py b/ansible_collections/cisco/ise/plugins/action/mnt_version_info.py index f1d1b9d63..ee0f156ac 100644 --- a/ansible_collections/cisco/ise/plugins/action/mnt_version_info.py +++ b/ansible_collections/cisco/ise/plugins/action/mnt_version_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/my_device_portal.py b/ansible_collections/cisco/ise/plugins/action/my_device_portal.py index 874389fb4..382184b9e 100644 --- a/ansible_collections/cisco/ise/plugins/action/my_device_portal.py +++ b/ansible_collections/cisco/ise/plugins/action/my_device_portal.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/my_device_portal_info.py b/ansible_collections/cisco/ise/plugins/action/my_device_portal_info.py index ba6fc0316..db2b5c6a8 100644 --- a/ansible_collections/cisco/ise/plugins/action/my_device_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/my_device_portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile.py b/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile.py index b5c0a0713..6fcb63642 100644 --- a/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile.py +++ b/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile_info.py b/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile_info.py index 45f45ca27..742b92f98 100644 --- a/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/action/native_supplicant_profile_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules.py b/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules.py index b8663b844..cf6956d71 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_info.py index a8676637e..2dafaf3b0 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_reset_hitcount.py index ec714f3f2..52f3e5910 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_authentication_rules_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules.py b/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules.py index 2b6ae8c21..79d0f0bd4 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_info.py index 20432e921..1fd9fa90f 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_reset_hitcount.py index 8610301ff..244cbc931 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_authorization_rules_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_conditions.py b/ansible_collections/cisco/ise/plugins/action/network_access_conditions.py index 7ab7a5b7e..16d642339 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_conditions.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_conditions.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authentication_rule_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authentication_rule_info.py index 630ae4d48..c6abb0a94 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authentication_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authentication_rule_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authorization_rule_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authorization_rule_info.py index 66fcf2fd7..80c78899e 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authorization_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_authorization_rule_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_policy_set_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_policy_set_info.py index be454029c..7d66b021f 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_for_policy_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_info.py index 13d01ddbf..0619c9850 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_conditions_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary.py index b0383b769..463dedb73 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute.py index 7636058a5..55c1e5f55 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute_info.py index 7eccecf63..94226131e 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attribute_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authentication_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authentication_info.py index 433872fe3..18cccc517 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authentication_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authentication_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authorization_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authorization_info.py index 94bb7ea6b..80d8756ec 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authorization_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_authorization_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_policy_set_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_policy_set_info.py index 3da3318d8..1e80f3b5a 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_attributes_policy_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_info.py index e4527b1e0..9dc45f196 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_dictionary_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules.py b/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules.py index b67519de4..0c3907e7f 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_info.py index 9f6a065de..500d3b1f9 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_reset_hitcount.py index 73db95225..0dec88d1a 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_global_exception_rules_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_identity_stores_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_identity_stores_info.py index 27a9769d2..6d845221f 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_identity_stores_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_identity_stores_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules.py b/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules.py index c5b3c4d86..9d004537e 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_info.py index f05f7c150..2de294f77 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_reset_hitcounts.py b/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_reset_hitcounts.py index c575a8c81..fb13aff0a 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_reset_hitcounts.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_local_exception_rules_reset_hitcounts.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_network_condition.py b/ansible_collections/cisco/ise/plugins/action/network_access_network_condition.py index dd223d169..6d709d060 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_network_condition.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_network_condition.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_network_condition_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_network_condition_info.py index 5dbf02a0d..205290e90 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_network_condition_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_network_condition_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_policy_set.py b/ansible_collections/cisco/ise/plugins/action/network_access_policy_set.py index a11f40f0c..bbc4f3be0 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_policy_set.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_policy_set.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_info.py index 6c329de57..a1195321a 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_reset_hitcount.py index fca1b223d..0508661ad 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_policy_set_reset_hitcount.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_profiles_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_profiles_info.py index d89bf00a7..29f37540d 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_profiles_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_profiles_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_security_groups_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_security_groups_info.py index 8319bac08..b3e658eb9 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_security_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_security_groups_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_service_name_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_service_name_info.py index 3e0c7cbbf..840286e22 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_service_name_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_service_name_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions.py b/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions.py index 23b46c263..c8a0ed136 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions_info.py b/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions_info.py index 5d3f5206c..22cb9289a 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_access_time_date_conditions_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_device.py b/ansible_collections/cisco/ise/plugins/action/network_device.py index f5d9636a8..05a67b6aa 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_device.py +++ b/ansible_collections/cisco/ise/plugins/action/network_device.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_device_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/network_device_bulk_monitor_status_info.py index 801d0aef0..bcc6c67ca 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_device_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_device_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_device_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/network_device_bulk_request.py index 49fb1bd94..4276b1c05 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_device_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/network_device_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_device_group.py b/ansible_collections/cisco/ise/plugins/action/network_device_group.py index d45ef371a..22af98522 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_device_group.py +++ b/ansible_collections/cisco/ise/plugins/action/network_device_group.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -32,7 +32,7 @@ argument_spec.update(dict( state=dict(type="str", default="present", choices=["present", "absent"]), name=dict(type="str"), description=dict(type="str"), - ndgtype=dict(type="str"), + othername=dict(type="str"), id=dict(type="str"), )) @@ -51,7 +51,7 @@ class NetworkDeviceGroup(object): self.new_object = dict( name=params.get("name"), description=params.get("description"), - ndgtype=params.get("ndgtype"), + othername=params.get("othername"), id=params.get("id"), ) @@ -122,7 +122,7 @@ class NetworkDeviceGroup(object): obj_params = [ ("name", "name"), ("description", "description"), - ("ndgtype", "ndgtype"), + ("othername", "othername"), ("id", "id"), ] # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params diff --git a/ansible_collections/cisco/ise/plugins/action/network_device_group_info.py b/ansible_collections/cisco/ise/plugins/action/network_device_group_info.py index 739808f9f..0a2f29349 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_device_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_device_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/network_device_info.py b/ansible_collections/cisco/ise/plugins/action/network_device_info.py index 454e7ac3a..0e5504f4e 100644 --- a/ansible_collections/cisco/ise/plugins/action/network_device_info.py +++ b/ansible_collections/cisco/ise/plugins/action/network_device_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_deployment.py b/ansible_collections/cisco/ise/plugins/action/node_deployment.py index 2610dd71e..076869afc 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_deployment.py +++ b/ansible_collections/cisco/ise/plugins/action/node_deployment.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_deployment_info.py b/ansible_collections/cisco/ise/plugins/action/node_deployment_info.py index 7427e473c..1ad12ef61 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_deployment_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_deployment_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_deployment_sync.py b/ansible_collections/cisco/ise/plugins/action/node_deployment_sync.py index 90fcaf23a..580617be2 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_deployment_sync.py +++ b/ansible_collections/cisco/ise/plugins/action/node_deployment_sync.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_group.py b/ansible_collections/cisco/ise/plugins/action/node_group.py index be56fbbf5..d482cd261 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_group.py +++ b/ansible_collections/cisco/ise/plugins/action/node_group.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_group_info.py b/ansible_collections/cisco/ise/plugins/action/node_group_info.py index 91d9a4740..7f1334ffc 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_group_node_create.py b/ansible_collections/cisco/ise/plugins/action/node_group_node_create.py index e28107702..266ecefe8 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_group_node_create.py +++ b/ansible_collections/cisco/ise/plugins/action/node_group_node_create.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_group_node_delete.py b/ansible_collections/cisco/ise/plugins/action/node_group_node_delete.py index a3b33f274..c9805e140 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_group_node_delete.py +++ b/ansible_collections/cisco/ise/plugins/action/node_group_node_delete.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_group_node_info.py b/ansible_collections/cisco/ise/plugins/action/node_group_node_info.py index c2c36914e..c5ab89163 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_group_node_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_group_node_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_info.py b/ansible_collections/cisco/ise/plugins/action/node_info.py index aa02ede7b..e6e71ddf3 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_primary_to_standalone.py b/ansible_collections/cisco/ise/plugins/action/node_primary_to_standalone.py index 9d5364d4d..873aed1f9 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_primary_to_standalone.py +++ b/ansible_collections/cisco/ise/plugins/action/node_primary_to_standalone.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_promotion.py b/ansible_collections/cisco/ise/plugins/action/node_promotion.py index be953fd15..4146d46f6 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_promotion.py +++ b/ansible_collections/cisco/ise/plugins/action/node_promotion.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_replication_status_info.py b/ansible_collections/cisco/ise/plugins/action/node_replication_status_info.py index 807d97613..549d32606 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_replication_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_replication_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_secondary_to_primary.py b/ansible_collections/cisco/ise/plugins/action/node_secondary_to_primary.py index 386e2aada..b7ce9f9d2 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_secondary_to_primary.py +++ b/ansible_collections/cisco/ise/plugins/action/node_secondary_to_primary.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_services_interfaces_info.py b/ansible_collections/cisco/ise/plugins/action/node_services_interfaces_info.py index 62c74180e..33aad5821 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_services_interfaces_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_services_interfaces_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config.py b/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config.py index 53a9a7920..eddc706e8 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config.py +++ b/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config_info.py b/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config_info.py index 484b1101e..ba2db51de 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_services_profiler_probe_config_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces.py b/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces.py index 622f25e27..5102be39e 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces.py +++ b/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces_info.py b/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces_info.py index 48f7d0198..91250ea5c 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces_info.py +++ b/ansible_collections/cisco/ise/plugins/action/node_services_sxp_interfaces_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_standalone_to_primary.py b/ansible_collections/cisco/ise/plugins/action/node_standalone_to_primary.py index 2a6dcb0b2..5a5f8a163 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_standalone_to_primary.py +++ b/ansible_collections/cisco/ise/plugins/action/node_standalone_to_primary.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/node_sync.py b/ansible_collections/cisco/ise/plugins/action/node_sync.py index 941729ebe..6ec66120a 100644 --- a/ansible_collections/cisco/ise/plugins/action/node_sync.py +++ b/ansible_collections/cisco/ise/plugins/action/node_sync.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pan_ha.py b/ansible_collections/cisco/ise/plugins/action/pan_ha.py index 2b6ce746f..a6db98408 100644 --- a/ansible_collections/cisco/ise/plugins/action/pan_ha.py +++ b/ansible_collections/cisco/ise/plugins/action/pan_ha.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pan_ha_info.py b/ansible_collections/cisco/ise/plugins/action/pan_ha_info.py index 02a4f1b5b..72a7ef7dc 100644 --- a/ansible_collections/cisco/ise/plugins/action/pan_ha_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pan_ha_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pan_ha_update.py b/ansible_collections/cisco/ise/plugins/action/pan_ha_update.py index db7f3c14b..96dad28c0 100644 --- a/ansible_collections/cisco/ise/plugins/action/pan_ha_update.py +++ b/ansible_collections/cisco/ise/plugins/action/pan_ha_update.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -27,11 +27,11 @@ from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( - failedAttempts=dict(type="int"), isEnabled=dict(type="bool"), - pollingInterval=dict(type="int"), primaryHealthCheckNode=dict(type="dict"), secondaryHealthCheckNode=dict(type="dict"), + pollingInterval=dict(type="int"), + failedAttempts=dict(type="int"), )) required_if = [] @@ -69,11 +69,11 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( - failed_attempts=params.get("failedAttempts"), is_enabled=params.get("isEnabled"), - polling_interval=params.get("pollingInterval"), primary_health_check_node=params.get("primaryHealthCheckNode"), secondary_health_check_node=params.get("secondaryHealthCheckNode"), + polling_interval=params.get("pollingInterval"), + failed_attempts=params.get("failedAttempts"), ) return new_object diff --git a/ansible_collections/cisco/ise/plugins/action/patch_info.py b/ansible_collections/cisco/ise/plugins/action/patch_info.py index a04933848..c2b37a390 100644 --- a/ansible_collections/cisco/ise/plugins/action/patch_info.py +++ b/ansible_collections/cisco/ise/plugins/action/patch_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/patch_install.py b/ansible_collections/cisco/ise/plugins/action/patch_install.py index 6e8250509..69d635930 100644 --- a/ansible_collections/cisco/ise/plugins/action/patch_install.py +++ b/ansible_collections/cisco/ise/plugins/action/patch_install.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -27,6 +27,7 @@ from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( + isDirectoryListed=dict(type="bool"), patchName=dict(type="str"), repositoryName=dict(type="str"), )) @@ -66,6 +67,7 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( + is_directory_listed=params.get("isDirectoryListed"), patch_name=params.get("patchName"), repository_name=params.get("repositoryName"), ) diff --git a/ansible_collections/cisco/ise/plugins/action/patch_rollback.py b/ansible_collections/cisco/ise/plugins/action/patch_rollback.py index 246845d7a..623a9a352 100644 --- a/ansible_collections/cisco/ise/plugins/action/patch_rollback.py +++ b/ansible_collections/cisco/ise/plugins/action/patch_rollback.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/personas_check_standalone.py b/ansible_collections/cisco/ise/plugins/action/personas_check_standalone.py index 7e4007d03..7ca4732a4 100644 --- a/ansible_collections/cisco/ise/plugins/action/personas_check_standalone.py +++ b/ansible_collections/cisco/ise/plugins/action/personas_check_standalone.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/personas_export_certs.py b/ansible_collections/cisco/ise/plugins/action/personas_export_certs.py index 8acba2dd2..2e66d07a1 100644 --- a/ansible_collections/cisco/ise/plugins/action/personas_export_certs.py +++ b/ansible_collections/cisco/ise/plugins/action/personas_export_certs.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/personas_promote_primary.py b/ansible_collections/cisco/ise/plugins/action/personas_promote_primary.py index 8e7a1c2b5..874ea9866 100644 --- a/ansible_collections/cisco/ise/plugins/action/personas_promote_primary.py +++ b/ansible_collections/cisco/ise/plugins/action/personas_promote_primary.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -22,8 +22,10 @@ from ansible_collections.cisco.ise.plugins.plugin_utils.personas_utils import No argument_spec = dict( ip=dict(type="str", required=True), + hostname=dict(type="str", required=True), username=dict(type="str", required=True), password=dict(type="str", required=True), + roles=dict(type="list", required=True), ise_verify=dict(type="bool", default=True), ise_version=dict(type="str", default="3.1.0"), ise_wait_on_rate_limit=dict(type="bool", default=True), @@ -71,8 +73,10 @@ class ActionModule(ActionBase): self._check_argspec() node = Node(dict(ip=self._task.args.get("ip"), + hostname=self._task.args.get("hostname"), username=self._task.args.get("username"), password=self._task.args.get("password"), + roles=self._task.args.get("roles"), ) ) diff --git a/ansible_collections/cisco/ise/plugins/action/personas_register_node.py b/ansible_collections/cisco/ise/plugins/action/personas_register_node.py index 2a1b008f2..09f332e7a 100644 --- a/ansible_collections/cisco/ise/plugins/action/personas_register_node.py +++ b/ansible_collections/cisco/ise/plugins/action/personas_register_node.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/portal_global_setting.py b/ansible_collections/cisco/ise/plugins/action/portal_global_setting.py index 762235af9..c2e0657f0 100644 --- a/ansible_collections/cisco/ise/plugins/action/portal_global_setting.py +++ b/ansible_collections/cisco/ise/plugins/action/portal_global_setting.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/portal_global_setting_info.py b/ansible_collections/cisco/ise/plugins/action/portal_global_setting_info.py index b27bd26b0..166e1b6b5 100644 --- a/ansible_collections/cisco/ise/plugins/action/portal_global_setting_info.py +++ b/ansible_collections/cisco/ise/plugins/action/portal_global_setting_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/portal_info.py b/ansible_collections/cisco/ise/plugins/action/portal_info.py index 3e4a54e7d..6c79f5cb8 100644 --- a/ansible_collections/cisco/ise/plugins/action/portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/portal_theme.py b/ansible_collections/cisco/ise/plugins/action/portal_theme.py index 7b2d2c914..4e731dafa 100644 --- a/ansible_collections/cisco/ise/plugins/action/portal_theme.py +++ b/ansible_collections/cisco/ise/plugins/action/portal_theme.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/portal_theme_info.py b/ansible_collections/cisco/ise/plugins/action/portal_theme_info.py index ab52db7d4..40c7fd90d 100644 --- a/ansible_collections/cisco/ise/plugins/action/portal_theme_info.py +++ b/ansible_collections/cisco/ise/plugins/action/portal_theme_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/profiler_profile_info.py b/ansible_collections/cisco/ise/plugins/action/profiler_profile_info.py index 50cedbbb9..46a20019c 100644 --- a/ansible_collections/cisco/ise/plugins/action/profiler_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/action/profiler_profile_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings.py b/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings.py index 758eebd78..5246821c9 100644 --- a/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings.py +++ b/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings_info.py b/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings_info.py index 629e4373c..745f96312 100644 --- a/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/proxy_connection_settings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/connector_config.py b/ansible_collections/cisco/ise/plugins/action/px_grid_direct.py index 8e124b7ed..c1861824f 100644 --- a/ansible_collections/cisco/ise/plugins/action/connector_config.py +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_direct.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2023, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -55,7 +55,7 @@ mutually_exclusive = [] required_together = [] -class ConnectorConfig(object): +class PxGridDirect(object): def __init__(self, params, ise): self.ise = ise self.new_object = dict( @@ -75,12 +75,12 @@ class ConnectorConfig(object): def get_object_by_name(self, name): try: result = self.ise.exec( - family="edda", + family="px_grid_direct", function="get_connector_config_by_connector_name", - params={"connector_name": name}, + params={"name": name}, handle_func_exception=False, ).response['response'] - result = get_dict_result(result, 'connectorName', name) + result = get_dict_result(result, 'name', name) except (TypeError, AttributeError) as e: self.ise.fail_json( msg=( @@ -105,7 +105,7 @@ class ConnectorConfig(object): name_exists = False prev_obj = None o_id = self.new_object.get("id") - name = self.new_object.get("connectorName") + name = self.new_object.get("name") if o_id: prev_obj = self.get_object_by_id(o_id) id_exists = prev_obj is not None and isinstance(prev_obj, dict) @@ -143,7 +143,7 @@ class ConnectorConfig(object): def create(self): result = self.ise.exec( - family="edda", + family="px_grid_direct", function="create_connector_config", params=self.new_object, ).response @@ -157,7 +157,7 @@ class ConnectorConfig(object): name_ = self.get_object_by_id(id).get("name") self.new_object.update(dict(name=name_)) result = self.ise.exec( - family="edda", + family="px_grid_direct", function="update_connector_config_by_connector_name", params=self.new_object ).response @@ -171,7 +171,7 @@ class ConnectorConfig(object): name_ = self.get_object_by_id(id).get("name") self.new_object.update(dict(name=name_)) result = self.ise.exec( - family="edda", + family="px_grid_direct", function="delete_connector_config_by_connector_name", params=self.new_object ).response @@ -212,7 +212,7 @@ class ActionModule(ActionBase): self._check_argspec() ise = ISESDK(params=self._task.args) - obj = ConnectorConfig(self._task.args, ise) + obj = PxGridDirect(self._task.args, ise) state = self._task.args.get("state") diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_direct_dictionary_info.py b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_dictionary_info.py new file mode 100644 index 000000000..501f121a6 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_dictionary_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + response = ise.exec( + family="px_grid_direct", + function='getpxgrid_direct_dictionary_references', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/connector_config_info.py b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_info.py index 05bd40cbe..a07394aef 100644 --- a/ansible_collections/cisco/ise/plugins/action/connector_config_info.py +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2023, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -83,7 +83,7 @@ class ActionModule(ActionBase): name = self._task.args.get("connectorName") if name: response = ise.exec( - family="edda", + family="px_grid_direct", function='get_connector_config_by_connector_name', params=self.get_object(self._task.args) ).response['response'] @@ -92,7 +92,7 @@ class ActionModule(ActionBase): return self._result if not name and not id: response = ise.exec( - family="edda", + family="px_grid_direct", function='get_connector_config', params=self.get_object(self._task.args) ).response['response'] diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync.py b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync.py new file mode 100644 index 000000000..b6fe0817e --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + SyncType=dict(type="str"), + connectorName=dict(type="str"), + description=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["connectorName"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class PxGridDirectSync(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + sync_type=params.get("SyncType"), + connector_name=params.get("connectorName"), + description=params.get("description"), + ) + + def get_object_by_name(self, name): + try: + result = self.ise.exec( + family="px_grid_direct", + function="get_connector_config_sync_now_status", + params={"connectorName": name}, + handle_func_exception=False, + ).response['response'] + result = get_dict_result(result, 'name', name) + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("connectorName") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("SyncType", "sync_type"), + ("connectorName", "connector_name"), + ("description", "description"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="px_grid_direct", + function="sync_now_connector", + params=self.new_object, + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = PxGridDirectSync(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + response = prev_obj + ise.object_present_and_different() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync_info.py b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync_info.py new file mode 100644 index 000000000..a96835fdc --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_sync_info.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + connectorName=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + connector_name=params.get("connectorName"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("connectorName") + if name: + response = ise.exec( + family="px_grid_direct", + function='get_connector_config_sync_now_status', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/test_connector.py b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_test_connector.py index f3a1b5797..940e1d2c5 100644 --- a/ansible_collections/cisco/ise/plugins/action/test_connector.py +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_direct_test_connector.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2023, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -31,6 +31,7 @@ argument_spec.update(dict( authValues=dict(type="dict"), connectorName=dict(type="str"), responseParsing=dict(type="str"), + skipCertificateValidations=dict(type="bool"), uniqueID=dict(type="str"), url=dict(type="str"), )) @@ -74,6 +75,7 @@ class ActionModule(ActionBase): auth_values=params.get("authValues"), connector_name=params.get("connectorName"), response_parsing=params.get("responseParsing"), + skip_certificate_validations=params.get("skipCertificateValidations"), unique_id=params.get("uniqueID"), url=params.get("url"), ) @@ -88,7 +90,7 @@ class ActionModule(ActionBase): ise = ISESDK(params=self._task.args) response = ise.exec( - family="edda", + family="px_grid_direct", function="test_connector", params=self.get_object(self._task.args), ).response diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_node_approve.py b/ansible_collections/cisco/ise/plugins/action/px_grid_node_approve.py index d1a28a5ac..c3f71ac1e 100644 --- a/ansible_collections/cisco/ise/plugins/action/px_grid_node_approve.py +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_node_approve.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_node_delete.py b/ansible_collections/cisco/ise/plugins/action/px_grid_node_delete.py index eff20fc8b..f51f9f73e 100644 --- a/ansible_collections/cisco/ise/plugins/action/px_grid_node_delete.py +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_node_delete.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_node_info.py b/ansible_collections/cisco/ise/plugins/action/px_grid_node_info.py index 20e5bdf53..2b1aa7bf1 100644 --- a/ansible_collections/cisco/ise/plugins/action/px_grid_node_info.py +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_node_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/px_grid_settings_auto_approve.py b/ansible_collections/cisco/ise/plugins/action/px_grid_settings_auto_approve.py index ed674d644..79cfb3e3f 100644 --- a/ansible_collections/cisco/ise/plugins/action/px_grid_settings_auto_approve.py +++ b/ansible_collections/cisco/ise/plugins/action/px_grid_settings_auto_approve.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_access_secret.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_access_secret.py index 43bbb95f2..f707432b8 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_access_secret.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_access_secret.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_account_activate.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_account_activate.py index 8c7e71aad..84f042489 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_account_activate.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_account_activate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_account_create.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_account_create.py index 040247a7e..647f79984 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_account_create.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_account_create.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_authorization.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_authorization.py index 7ac4e39b9..bb4e073e5 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_authorization.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_authorization.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_bindings_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_bindings_info.py index fba8c50fe..275b4ca2f 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_bindings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_bindings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_matrices_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_matrices_info.py index 510540974..210df469b 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_matrices_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_matrices_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_policies_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_policies_info.py index 4ef5b302b..8d59f1187 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_policies_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_egress_policies_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoint_by_mac_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoint_by_mac_info.py index afcdf8652..b1f2e75bc 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoint_by_mac_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoint_by_mac_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_os_type_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_os_type_info.py index 0df3187ba..d09e741ca 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_os_type_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_os_type_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_type_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_type_info.py index e7508f6dc..218354951 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_type_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_by_type_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_info.py index ba538d3a9..f57c53d8e 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_endpoints_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_failures_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_failures_info.py index 145586690..03fe49c3e 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_failures_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_failures_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_healths_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_healths_info.py index a0ff7012d..309bab442 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_healths_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_healths_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_node_approve.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_node_approve.py index d1a28a5ac..c3f71ac1e 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_node_approve.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_node_approve.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_node_delete.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_node_delete.py index eff20fc8b..f51f9f73e 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_node_delete.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_node_delete.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_node_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_node_info.py index 20e5bdf53..2b1aa7bf1 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_node_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_node_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_performances_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_performances_info.py index 9297f8fc3..dd77a2c9d 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_performances_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_performances_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_profiles_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_profiles_info.py index ddf5a5aef..89af46f52 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_profiles_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_profiles_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_security_group_acls_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_security_group_acls_info.py index 9f7c69c60..ad57677d9 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_security_group_acls_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_security_group_acls_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_security_groups_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_security_groups_info.py index a5e808207..ab18eb7f2 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_security_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_security_groups_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_lookup.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_lookup.py index afc650923..02b7b61c8 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_lookup.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_lookup.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_register.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_register.py index df3e440c7..a689f4105 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_register.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_register.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_reregister.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_reregister.py index 0260f6e65..9f9637030 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_reregister.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_reregister.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_unregister.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_unregister.py index e245c4d84..2bc362861 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_service_unregister.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_service_unregister.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_ip_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_ip_info.py index 82f255692..af65bbf8e 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_ip_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_ip_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_mac_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_mac_info.py index 17cdf4e2f..01bb6f95a 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_mac_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_session_by_mac_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_session_for_recovery_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_session_for_recovery_info.py index 35c2a0fbe..8c4045fed 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_session_for_recovery_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_session_for_recovery_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_sessions_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_sessions_info.py index 86316c1ba..141d8501c 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_sessions_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_sessions_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_settings_auto_approve.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_settings_auto_approve.py index ed674d644..79cfb3e3f 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_settings_auto_approve.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_settings_auto_approve.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_user_group_by_username_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_user_group_by_username_info.py index 67513d4ce..b61fa9917 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_user_group_by_username_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_user_group_by_username_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/pxgrid_user_groups_info.py b/ansible_collections/cisco/ise/plugins/action/pxgrid_user_groups_info.py index ecfd2bb5c..ac1989a5b 100644 --- a/ansible_collections/cisco/ise/plugins/action/pxgrid_user_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/action/pxgrid_user_groups_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/radius_server_sequence.py b/ansible_collections/cisco/ise/plugins/action/radius_server_sequence.py index ab25c9a52..7deec1bf7 100644 --- a/ansible_collections/cisco/ise/plugins/action/radius_server_sequence.py +++ b/ansible_collections/cisco/ise/plugins/action/radius_server_sequence.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/radius_server_sequence_info.py b/ansible_collections/cisco/ise/plugins/action/radius_server_sequence_info.py index 821f5ac30..0198fcc1b 100644 --- a/ansible_collections/cisco/ise/plugins/action/radius_server_sequence_info.py +++ b/ansible_collections/cisco/ise/plugins/action/radius_server_sequence_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/renew_certificate.py b/ansible_collections/cisco/ise/plugins/action/renew_certificate.py index e8c5aca11..65b26d27b 100644 --- a/ansible_collections/cisco/ise/plugins/action/renew_certificate.py +++ b/ansible_collections/cisco/ise/plugins/action/renew_certificate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/repository.py b/ansible_collections/cisco/ise/plugins/action/repository.py index 0b01c202e..5f2557854 100644 --- a/ansible_collections/cisco/ise/plugins/action/repository.py +++ b/ansible_collections/cisco/ise/plugins/action/repository.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/repository_files_info.py b/ansible_collections/cisco/ise/plugins/action/repository_files_info.py index f41da0ffd..8de12e117 100644 --- a/ansible_collections/cisco/ise/plugins/action/repository_files_info.py +++ b/ansible_collections/cisco/ise/plugins/action/repository_files_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/repository_info.py b/ansible_collections/cisco/ise/plugins/action/repository_info.py index 4c27ff60c..c24a14eb0 100644 --- a/ansible_collections/cisco/ise/plugins/action/repository_info.py +++ b/ansible_collections/cisco/ise/plugins/action/repository_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/reservation.py b/ansible_collections/cisco/ise/plugins/action/reservation.py new file mode 100644 index 000000000..731a1e57f --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/reservation.py @@ -0,0 +1,255 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + clientName=dict(type="str"), + numberOfTags=dict(type="int"), + clientID=dict(type="str"), + endIndex=dict(type="int"), + startIndex=dict(type="int"), +)) + +required_if = [ + ("state", "absent", ["clientID"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class Reservation(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + client_name=params.get("clientName"), + number_of_tags=params.get("numberOfTags"), + client_id=params.get("clientID"), + end_index=params.get("endIndex"), + start_index=params.get("startIndex"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + gen_items_responses = self.ise.exec( + family="sgt_range_reservation", + function="get_sgt_reserved_ranges_generator" + ) + try: + for items_response in gen_items_responses: + items = items_response.response.get('response', []) + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="sgt_range_reservation", + function="get_sgt_reserved_range", + handle_func_exception=False, + params={"id": id} + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("clientName", "client_name"), + ("numberOfTags", "number_of_tags"), + ("clientID", "client_id"), + ("endIndex", "end_index"), + ("startIndex", "start_index"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="sgt_range_reservation", + function="reserve_sgt_range", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="sgt_range_reservation", + function="update_reserved_range", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="sgt_range_reservation", + function="delete_sgt_reserve_range", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = Reservation(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/reservation_info.py b/ansible_collections/cisco/ise/plugins/action/reservation_info.py new file mode 100644 index 000000000..e02ce3162 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/reservation_info.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + clientID=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + client_id=params.get("clientID"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("clientID") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="sgt_range_reservation", + function='get_sgt_reserved_range', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="sgt_range_reservation", + function='get_sgt_reserved_ranges_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/resource_version_info.py b/ansible_collections/cisco/ise/plugins/action/resource_version_info.py index 4dcf7478c..e8536d9a1 100644 --- a/ansible_collections/cisco/ise/plugins/action/resource_version_info.py +++ b/ansible_collections/cisco/ise/plugins/action/resource_version_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/rest_id_store.py b/ansible_collections/cisco/ise/plugins/action/rest_id_store.py index 298223855..8d16915c9 100644 --- a/ansible_collections/cisco/ise/plugins/action/rest_id_store.py +++ b/ansible_collections/cisco/ise/plugins/action/rest_id_store.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/rest_id_store_info.py b/ansible_collections/cisco/ise/plugins/action/rest_id_store_info.py index 64726af72..e93c29a46 100644 --- a/ansible_collections/cisco/ise/plugins/action/rest_id_store_info.py +++ b/ansible_collections/cisco/ise/plugins/action/rest_id_store_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/self_registered_portal.py b/ansible_collections/cisco/ise/plugins/action/self_registered_portal.py index fb0bf742b..cd534b5a9 100644 --- a/ansible_collections/cisco/ise/plugins/action/self_registered_portal.py +++ b/ansible_collections/cisco/ise/plugins/action/self_registered_portal.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/self_registered_portal_info.py b/ansible_collections/cisco/ise/plugins/action/self_registered_portal_info.py index d02d00167..57ee5e3d5 100644 --- a/ansible_collections/cisco/ise/plugins/action/self_registered_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/self_registered_portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/selfsigned_certificate_generate.py b/ansible_collections/cisco/ise/plugins/action/selfsigned_certificate_generate.py index 5c1a29bd5..e485061ab 100644 --- a/ansible_collections/cisco/ise/plugins/action/selfsigned_certificate_generate.py +++ b/ansible_collections/cisco/ise/plugins/action/selfsigned_certificate_generate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/session_service_node_info.py b/ansible_collections/cisco/ise/plugins/action/session_service_node_info.py index edd33df5a..463f85fe0 100644 --- a/ansible_collections/cisco/ise/plugins/action/session_service_node_info.py +++ b/ansible_collections/cisco/ise/plugins/action/session_service_node_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_acl.py b/ansible_collections/cisco/ise/plugins/action/sg_acl.py index 152d6176d..78da03e23 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_acl.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_acl.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_monitor_status_info.py index 863c2f4c9..39fd63aa7 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_request.py index 7cfff24d9..db68ff947 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_acl_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_acl_info.py b/ansible_collections/cisco/ise/plugins/action/sg_acl_info.py index 36b14a20f..e2382fce7 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_acl_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_acl_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping.py index 288fd80b6..df4f298f1 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_monitor_status_info.py index d7f242022..3bde15cc3 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_request.py index e82eb637f..f2e121d07 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy.py index 784a828d5..329ec469f 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_all.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_all.py index cf72239c1..2d04386cf 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_all.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_all.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_status_info.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_status_info.py index 216014fc4..70818b5fe 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_deploy_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group.py index 67bac9001..f7d4fa5ec 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_monitor_status_info.py index 567ab2dcb..e794ca395 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_request.py index f1830ce02..a3fc52f5b 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy.py index e9035f0ab..639747314 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_all.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_all.py index 55c9a7ae8..067ef4dd7 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_all.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_all.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_status_info.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_status_info.py index 38f02d4e8..91ea9faf9 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_deploy_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_info.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_info.py index 04b67c510..0aabee221 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_mapping_info.py b/ansible_collections/cisco/ise/plugins/action/sg_mapping_info.py index 8d8b0beaf..4d65f144d 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_mapping_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_mapping_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan.py b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan.py index 243b6d208..6fae123d1 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_monitor_status_info.py index 692d4b83b..67b3c1f4e 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_request.py index 23a48207b..acda6a98c 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_info.py b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_info.py index b0194ce10..561498ec5 100644 --- a/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sg_to_vn_to_vlan_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sgt.py b/ansible_collections/cisco/ise/plugins/action/sgt.py index 6b4c11232..db45d70d9 100644 --- a/ansible_collections/cisco/ise/plugins/action/sgt.py +++ b/ansible_collections/cisco/ise/plugins/action/sgt.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sgt_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sgt_bulk_monitor_status_info.py index 1ad0b0718..b95084ee6 100644 --- a/ansible_collections/cisco/ise/plugins/action/sgt_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sgt_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sgt_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sgt_bulk_request.py index 2157144ba..eb5fd4c52 100644 --- a/ansible_collections/cisco/ise/plugins/action/sgt_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sgt_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sgt_info.py b/ansible_collections/cisco/ise/plugins/action/sgt_info.py index 3c1602e76..27c172494 100644 --- a/ansible_collections/cisco/ise/plugins/action/sgt_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sgt_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sms_provider_info.py b/ansible_collections/cisco/ise/plugins/action/sms_provider_info.py index 75971faf3..235626668 100644 --- a/ansible_collections/cisco/ise/plugins/action/sms_provider_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sms_provider_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsor_group.py b/ansible_collections/cisco/ise/plugins/action/sponsor_group.py index 8bd4bc92b..ab46d1f2b 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsor_group.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsor_group.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsor_group_info.py b/ansible_collections/cisco/ise/plugins/action/sponsor_group_info.py index 695b98952..f94e22cdf 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsor_group_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsor_group_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsor_group_member_info.py b/ansible_collections/cisco/ise/plugins/action/sponsor_group_member_info.py index 4efac6fbe..dd522d14e 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsor_group_member_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsor_group_member_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsor_portal.py b/ansible_collections/cisco/ise/plugins/action/sponsor_portal.py index 95a45c1ab..cb2fd1943 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsor_portal.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsor_portal.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsor_portal_info.py b/ansible_collections/cisco/ise/plugins/action/sponsor_portal_info.py index 41ce0dfe2..fe3a1f908 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsor_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsor_portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal.py b/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal.py index 437eb6b17..f0e9a1346 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal_info.py b/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal_info.py index 732d3e77a..464361302 100644 --- a/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sponsored_guest_portal_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/stop_replication.py b/ansible_collections/cisco/ise/plugins/action/stop_replication.py new file mode 100644 index 000000000..0d678ee50 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/stop_replication.py @@ -0,0 +1,168 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + isEnabled=dict(type="bool"), +)) + +required_if = [ + ("state", "present", [], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class StopReplication(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + is_enabled=params.get("isEnabled"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="endpoint_stop_replication_service", + function="get_stop_replication_status" + ).response['response'] + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("isEnabled", "is_enabled"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + result = self.ise.exec( + family="endpoint_stop_replication_service", + function="set_stop_replication_service", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = StopReplication(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise.fail_json("Object does not exists, plugin only has update") + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/stop_replication_info.py b/ansible_collections/cisco/ise/plugins/action/stop_replication_info.py new file mode 100644 index 000000000..729e698fe --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/stop_replication_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + response = ise.exec( + family="endpoint_stop_replication_service", + function='get_stop_replication_status', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/subscriber.py b/ansible_collections/cisco/ise/plugins/action/subscriber.py index a3713078a..11b89e884 100644 --- a/ansible_collections/cisco/ise/plugins/action/subscriber.py +++ b/ansible_collections/cisco/ise/plugins/action/subscriber.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2023, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -37,9 +37,9 @@ argument_spec.update(dict( friendlyName=dict(type="str"), identityGroups=dict(type="str"), imeis=dict(type="str"), - imsi=dict(type="str"), - ki=dict(type="str"), opc=dict(type="str"), + ki=dict(type="str"), + imsi=dict(type="str"), subscriberId=dict(type="str"), )) @@ -57,9 +57,9 @@ class Subscriber(object): friendly_name=params.get("friendlyName"), identity_groups=params.get("identityGroups"), imeis=params.get("imeis"), - imsi=params.get("imsi"), - ki=params.get("ki"), opc=params.get("opc"), + ki=params.get("ki"), + imsi=params.get("imsi"), subscriber_id=params.get("subscriberId"), ) @@ -97,7 +97,7 @@ class Subscriber(object): family="subscriber", function="get_subscriber_by_id", handle_func_exception=False, - params={"subscriber_id": id} + params={"id": id} ).response['response'] except (TypeError, AttributeError) as e: self.ise.fail_json( @@ -117,7 +117,7 @@ class Subscriber(object): id_exists = False name_exists = False prev_obj = None - o_id = self.new_object.get("subscriberId") + o_id = self.new_object.get("id") name = self.new_object.get("name") if o_id: prev_obj = self.get_object_by_id(o_id) @@ -142,9 +142,9 @@ class Subscriber(object): ("friendlyName", "friendly_name"), ("identityGroups", "identity_groups"), ("imeis", "imeis"), - ("imsi", "imsi"), - ("ki", "ki"), ("opc", "opc"), + ("ki", "ki"), + ("imsi", "imsi"), ("subscriberId", "subscriber_id"), ] # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params diff --git a/ansible_collections/cisco/ise/plugins/action/subscriber_bulk.py b/ansible_collections/cisco/ise/plugins/action/subscriber_bulk.py index bd392306d..0477c5b43 100644 --- a/ansible_collections/cisco/ise/plugins/action/subscriber_bulk.py +++ b/ansible_collections/cisco/ise/plugins/action/subscriber_bulk.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2023, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -27,8 +27,8 @@ from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( - ItemList=dict(type="list"), operation=dict(type="str"), + ItemList=dict(type="list"), )) required_if = [] @@ -66,8 +66,8 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( - item_list=params.get("ItemList"), operation=params.get("operation"), + item_list=params.get("ItemList"), ) return new_object diff --git a/ansible_collections/cisco/ise/plugins/action/subscriber_imsi_info.py b/ansible_collections/cisco/ise/plugins/action/subscriber_imsi_info.py index f82cd0d6d..0a2149781 100644 --- a/ansible_collections/cisco/ise/plugins/action/subscriber_imsi_info.py +++ b/ansible_collections/cisco/ise/plugins/action/subscriber_imsi_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2023, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/subscriber_info.py b/ansible_collections/cisco/ise/plugins/action/subscriber_info.py index 65d8cc69c..172b076d2 100644 --- a/ansible_collections/cisco/ise/plugins/action/subscriber_info.py +++ b/ansible_collections/cisco/ise/plugins/action/subscriber_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2023, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/support_bundle.py b/ansible_collections/cisco/ise/plugins/action/support_bundle.py index 73e925af8..d7921171d 100644 --- a/ansible_collections/cisco/ise/plugins/action/support_bundle.py +++ b/ansible_collections/cisco/ise/plugins/action/support_bundle.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/support_bundle_download.py b/ansible_collections/cisco/ise/plugins/action/support_bundle_download.py index e21df3e22..5031e886a 100644 --- a/ansible_collections/cisco/ise/plugins/action/support_bundle_download.py +++ b/ansible_collections/cisco/ise/plugins/action/support_bundle_download.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/support_bundle_status_info.py b/ansible_collections/cisco/ise/plugins/action/support_bundle_status_info.py index 34f77c217..61357d6fc 100644 --- a/ansible_collections/cisco/ise/plugins/action/support_bundle_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/support_bundle_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_connections.py b/ansible_collections/cisco/ise/plugins/action/sxp_connections.py index 1ad726f43..d068ce425 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_connections.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_connections.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_monitor_status_info.py index 3376e2f75..9232d5aea 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_request.py index ff5ab9c19..fd9b00778 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_connections_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_connections_info.py b/ansible_collections/cisco/ise/plugins/action/sxp_connections_info.py index 55411cb90..42afe968e 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_connections_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_connections_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings.py b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings.py index 10451d9bd..3f1e386f0 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_monitor_status_info.py index da9fe0d18..b2d5e1940 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_request.py index ff23aa0df..3778beb53 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_info.py b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_info.py index e2856ee0e..cca2bf477 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_local_bindings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_vpns.py b/ansible_collections/cisco/ise/plugins/action/sxp_vpns.py index e9021d464..db1deb187 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_vpns.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_vpns.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_monitor_status_info.py index 74a8cf9da..5e2b53e0f 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_monitor_status_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_request.py b/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_request.py index 391deb4c4..214eeda0c 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_vpns_bulk_request.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/sxp_vpns_info.py b/ansible_collections/cisco/ise/plugins/action/sxp_vpns_info.py index ca26ec9b5..bacbc1e96 100644 --- a/ansible_collections/cisco/ise/plugins/action/sxp_vpns_info.py +++ b/ansible_collections/cisco/ise/plugins/action/sxp_vpns_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/system_certificate.py b/ansible_collections/cisco/ise/plugins/action/system_certificate.py index 3faae7fec..58991206b 100644 --- a/ansible_collections/cisco/ise/plugins/action/system_certificate.py +++ b/ansible_collections/cisco/ise/plugins/action/system_certificate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/system_certificate_create.py b/ansible_collections/cisco/ise/plugins/action/system_certificate_create.py index 0b47847ac..31461874c 100644 --- a/ansible_collections/cisco/ise/plugins/action/system_certificate_create.py +++ b/ansible_collections/cisco/ise/plugins/action/system_certificate_create.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/system_certificate_export_info.py b/ansible_collections/cisco/ise/plugins/action/system_certificate_export_info.py index 6922b5a9f..f45e274a2 100644 --- a/ansible_collections/cisco/ise/plugins/action/system_certificate_export_info.py +++ b/ansible_collections/cisco/ise/plugins/action/system_certificate_export_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -28,6 +28,7 @@ argument_spec = ise_argument_spec() # Add arguments specific for this module argument_spec.update(dict( export=dict(type="str"), + hostName=dict(type="str"), id=dict(type="str"), password=dict(type="str", no_log=True), dirPath=dict(type="str"), @@ -71,6 +72,7 @@ class ActionModule(ActionBase): def get_object(self, params): new_object = dict( export=params.get("export"), + host_name=params.get("hostName"), id=params.get("id"), password=params.get("password"), dirpath=params.get("dirPath"), diff --git a/ansible_collections/cisco/ise/plugins/action/system_certificate_import.py b/ansible_collections/cisco/ise/plugins/action/system_certificate_import.py index 51050e3e7..988fb5e01 100644 --- a/ansible_collections/cisco/ise/plugins/action/system_certificate_import.py +++ b/ansible_collections/cisco/ise/plugins/action/system_certificate_import.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/system_certificate_info.py b/ansible_collections/cisco/ise/plugins/action/system_certificate_info.py index 5f1d0e7c2..6c6ee0d4d 100644 --- a/ansible_collections/cisco/ise/plugins/action/system_certificate_info.py +++ b/ansible_collections/cisco/ise/plugins/action/system_certificate_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -32,7 +32,7 @@ argument_spec.update(dict( size=dict(type="int"), sort=dict(type="str"), sortBy=dict(type="str"), - filter=dict(type="list"), + filter=dict(type="str"), filterType=dict(type="str"), id=dict(type="str"), )) diff --git a/ansible_collections/cisco/ise/plugins/action/system_config_version_info.py b/ansible_collections/cisco/ise/plugins/action/system_config_version_info.py index 17a4d3e2d..ae68a50a6 100644 --- a/ansible_collections/cisco/ise/plugins/action/system_config_version_info.py +++ b/ansible_collections/cisco/ise/plugins/action/system_config_version_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets.py b/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets.py index 471cd6b70..ec60cd403 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets_info.py b/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets_info.py index 7df402af6..db96fe04a 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets_info.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_command_sets_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers.py b/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers.py index 60c07d1dc..fa36fb7cf 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers_info.py b/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers_info.py index e64bf2d8d..bc0d21ef8 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers_info.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_external_servers_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_profile.py b/ansible_collections/cisco/ise/plugins/action/tacacs_profile.py index d87faab8f..5a0b846ef 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_profile.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_profile.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_profile_info.py b/ansible_collections/cisco/ise/plugins/action/tacacs_profile_info.py index d48f8753b..86001ae69 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_profile_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence.py b/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence.py index 3292d9482..d43760a55 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence_info.py b/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence_info.py index 6b3cee9f1..d182d64e4 100644 --- a/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence_info.py +++ b/ansible_collections/cisco/ise/plugins/action/tacacs_server_sequence_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/tasks_info.py b/ansible_collections/cisco/ise/plugins/action/tasks_info.py index a99af7810..49cdf6805 100644 --- a/ansible_collections/cisco/ise/plugins/action/tasks_info.py +++ b/ansible_collections/cisco/ise/plugins/action/tasks_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/telemetry_info.py b/ansible_collections/cisco/ise/plugins/action/telemetry_info.py index c2981dffb..24fd1b852 100644 --- a/ansible_collections/cisco/ise/plugins/action/telemetry_info.py +++ b/ansible_collections/cisco/ise/plugins/action/telemetry_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/threat_vulnerabilities_clear.py b/ansible_collections/cisco/ise/plugins/action/threat_vulnerabilities_clear.py index 6360671d7..f3ce50d40 100644 --- a/ansible_collections/cisco/ise/plugins/action/threat_vulnerabilities_clear.py +++ b/ansible_collections/cisco/ise/plugins/action/threat_vulnerabilities_clear.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings.py b/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings.py index 10555db06..ec5076e29 100644 --- a/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings.py +++ b/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings_info.py b/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings_info.py index 8aa181500..b0c609e4d 100644 --- a/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/action/transport_gateway_settings_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/trusted_certificate.py b/ansible_collections/cisco/ise/plugins/action/trusted_certificate.py index 8b86c914b..65765c65d 100644 --- a/ansible_collections/cisco/ise/plugins/action/trusted_certificate.py +++ b/ansible_collections/cisco/ise/plugins/action/trusted_certificate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/trusted_certificate_export_info.py b/ansible_collections/cisco/ise/plugins/action/trusted_certificate_export_info.py index fc1e9d075..7a6cd3241 100644 --- a/ansible_collections/cisco/ise/plugins/action/trusted_certificate_export_info.py +++ b/ansible_collections/cisco/ise/plugins/action/trusted_certificate_export_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/trusted_certificate_import.py b/ansible_collections/cisco/ise/plugins/action/trusted_certificate_import.py index c36cdf54b..e3b9bf48e 100644 --- a/ansible_collections/cisco/ise/plugins/action/trusted_certificate_import.py +++ b/ansible_collections/cisco/ise/plugins/action/trusted_certificate_import.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function diff --git a/ansible_collections/cisco/ise/plugins/action/trusted_certificate_info.py b/ansible_collections/cisco/ise/plugins/action/trusted_certificate_info.py index b0fd68fb4..ef552c9c6 100644 --- a/ansible_collections/cisco/ise/plugins/action/trusted_certificate_info.py +++ b/ansible_collections/cisco/ise/plugins/action/trusted_certificate_info.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (c) 2021, Cisco Systems +# Copyright (c) 2024, Cisco Systems # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -31,7 +31,7 @@ argument_spec.update(dict( size=dict(type="int"), sort=dict(type="str"), sortBy=dict(type="str"), - filter=dict(type="list"), + filter=dict(type="str"), filterType=dict(type="str"), id=dict(type="str"), )) diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app.py b/ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app.py new file mode 100644 index 000000000..953ffeecd --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app.py @@ -0,0 +1,256 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + description=dict(type="str"), + id=dict(type="str"), + name=dict(type="str"), + networkIdentities=dict(type="list"), +)) + +required_if = [ + ("state", "present", ["id", "name"], True), + ("state", "absent", ["id", "name"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class TrustsecNbarApp(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + description=params.get("description"), + id=params.get("id"), + name=params.get("name"), + network_identities=params.get("networkIdentities"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="nbar_app", + function="get_nbar_apps_generator", + params={"filter": "name.EQ.{name}".format(name=name)} + ) + try: + for items_response in gen_items_responses: + items = items_response.response['response'] + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="nbar_app", + function="get_nbar_app_by_id", + handle_func_exception=False, + params={"id": id} + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + if isinstance(result, list) and len(result) > 0: + return result[0] + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("description", "description"), + ("id", "id"), + ("name", "name"), + ("networkIdentities", "network_identities"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="nbar_app", + function="create_nbar_app", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="nbar_app", + function="update_nbar_app_by_id", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="nbar_app", + function="delete_nbar_app_by_id", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = TrustsecNbarApp(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app_info.py b/ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app_info.py new file mode 100644 index 000000000..f4ff6f4b7 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_nbar_app_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + sort=dict(type="str"), + sortBy=dict(type="str"), + filter=dict(type="str"), + filterType=dict(type="str"), + id=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + id=params.get("id"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="nbar_app", + function='get_nbar_app_by_id', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="nbar_app", + function='get_nbar_apps_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping.py b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping.py new file mode 100644 index 000000000..55970b9b7 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping.py @@ -0,0 +1,266 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + id=dict(type="str"), + lastUpdate=dict(type="str"), + sgName=dict(type="str"), + sgtId=dict(type="str"), + vnId=dict(type="str"), + vnName=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["id", "sgName", "vnName"], True), + ("state", "absent", ["id", "sgName", "vnName"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class TrustsecSgVnMapping(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + id=params.get("id"), + last_update=params.get("lastUpdate"), + sg_name=params.get("sgName"), + sgt_id=params.get("sgtId"), + vn_id=params.get("vnId"), + vn_name=params.get("vnName"), + ) + + def get_object_by_name(self, sg_name, vn_name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="sg_vn_mapping", + function="get_sg_vn_mapping_list_generator" + ) + try: + for items_response in gen_items_responses: + items = items_response.response['response'] + for item in items: + if isinstance(item, dict) and item.get('sgName') == sg_name and item.get('vnName') == vn_name: + result = item + break + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="sg_vn_mapping", + function="get_sg_vn_mapping_by_id", + handle_func_exception=False, + params={"id": id} + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + if isinstance(result, list) and len(result) > 0: + return result[0] + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + sg_name = self.new_object.get("sg_name") + vn_name = self.new_object.get("vn_name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and sg_name and vn_name: + prev_obj = self.get_object_by_name(sg_name, vn_name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("id", "id"), + ("lastUpdate", "last_update"), + ("sgName", "sg_name"), + ("sgtId", "sgt_id"), + ("vnId", "vn_id"), + ("vnName", "vn_name"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="sg_vn_mapping", + function="create_sg_vn_mapping", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + sg_name = self.new_object.get("sg_name") + vn_name = self.new_object.get("vn_name") + result = None + if not id: + id_ = self.get_object_by_name(sg_name, vn_name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="sg_vn_mapping", + function="update_sg_vn_mapping", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + sg_name = self.new_object.get("sg_name") + vn_name = self.new_object.get("vn_name") + result = None + if not id: + id_ = self.get_object_by_name(sg_name, vn_name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="sg_vn_mapping", + function="delete_sg_vn_mapping", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = TrustsecSgVnMapping(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_create.py b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_create.py new file mode 100644 index 000000000..b1f0c73a2 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_create.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="sg_vn_mapping", + function="bulk_create_sg_vn_mappings", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_delete.py b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_delete.py new file mode 100644 index 000000000..04f7b0917 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_delete.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="sg_vn_mapping", + function="bulk_delete_sg_vn_mappings", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_update.py b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_update.py new file mode 100644 index 000000000..1502caf8c --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_bulk_update.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="sg_vn_mapping", + function="bulk_update_sg_vn_mappings", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_info.py b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_info.py new file mode 100644 index 000000000..63ac32359 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_sg_vn_mapping_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + sort=dict(type="str"), + sortBy=dict(type="str"), + filter=dict(type="str"), + filterType=dict(type="str"), + id=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + id=params.get("id"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="sg_vn_mapping", + function='get_sg_vn_mapping_by_id', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="sg_vn_mapping", + function='get_sg_vn_mapping_list_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn.py new file mode 100644 index 000000000..3a405f476 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn.py @@ -0,0 +1,256 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + additionalAttributes=dict(type="str"), + id=dict(type="str"), + lastUpdate=dict(type="str"), + name=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["id", "name"], True), + ("state", "absent", ["id", "name"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class TrustsecVn(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + additional_attributes=params.get("additionalAttributes"), + id=params.get("id"), + last_update=params.get("lastUpdate"), + name=params.get("name"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="virtual_network", + function="get_virtual_networks_generator", + params={"filter": "name.EQ.{name}".format(name=name)} + ) + try: + for items_response in gen_items_responses: + items = items_response.response['response'] + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="virtual_network", + function="get_virtual_network_by_id", + handle_func_exception=False, + params={"id": id} + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + if isinstance(result, list) and len(result) > 0: + return result[0] + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("additionalAttributes", "additional_attributes"), + ("id", "id"), + ("lastUpdate", "last_update"), + ("name", "name"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="virtual_network", + function="create_virtual_network", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="virtual_network", + function="update_virtual_network_by_id", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="virtual_network", + function="delete_virtual_network_by_id", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = TrustsecVn(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_create.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_create.py new file mode 100644 index 000000000..c2ce4fd33 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_create.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="virtual_network", + function="bulk_create_virtual_networks", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_delete.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_delete.py new file mode 100644 index 000000000..a0a169b94 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_delete.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="virtual_network", + function="bulk_delete_virtual_networks", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_update.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_update.py new file mode 100644 index 000000000..5ca4c7a67 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_bulk_update.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="virtual_network", + function="bulk_update_virtual_networks", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_info.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_info.py new file mode 100644 index 000000000..d7ecfe6b8 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + sort=dict(type="str"), + sortBy=dict(type="str"), + filter=dict(type="str"), + filterType=dict(type="str"), + id=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + id=params.get("id"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="virtual_network", + function='get_virtual_network_by_id', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="virtual_network", + function='get_virtual_networks_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping.py new file mode 100644 index 000000000..ac4eb4764 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping.py @@ -0,0 +1,268 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + id=dict(type="str"), + isData=dict(type="bool"), + isDefaultVlan=dict(type="bool"), + lastUpdate=dict(type="str"), + maxValue=dict(type="int"), + name=dict(type="str"), + vnId=dict(type="str"), + vnName=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["id", "name"], True), + ("state", "absent", ["id", "name"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class TrustsecVnVlanMapping(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + id=params.get("id"), + is_data=params.get("isData"), + is_default_vlan=params.get("isDefaultVlan"), + last_update=params.get("lastUpdate"), + max_value=params.get("maxValue"), + name=params.get("name"), + vn_id=params.get("vnId"), + vn_name=params.get("vnName"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="vn_vlan_mapping", + function="get_vn_vlan_mapping_list_generator", + params={"filter": "name.EQ.{name}".format(name=name)} + ) + try: + for items_response in gen_items_responses: + items = items_response.response['response'] + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="vn_vlan_mapping", + function="get_vn_vlan_mapping_by_id", + handle_func_exception=False, + params={"id": id} + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + if isinstance(result, list) and len(result) > 0: + return result[0] + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("id", "id"), + ("isData", "is_data"), + ("isDefaultVlan", "is_default_vlan"), + ("lastUpdate", "last_update"), + ("maxValue", "max_value"), + ("name", "name"), + ("vnId", "vn_id"), + ("vnName", "vn_name"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="vn_vlan_mapping", + function="create_vn_vlan_mapping", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="vn_vlan_mapping", + function="update_vn_vlan_mapping", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="vn_vlan_mapping", + function="delete_vn_vlan_mapping", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = TrustsecVnVlanMapping(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_create.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_create.py new file mode 100644 index 000000000..3af9a3182 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_create.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="vn_vlan_mapping", + function="bulk_create_vn_vlan_mappings", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_delete.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_delete.py new file mode 100644 index 000000000..ab269311f --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_delete.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="vn_vlan_mapping", + function="bulk_delete_vn_vlan_mappings", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_update.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_update.py new file mode 100644 index 000000000..d47de7a4b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_bulk_update.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + payload=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + payload=params.get("payload"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="vn_vlan_mapping", + function="bulk_update_vn_vlan_mappings", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_info.py b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_info.py new file mode 100644 index 000000000..dbc8442a0 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/trustsec_vn_vlan_mapping_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + sort=dict(type="str"), + sortBy=dict(type="str"), + filter=dict(type="str"), + filterType=dict(type="str"), + id=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + id=params.get("id"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="vn_vlan_mapping", + function='get_vn_vlan_mapping_by_id', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="vn_vlan_mapping", + function='get_vn_vlan_mapping_list_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/upgrade_proceed.py b/ansible_collections/cisco/ise/plugins/action/upgrade_proceed.py new file mode 100644 index 000000000..7a44b3489 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/upgrade_proceed.py @@ -0,0 +1,171 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + hostnames=dict(type="list"), + preCheckReportID=dict(type="str"), + upgradeType=dict(type="str"), +)) + +required_if = [ + ("state", "present", [], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class UpgradeProceed(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + hostnames=params.get("hostnames"), + pre_check_report_id=params.get("preCheckReportID"), + upgrade_type=params.get("upgradeType"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="fullupgrade", + function="" + ).response.get('response', []) + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("hostnames", "hostnames"), + ("preCheckReportID", "pre_check_report_id"), + ("upgradeType", "upgrade_type"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="fullupgrade", + function="initiate_upgrade_on_p_p_a_n", + params=self.new_object, + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = UpgradeProceed(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + response = prev_obj + ise.object_present_and_different() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/upgrade_proceed_info.py b/ansible_collections/cisco/ise/plugins/action/upgrade_proceed_info.py new file mode 100644 index 000000000..e8487e84b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/upgrade_proceed_info.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel.py b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel.py new file mode 100644 index 000000000..90070b06e --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel.py @@ -0,0 +1,171 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + hostnames=dict(type="list"), + preCheckReportID=dict(type="str"), + upgradeType=dict(type="str"), +)) + +required_if = [ + ("state", "present", [], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class UpgradestageCancel(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + hostnames=params.get("hostnames"), + pre_check_report_id=params.get("preCheckReportID"), + upgrade_type=params.get("upgradeType"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="fullupgrade", + function="stage_status" + ).response['response'] + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("hostnames", "hostnames"), + ("preCheckReportID", "pre_check_report_id"), + ("upgradeType", "upgrade_type"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="fullupgrade", + function="cancel_staging_on_p_p_a_n", + params=self.new_object, + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = UpgradestageCancel(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + response = prev_obj + ise.object_present_and_different() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel_info.py b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel_info.py new file mode 100644 index 000000000..dafbeb1de --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_cancel_info.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + preCheckReportID=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + pre_check_report_id=params.get("preCheckReportID"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + response = ise.exec( + family="fullupgrade", + function='stage_status', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/upgrade_stage_start.py b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_start.py new file mode 100644 index 000000000..9718de17b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_start.py @@ -0,0 +1,172 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present"]), + hostnames=dict(type="list"), + preCheckReportID=dict(type="str"), + reTrigger=dict(type="bool"), + upgradeType=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class UpgradestageStart(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + hostnames=params.get("hostnames"), + pre_check_report_id=params.get("preCheckReportID"), + re_trigger=params.get("reTrigger"), + upgrade_type=params.get("upgradeType"), + ) + + def get_object_by_name(self, name): + # NOTICE: Does not have a get by name method or it is in another action + result = None + items = self.ise.exec( + family="fullupgrade", + function="stage_status" + ).response['response'] + result = get_dict_result(items, 'name', name) + return result + + def get_object_by_id(self, id): + # NOTICE: Does not have a get by id method or it is in another action + result = None + return result + + def exists(self): + prev_obj = None + id_exists = False + name_exists = False + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("hostnames", "hostnames"), + ("preCheckReportID", "pre_check_report_id"), + ("reTrigger", "re_trigger"), + ("upgradeType", "upgrade_type"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="fullupgrade", + function="initiate_staging_on_p_p_a_n", + params=self.new_object, + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = UpgradestageStart(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + response = prev_obj + ise.object_present_and_different() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/upgrade_stage_start_info.py b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_start_info.py new file mode 100644 index 000000000..dafbeb1de --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/upgrade_stage_start_info.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + preCheckReportID=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + pre_check_report_id=params.get("preCheckReportID"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("id") + name = self._task.args.get("name") + if not name and not id: + response = ise.exec( + family="fullupgrade", + function='stage_status', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/user_equipment.py b/ansible_collections/cisco/ise/plugins/action/user_equipment.py new file mode 100644 index 000000000..ef1c4578f --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/user_equipment.py @@ -0,0 +1,253 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, + ise_compare_equality, + get_dict_result, +) +from ansible_collections.cisco.ise.plugins.plugin_utils.exceptions import ( + InconsistentParameters, +) + +# Get common arguments specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + state=dict(type="str", default="present", choices=["present", "absent"]), + description=dict(type="str"), + deviceGroup=dict(type="str"), + imei=dict(type="str"), + userEquipmentId=dict(type="str"), +)) + +required_if = [ + ("state", "present", ["userEquipmentId"], True), + ("state", "absent", ["userEquipmentId"], True), +] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class UserEquipment(object): + def __init__(self, params, ise): + self.ise = ise + self.new_object = dict( + description=params.get("description"), + device_group=params.get("deviceGroup"), + imei=params.get("imei"), + user_equipment_id=params.get("userEquipmentId"), + ) + + def get_object_by_name(self, name): + # NOTICE: Get does not support/work for filter by name with EQ + result = None + gen_items_responses = self.ise.exec( + family="user_equipment", + function="get_user_equipments_generator" + ) + try: + for items_response in gen_items_responses: + items = items_response.response.get('response', []) + result = get_dict_result(items, 'name', name) + if result: + return result + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + return result + + def get_object_by_id(self, id): + try: + result = self.ise.exec( + family="user_equipment", + function="get_user_equipment_by_id", + handle_func_exception=False, + params={"id": id} + ).response['response'] + except (TypeError, AttributeError) as e: + self.ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception: + result = None + return result + + def exists(self): + id_exists = False + name_exists = False + prev_obj = None + o_id = self.new_object.get("id") + name = self.new_object.get("name") + if o_id: + prev_obj = self.get_object_by_id(o_id) + id_exists = prev_obj is not None and isinstance(prev_obj, dict) + if not id_exists and name: + prev_obj = self.get_object_by_name(name) + name_exists = prev_obj is not None and isinstance(prev_obj, dict) + if name_exists: + _id = prev_obj.get("id") + if id_exists and name_exists and o_id != _id: + raise InconsistentParameters("The 'id' and 'name' params don't refer to the same object") + if _id: + prev_obj = self.get_object_by_id(_id) + it_exists = prev_obj is not None and isinstance(prev_obj, dict) + return (it_exists, prev_obj) + + def requires_update(self, current_obj): + requested_obj = self.new_object + + obj_params = [ + ("description", "description"), + ("deviceGroup", "device_group"), + ("imei", "imei"), + ("userEquipmentId", "user_equipment_id"), + ] + # Method 1. Params present in request (Ansible) obj are the same as the current (ISE) params + # If any does not have eq params, it requires update + return any(not ise_compare_equality(current_obj.get(ise_param), + requested_obj.get(ansible_param)) + for (ise_param, ansible_param) in obj_params) + + def create(self): + result = self.ise.exec( + family="user_equipment", + function="create_user_equipment", + params=self.new_object, + ).response + return result + + def update(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="user_equipment", + function="update_user_equipment", + params=self.new_object + ).response + return result + + def delete(self): + id = self.new_object.get("id") + name = self.new_object.get("name") + result = None + if not id: + id_ = self.get_object_by_name(name).get("id") + self.new_object.update(dict(id=id_)) + result = self.ise.exec( + family="user_equipment", + function="delete_user_equipment", + params=self.new_object + ).response + return result + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + obj = UserEquipment(self._task.args, ise) + + state = self._task.args.get("state") + + response = None + + if state == "present": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + if obj.requires_update(prev_obj): + ise_update_response = obj.update() + self._result.update(dict(ise_update_response=ise_update_response)) + (obj_exists, updated_obj) = obj.exists() + response = updated_obj + ise.object_updated() + else: + response = prev_obj + ise.object_already_present() + else: + ise_create_response = obj.create() + (obj_exists, created_obj) = obj.exists() + response = created_obj + ise.object_created() + + elif state == "absent": + (obj_exists, prev_obj) = obj.exists() + if obj_exists: + obj.delete() + response = prev_obj + ise.object_deleted() + else: + ise.object_already_absent() + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/user_equipment_bulk.py b/ansible_collections/cisco/ise/plugins/action/user_equipment_bulk.py new file mode 100644 index 000000000..5ed919fe7 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/user_equipment_bulk.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + operation=dict(type="str"), + ItemList=dict(type="list"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + operation=params.get("operation"), + item_list=params.get("ItemList"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="user_equipment", + function="bulk_user_equipment_operation", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/user_equipment_csv.py b/ansible_collections/cisco/ise/plugins/action/user_equipment_csv.py new file mode 100644 index 000000000..afb8df4e3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/user_equipment_csv.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = False + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + ise = ISESDK(params=self._task.args) + + response = ise.exec( + family="user_equipment", + function="create_user_equipments_from_c_s_v", + params=self.get_object(self._task.args), + ).response + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/user_equipment_imei_info.py b/ansible_collections/cisco/ise/plugins/action/user_equipment_imei_info.py new file mode 100644 index 000000000..d501ddb5b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/user_equipment_imei_info.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + imei=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + imei=params.get("imei"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("imei") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="user_equipment", + function='get_user_equipment_by_i_m_e_i', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/user_equipment_info.py b/ansible_collections/cisco/ise/plugins/action/user_equipment_info.py new file mode 100644 index 000000000..94879efff --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/user_equipment_info.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + page=dict(type="int"), + size=dict(type="int"), + filter=dict(type="str"), + filterType=dict(type="str"), + sort=dict(type="str"), + sortBy=dict(type="str"), + userEquipmentId=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + page=params.get("page"), + size=params.get("size"), + filter=params.get("filter"), + filter_type=params.get("filterType"), + sort=params.get("sort"), + sort_by=params.get("sortBy"), + user_equipment_id=params.get("userEquipmentId"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response=[])) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("userEquipmentId") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="user_equipment", + function='get_user_equipment_by_id', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + responses = [] + generator = ise.exec( + family="user_equipment", + function='get_user_equipments_generator', + params=self.get_object(self._task.args), + ) + try: + for item in generator: + tmp_response = item.response['response'] + if isinstance(tmp_response, list): + responses += tmp_response + else: + responses.append(tmp_response) + response = responses + except (TypeError, AttributeError) as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " Check the configuration of your API Settings and API Gateway settings on your ISE server." + " This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled." + " You may want to enable the (ise_debug: True) argument." + " The error was: {error}" + ).format(error=e) + ) + except Exception as e: + ise.fail_json( + msg=( + "An error occured when executing operation." + " The error was: {error}" + " You may want to enable the (ise_debug: True) argument." + ).format(error=e) + ) + + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/action/user_equipment_subscriber_info.py b/ansible_collections/cisco/ise/plugins/action/user_equipment_subscriber_info.py new file mode 100644 index 000000000..6a4e91fa3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/action/user_equipment_subscriber_info.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2024, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type +from ansible.plugins.action import ActionBase + +try: + from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + AnsibleArgSpecValidator, + ) +except ImportError: + ANSIBLE_UTILS_IS_INSTALLED = False +else: + ANSIBLE_UTILS_IS_INSTALLED = True +from ansible.errors import AnsibleActionFail +from ansible_collections.cisco.ise.plugins.plugin_utils.ise import ( + ISESDK, + ise_argument_spec, +) + +# Get common arguements specification +argument_spec = ise_argument_spec() +# Add arguments specific for this module +argument_spec.update(dict( + subscriberId=dict(type="str"), +)) + +required_if = [] +required_one_of = [] +mutually_exclusive = [] +required_together = [] + + +class ActionModule(ActionBase): + def __init__(self, *args, **kwargs): + if not ANSIBLE_UTILS_IS_INSTALLED: + raise AnsibleActionFail("ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") + super(ActionModule, self).__init__(*args, **kwargs) + self._supports_async = False + self._supports_check_mode = True + self._result = None + + # Checks the supplied parameters against the argument spec for this module + def _check_argspec(self): + aav = AnsibleArgSpecValidator( + data=self._task.args, + schema=dict(argument_spec=argument_spec), + schema_format="argspec", + schema_conditionals=dict( + required_if=required_if, + required_one_of=required_one_of, + mutually_exclusive=mutually_exclusive, + required_together=required_together, + ), + name=self._task.action, + ) + valid, errors, self._task.args = aav.validate() + if not valid: + raise AnsibleActionFail(errors) + + def get_object(self, params): + new_object = dict( + subscriber_id=params.get("subscriberId"), + ) + return new_object + + def run(self, tmp=None, task_vars=None): + self._task.diff = False + self._result = super(ActionModule, self).run(tmp, task_vars) + self._result["changed"] = False + self._check_argspec() + + self._result.update(dict(ise_response={})) + + ise = ISESDK(params=self._task.args) + + id = self._task.args.get("subscriberId") + name = self._task.args.get("name") + if id: + response = ise.exec( + family="user_equipment", + function='get_user_equipments_by_subscriber_id', + params=self.get_object(self._task.args) + ).response['response'] + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result + if not name and not id: + # NOTICE: Does not have a get all method or it is in another action + response = None + self._result.update(dict(ise_response=response)) + self._result.update(ise.exit_json()) + return self._result diff --git a/ansible_collections/cisco/ise/plugins/modules/aci_bindings_info.py b/ansible_collections/cisco/ise/plugins/modules/aci_bindings_info.py index b8d1afa37..75aca0860 100644 --- a/ansible_collections/cisco/ise/plugins/modules/aci_bindings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/aci_bindings_info.py @@ -43,7 +43,7 @@ options: elements: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/aci_settings.py b/ansible_collections/cisco/ise/plugins/modules/aci_settings.py index b338f5888..eda39cd12 100644 --- a/ansible_collections/cisco/ise/plugins/modules/aci_settings.py +++ b/ansible_collections/cisco/ise/plugins/modules/aci_settings.py @@ -87,7 +87,7 @@ options: description: ACI Settings's untaggedPacketIepgName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/aci_settings_info.py b/ansible_collections/cisco/ise/plugins/modules/aci_settings_info.py index 61bad7bbe..4742f614a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/aci_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/aci_settings_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/aci_test_connectivity.py b/ansible_collections/cisco/ise/plugins/modules/aci_test_connectivity.py index 61d13bf89..ea52c4b98 100644 --- a/ansible_collections/cisco/ise/plugins/modules/aci_test_connectivity.py +++ b/ansible_collections/cisco/ise/plugins/modules/aci_test_connectivity.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directories_info.py b/ansible_collections/cisco/ise/plugins/modules/active_directories_info.py new file mode 100644 index 000000000..e99e2b1d4 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/active_directories_info.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: active_directories_info +short_description: Information module for Active Directories Info +description: +- Get all Active Directories Info. +- Duo-IdentitySync - Get the list of all configured Active Directories. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: {} +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + active_directories.ActiveDirectories.get_active_directories, + + - Paths used are + get /api/v1/duo-identitysync/activedirectories, + +""" + +EXAMPLES = r""" +- name: Get all Active Directories Info + cisco.ise.active_directories_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "directoryID": "string", + "domain": "string", + "name": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory.py b/ansible_collections/cisco/ise/plugins/modules/active_directory.py index 0cc8e53ec..6707c8780 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory.py @@ -191,7 +191,7 @@ options: alphanumeric and .-_/\\ characters. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_add_groups.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_add_groups.py index 729454376..7f6834d44 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_add_groups.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_add_groups.py @@ -190,7 +190,7 @@ options: alphanumeric and .-_/\\ characters. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_groups_by_domain_info.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_groups_by_domain_info.py index f0925183c..144c00021 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_groups_by_domain_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_groups_by_domain_info.py @@ -32,7 +32,7 @@ options: type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_info.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_info.py index d8e4db519..2a69857aa 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_is_user_member_of_group_info.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_is_user_member_of_group_info.py index 5fbe56eb9..0b000aa5f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_is_user_member_of_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_is_user_member_of_group_info.py @@ -32,7 +32,7 @@ options: type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain.py index 6782bb235..7d00c4c14 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain.py @@ -31,7 +31,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain_with_all_nodes.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain_with_all_nodes.py index 6dc4da875..5516d3890 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain_with_all_nodes.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_join_domain_with_all_nodes.py @@ -31,7 +31,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain.py index 4f1e46c87..d3487f8a2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain.py @@ -31,7 +31,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain_with_all_nodes.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain_with_all_nodes.py index 7359c6151..ff9ddd31f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain_with_all_nodes.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_leave_domain_with_all_nodes.py @@ -31,7 +31,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_trusted_domains_info.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_trusted_domains_info.py index 6974288ac..f6e1070fc 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_trusted_domains_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_trusted_domains_info.py @@ -21,7 +21,7 @@ options: - Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/active_directory_user_groups_info.py b/ansible_collections/cisco/ise/plugins/modules/active_directory_user_groups_info.py index 2df9027f7..735428bc6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/active_directory_user_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/active_directory_user_groups_info.py @@ -32,7 +32,7 @@ options: type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/ad_groups_info.py b/ansible_collections/cisco/ise/plugins/modules/ad_groups_info.py new file mode 100644 index 000000000..25e0fa705 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ad_groups_info.py @@ -0,0 +1,60 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ad_groups_info +short_description: Information module for Ad Groups Info +description: +- Get Ad Groups Info by id. +- Duo-IdentitySync - Get the list of all AD groups for the specified Active Directory. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + activeDirectory: + description: + - ActiveDirectory path parameter. List of AD groups for the specified Active Directory. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + ad_groups.ADGroups.get_adgroups, + + - Paths used are + get /api/v1/duo-identitysync/adgroups/{activeDirectory}, + +""" + +EXAMPLES = r""" +- name: Get Ad Groups Info by id + cisco.ise.ad_groups_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + activeDirectory: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "name": "string", + "source": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/admin_user_info.py b/ansible_collections/cisco/ise/plugins/modules/admin_user_info.py index cf793e354..ab75e52ba 100644 --- a/ansible_collections/cisco/ise/plugins/modules/admin_user_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/admin_user_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/allowed_protocols.py b/ansible_collections/cisco/ise/plugins/modules/allowed_protocols.py index 88fa594b4..c2da203c9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/allowed_protocols.py +++ b/ansible_collections/cisco/ise/plugins/modules/allowed_protocols.py @@ -310,7 +310,7 @@ options: type: bool type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/allowed_protocols_info.py b/ansible_collections/cisco/ise/plugins/modules/allowed_protocols_info.py index 84b86e5e9..43934d89d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/allowed_protocols_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/allowed_protocols_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_apply.py b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_apply.py index f1fde8079..9edacf089 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_apply.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_apply.py @@ -28,7 +28,7 @@ options: type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_monitor_status_info.py index 2615a8aff..2a5917433 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_request.py index 3e9037107..0aae0261b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_bulk_request.py @@ -23,7 +23,7 @@ options: description: ANC Endpoint Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_clear.py b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_clear.py index 1117dafa2..442410997 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_clear.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_clear.py @@ -28,7 +28,7 @@ options: type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_info.py b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_info.py index 5a58c8f22..394a4f202 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_endpoint_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_policy.py b/ansible_collections/cisco/ise/plugins/modules/anc_policy.py index a49bc949f..3bb5528b4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_policy.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_policy.py @@ -33,7 +33,7 @@ options: description: ANC Policy's name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_monitor_status_info.py index 285529a89..79e991a4c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_request.py index ea2e59efc..b5770270a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_policy_bulk_request.py @@ -23,7 +23,7 @@ options: description: ANC Policy Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/anc_policy_info.py b/ansible_collections/cisco/ise/plugins/modules/anc_policy_info.py index 21051ffdf..6ba8e7f34 100644 --- a/ansible_collections/cisco/ise/plugins/modules/anc_policy_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/anc_policy_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/authorization_profile.py b/ansible_collections/cisco/ise/plugins/modules/authorization_profile.py index 75587110f..86944f7bc 100644 --- a/ansible_collections/cisco/ise/plugins/modules/authorization_profile.py +++ b/ansible_collections/cisco/ise/plugins/modules/authorization_profile.py @@ -174,7 +174,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/authorization_profile_info.py b/ansible_collections/cisco/ise/plugins/modules/authorization_profile_info.py index 2b0f7bfcb..6004bdd10 100644 --- a/ansible_collections/cisco/ise/plugins/modules/authorization_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/authorization_profile_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/backup_cancel.py b/ansible_collections/cisco/ise/plugins/modules/backup_cancel.py index 11176958d..030e5da1a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/backup_cancel.py +++ b/ansible_collections/cisco/ise/plugins/modules/backup_cancel.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Backup And Restore diff --git a/ansible_collections/cisco/ise/plugins/modules/backup_config.py b/ansible_collections/cisco/ise/plugins/modules/backup_config.py index ef5a51df3..c68f4baf1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/backup_config.py +++ b/ansible_collections/cisco/ise/plugins/modules/backup_config.py @@ -31,7 +31,7 @@ options: get copied. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Backup And Restore diff --git a/ansible_collections/cisco/ise/plugins/modules/backup_last_status_info.py b/ansible_collections/cisco/ise/plugins/modules/backup_last_status_info.py index 7d22a9314..79f888957 100644 --- a/ansible_collections/cisco/ise/plugins/modules/backup_last_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/backup_last_status_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Backup And Restore diff --git a/ansible_collections/cisco/ise/plugins/modules/backup_restore.py b/ansible_collections/cisco/ise/plugins/modules/backup_restore.py index 908059a00..b660f3683 100644 --- a/ansible_collections/cisco/ise/plugins/modules/backup_restore.py +++ b/ansible_collections/cisco/ise/plugins/modules/backup_restore.py @@ -30,7 +30,7 @@ options: true, false. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Backup And Restore diff --git a/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config.py b/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config.py index e994d04d2..85862ba60 100644 --- a/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config.py +++ b/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config.py @@ -57,7 +57,7 @@ options: description: Backup Schedule Config's weekDay. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Backup And Restore diff --git a/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config_update.py b/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config_update.py index a8ce5bb2a..805d07846 100644 --- a/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config_update.py +++ b/ansible_collections/cisco/ise/plugins/modules/backup_schedule_config_update.py @@ -57,7 +57,7 @@ options: description: Backup Schedule Config Update's weekDay. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Backup And Restore diff --git a/ansible_collections/cisco/ise/plugins/modules/bind_signed_certificate.py b/ansible_collections/cisco/ise/plugins/modules/bind_signed_certificate.py index 1dcccb2b8..107e54c01 100644 --- a/ansible_collections/cisco/ise/plugins/modules/bind_signed_certificate.py +++ b/ansible_collections/cisco/ise/plugins/modules/bind_signed_certificate.py @@ -68,7 +68,7 @@ options: description: Validate Certificate Extensions. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/byod_portal.py b/ansible_collections/cisco/ise/plugins/modules/byod_portal.py index b6073d0f9..d6af22709 100644 --- a/ansible_collections/cisco/ise/plugins/modules/byod_portal.py +++ b/ansible_collections/cisco/ise/plugins/modules/byod_portal.py @@ -259,7 +259,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/byod_portal_info.py b/ansible_collections/cisco/ise/plugins/modules/byod_portal_info.py index 530eae753..0de5b0440 100644 --- a/ansible_collections/cisco/ise/plugins/modules/byod_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/byod_portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/certificate_profile.py b/ansible_collections/cisco/ise/plugins/modules/certificate_profile.py index da2bb18b7..18e506ca4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/certificate_profile.py +++ b/ansible_collections/cisco/ise/plugins/modules/certificate_profile.py @@ -51,7 +51,7 @@ options: - an option only in AD). type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/certificate_profile_info.py b/ansible_collections/cisco/ise/plugins/modules/certificate_profile_info.py index ff5eac756..da184c0bd 100644 --- a/ansible_collections/cisco/ise/plugins/modules/certificate_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/certificate_profile_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/certificate_template_info.py b/ansible_collections/cisco/ise/plugins/modules/certificate_template_info.py index 580e85c1a..249050b77 100644 --- a/ansible_collections/cisco/ise/plugins/modules/certificate_template_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/certificate_template_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/configuration.py b/ansible_collections/cisco/ise/plugins/modules/configuration.py index 1c551c299..130edb727 100644 --- a/ansible_collections/cisco/ise/plugins/modules/configuration.py +++ b/ansible_collections/cisco/ise/plugins/modules/configuration.py @@ -24,7 +24,7 @@ options: will be set to false if enableEPO flag is false. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/configuration_info.py b/ansible_collections/cisco/ise/plugins/modules/configuration_info.py index 6a942dedf..304124df4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/configuration_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/configuration_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/csr_delete.py b/ansible_collections/cisco/ise/plugins/modules/csr_delete.py index 0fc26c12b..4e1b6da04 100644 --- a/ansible_collections/cisco/ise/plugins/modules/csr_delete.py +++ b/ansible_collections/cisco/ise/plugins/modules/csr_delete.py @@ -24,7 +24,7 @@ options: description: Id path parameter. ID of the Certificate Signing Request to be deleted. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/csr_export_info.py b/ansible_collections/cisco/ise/plugins/modules/csr_export_info.py index 4cadca891..ccac5ac27 100644 --- a/ansible_collections/cisco/ise/plugins/modules/csr_export_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/csr_export_info.py @@ -37,7 +37,7 @@ options: - The filename used to save the download file. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/csr_generate.py b/ansible_collections/cisco/ise/plugins/modules/csr_generate.py index 3d769adc0..6cfee8fa3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/csr_generate.py +++ b/ansible_collections/cisco/ise/plugins/modules/csr_generate.py @@ -76,7 +76,7 @@ options: description: CSR Generate's usedFor. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/csr_generate_intermediate_ca.py b/ansible_collections/cisco/ise/plugins/modules/csr_generate_intermediate_ca.py index b8727a777..79e1056e4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/csr_generate_intermediate_ca.py +++ b/ansible_collections/cisco/ise/plugins/modules/csr_generate_intermediate_ca.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/csr_info.py b/ansible_collections/cisco/ise/plugins/modules/csr_info.py index 3ccee98ed..3482ae2a4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/csr_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/csr_info.py @@ -11,8 +11,8 @@ short_description: Information module for CSR description: - Get all CSR. - Get CSR by id. -- This API displays details of a Certificate Signing Request of a particular node for given HostName and ID. -- This API supports Filtering, Sorting and Pagination. +- This API displays details of a certificate signing request of a particular node for a given hostname and ID. +- This API supports filtering, sorting and pagination. version_added: '1.0.0' extends_documentation_fragment: - cisco.ise.module_info @@ -52,8 +52,7 @@ options: - The 'NENDSW' operator describes 'Not Ends With'. - The 'CONTAINS' operator describes 'Contains'. - The 'NCONTAINS' operator describes 'Not Contains'. - elements: str - type: list + type: str filterType: description: - > @@ -69,7 +68,7 @@ options: - Id path parameter. ID of the Certificate Signing Request returned. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates @@ -97,7 +96,7 @@ EXAMPLES = r""" size: 0 sort: string sortBy: string - filter: [] + filter: string filterType: string register: result @@ -131,6 +130,7 @@ ise_response: "rel": "string", "type": "string" }, + "sanNames": "string", "signatureAlgorithm": "string", "subject": "string", "timeStamp": "string", @@ -157,6 +157,7 @@ ise_responses: "rel": "string", "type": "string" }, + "sanNames": "string", "signatureAlgorithm": "string", "subject": "string", "timeStamp": "string", diff --git a/ansible_collections/cisco/ise/plugins/modules/custom_attributes.py b/ansible_collections/cisco/ise/plugins/modules/custom_attributes.py new file mode 100644 index 000000000..f4e49e6a2 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/custom_attributes.py @@ -0,0 +1,73 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: custom_attributes +short_description: Resource module for Custom Attributes +description: +- Manage operations create and delete of the resource Custom Attributes. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + attributeName: + description: Custom Attributes's attributeName. + type: str + attributeType: + description: Custom Attributes's attributeType. + type: str + name: + description: Name path parameter. The name of the custom attribute. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + customattributes.Customattributes.create_custom_attribute, + customattributes.Customattributes.delete, + + - Paths used are + post /api/v1/endpoint-custom-attribute, + delete /api/v1/endpoint-custom-attribute/{name}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.custom_attributes: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + attributeName: string + attributeType: string + +- name: Delete by name + cisco.ise.custom_attributes: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + name: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "attributeName": "string", + "attributeType": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/custom_attributes_info.py b/ansible_collections/cisco/ise/plugins/modules/custom_attributes_info.py new file mode 100644 index 000000000..409ad4179 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/custom_attributes_info.py @@ -0,0 +1,67 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: custom_attributes_info +short_description: Information module for Custom Attributes Info +description: +- Get all Custom Attributes Info. +- Get Custom Attributes Info by name. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + name: + description: + - Name path parameter. Name of the custom attribute. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + customattributes.Customattributes.get, + customattributes.Customattributes.list, + + - Paths used are + get /api/v1/endpoint-custom-attribute, + get /api/v1/endpoint-custom-attribute/{name}, + +""" + +EXAMPLES = r""" +- name: Get all Custom Attributes Info + cisco.ise.custom_attributes_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +- name: Get Custom Attributes Info by name + cisco.ise.custom_attributes_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + name: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "attributeName": "string", + "attributeType": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/custom_attributes_rename.py b/ansible_collections/cisco/ise/plugins/modules/custom_attributes_rename.py new file mode 100644 index 000000000..edc18aaad --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/custom_attributes_rename.py @@ -0,0 +1,55 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: custom_attributes_rename +short_description: Resource module for Custom Attributes Rename +description: +- Manage operation create of the resource Custom Attributes Rename. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + currentName: + description: Custom Attributes Rename's currentName. + type: str + newName: + description: Custom Attributes Rename's newName. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + customattributes.Customattributes.rename, + + - Paths used are + post /api/v1/endpoint-custom-attribute/rename, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.custom_attributes_rename: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + currentName: string + newName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/dataconnect_info.py b/ansible_collections/cisco/ise/plugins/modules/dataconnect_info.py index 3c213e44c..0dcfbb285 100644 --- a/ansible_collections/cisco/ise/plugins/modules/dataconnect_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/dataconnect_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_info.py b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_info.py index cbb6aff7e..a71aac762 100644 --- a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password.py b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password.py index 4f731bf44..1712d60f0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password.py +++ b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password.py @@ -23,7 +23,7 @@ options: #$%&*+,-. ;=?^_~, Has at least 12 characters, Has not more than 30 characters.' type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password_expiry.py b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password_expiry.py index ec4897b57..898b3b605 100644 --- a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password_expiry.py +++ b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_password_expiry.py @@ -20,7 +20,7 @@ options: description: Dataconnect Settings Password Expiry's passwordExpiresInDays. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_status.py b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_status.py index f782455ec..778a46c94 100644 --- a/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_status.py +++ b/ansible_collections/cisco/ise/plugins/modules/dataconnect_settings_status.py @@ -20,7 +20,7 @@ options: description: IsEnabled flag. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/deployment_info.py b/ansible_collections/cisco/ise/plugins/modules/deployment_info.py index f09b21d69..decfd5e17 100644 --- a/ansible_collections/cisco/ise/plugins/modules/deployment_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/deployment_info.py @@ -21,7 +21,7 @@ options: - How long to wait for the server to send data before giving up. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for PullDeploymentInfo diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_reset_hitcount.py index c65a26ede..3c32a185b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_reset_hitcount.py @@ -20,7 +20,7 @@ options: description: PolicyId path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authentication Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules.py index e0a283492..4d01abfba 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules.py @@ -229,7 +229,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authentication Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules_info.py index 6e02cd5b6..6151b75bf 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_authentication_rules_info.py @@ -27,7 +27,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authentication Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_reset_hitcount.py index b2d3dbb1f..a962a1f0c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_reset_hitcount.py @@ -20,7 +20,7 @@ options: description: PolicyId path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules.py index a762b3923..281b9e126 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules.py @@ -222,7 +222,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules_info.py index 8e01d1e0d..33d9e9f9c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_authorization_rules_info.py @@ -27,7 +27,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_command_set_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_command_set_info.py index 46a9cfcfe..08103ca94 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_command_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_command_set_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Command Set diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions.py index e1d2a666f..24a8a0f7b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions.py @@ -164,7 +164,7 @@ options: elements: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authentication_rule_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authentication_rule_info.py index f071af305..8396c2e35 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authentication_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authentication_rule_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authorization_rule_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authorization_rule_info.py index 1fa414c1a..c27ddc6d4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authorization_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_authorization_rule_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_policy_set_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_policy_set_info.py index 6264730c2..876b28aa7 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_for_policy_set_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_info.py index 5fbeeac28..3732ae9b1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_conditions_info.py @@ -29,7 +29,7 @@ options: - Id path parameter. Condition id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authentication_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authentication_info.py index efcca2198..1f018f809 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authentication_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authentication_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Dictionary Attributes List diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authorization_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authorization_info.py index 90c278c57..705eeac56 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authorization_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_authorization_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Dictionary Attributes List diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_policy_set_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_policy_set_info.py index 14aaba870..19d941d20 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_dictionary_attributes_policy_set_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Dictionary Attributes List diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules.py index a6fb8c2b8..11c1acd04 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules.py @@ -219,7 +219,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Global Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_info.py index 98b4bf506..b8fbde1e3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Global Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_reset_hitcount.py index 066bbaf1f..fb173e85b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_global_exception_rules_reset_hitcount.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Global Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_identity_stores_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_identity_stores_info.py index b870c7121..5d8479cda 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_identity_stores_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_identity_stores_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Identity Stores diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules.py index 9b86cab32..6fa22c346 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules.py @@ -222,7 +222,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_info.py index 953ab8564..88cbca903 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_info.py @@ -27,7 +27,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_reset_hitcount.py index b549075f4..afce62bfe 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_local_exception_rules_reset_hitcount.py @@ -20,7 +20,7 @@ options: description: PolicyId path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Authorization Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions.py index 67c802d16..b2d8025d5 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions.py @@ -73,7 +73,7 @@ options: description: Network Condition name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Network Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions_info.py index 59c2eb239..d13aabffe 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_network_conditions_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Condition id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Network Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set.py index fb0f769a1..340b8c54b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set.py @@ -210,7 +210,7 @@ options: matched. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Policy Set diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_info.py index fb996df50..f22ba0c20 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Policy Set diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_reset_hitcount.py index 609e0b122..2b98a0213 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_policy_set_reset_hitcount.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Policy Set diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_profiles_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_profiles_info.py index 2aba7c1bd..a02a612d9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_profiles_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_profiles_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Profiles diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_service_names_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_service_names_info.py index 77a27332f..99d6c1e39 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_service_names_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_service_names_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Service Names diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions.py index c5326d8cb..647e4bd27 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions.py @@ -162,7 +162,7 @@ options: elements: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Time/Date Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions_info.py b/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions_info.py index 26c796202..8cc487451 100644 --- a/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/device_administration_time_date_conditions_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Condition id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Device Administration - Time/Date Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/downloadable_acl.py b/ansible_collections/cisco/ise/plugins/modules/downloadable_acl.py index f4cd77e29..258cfc561 100644 --- a/ansible_collections/cisco/ise/plugins/modules/downloadable_acl.py +++ b/ansible_collections/cisco/ise/plugins/modules/downloadable_acl.py @@ -35,7 +35,7 @@ options: characters _.-. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/downloadable_acl_info.py b/ansible_collections/cisco/ise/plugins/modules/downloadable_acl_info.py index cb35f5056..33cede1f4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/downloadable_acl_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/downloadable_acl_info.py @@ -31,7 +31,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync.py b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync.py new file mode 100644 index 000000000..cd30a126c --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync.py @@ -0,0 +1,195 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_identity_sync +short_description: Resource module for Duo Identity Sync +description: +- Manage operations create, update and delete of the resource Duo Identity Sync. +- Duo-IdentitySync - Create a new IdentitySync configuration. +- Duo-Identitysync - Delete the Identitysync configuration specified in the syncName. +- Duo-Identitysync - Update the Identitysync configuration specified in the syncName. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + adGroups: + description: Duo Identity Sync's adGroups. + elements: dict + suboptions: + name: + description: Active Directory Group ID. + type: str + source: + description: Source of the Active Directory Group. + type: str + type: list + configurations: + description: Duo Identity Sync's configurations. + suboptions: + activeDirectories: + description: Duo Identity Sync's activeDirectories. + elements: dict + suboptions: + directoryID: + description: Active Directory ID. + type: str + domain: + description: Active Directory domain name. + type: str + name: + description: Name of the Active Directory. + type: str + type: list + type: dict + lastSync: + description: Time of the last Sync. + type: str + syncName: + description: Name of the Identitysync configuration. + type: str + syncSchedule: + description: Duo Identity Sync's syncSchedule. + suboptions: + interval: + description: Frequency of the sync schedule. + type: int + intervalUnit: + description: Unit of the time interval. + type: str + schedulerSync: + description: Type of Sync Schedule - If "Recurring", please specify schedule + details. + type: str + startDate: + description: Start date and start time of the sync schedule. + type: str + type: dict + syncStatus: + description: Duo Identity Sync's syncStatus. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_identity_sync.DuoIdentitySync.create_identitysync, + duo_identity_sync.DuoIdentitySync.delete_identity_sync_by_sync_name, + duo_identity_sync.DuoIdentitySync.update_identitysync_by_sync_name, + + - Paths used are + post /api/v1/duo-identitysync/identitysync, + delete /api/v1/duo-identitysync/identitysync/{syncName}, + put /api/v1/duo-identitysync/identitysync/{syncName}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.duo_identity_sync: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + adGroups: + - name: string + source: string + configurations: + activeDirectories: + - directoryID: string + domain: string + name: string + lastSync: string + syncName: string + syncSchedule: + interval: 0 + intervalUnit: string + schedulerSync: string + startDate: string + syncStatus: string + +- name: Update by name + cisco.ise.duo_identity_sync: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + adGroups: + - name: string + source: string + configurations: + activeDirectories: + - directoryID: string + domain: string + name: string + lastSync: string + syncName: string + syncSchedule: + interval: 0 + intervalUnit: string + schedulerSync: string + startDate: string + syncStatus: string + +- name: Delete by name + cisco.ise.duo_identity_sync: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + syncName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "identitySync": { + "adGroups": [ + { + "name": "string", + "sid": "string", + "source": "string" + } + ], + "configurations": { + "activeDirectories": [ + { + "directoryID": "string", + "domain": "string", + "name": "string" + } + ] + }, + "lastSync": "string", + "syncName": "string", + "syncSchedule": { + "interval": 0, + "intervalUnit": "string", + "schedulerSync": "string", + "startDate": "string" + }, + "syncStatus": "string" + } + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_cancel_info.py b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_cancel_info.py new file mode 100644 index 000000000..77aca9753 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_cancel_info.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_identity_sync_cancel_info +short_description: Information module for Duo Identity Sync Cancel Info +description: +- Get Duo Identity Sync Cancel Info by name. +- Cancel the sync between the Active Directory and the corresponding Mfa provider associated with this Identitysync config. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + syncName: + description: + - SyncName path parameter. Name of the Identitysync configuration used to cancel sync. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_identity_sync.DuoIdentitySync.cancel_sync, + + - Paths used are + get /api/v1/duo-identitysync/identitysync/sync/cancel/{syncName}, + +""" + +EXAMPLES = r""" +- name: Get Duo Identity Sync Cancel Info by name + cisco.ise.duo_identity_sync_cancel_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + syncName: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_info.py b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_info.py new file mode 100644 index 000000000..9db4f3618 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_info.py @@ -0,0 +1,94 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_identity_sync_info +short_description: Information module for Duo Identity Sync Info +description: +- Get all Duo Identity Sync Info. +- Get Duo Identity Sync Info by name. +- Duo-IdentitySync - Get the Identitysync config specified in the syncName. +- Duo-IdentitySync - Get the list of all Identitysync configurations. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + syncName: + description: + - SyncName path parameter. This name is used to update, delete or retrieve the specific Identitysync config. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_identity_sync.DuoIdentitySync.get_identitysync, + duo_identity_sync.DuoIdentitySync.get_identitysync_by_sync_name, + + - Paths used are + get /api/v1/duo-identitysync/identitysync, + get /api/v1/duo-identitysync/identitysync/{syncName}, + +""" + +EXAMPLES = r""" +- name: Get all Duo Identity Sync Info + cisco.ise.duo_identity_sync_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +- name: Get Duo Identity Sync Info by name + cisco.ise.duo_identity_sync_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + syncName: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "identitySync": { + "adGroups": [ + { + "name": "string", + "sid": "string", + "source": "string" + } + ], + "configurations": { + "activeDirectories": [ + { + "directoryID": "string", + "domain": "string", + "name": "string" + } + ] + }, + "lastSync": "string", + "syncName": "string", + "syncSchedule": { + "interval": 0, + "intervalUnit": "string", + "schedulerSync": "string", + "startDate": "string" + }, + "syncStatus": "string" + } + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_status.py b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_status.py new file mode 100644 index 000000000..bd6d569bc --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_identity_sync_status.py @@ -0,0 +1,107 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_identity_sync_status +short_description: Resource module for Duo Identity Sync Status +description: +- Manage operation update of the resource Duo Identity Sync Status. +- Duo-identitysync - update sync status. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + errorList: + description: Duo Identity Sync Status's errorList. + elements: dict + suboptions: + reason: + description: Reason user failed sync. + type: str + user: + description: User to be synced to Duo. + suboptions: + directoryname: + description: Active directory that duo user is contained in. + type: str + email: + description: Email of Duo user. + type: str + firstname: + description: First name of Duo user. + type: str + groupname: + description: Acrive directory group that duo user is contained in. + type: str + lastname: + description: Last name of duo user. + type: str + notes: + description: Notes of Duo user. + type: str + realname: + description: Realname of Duo user. + type: str + status: + description: Status of Duo user. + type: str + username: + description: Username of Duo user. + type: str + type: dict + type: list + status: + description: Status of sync. + type: str + syncName: + description: SyncName path parameter. Sync connection to be updated. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_identity_sync.DuoIdentitySync.update_status, + + - Paths used are + put /api/v1/duo-identitysync/identitysync/status/{syncName}, + +""" + +EXAMPLES = r""" +- name: Update by name + cisco.ise.duo_identity_sync_status: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + errorList: + - reason: string + user: + directoryname: string + email: string + firstname: string + groupname: string + lastname: string + notes: string + realname: string + status: string + username: string + status: string + syncName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_identitysync_sync_info.py b/ansible_collections/cisco/ise/plugins/modules/duo_identitysync_sync_info.py new file mode 100644 index 000000000..258bfa4f1 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_identitysync_sync_info.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_identitysync_sync_info +short_description: Information module for Duo Identitysync Sync Info +description: +- Get Duo Identitysync Sync Info by name. +- Initiate the sync between the Active Directory and the corresponding Mfa provider associated with this Identitysync config. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + syncName: + description: + - SyncName path parameter. Name of the Identitysync configuration used to initiate sync. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_identity_sync.DuoIdentitySync.sync, + + - Paths used are + get /api/v1/duo-identitysync/identitysync/sync/{syncName}, + +""" + +EXAMPLES = r""" +- name: Get Duo Identitysync Sync Info by name + cisco.ise.duo_identitysync_sync_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + syncName: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_mfa.py b/ansible_collections/cisco/ise/plugins/modules/duo_mfa.py new file mode 100644 index 000000000..636a8e36e --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_mfa.py @@ -0,0 +1,161 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_mfa +short_description: Resource module for Duo Mfa +description: +- Manage operations create, update and delete of the resource Duo Mfa. +- Duo-MFA - Create a new Duo-MFA configuration. +- Duo-MFA - Delete the Duo-MFA configuration specified in the connectionName. +- Duo-MFA - Update the Duo-MFA configuration specified in the connectionName. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + accountConfigurations: + description: Duo Mfa's accountConfigurations. + suboptions: + adminApi: + description: API type. + suboptions: + ikey: + description: Integration Key. + type: str + sKey: + description: Secret Key. + type: str + type: dict + apiHostName: + description: Duo API HostName. + type: str + authenticationApi: + description: API type. + suboptions: + ikey: + description: Integration Key. + type: str + sKey: + description: Secret Key. + type: str + type: dict + type: dict + connectionName: + description: Name of the Duo-MFA configuration. + type: str + description: + description: Description of the Duo-MFA configuration. + type: str + identitySync: + description: Name of the Identity Sync configuration. + type: str + type: + description: Protocol type for which this Duo-MFA can be used. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_mfa.DuoMfa.create_mfa, + duo_mfa.DuoMfa.delete_mfa_by_connection_name, + duo_mfa.DuoMfa.update_m_fa_by_connection_name, + + - Paths used are + post /api/v1/duo-mfa/mfa, + delete /api/v1/duo-mfa/mfa/{connectionName}, + put /api/v1/duo-mfa/mfa/{connectionName}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.duo_mfa: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + accountConfigurations: + adminApi: + ikey: string + sKey: string + apiHostName: string + authenticationApi: + ikey: string + sKey: string + connectionName: string + description: string + identitySync: string + type: string + +- name: Update by name + cisco.ise.duo_mfa: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + accountConfigurations: + adminApi: + ikey: string + sKey: string + apiHostName: string + authenticationApi: + ikey: string + sKey: string + connectionName: string + description: string + identitySync: string + type: string + +- name: Delete by name + cisco.ise.duo_mfa: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + connectionName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "mfa": { + "accountConfigurations": { + "adminApi": { + "ikey": "string", + "sKey": "string" + }, + "apiHostName": "string", + "authenticationApi": { + "ikey": "string", + "sKey": "string" + } + }, + "connectionName": "string", + "description": "string", + "identitySync": "string", + "type": "string" + } + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_mfa_info.py b/ansible_collections/cisco/ise/plugins/modules/duo_mfa_info.py new file mode 100644 index 000000000..646813b22 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_mfa_info.py @@ -0,0 +1,84 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_mfa_info +short_description: Information module for Duo Mfa Info +description: +- Get all Duo Mfa Info. +- Get Duo Mfa Info by name. +- Duo-MFA - Get the Duo-MFA configuration specified in the connectionName. +- Duo-MFA - List of Duo-MFA configurations. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + connectionName: + description: + - ConnectionName path parameter. This name is used to update, delete or retrieve the specific Duo-MFA configuration. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_mfa.DuoMfa.get_mfa, + duo_mfa.DuoMfa.get_mfa_byconnection_name, + + - Paths used are + get /api/v1/duo-mfa/mfa, + get /api/v1/duo-mfa/mfa/{connectionName}, + +""" + +EXAMPLES = r""" +- name: Get all Duo Mfa Info + cisco.ise.duo_mfa_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +- name: Get Duo Mfa Info by name + cisco.ise.duo_mfa_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + connectionName: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "mfa": { + "accountConfigurations": { + "adminApi": { + "ikey": "string", + "sKey": "string" + }, + "apiHostName": "string", + "authenticationApi": { + "ikey": "string", + "sKey": "string" + } + }, + "connectionName": "string", + "description": "string", + "identitySync": "string", + "type": "string" + } + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/duo_mfa_testconnection.py b/ansible_collections/cisco/ise/plugins/modules/duo_mfa_testconnection.py new file mode 100644 index 000000000..8e9f033f4 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/duo_mfa_testconnection.py @@ -0,0 +1,84 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: duo_mfa_testconnection +short_description: Resource module for Duo Mfa Testconnection +description: +- Manage operation create of the resource Duo Mfa Testconnection. +- Duo-MFA - Verify the Auth and Admin API keys of the Duo Host. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + adminApi: + description: API type. + suboptions: + ikey: + description: Integration Key. + type: str + sKey: + description: Secret Key. + type: str + type: dict + apiHostName: + description: Duo API HostName. + type: str + authenticationApi: + description: API type. + suboptions: + ikey: + description: Integration Key. + type: str + sKey: + description: Secret Key. + type: str + type: dict + connectionName: + description: ConnectionName path parameter. This name is used to retrieve secret + keys for testing connection of the specified Duo-MFA configuration in case none + are specified. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + duo_mfa.DuoMfa.test_connection, + + - Paths used are + post /api/v1/duo-mfa/mfa/testconnection/{connectionName}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.duo_mfa_testconnection: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + adminApi: + ikey: string + sKey: string + apiHostName: string + authenticationApi: + ikey: string + sKey: string + connectionName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: str + sample: > + "'string'" +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell.py index 15af377c6..9660da6aa 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell.py @@ -44,7 +44,7 @@ options: description: Egress Matrix Cell's sourceSGtId. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_monitor_status_info.py index 716e9dad9..21e61afb7 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_request.py index dd45607d6..3d8c31a78 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_bulk_request.py @@ -23,7 +23,7 @@ options: description: Egress Matrix Cell Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clear_all.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clear_all.py index d5edb3ede..1810e8963 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clear_all.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clear_all.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clone.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clone.py index 90483a2ea..26cfc4da6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clone.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_clone.py @@ -26,7 +26,7 @@ options: description: SrcSGtId path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_info.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_info.py index 309b8f242..f0157fd87 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_set_all_status.py b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_set_all_status.py index ca6f394eb..fff1b6fba 100644 --- a/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_set_all_status.py +++ b/ansible_collections/cisco/ise/plugins/modules/egress_matrix_cell_set_all_status.py @@ -20,7 +20,7 @@ options: description: Status path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint.py b/ansible_collections/cisco/ise/plugins/modules/endpoint.py index d6c3db64f..d776617d5 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint.py @@ -102,7 +102,7 @@ options: description: StaticProfileAssignment flag. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_monitor_status_info.py index 920378939..c625df079 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_request.py index f74c5d1f6..2b032b498 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_bulk_request.py @@ -23,7 +23,7 @@ options: description: Endpoint Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_certificate.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_certificate.py index be6995cbb..279a64632 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_certificate.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_certificate.py @@ -48,7 +48,7 @@ options: description: Enable or disable automatic file creation of raw response. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for EndpointCertificate diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_deregister.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_deregister.py index 53f050168..0f849b360 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_deregister.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_deregister.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_get_rejected_endpoints_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_get_rejected_endpoints_info.py index 7507f3e70..0cd7095bf 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_get_rejected_endpoints_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_get_rejected_endpoints_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_group.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_group.py index bf2cf58b8..5b85b32ad 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_group.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_group.py @@ -31,7 +31,7 @@ options: description: SystemDefined flag. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for EndpointIdentityGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_group_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_group_info.py index 0850f50a4..f8b0174b9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_group_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for EndpointIdentityGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_info.py index 88a81827d..97ff55c3b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_register.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_register.py index 8807a6b11..97932950b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_register.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_register.py @@ -100,7 +100,7 @@ options: description: StaticProfileAssignment flag. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoint_release_rejected_endpoint.py b/ansible_collections/cisco/ise/plugins/modules/endpoint_release_rejected_endpoint.py index e86e63d9a..c87bbfb2a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/endpoint_release_rejected_endpoint.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoint_release_rejected_endpoint.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoints.py b/ansible_collections/cisco/ise/plugins/modules/endpoints.py new file mode 100644 index 000000000..c541932b3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/endpoints.py @@ -0,0 +1,237 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: endpoints +short_description: Resource module for Endpoints +description: +- Manage operations create, update and delete of the resource Endpoints. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + connectedLinks: + description: Endpoints's connectedLinks. + type: dict + customAttributes: + description: Endpoints's customAttributes. + type: dict + description: + description: Endpoints's description. + type: str + deviceType: + description: Endpoints's deviceType. + type: str + groupId: + description: Endpoints's groupId. + type: str + hardwareRevision: + description: Endpoints's hardwareRevision. + type: str + id: + description: Endpoints's id. + type: str + identityStore: + description: Endpoints's identityStore. + type: str + identityStoreId: + description: Endpoints's identityStoreId. + type: str + ipAddress: + description: Endpoints's ipAddress. + type: str + mac: + description: Endpoints's mac. + type: str + mdmAttributes: + description: Endpoints's mdmAttributes. + type: dict + name: + description: Endpoints's name. + type: str + portalUser: + description: Endpoints's portalUser. + type: str + productId: + description: Endpoints's productId. + type: str + profileId: + description: Endpoints's profileId. + type: str + protocol: + description: Endpoints's protocol. + type: str + serialNumber: + description: Endpoints's serialNumber. + type: str + softwareRevision: + description: Endpoints's softwareRevision. + type: str + staticGroupAssignment: + description: StaticGroupAssignment flag. + type: bool + staticProfileAssignment: + description: StaticProfileAssignment flag. + type: bool + value: + description: Value path parameter. The id or MAC of the endpoint. + type: str + vendor: + description: Endpoints's vendor. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoints.Endpoints.create_end_point, + endpoints.Endpoints.delete_endpoint, + endpoints.Endpoints.update_endpoint, + + - Paths used are + post /api/v1/endpoint, + delete /api/v1/endpoint/{value}, + put /api/v1/endpoint/{value}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.endpoints: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + connectedLinks: {} + customAttributes: {} + description: string + deviceType: string + groupId: string + hardwareRevision: string + id: string + identityStore: string + identityStoreId: string + ipAddress: string + mac: string + mdmAttributes: {} + name: string + portalUser: string + productId: string + profileId: string + protocol: string + serialNumber: string + softwareRevision: string + staticGroupAssignment: true + staticProfileAssignment: true + vendor: string + +- name: Update by id + cisco.ise.endpoints: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + connectedLinks: {} + customAttributes: {} + description: string + deviceType: string + groupId: string + hardwareRevision: string + id: string + identityStore: string + identityStoreId: string + ipAddress: string + mac: string + mdmAttributes: {} + name: string + portalUser: string + productId: string + profileId: string + protocol: string + serialNumber: string + softwareRevision: string + staticGroupAssignment: true + staticProfileAssignment: true + value: string + vendor: string + +- name: Delete by id + cisco.ise.endpoints: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + value: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoints_bulk.py b/ansible_collections/cisco/ise/plugins/modules/endpoints_bulk.py new file mode 100644 index 000000000..00f9048c0 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/endpoints_bulk.py @@ -0,0 +1,352 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: endpoints_bulk +short_description: Resource module for Endpoints Bulk +description: +- Manage operations create, update and delete of the resource Endpoints Bulk. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + connectedLinks: + description: Endpoints Bulk's connectedLinks. + type: dict + customAttributes: + description: Endpoints Bulk's customAttributes. + type: dict + description: + description: Endpoints Bulk's description. + type: str + deviceType: + description: Endpoints Bulk's deviceType. + type: str + groupId: + description: Endpoints Bulk's groupId. + type: str + hardwareRevision: + description: Endpoints Bulk's hardwareRevision. + type: str + id: + description: Endpoints Bulk's id. + type: str + identityStore: + description: Endpoints Bulk's identityStore. + type: str + identityStoreId: + description: Endpoints Bulk's identityStoreId. + type: str + ipAddress: + description: Endpoints Bulk's ipAddress. + type: str + mac: + description: Endpoints Bulk's mac. + type: str + mdmAttributes: + description: Endpoints Bulk's mdmAttributes. + type: dict + name: + description: Endpoints Bulk's name. + type: str + payload: + description: Endpoints Bulk's payload. + elements: dict + suboptions: + connectedLinks: + description: Endpoints Bulk's connectedLinks. + type: dict + customAttributes: + description: Endpoints Bulk's customAttributes. + type: dict + description: + description: Endpoints Bulk's description. + type: str + deviceType: + description: Endpoints Bulk's deviceType. + type: str + groupId: + description: Endpoints Bulk's groupId. + type: str + hardwareRevision: + description: Endpoints Bulk's hardwareRevision. + type: str + id: + description: Endpoints Bulk's id. + type: str + identityStore: + description: Endpoints Bulk's identityStore. + type: str + identityStoreId: + description: Endpoints Bulk's identityStoreId. + type: str + ipAddress: + description: Endpoints Bulk's ipAddress. + type: str + mac: + description: Endpoints Bulk's mac. + type: str + mdmAttributes: + description: Endpoints Bulk's mdmAttributes. + type: dict + name: + description: Endpoints Bulk's name. + type: str + portalUser: + description: Endpoints Bulk's portalUser. + type: str + productId: + description: Endpoints Bulk's productId. + type: str + profileId: + description: Endpoints Bulk's profileId. + type: str + protocol: + description: Endpoints Bulk's protocol. + type: str + serialNumber: + description: Endpoints Bulk's serialNumber. + type: str + softwareRevision: + description: Endpoints Bulk's softwareRevision. + type: str + staticGroupAssignment: + description: StaticGroupAssignment flag. + type: bool + staticProfileAssignment: + description: StaticProfileAssignment flag. + type: bool + vendor: + description: Endpoints Bulk's vendor. + type: str + type: list + portalUser: + description: Endpoints Bulk's portalUser. + type: str + productId: + description: Endpoints Bulk's productId. + type: str + profileId: + description: Endpoints Bulk's profileId. + type: str + protocol: + description: Endpoints Bulk's protocol. + type: str + serialNumber: + description: Endpoints Bulk's serialNumber. + type: str + softwareRevision: + description: Endpoints Bulk's softwareRevision. + type: str + staticGroupAssignment: + description: StaticGroupAssignment flag. + type: bool + staticProfileAssignment: + description: StaticProfileAssignment flag. + type: bool + value: + description: Value path parameter. The id or MAC of the endpoint. + type: str + vendor: + description: Endpoints Bulk's vendor. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoints.Endpoints.create_bulk_end_points, + endpoints.Endpoints.delete_endpoint, + endpoints.Endpoints.update_bulk_end_points, + endpoints.Endpoints.update_endpoint, + + - Paths used are + post /api/v1/endpoint, + post /api/v1/endpoint/bulk, + delete /api/v1/endpoint/bulk, + delete /api/v1/endpoint/{value}, + put /api/v1/endpoint/bulk, + put /api/v1/endpoint/{value}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.endpoints_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + payload: + - connectedLinks: {} + customAttributes: {} + description: string + deviceType: string + groupId: string + hardwareRevision: string + id: string + identityStore: string + identityStoreId: string + ipAddress: string + mac: string + mdmAttributes: {} + name: string + portalUser: string + productId: string + profileId: string + protocol: string + serialNumber: string + softwareRevision: string + staticGroupAssignment: true + staticProfileAssignment: true + vendor: string + +- name: Update all + cisco.ise.endpoints_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + payload: + - connectedLinks: {} + customAttributes: {} + description: string + deviceType: string + groupId: string + hardwareRevision: string + id: string + identityStore: string + identityStoreId: string + ipAddress: string + mac: string + mdmAttributes: {} + name: string + portalUser: string + productId: string + profileId: string + protocol: string + serialNumber: string + softwareRevision: string + staticGroupAssignment: true + staticProfileAssignment: true + vendor: string + +- name: Delete all + cisco.ise.endpoints_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + +- name: Update by id + cisco.ise.endpoints_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + connectedLinks: {} + customAttributes: {} + description: string + deviceType: string + groupId: string + hardwareRevision: string + id: string + identityStore: string + identityStoreId: string + ipAddress: string + mac: string + mdmAttributes: {} + name: string + portalUser: string + productId: string + profileId: string + protocol: string + serialNumber: string + softwareRevision: string + staticGroupAssignment: true + staticProfileAssignment: true + value: string + vendor: string + +- name: Delete by id + cisco.ise.endpoints_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + value: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoints_bulk_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoints_bulk_info.py new file mode 100644 index 000000000..8d2cc4604 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/endpoints_bulk_info.py @@ -0,0 +1,168 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: endpoints_bulk_info +short_description: Information module for Endpoints Bulk +description: +- Get all Endpoints Bulk. +- Get Endpoints Bulk by id. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *'filterType=or'* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + value: + description: + - Value path parameter. The id or MAC of the endpoint. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoints.Endpoints.get_1, + endpoints.Endpoints.list_1_generator, + + - Paths used are + get /api/v1/endpoint, + get /api/v1/endpoint/{value}, + +""" + +EXAMPLES = r""" +- name: Get all Endpoints Bulk + cisco.ise.endpoints_bulk_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + sort: string + sortBy: string + filter: string + filterType: string + register: result + +- name: Get Endpoints Bulk by id + cisco.ise.endpoints_bulk_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + value: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: list + elements: dict + sample: > + [ + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/dictionary_references_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoints_device_type_info.py index 85bb07b7b..4df2926bd 100644 --- a/ansible_collections/cisco/ise/plugins/modules/dictionary_references_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/endpoints_device_type_info.py @@ -6,31 +6,30 @@ DOCUMENTATION = r""" --- -module: dictionary_references_info -short_description: Information module for Dictionary References Info +module: endpoints_device_type_info +short_description: Information module for Endpoints Device Type Info description: -- Get all Dictionary References Info. -- EDDA - Get a map of references to EDDA dictionaries. -version_added: '2.8.0' +- Get all Endpoints Device Type Info. +version_added: '1.0.0' extends_documentation_fragment: - cisco.ise.module_info author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are - edda.Edda.get_edda_dictionary_references, + endpoints.Endpoints.get_device_type_summary, - Paths used are - get /api/v1/edda/dictionary-references, + get /api/v1/endpoint/deviceType/summary, """ EXAMPLES = r""" -- name: Get all Dictionary References Info - cisco.ise.dictionary_references_info: +- name: Get all Endpoints Device Type Info + cisco.ise.endpoints_device_type_info: ise_hostname: "{{ise_hostname}}" ise_username: "{{ise_username}}" ise_password: "{{ise_password}}" @@ -43,7 +42,13 @@ RETURN = r""" ise_response: description: A dictionary or list with the response returned by the Cisco ISE Python SDK returned: always - type: dict + type: list + elements: dict sample: > - {} + [ + { + "deviceType": "string", + "total": "string" + } + ] """ diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoints_info.py b/ansible_collections/cisco/ise/plugins/modules/endpoints_info.py new file mode 100644 index 000000000..6646ca0b3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/endpoints_info.py @@ -0,0 +1,168 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: endpoints_info +short_description: Information module for Endpoints Info +description: +- Get all Endpoints Info. +- Get Endpoints Info by id. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *'filterType=or'* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + value: + description: + - Value path parameter. The id or MAC of the endpoint. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoints.Endpoints.get_1, + endpoints.Endpoints.list_1_generator, + + - Paths used are + get /api/v1/endpoint, + get /api/v1/endpoint/{value}, + +""" + +EXAMPLES = r""" +- name: Get all Endpoints Info + cisco.ise.endpoints_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + sort: string + sortBy: string + filter: string + filterType: string + register: result + +- name: Get Endpoints Info by id + cisco.ise.endpoints_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + value: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: list + elements: dict + sample: > + [ + { + "connectedLinks": {}, + "customAttributes": {}, + "description": "string", + "deviceType": "string", + "groupId": "string", + "hardwareRevision": "string", + "id": "string", + "identityStore": "string", + "identityStoreId": "string", + "ipAddress": "string", + "mac": "string", + "mdmAttributes": {}, + "name": "string", + "portalUser": "string", + "productId": "string", + "profileId": "string", + "protocol": "string", + "serialNumber": "string", + "softwareRevision": "string", + "staticGroupAssignment": true, + "staticProfileAssignment": true, + "vendor": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/endpoints_task.py b/ansible_collections/cisco/ise/plugins/modules/endpoints_task.py new file mode 100644 index 000000000..5eeed88c7 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/endpoints_task.py @@ -0,0 +1,137 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: endpoints_task +short_description: Resource module for Endpoints Task +description: +- Manage operation create of the resource Endpoints Task. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + connectedLinks: + description: Endpoints Task's connectedLinks. + type: dict + customAttributes: + description: Endpoints Task's customAttributes. + type: dict + description: + description: Endpoints Task's description. + type: str + deviceType: + description: Endpoints Task's deviceType. + type: str + groupId: + description: Endpoints Task's groupId. + type: str + hardwareRevision: + description: Endpoints Task's hardwareRevision. + type: str + id: + description: Endpoints Task's id. + type: str + identityStore: + description: Endpoints Task's identityStore. + type: str + identityStoreId: + description: Endpoints Task's identityStoreId. + type: str + ipAddress: + description: Endpoints Task's ipAddress. + type: str + mac: + description: Endpoints Task's mac. + type: str + mdmAttributes: + description: Endpoints Task's mdmAttributes. + type: dict + name: + description: Endpoints Task's name. + type: str + portalUser: + description: Endpoints Task's portalUser. + type: str + productId: + description: Endpoints Task's productId. + type: str + profileId: + description: Endpoints Task's profileId. + type: str + protocol: + description: Endpoints Task's protocol. + type: str + serialNumber: + description: Endpoints Task's serialNumber. + type: str + softwareRevision: + description: Endpoints Task's softwareRevision. + type: str + staticGroupAssignment: + description: StaticGroupAssignment flag. + type: bool + staticProfileAssignment: + description: StaticProfileAssignment flag. + type: bool + vendor: + description: Endpoints Task's vendor. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoints.Endpoints.create_end_point_task, + + - Paths used are + post /api/v1/endpointTask, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.endpoints_task: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + connectedLinks: {} + customAttributes: {} + description: string + deviceType: string + groupId: string + hardwareRevision: string + id: string + identityStore: string + identityStoreId: string + ipAddress: string + mac: string + mdmAttributes: {} + name: string + portalUser: string + productId: string + profileId: string + protocol: string + serialNumber: string + softwareRevision: string + staticGroupAssignment: true + staticProfileAssignment: true + vendor: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/external_radius_server.py b/ansible_collections/cisco/ise/plugins/modules/external_radius_server.py index 0c16d8c98..c88b03dab 100644 --- a/ansible_collections/cisco/ise/plugins/modules/external_radius_server.py +++ b/ansible_collections/cisco/ise/plugins/modules/external_radius_server.py @@ -67,7 +67,7 @@ options: description: Valid Range 1 to 120. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/external_radius_server_info.py b/ansible_collections/cisco/ise/plugins/modules/external_radius_server_info.py index 98bb7c155..3710b8678 100644 --- a/ansible_collections/cisco/ise/plugins/modules/external_radius_server_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/external_radius_server_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/filter_policy.py b/ansible_collections/cisco/ise/plugins/modules/filter_policy.py index c7b3f5696..c260d893c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/filter_policy.py +++ b/ansible_collections/cisco/ise/plugins/modules/filter_policy.py @@ -35,7 +35,7 @@ options: description: Virtual Network. At least one of subnet or sgt or vn should be defined. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/filter_policy_info.py b/ansible_collections/cisco/ise/plugins/modules/filter_policy_info.py index 486c4c0f4..bd949c955 100644 --- a/ansible_collections/cisco/ise/plugins/modules/filter_policy_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/filter_policy_info.py @@ -31,7 +31,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_location_info.py b/ansible_collections/cisco/ise/plugins/modules/guest_location_info.py index 98f77ab17..1854a9630 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_location_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_location_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings.py b/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings.py index 1f7fc6f17..b2c9e8a6e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings.py @@ -54,7 +54,7 @@ options: description: Username of Secure SMTP server. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings_info.py b/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings_info.py index dec4146c7..d6a0edad3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_smtp_notification_settings_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_ssid.py b/ansible_collections/cisco/ise/plugins/modules/guest_ssid.py index 3dac851e9..cb74d8a56 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_ssid.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_ssid.py @@ -26,7 +26,7 @@ options: characters _.-. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_ssid_info.py b/ansible_collections/cisco/ise/plugins/modules/guest_ssid_info.py index 40cc1eaeb..a0bf77842 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_ssid_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_ssid_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_type.py b/ansible_collections/cisco/ise/plugins/modules/guest_type.py index 4ac0b34d6..ce9705c67 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_type.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_type.py @@ -120,7 +120,7 @@ options: elements: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_type_email.py b/ansible_collections/cisco/ise/plugins/modules/guest_type_email.py index 9f386a62b..83a57e74d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_type_email.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_type_email.py @@ -31,7 +31,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_type_info.py b/ansible_collections/cisco/ise/plugins/modules/guest_type_info.py index 9a77176b1..e8e241e2f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_type_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_type_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_type_sms.py b/ansible_collections/cisco/ise/plugins/modules/guest_type_sms.py index 08e88c869..5d0575527 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_type_sms.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_type_sms.py @@ -31,7 +31,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user.py b/ansible_collections/cisco/ise/plugins/modules/guest_user.py index f65ae8c24..88d51e9e6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user.py @@ -115,7 +115,7 @@ options: description: Guest User's statusReason. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_approve.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_approve.py index a8aa5dd45..c85d36193 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_approve.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_approve.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_monitor_status_info.py index 0445a7379..fb64aa656 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_request.py index 5542a71ce..3f95aa357 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_bulk_request.py @@ -23,7 +23,7 @@ options: description: Guest User Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_change_sponsor_password.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_change_sponsor_password.py index 701c53136..076e3b968 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_change_sponsor_password.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_change_sponsor_password.py @@ -31,7 +31,7 @@ options: description: PortalId path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_deny.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_deny.py index b4308026a..4629adf22 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_deny.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_deny.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_email.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_email.py index 94fb4f6a2..1d6f7f028 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_email.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_email.py @@ -34,7 +34,7 @@ options: description: PortalId path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_info.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_info.py index 7713cb784..14c95818e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_reinstate.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_reinstate.py index 36a8001e0..d66f78064 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_reinstate.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_reinstate.py @@ -24,7 +24,7 @@ options: description: Name path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_reset_password.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_reset_password.py index a544c1707..799274837 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_reset_password.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_reset_password.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_sms.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_sms.py index 1c9ffa411..d8d8ed77b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_sms.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_sms.py @@ -23,7 +23,7 @@ options: description: PortalId path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/guest_user_suspend.py b/ansible_collections/cisco/ise/plugins/modules/guest_user_suspend.py index 93c2e0d28..44e0015fe 100644 --- a/ansible_collections/cisco/ise/plugins/modules/guest_user_suspend.py +++ b/ansible_collections/cisco/ise/plugins/modules/guest_user_suspend.py @@ -35,7 +35,7 @@ options: description: Name path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/hotpatch_info.py b/ansible_collections/cisco/ise/plugins/modules/hotpatch_info.py index ddc28f545..18c05777d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/hotpatch_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/hotpatch_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Patching diff --git a/ansible_collections/cisco/ise/plugins/modules/hotpatch_install.py b/ansible_collections/cisco/ise/plugins/modules/hotpatch_install.py index 143c1acad..24af4a2cb 100644 --- a/ansible_collections/cisco/ise/plugins/modules/hotpatch_install.py +++ b/ansible_collections/cisco/ise/plugins/modules/hotpatch_install.py @@ -12,7 +12,8 @@ description: - Manage operation create of the resource Hotpatch Install. - > Triggers hot patch installation on the Cisco ISE node. A task ID is returned which can be used to monitor the progress of the hot patch installation - process. As hot patch installation triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. + process. As hot patch installation triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. For installation of + hotpatch on secondary nodes, request needs to be sent to individual node instead of the Primary Administration Node. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module @@ -21,11 +22,14 @@ options: hotpatchName: description: Hotpatch Install's hotpatchName. type: str + isDirectoryListed: + description: IsDirectoryListed flag. + type: bool repositoryName: description: Hotpatch Install's repositoryName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Patching @@ -48,6 +52,7 @@ EXAMPLES = r""" ise_password: "{{ise_password}}" ise_verify: "{{ise_verify}}" hotpatchName: string + isDirectoryListed: true repositoryName: string """ diff --git a/ansible_collections/cisco/ise/plugins/modules/hotpatch_rollback.py b/ansible_collections/cisco/ise/plugins/modules/hotpatch_rollback.py index 7db0ae257..4ae39d247 100644 --- a/ansible_collections/cisco/ise/plugins/modules/hotpatch_rollback.py +++ b/ansible_collections/cisco/ise/plugins/modules/hotpatch_rollback.py @@ -12,7 +12,8 @@ description: - Manage operation create of the resource Hotpatch Rollback. - > Triggers hot patch rollback on the Cisco ISE node. A task ID is returned which can be used to monitor the progress of the hot patch rollback process. As - hot patch rollback triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. + hot patch rollback triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. For rollback of hotpatch on + secondary nodes , request needs to be sent on individual node instead of the Primary Administration Node. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module @@ -21,11 +22,14 @@ options: hotpatchName: description: Hotpatch Rollback's hotpatchName. type: str + isDirectoryListed: + description: IsDirectoryListed flag. + type: bool repositoryName: description: Hotpatch Rollback's repositoryName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Patching @@ -48,6 +52,7 @@ EXAMPLES = r""" ise_password: "{{ise_password}}" ise_verify: "{{ise_verify}}" hotpatchName: string + isDirectoryListed: true repositoryName: string """ diff --git a/ansible_collections/cisco/ise/plugins/modules/hotspot_portal.py b/ansible_collections/cisco/ise/plugins/modules/hotspot_portal.py index f8047fc0c..650e6110b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/hotspot_portal.py +++ b/ansible_collections/cisco/ise/plugins/modules/hotspot_portal.py @@ -251,7 +251,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/hotspot_portal_info.py b/ansible_collections/cisco/ise/plugins/modules/hotspot_portal_info.py index fe316031c..2eebad547 100644 --- a/ansible_collections/cisco/ise/plugins/modules/hotspot_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/hotspot_portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/id_store_sequence.py b/ansible_collections/cisco/ise/plugins/modules/id_store_sequence.py index fa0906397..723b3c589 100644 --- a/ansible_collections/cisco/ise/plugins/modules/id_store_sequence.py +++ b/ansible_collections/cisco/ise/plugins/modules/id_store_sequence.py @@ -48,7 +48,7 @@ options: description: Id Store Sequence's parent. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IdentitySequence diff --git a/ansible_collections/cisco/ise/plugins/modules/id_store_sequence_info.py b/ansible_collections/cisco/ise/plugins/modules/id_store_sequence_info.py index 1903ae417..7c4669d55 100644 --- a/ansible_collections/cisco/ise/plugins/modules/id_store_sequence_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/id_store_sequence_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IdentitySequence diff --git a/ansible_collections/cisco/ise/plugins/modules/identity_group.py b/ansible_collections/cisco/ise/plugins/modules/identity_group.py index 13dfda39f..985fcaa41 100644 --- a/ansible_collections/cisco/ise/plugins/modules/identity_group.py +++ b/ansible_collections/cisco/ise/plugins/modules/identity_group.py @@ -30,7 +30,7 @@ options: description: Identity Group's parent. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IdentityGroups diff --git a/ansible_collections/cisco/ise/plugins/modules/identity_group_info.py b/ansible_collections/cisco/ise/plugins/modules/identity_group_info.py index c2acbc9d3..2e0a6dfe1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/identity_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/identity_group_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IdentityGroups diff --git a/ansible_collections/cisco/ise/plugins/modules/internal_user.py b/ansible_collections/cisco/ise/plugins/modules/internal_user.py index 238b344b0..d19ab6086 100644 --- a/ansible_collections/cisco/ise/plugins/modules/internal_user.py +++ b/ansible_collections/cisco/ise/plugins/modules/internal_user.py @@ -69,7 +69,7 @@ options: description: The id store where the internal user's password is kept. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/internal_user_info.py b/ansible_collections/cisco/ise/plugins/modules/internal_user_info.py index eb6da52de..20e7bac0a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/internal_user_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/internal_user_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec.py b/ansible_collections/cisco/ise/plugins/modules/ipsec.py new file mode 100644 index 000000000..2fef3c1fb --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec.py @@ -0,0 +1,236 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec +short_description: Resource module for Ipsec +description: +- Manage operations create and update of the resource Ipsec. +- Creates an IPsec connection. +- Updates the configuration of existing IPsec connection. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + authType: + description: Authentication type for establishing connection. + type: str + certId: + description: ID of the certificate for establishing connection. + type: str + configureVti: + description: Authentication type for establishing connection. + type: bool + espAhProtocol: + description: Encryption protocol used for establishing connection. + type: str + hostName: + description: Hostname of the node. + type: str + iface: + description: Ethernet port of the node. + type: str + ikeReAuthTime: + description: IKE re-authentication time. + type: int + ikeVersion: + description: IKE version. + type: str + localInternalIp: + description: Local Tunnel IP address. + type: str + modeOption: + description: The Mode type used for establishing the connection. + type: str + nadIp: + description: NAD IP address for establishing connection. + type: str + phaseOneDHGroup: + description: Phase-one DH group used for establishing connection. + type: str + phaseOneEncryptionAlgo: + description: Phase-one encryption algorithm used for establishing connection. + type: str + phaseOneHashAlgo: + description: Phase-one hashing algorithm used for establishing connection. + type: str + phaseOneLifeTime: + description: Phase-one connection lifetime. + type: int + phaseTwoDHGroup: + description: Phase-two DH group used for establishing connection. + type: str + phaseTwoEncryptionAlgo: + description: Phase-two encryption algorithm used for establishing connection. + type: str + phaseTwoHashAlgo: + description: Phase-two hashing algorithm used for establishing connection. + type: str + phaseTwoLifeTime: + description: Phase-two connection lifetime. + type: int + psk: + description: Pre-shared key used for establishing connection. + type: str + remotePeerInternalIp: + description: Remote Tunnel IP address. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.create_ipsec_connection, + native_ipsec.NativeIpsec.update_ipsec_connection_config, + + - Paths used are + post /api/v1/ipsec, + put /api/v1/ipsec, + +""" + +EXAMPLES = r""" +- name: Update all + cisco.ise.ipsec: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + authType: string + certId: string + configureVti: true + espAhProtocol: string + hostName: string + iface: string + ikeReAuthTime: 0 + ikeVersion: string + localInternalIp: string + modeOption: string + nadIp: string + phaseOneDHGroup: string + phaseOneEncryptionAlgo: string + phaseOneHashAlgo: string + phaseOneLifeTime: 0 + phaseTwoDHGroup: string + phaseTwoEncryptionAlgo: string + phaseTwoHashAlgo: string + phaseTwoLifeTime: 0 + psk: string + remotePeerInternalIp: string + +- name: Create + cisco.ise.ipsec: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + authType: string + certId: string + configureVti: true + espAhProtocol: string + hostName: string + iface: string + ikeReAuthTime: 0 + ikeVersion: string + localInternalIp: string + modeOption: string + nadIp: string + phaseOneDHGroup: string + phaseOneEncryptionAlgo: string + phaseOneHashAlgo: string + phaseOneLifeTime: 0 + phaseTwoDHGroup: string + phaseTwoEncryptionAlgo: string + phaseTwoHashAlgo: string + phaseTwoLifeTime: 0 + psk: string + remotePeerInternalIp: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } + ] + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "response": { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + }, + "version": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_bulk.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_bulk.py new file mode 100644 index 000000000..9ebc9574e --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_bulk.py @@ -0,0 +1,143 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_bulk +short_description: Resource module for Ipsec Bulk +description: +- Manage operation create of the resource Ipsec Bulk. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + ItemList: + description: Ipsec Bulk's ItemList. + elements: dict + suboptions: + authType: + description: Authentication type for establishing connection. + type: str + certId: + description: ID of the certificate for establishing connection. + type: str + configureVti: + description: Authentication type for establishing connection. + type: bool + espAhProtocol: + description: Encryption protocol used for establishing connection. + type: str + hostName: + description: Hostname of the node. + type: str + iface: + description: Ethernet port of the node. + type: str + ikeReAuthTime: + description: IKE re-authentication time. + type: int + ikeVersion: + description: IKE version. + type: str + localInternalIp: + description: Local Tunnel IP address. + type: str + modeOption: + description: The Mode type used for establishing the connection. + type: str + nadIp: + description: NAD IP address for establishing connection. + type: str + phaseOneDHGroup: + description: Phase-one DH group used for establishing connection. + type: str + phaseOneEncryptionAlgo: + description: Phase-one encryption algorithm used for establishing connection. + type: str + phaseOneHashAlgo: + description: Phase-one hashing algorithm used for establishing connection. + type: str + phaseOneLifeTime: + description: Phase-one connection lifetime. + type: int + phaseTwoDHGroup: + description: Phase-two DH group used for establishing connection. + type: str + phaseTwoEncryptionAlgo: + description: Phase-two encryption algorithm used for establishing connection. + type: str + phaseTwoHashAlgo: + description: Phase-two hashing algorithm used for establishing connection. + type: str + phaseTwoLifeTime: + description: Phase-two connection lifetime. + type: int + psk: + description: Pre-shared key used for establishing connection. + type: str + remotePeerInternalIp: + description: Remote Tunnel IP address. + type: str + type: list + operation: + description: Ipsec Bulk's operation. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.bulk_ip_sec_operation, + + - Paths used are + post /api/v1/ipsec/bulk, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.ipsec_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + ItemList: + - authType: string + certId: string + configureVti: true + espAhProtocol: string + hostName: string + iface: string + ikeReAuthTime: 0 + ikeVersion: string + localInternalIp: string + modeOption: string + nadIp: string + phaseOneDHGroup: string + phaseOneEncryptionAlgo: string + phaseOneHashAlgo: string + phaseOneLifeTime: 0 + phaseTwoDHGroup: string + phaseTwoEncryptionAlgo: string + phaseTwoHashAlgo: string + phaseTwoLifeTime: 0 + psk: string + remotePeerInternalIp: string + operation: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_certificates_info.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_certificates_info.py new file mode 100644 index 000000000..f68ee2b56 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_certificates_info.py @@ -0,0 +1,55 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_certificates_info +short_description: Information module for Ipsec Certificates Info +description: +- Get all Ipsec Certificates Info. +- Returns all the certificates for IPsec role. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: {} +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.get_ip_sec_certificates, + + - Paths used are + get /api/v1/ipsec/certificates, + +""" + +EXAMPLES = r""" +- name: Get all Ipsec Certificates Info + cisco.ise.ipsec_certificates_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "friendlyName": "string", + "id": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_delete.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_delete.py new file mode 100644 index 000000000..2779fdd5b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_delete.py @@ -0,0 +1,88 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_delete +short_description: Resource module for Ipsec Delete +description: +- Manage operation delete of the resource Ipsec Delete. +- Removes an enabled IPsec node connection. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + hostName: + description: HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.remove_ipsec_connection, + + - Paths used are + delete /api/v1/ipsec/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Delete by id + cisco.ise.ipsec_delete: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + hostName: string + nadIp: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_delete_info.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_delete_info.py new file mode 100644 index 000000000..f4d65bc29 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_delete_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_delete_info +short_description: Information module for Ipsec Delete +description: +- Get Ipsec Delete by id. +- Returns the IPsec configuration details of a given node with the hostname and the NAD IP. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + hostName: + description: + - HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: + - NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.get_ipsec_node, + + - Paths used are + get /api/v1/ipsec/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Get Ipsec Delete by id + cisco.ise.ipsec_delete_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + hostName: string + nadIp: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_disable.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_disable.py new file mode 100644 index 000000000..6c47bf81b --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_disable.py @@ -0,0 +1,98 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_disable +short_description: Resource module for Ipsec Disable +description: +- Manage operation update of the resource Ipsec Disable. +- Disables an enabled IPsec node connection. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + hostName: + description: HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.disable_ipsec_connection, + + - Paths used are + put /api/v1/ipsec/disable/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Update by id + cisco.ise.ipsec_disable: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + hostName: string + nadIp: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "message": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_disable_info.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_disable_info.py new file mode 100644 index 000000000..a0a72bc74 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_disable_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_disable_info +short_description: Information module for Ipsec Disable +description: +- Get Ipsec Disable by id. +- Returns the IPsec configuration details of a given node with the hostname and the NAD IP. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + hostName: + description: + - HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: + - NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.get_ipsec_node, + + - Paths used are + get /api/v1/ipsec/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Get Ipsec Disable by id + cisco.ise.ipsec_disable_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + hostName: string + nadIp: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_enable.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_enable.py new file mode 100644 index 000000000..45366e0ab --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_enable.py @@ -0,0 +1,98 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_enable +short_description: Resource module for Ipsec Enable +description: +- Manage operation update of the resource Ipsec Enable. +- Enables an disabled IPsec node connection. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + hostName: + description: HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.enable_ipsec_connection, + + - Paths used are + put /api/v1/ipsec/enable/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Update by id + cisco.ise.ipsec_enable: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + hostName: string + nadIp: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "message": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_enable_info.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_enable_info.py new file mode 100644 index 000000000..93dfd3cc4 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_enable_info.py @@ -0,0 +1,90 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_enable_info +short_description: Information module for Ipsec Enable +description: +- Get Ipsec Enable by id. +- Returns the IPsec configuration details of a given node with the hostname and the NAD IP. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + hostName: + description: + - HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: + - NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.get_ipsec_node, + + - Paths used are + get /api/v1/ipsec/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Get Ipsec Enable by id + cisco.ise.ipsec_enable_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + hostName: string + nadIp: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ipsec_info.py b/ansible_collections/cisco/ise/plugins/modules/ipsec_info.py new file mode 100644 index 000000000..16c0e3572 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/ipsec_info.py @@ -0,0 +1,193 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: ipsec_info +short_description: Information module for Ipsec Info +description: +- Get all Ipsec Info. +- Get Ipsec Info by id. +- Returns all the IPsec enabled nodes with configuration details. +- Returns the IPsec configuration details of a given node with the hostname and the NAD IP. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *"filterType=or"* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - > + SortBy query parameter. Sort column - The IPsec enabled nodes are sorted based on the columns. This is + applicable for the field - hostName. + type: str + hostName: + description: + - HostName path parameter. Hostname of the deployed node. + type: str + nadIp: + description: + - NadIp path parameter. IP address of the NAD. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + native_ipsec.NativeIpsec.get_ipsec_enabled_nodes_generator, + native_ipsec.NativeIpsec.get_ipsec_node, + + - Paths used are + get /api/v1/ipsec, + get /api/v1/ipsec/{hostName}/{nadIp}, + +""" + +EXAMPLES = r""" +- name: Get all Ipsec Info + cisco.ise.ipsec_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + filter: string + filterType: string + sort: string + sortBy: string + register: result + +- name: Get Ipsec Info by id + cisco.ise.ipsec_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + hostName: string + nadIp: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: list + elements: dict + sample: > + [ + { + "authType": "string", + "certId": "string", + "configureVti": true, + "createTime": "string", + "espAhProtocol": "string", + "hostName": "string", + "id": "string", + "iface": "string", + "ikeReAuthTime": 0, + "ikeVersion": "string", + "link": { + "href": "string", + "rel": "string", + "type": "string" + }, + "localInternalIp": "string", + "modeOption": "string", + "nadIp": "string", + "phaseOneDHGroup": "string", + "phaseOneEncryptionAlgo": "string", + "phaseOneHashAlgo": "string", + "phaseOneLifeTime": 0, + "phaseTwoDHGroup": "string", + "phaseTwoEncryptionAlgo": "string", + "phaseTwoHashAlgo": "string", + "phaseTwoLifeTime": 0, + "psk": "string", + "remotePeerInternalIp": "string", + "status": "string", + "updateTime": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/ise_root_ca_regenerate.py b/ansible_collections/cisco/ise/plugins/modules/ise_root_ca_regenerate.py index c61db07fd..bb80533e3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/ise_root_ca_regenerate.py +++ b/ansible_collections/cisco/ise/plugins/modules/ise_root_ca_regenerate.py @@ -21,7 +21,7 @@ options: CSR. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_connection_type_info.py b/ansible_collections/cisco/ise/plugins/modules/licensing_connection_type_info.py index 46a7b777d..3415ea2b8 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_connection_type_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_connection_type_info.py @@ -10,14 +10,14 @@ module: licensing_connection_type_info short_description: Information module for Licensing Connection Type description: - Get all Licensing Connection Type. -- Get connection type. +- Get the connection type. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module_info author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_eval_license_info.py b/ansible_collections/cisco/ise/plugins/modules/licensing_eval_license_info.py index b594f90db..0a50416b9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_eval_license_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_eval_license_info.py @@ -10,14 +10,14 @@ module: licensing_eval_license_info short_description: Information module for Licensing Eval License description: - Get all Licensing Eval License. -- Get registration information. +- Get registration information related to the evaluation license. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module_info author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_feature_to_tier_mapping_info.py b/ansible_collections/cisco/ise/plugins/modules/licensing_feature_to_tier_mapping_info.py index 0ecf5b696..d33c19bb0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_feature_to_tier_mapping_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_feature_to_tier_mapping_info.py @@ -10,14 +10,14 @@ module: licensing_feature_to_tier_mapping_info short_description: Information module for Licensing Feature To Tier Mapping description: - Get all Licensing Feature To Tier Mapping. -- Get feature to tier mapping. +- Get feature to tier mapping information. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module_info author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing @@ -52,10 +52,10 @@ ise_response: sample: > [ { + "tier": "string", "featureName": [ "string" - ], - "tier": "string" + ] } ] """ diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_registration_create.py b/ansible_collections/cisco/ise/plugins/modules/licensing_registration_create.py index b224fdcc8..c4bb7e59d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_registration_create.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_registration_create.py @@ -10,21 +10,22 @@ module: licensing_registration_create short_description: Resource module for Licensing Registration Create description: - Manage operation create of the resource Licensing Registration Create. -- License - Configure registration information. +- Configure registration information. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module author: Rafael Campos (@racampos) options: connectionType: - description: Licensing Registration Create's connectionType. + description: Type of connection for the registration. type: str registrationType: - description: Licensing Registration Create's registrationType. + description: Register, deregister, renew or update. type: str ssmOnPremServer: - description: If connection type is selected as SSM_ONPREM_SERVER, then IP address - or the hostname (or FQDN) of the SSM On-Prem server Host. + description: If the connection type is selected as SSM_ONPREM_SERVER, then this + field consists of IP address or the hostname (or FQDN) of the SSM On-Prem server + host. type: str tier: description: Licensing Registration Create's tier. @@ -34,7 +35,7 @@ options: description: Token. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_registration_info.py b/ansible_collections/cisco/ise/plugins/modules/licensing_registration_info.py index d88e0e987..1a42c6fb2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_registration_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_registration_info.py @@ -10,14 +10,14 @@ module: licensing_registration_info short_description: Information module for Licensing Registration description: - Get all Licensing Registration. -- Get registration information. +- Get the registration information. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module_info author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing @@ -50,11 +50,11 @@ ise_response: type: dict sample: > { - "connectionType": "string", - "registrationState": "string", - "ssmOnPremServer": "string", "tier": [ "string" - ] + ], + "connectionType": "string", + "registrationState": "string", + "ssmOnPremServer": "string" } """ diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_create.py b/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_create.py index 85dcd4876..7a644dfc4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_create.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_create.py @@ -10,14 +10,14 @@ module: licensing_smart_state_create short_description: Resource module for Licensing Smart State Create description: - Manage operation create of the resource Licensing Smart State Create. -- License - Configure smart state information. +- Configure smart state information. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_info.py b/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_info.py index e82937305..eedf0c669 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_smart_state_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_create.py b/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_create.py index fe66204bd..930633f54 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_create.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_create.py @@ -21,14 +21,14 @@ options: elements: dict suboptions: name: - description: Licensing Tier State Create's name. + description: License tier list. type: str status: - description: Licensing Tier State Create's status. + description: Current Smart Licensing State. type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing @@ -63,13 +63,13 @@ ise_response: type: dict sample: > { + "version": "string", "response": [ { - "message": "string", "name": "string", - "status": "string" + "status": "string", + "message": "string" } - ], - "version": "string" + ] } """ diff --git a/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_info.py b/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_info.py index 11ef62dae..d2838ad9a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/licensing_tier_state_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Licensing @@ -52,12 +52,12 @@ ise_response: sample: > [ { + "name": "string", + "status": "string", "compliance": "string", "consumptionCounter": 0, "daysOutOfCompliance": "string", - "lastAuthorization": "string", - "name": "string", - "status": "string" + "lastAuthorization": "string" } ] """ diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_account_status_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_account_status_info.py index 8a64d0eb2..6b70acd3e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_account_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_account_status_info.py @@ -24,7 +24,7 @@ options: - Duration path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_athentication_status_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_athentication_status_info.py index fd9138adf..541496cf8 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_athentication_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_athentication_status_info.py @@ -28,7 +28,7 @@ options: - RECORDS path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_authentication_status_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_authentication_status_info.py index 5a033a6c9..58ed4a68f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_authentication_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_authentication_status_info.py @@ -28,7 +28,7 @@ options: - RECORDS path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_failure_reasons_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_failure_reasons_info.py index 6ffa6c354..05cb7e7f0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_failure_reasons_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_failure_reasons_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_count_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_count_info.py index 0a0bf0c25..bd1b0797a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_count_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_count_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_list_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_list_info.py index e62b3ef9b..1e5352a4e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_list_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_active_list_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_auth_list_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_auth_list_info.py index 44685ba33..17890b330 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_auth_list_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_auth_list_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_ip_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_ip_info.py index ec45c8782..ce5a6c909 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_ip_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_ip_info.py @@ -20,7 +20,7 @@ options: - Endpoint_ipv4 path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_mac_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_mac_info.py index d9a4bcfb3..22b41e7a0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_mac_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_mac_info.py @@ -20,7 +20,7 @@ options: - Mac path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_nas_ip_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_nas_ip_info.py index d6f0fa959..68e64d96c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_nas_ip_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_nas_ip_info.py @@ -20,7 +20,7 @@ options: - Nas_ipv4 path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_username_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_username_info.py index 548da9c6b..eea1960c3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_username_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_by_username_info.py @@ -20,7 +20,7 @@ options: - Username path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_delete_all.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_delete_all.py index 63b7fa1aa..c127e0a09 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_delete_all.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_delete_all.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_disconnect_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_disconnect_info.py index 8de5ed1d5..083cb56c9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_disconnect_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_disconnect_info.py @@ -36,7 +36,7 @@ options: - NAS_IPV4 path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_posture_count_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_posture_count_info.py index 774d9709a..78fa719cc 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_posture_count_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_posture_count_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_profiler_count_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_profiler_count_info.py index 05494c7d6..820197fb2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_profiler_count_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_profiler_count_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_session_reauthentication_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_session_reauthentication_info.py index 9f1e55b73..d0786bf63 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_session_reauthentication_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_session_reauthentication_info.py @@ -28,7 +28,7 @@ options: - REAUTH_TYPE path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_sessions_by_session_id_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_sessions_by_session_id_info.py index b00af3952..f7dedd57f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_sessions_by_session_id_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_sessions_by_session_id_info.py @@ -20,7 +20,7 @@ options: - Session_id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/mnt_version_info.py b/ansible_collections/cisco/ise/plugins/modules/mnt_version_info.py index c26efbd54..413db1fca 100644 --- a/ansible_collections/cisco/ise/plugins/modules/mnt_version_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/mnt_version_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/my_device_portal.py b/ansible_collections/cisco/ise/plugins/modules/my_device_portal.py index 5677290f9..cb258d0de 100644 --- a/ansible_collections/cisco/ise/plugins/modules/my_device_portal.py +++ b/ansible_collections/cisco/ise/plugins/modules/my_device_portal.py @@ -275,7 +275,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/my_device_portal_info.py b/ansible_collections/cisco/ise/plugins/modules/my_device_portal_info.py index 742308c72..4b0a21b82 100644 --- a/ansible_collections/cisco/ise/plugins/modules/my_device_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/my_device_portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile.py b/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile.py index c250782f3..4dc1b5796 100644 --- a/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile.py +++ b/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile.py @@ -48,7 +48,7 @@ options: type: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for NativeSupplicantProfile diff --git a/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile_info.py b/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile_info.py index 5976821cb..8fc75f333 100644 --- a/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/native_supplicant_profile_info.py @@ -31,7 +31,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for NativeSupplicantProfile diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules.py b/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules.py index 4b3be685e..9cf9b6e0a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules.py @@ -229,7 +229,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authentication Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_info.py index f121dc6f2..9c298b03d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_info.py @@ -27,7 +27,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authentication Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_reset_hitcount.py index e3e918c5f..476695c0e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_authentication_rules_reset_hitcount.py @@ -20,7 +20,7 @@ options: description: PolicyId path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authentication Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules.py b/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules.py index 11cb7caff..04262598b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules.py @@ -220,7 +220,7 @@ options: description: Security group used in authorization policies. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_info.py index 6a5f812d3..0a237fa1b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_info.py @@ -27,7 +27,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_reset_hitcount.py index fc9311404..58ba3af9c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_authorization_rules_reset_hitcount.py @@ -20,7 +20,7 @@ options: description: PolicyId path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions.py b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions.py index b5abc72da..8f1947cc6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions.py @@ -164,7 +164,7 @@ options: elements: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authentication_rule_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authentication_rule_info.py index d1977079d..d1025bb5a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authentication_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authentication_rule_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authorization_rule_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authorization_rule_info.py index 1c33ff340..351c82760 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authorization_rule_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_authorization_rule_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_policy_set_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_policy_set_info.py index eb9d44889..ad7ef2d1f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_for_policy_set_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_info.py index 04f96b355..aaf9ade1f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_conditions_info.py @@ -29,7 +29,7 @@ options: - Id path parameter. Condition id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary.py index 64b1abb37..d2da6dfca 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary.py @@ -47,7 +47,7 @@ options: description: The dictionary version. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute.py index 2572d3833..7cd4a6705 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute.py @@ -55,7 +55,7 @@ options: description: The dictionary attribute's name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary Attribute diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute_info.py index 117323aac..fa44c37ec 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attribute_info.py @@ -27,7 +27,7 @@ options: - Name path parameter. The dictionary attribute name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary Attribute diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authentication_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authentication_info.py index cf7b71905..27d99454f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authentication_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authentication_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary Attributes List diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authorization_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authorization_info.py index 7325147f9..f549bf9d6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authorization_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_authorization_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary Attributes List diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_policy_set_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_policy_set_info.py index 07ac1479c..e2efc8258 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_attributes_policy_set_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary Attributes List diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_info.py index 7ddff701a..b74780804 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_dictionary_info.py @@ -23,7 +23,7 @@ options: - Name path parameter. The dictionary name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Dictionary diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules.py b/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules.py index cb6eb3e48..1aeea1a74 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules.py @@ -217,7 +217,7 @@ options: description: Security group used in authorization policies. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Global Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_info.py index e98c99cb6..6bfc2d26b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Global Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_reset_hitcount.py index de070305f..48d8437f6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_global_exception_rules_reset_hitcount.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Global Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_identity_stores_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_identity_stores_info.py index 50c59b392..68f21b90d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_identity_stores_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_identity_stores_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Identity Stores diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules.py b/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules.py index 94bd67b35..6862a69d8 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules.py @@ -220,7 +220,7 @@ options: description: Security group used in authorization policies. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_info.py index 572027db8..db3bcee1c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_info.py @@ -27,7 +27,7 @@ options: - Id path parameter. Rule id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_reset_hitcounts.py b/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_reset_hitcounts.py index a7e32207d..a15aeb581 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_reset_hitcounts.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_local_exception_rules_reset_hitcounts.py @@ -20,7 +20,7 @@ options: description: PolicyId path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Authorization Exception Rules diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition.py b/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition.py index 4cf768c5d..db71eaaf2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition.py @@ -30,24 +30,23 @@ options: description: Network Access Network Condition's description. type: str deviceGroupList: - description: <p>This field should contain a NDG Root, comma, and an NDG + description: <p>This field should contain a tuple with NDG Root, comma, and an NDG (that it under the root).<br> Line format - NDG Root Name, NDG, Port</p>. elements: str type: list deviceList: - description: <p>This field should contain Device-Name,port-number. The device - name must be the same as the name field in a Network Device object.<br> Line - format - Device Name,Port</p>. + description: <p>This field should contain Device Name. The device name must be the + same as the name field in a Network Device object. Line format - Device Name</p>. elements: str type: list id: description: Network Access Network Condition's id. type: str ipAddrList: - description: <p>This field should contain IP-address-or-subnet,port number<br> - IP address can be IPV4 format (n.n.n.n) or IPV6 format (n n n n n n n n).<br> - IP subnet can be IPV4 format (n.n.n.n/m) or IPV6 format (n n n n n n n n/m).<br> - Line format - IP Address or subnet,Port</p>. + description: <p>This field should contain IP address or subnet.<br> IP address can + be IPV4 format (n.n.n.n) or IPV6 format (n n n n n n n n).<br> IP subnet can be + IPV4 format (n.n.n.n/m) or IPV6 format (n n n n n n n n/m).<br> Line format - + IP Address or subnet</p>. elements: str type: list link: @@ -74,7 +73,7 @@ options: description: Network Condition name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Network Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition_info.py index 063585c97..ecfa4589e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_network_condition_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Condition id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Network Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set.py b/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set.py index 8e98f1cb8..082866604 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set.py @@ -210,7 +210,7 @@ options: matched. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Policy Set diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_info.py index 7c5c9d535..62ee4c19f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Policy id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Policy Set diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_reset_hitcount.py b/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_reset_hitcount.py index ceda451e8..9d7de077c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_reset_hitcount.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_policy_set_reset_hitcount.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Policy Set diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_profiles_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_profiles_info.py index 5c954e513..b4cbade5e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_profiles_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_profiles_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Profiles diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_security_groups_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_security_groups_info.py index bcb6d16c9..921655812 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_security_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_security_groups_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Security Groups diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_service_name_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_service_name_info.py index 1f63e6c1c..68695c941 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_service_name_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_service_name_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Service Names diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions.py b/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions.py index efa5d901c..ef7706751 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions.py @@ -162,7 +162,7 @@ options: elements: str type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Time/Date Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions_info.py b/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions_info.py index eb6ee1b0b..f1fcd11db 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_access_time_date_conditions_info.py @@ -23,7 +23,7 @@ options: - Id path parameter. Condition id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Network Access - Time/Date Conditions diff --git a/ansible_collections/cisco/ise/plugins/modules/network_device.py b/ansible_collections/cisco/ise/plugins/modules/network_device.py index cde422c7a..8e15c4604 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_device.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_device.py @@ -191,7 +191,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_monitor_status_info.py index 8a766835d..2944371f3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_request.py index 530df579b..df606cf06 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_device_bulk_request.py @@ -23,7 +23,7 @@ options: description: Network Device Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/network_device_group.py b/ansible_collections/cisco/ise/plugins/modules/network_device_group.py index d2c17dd56..13736156c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_device_group.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_device_group.py @@ -27,11 +27,11 @@ options: name: description: Network Device Group's name. type: str - ndgtype: - description: Network Device Group's ndgtype. + othername: + description: Network Device Group's othername. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are @@ -57,7 +57,7 @@ EXAMPLES = r""" description: string id: string name: string - ndgtype: string + othername: string - name: Delete by id cisco.ise.network_device_group: @@ -77,7 +77,7 @@ EXAMPLES = r""" state: present description: string name: string - ndgtype: string + othername: string """ @@ -96,7 +96,7 @@ ise_response: "href": "string", "type": "string" }, - "ndgtype": "string" + "othername": "string" } ise_update_response: diff --git a/ansible_collections/cisco/ise/plugins/modules/network_device_group_info.py b/ansible_collections/cisco/ise/plugins/modules/network_device_group_info.py index 757237f1d..ac6dd2542 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_device_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_device_group_info.py @@ -73,7 +73,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are @@ -138,7 +138,7 @@ ise_response: "href": "string", "type": "string" }, - "ndgtype": "string" + "othername": "string" } ise_responses: @@ -158,7 +158,7 @@ ise_responses: "href": "string", "type": "string" }, - "ndgtype": "string" + "othername": "string" } ] """ diff --git a/ansible_collections/cisco/ise/plugins/modules/network_device_info.py b/ansible_collections/cisco/ise/plugins/modules/network_device_info.py index 36505fec4..036a7bcbe 100644 --- a/ansible_collections/cisco/ise/plugins/modules/network_device_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/network_device_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/node_deployment.py b/ansible_collections/cisco/ise/plugins/modules/node_deployment.py index 237154029..0c997d773 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_deployment.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_deployment.py @@ -42,7 +42,7 @@ options: description: Node Deployment's userName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Deployment diff --git a/ansible_collections/cisco/ise/plugins/modules/node_deployment_info.py b/ansible_collections/cisco/ise/plugins/modules/node_deployment_info.py index 86af43a84..bbe07b639 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_deployment_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_deployment_info.py @@ -49,7 +49,7 @@ options: - Hostname path parameter. Hostname of the deployed node. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Deployment diff --git a/ansible_collections/cisco/ise/plugins/modules/node_deployment_sync.py b/ansible_collections/cisco/ise/plugins/modules/node_deployment_sync.py index fd2e3ecca..60efa7d22 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_deployment_sync.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_deployment_sync.py @@ -10,7 +10,7 @@ module: node_deployment_sync short_description: Resource module for Node Deployment Sync description: - Manage operation create of the resource Node Deployment Sync. -- Performing a manual synchronization involves a reload of the target node, but. +- Performing a manual synchronization involves a reload of the target node, but not the primary PAN. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module @@ -20,7 +20,7 @@ options: description: Hostname path parameter. Hostname of the node. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Deployment diff --git a/ansible_collections/cisco/ise/plugins/modules/node_group.py b/ansible_collections/cisco/ise/plugins/modules/node_group.py index 04fcc0f7d..0c6da3f49 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_group.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_group.py @@ -12,7 +12,7 @@ description: - Manage operations create, update and delete of the resource Node Group. - This API creates a node group in the cluster. A node group is a group of PSNs,. - Delete an existing node group in the cluster. Deleting the node group does not delete the nodes, but failover is no longer carried out among the nodes. -- Purpose of this API is to update an existing node group. +- Update an existing node group. version_added: '1.0.0' extends_documentation_fragment: - cisco.ise.module @@ -52,7 +52,7 @@ options: description: NodeGroupName path parameter. Name of the existing node group. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Group @@ -122,14 +122,14 @@ ise_response: type: dict sample: > { + "name": "string", "description": "string", "marCache": { - "query-attempts": 0, - "query-timeout": 0, + "replication-timeout": 0, "replication-attempts": 0, - "replication-timeout": 0 - }, - "name": "string" + "query-timeout": 0, + "query-attempts": 0 + } } ise_update_response: diff --git a/ansible_collections/cisco/ise/plugins/modules/node_group_info.py b/ansible_collections/cisco/ise/plugins/modules/node_group_info.py index 4fbf7af0f..c2cc29728 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_group_info.py @@ -23,7 +23,7 @@ options: - NodeGroupName path parameter. Name of the existing node group. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Group @@ -67,13 +67,13 @@ ise_response: type: dict sample: > { + "name": "string", "description": "string", "marCache": { - "query-attempts": 0, - "query-timeout": 0, + "replication-timeout": 0, "replication-attempts": 0, - "replication-timeout": 0 - }, - "name": "string" + "query-timeout": 0, + "query-attempts": 0 + } } """ diff --git a/ansible_collections/cisco/ise/plugins/modules/node_group_node_create.py b/ansible_collections/cisco/ise/plugins/modules/node_group_node_create.py index 6a70be798..7f420797c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_group_node_create.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_group_node_create.py @@ -23,7 +23,7 @@ options: description: NodeGroupName path parameter. Name of the existing node group. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Group diff --git a/ansible_collections/cisco/ise/plugins/modules/node_group_node_delete.py b/ansible_collections/cisco/ise/plugins/modules/node_group_node_delete.py index 84fc6b947..b6615c667 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_group_node_delete.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_group_node_delete.py @@ -23,7 +23,7 @@ options: description: NodeGroupName path parameter. Name of the existing node group. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Group diff --git a/ansible_collections/cisco/ise/plugins/modules/node_group_node_info.py b/ansible_collections/cisco/ise/plugins/modules/node_group_node_info.py index a2fbd4294..c35c00fa3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_group_node_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_group_node_info.py @@ -21,7 +21,7 @@ options: - NodeGroupName path parameter. Name of the existing node group. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Group diff --git a/ansible_collections/cisco/ise/plugins/modules/node_info.py b/ansible_collections/cisco/ise/plugins/modules/node_info.py index 92e80d782..2c5d0acab 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_info.py @@ -63,7 +63,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for NodeDetails diff --git a/ansible_collections/cisco/ise/plugins/modules/node_primary_to_standalone.py b/ansible_collections/cisco/ise/plugins/modules/node_primary_to_standalone.py index a9d2c776f..e2bafd34a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_primary_to_standalone.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_primary_to_standalone.py @@ -21,7 +21,7 @@ options: type: str required: true requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Deployment diff --git a/ansible_collections/cisco/ise/plugins/modules/node_promotion.py b/ansible_collections/cisco/ise/plugins/modules/node_promotion.py index 8c6582275..84eca3856 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_promotion.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_promotion.py @@ -19,7 +19,7 @@ options: description: Node Promotion's promotionType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/node_replication_status_info.py b/ansible_collections/cisco/ise/plugins/modules/node_replication_status_info.py index 430ddc187..ef6d06338 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_replication_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_replication_status_info.py @@ -20,7 +20,7 @@ options: - Node path parameter. ID of the existing node. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/node_secondary_to_primary.py b/ansible_collections/cisco/ise/plugins/modules/node_secondary_to_primary.py index f837ebfe1..7e3901fb2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_secondary_to_primary.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_secondary_to_primary.py @@ -21,7 +21,7 @@ options: type: str required: true requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Deployment diff --git a/ansible_collections/cisco/ise/plugins/modules/node_services_interfaces_info.py b/ansible_collections/cisco/ise/plugins/modules/node_services_interfaces_info.py index 15d3d06b2..8b0564968 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_services_interfaces_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_services_interfaces_info.py @@ -21,7 +21,7 @@ options: - Hostname path parameter. Hostname of the node. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Services diff --git a/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config.py b/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config.py index 1307411ce..4abe83a25 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config.py @@ -140,7 +140,7 @@ options: type: int type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Services diff --git a/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config_info.py b/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config_info.py index c65326de2..82a284ed0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_services_profiler_probe_config_info.py @@ -21,7 +21,7 @@ options: - Hostname path parameter. Hostname of the node. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Services diff --git a/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces.py b/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces.py index fc29dc3e5..3d28ad1bc 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces.py @@ -23,7 +23,7 @@ options: description: Node Services SXP Interfaces's interface. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Services diff --git a/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces_info.py b/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces_info.py index 3c2f925d9..219b3cae9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_services_sxp_interfaces_info.py @@ -21,7 +21,7 @@ options: - Hostname path parameter. Hostname of the node. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Services diff --git a/ansible_collections/cisco/ise/plugins/modules/node_standalone_to_primary.py b/ansible_collections/cisco/ise/plugins/modules/node_standalone_to_primary.py index 67160219b..c096002b1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_standalone_to_primary.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_standalone_to_primary.py @@ -21,7 +21,7 @@ options: type: str required: true requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Node Deployment diff --git a/ansible_collections/cisco/ise/plugins/modules/node_sync.py b/ansible_collections/cisco/ise/plugins/modules/node_sync.py index 7389635e4..51a79c2a3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/node_sync.py +++ b/ansible_collections/cisco/ise/plugins/modules/node_sync.py @@ -19,7 +19,7 @@ options: description: Node Sync's hostname. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pan_ha.py b/ansible_collections/cisco/ise/plugins/modules/pan_ha.py index 3029954f9..a7df12555 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pan_ha.py +++ b/ansible_collections/cisco/ise/plugins/modules/pan_ha.py @@ -31,7 +31,7 @@ options: description: Pan Ha's secondaryHealthCheckNode. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pan_ha_info.py b/ansible_collections/cisco/ise/plugins/modules/pan_ha_info.py index 3061000ca..4a7b4da1c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pan_ha_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pan_ha_info.py @@ -20,7 +20,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for PAN HA @@ -53,14 +53,14 @@ ise_response: type: dict sample: > { - "failedAttempts": 0, "isEnabled": true, - "pollingInterval": 0, "primaryHealthCheckNode": { "hostname": "string" }, "secondaryHealthCheckNode": { "hostname": "string" - } + }, + "pollingInterval": 0, + "failedAttempts": 0 } """ diff --git a/ansible_collections/cisco/ise/plugins/modules/pan_ha_update.py b/ansible_collections/cisco/ise/plugins/modules/pan_ha_update.py index 9a8b048b2..afde826c2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pan_ha_update.py +++ b/ansible_collections/cisco/ise/plugins/modules/pan_ha_update.py @@ -42,7 +42,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for PAN HA diff --git a/ansible_collections/cisco/ise/plugins/modules/patch_info.py b/ansible_collections/cisco/ise/plugins/modules/patch_info.py index ba13a4851..54eaafff9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/patch_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/patch_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Patching diff --git a/ansible_collections/cisco/ise/plugins/modules/patch_install.py b/ansible_collections/cisco/ise/plugins/modules/patch_install.py index d2a1bfc92..fcc239e3e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/patch_install.py +++ b/ansible_collections/cisco/ise/plugins/modules/patch_install.py @@ -12,12 +12,16 @@ description: - Manage operation create of the resource Patch Install. - > Triggers patch installation on the Cisco ISE node. A task ID is returned which can be used to monitor the progress of the patch installation process. As - the patch installation triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. + the patch installation triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. For installation of patch on + secondary nodes, request needs to be sent to individual node instead of the Primary Administration Node. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module author: Rafael Campos (@racampos) options: + isDirectoryListed: + description: IsDirectoryListed flag. + type: bool patchName: description: Patch Install's patchName. type: str @@ -25,7 +29,7 @@ options: description: Patch Install's repositoryName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Patching @@ -47,6 +51,7 @@ EXAMPLES = r""" ise_username: "{{ise_username}}" ise_password: "{{ise_password}}" ise_verify: "{{ise_verify}}" + isDirectoryListed: true patchName: string repositoryName: string diff --git a/ansible_collections/cisco/ise/plugins/modules/patch_rollback.py b/ansible_collections/cisco/ise/plugins/modules/patch_rollback.py index 2838048f8..277eda197 100644 --- a/ansible_collections/cisco/ise/plugins/modules/patch_rollback.py +++ b/ansible_collections/cisco/ise/plugins/modules/patch_rollback.py @@ -12,7 +12,8 @@ description: - Manage operation create of the resource Patch Rollback. - > Triggers patch rollback on the Cisco ISE node. A task ID is returned which can be used to monitor the progress of the patch rollback process. As the - patch rollback triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. + patch rollback triggers the Cisco ISE to restart, the task API becomes unavailable for a certain period of time. For rollback of patch on secondary + nodes , request needs to sent on individual node instead of the Primary Administration Node. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module @@ -22,7 +23,7 @@ options: description: Patch Rollback's patchNumber. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Patching diff --git a/ansible_collections/cisco/ise/plugins/modules/personas_promote_primary.py b/ansible_collections/cisco/ise/plugins/modules/personas_promote_primary.py index 428c48230..a25ac912e 100644 --- a/ansible_collections/cisco/ise/plugins/modules/personas_promote_primary.py +++ b/ansible_collections/cisco/ise/plugins/modules/personas_promote_primary.py @@ -15,7 +15,11 @@ author: Rafael Campos (@racampos) options: ip: description: - - The IP address of the primary node + - The public IP address of the primary node + type: str + hostname: + description: + - The hostname of the primary node. type: str username: description: @@ -25,6 +29,11 @@ options: description: - The password to log into the primary node. type: str + roles: + description: + - The roles to be fulfilled by this node. Must contain at least PPAN and any of MNT-ACTIVE or MNT-STANDBY or PDP + type: list + elements: str ise_verify: description: - Whether or not to verify the identity of the node. @@ -51,8 +60,12 @@ EXAMPLES = r""" - name: Promote primary node cisco.ise.personas_promote_primary: ip: 10.1.1.1 + hostname: ise-pan-server-1 username: admin - password: Cisco123 + password: cisco123 + roles: + - PPAN + - MNT-ACTIVE """ RETURN = r""" diff --git a/ansible_collections/cisco/ise/plugins/modules/portal_global_setting.py b/ansible_collections/cisco/ise/plugins/modules/portal_global_setting.py index af332d5c2..72ca73642 100644 --- a/ansible_collections/cisco/ise/plugins/modules/portal_global_setting.py +++ b/ansible_collections/cisco/ise/plugins/modules/portal_global_setting.py @@ -23,7 +23,7 @@ options: description: Portal Global Setting's id. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/portal_global_setting_info.py b/ansible_collections/cisco/ise/plugins/modules/portal_global_setting_info.py index ae481c4a3..91e70d099 100644 --- a/ansible_collections/cisco/ise/plugins/modules/portal_global_setting_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/portal_global_setting_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/portal_info.py b/ansible_collections/cisco/ise/plugins/modules/portal_info.py index 2d9654517..f394eabc9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/portal_theme.py b/ansible_collections/cisco/ise/plugins/modules/portal_theme.py index 8554639f4..b795db83a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/portal_theme.py +++ b/ansible_collections/cisco/ise/plugins/modules/portal_theme.py @@ -31,7 +31,7 @@ options: description: Portal Theme for all portals. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/portal_theme_info.py b/ansible_collections/cisco/ise/plugins/modules/portal_theme_info.py index bc1fb3884..d1cd77e77 100644 --- a/ansible_collections/cisco/ise/plugins/modules/portal_theme_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/portal_theme_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/profiler_profile_info.py b/ansible_collections/cisco/ise/plugins/modules/profiler_profile_info.py index 9ddd192b0..60f716403 100644 --- a/ansible_collections/cisco/ise/plugins/modules/profiler_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/profiler_profile_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings.py b/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings.py index a4bb5b688..5ff3e0a6b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings.py +++ b/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings.py @@ -35,7 +35,7 @@ options: description: User name for the proxy connection. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for proxy diff --git a/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings_info.py b/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings_info.py index 989e22add..ca4f92afd 100644 --- a/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/proxy_connection_settings_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for proxy diff --git a/ansible_collections/cisco/ise/plugins/modules/connector_config.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct.py index b374012b1..69fefc242 100644 --- a/ansible_collections/cisco/ise/plugins/modules/connector_config.py +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct.py @@ -6,20 +6,20 @@ DOCUMENTATION = r""" --- -module: connector_config -short_description: Resource module for Connector Config +module: px_grid_direct +short_description: Resource module for Px Grid Direct description: -- Manage operations create, update and delete of the resource Connector Config. -- EDDA - Configure connectorconfig information. -- EDDA - Delete Configure connectorConfig information based on ConnectorName. -- EDDA - update Configure connectorConfig information based on ConnectorName. -version_added: '2.8.0' +- Manage operations create, update and delete of the resource Px Grid Direct. +- PxGrid Direct - Configure connectorconfig information. +- PxGrid Direct - Delete Configure connectorConfig information based on ConnectorName. +- PxGrid Direct - update Configure connectorConfig information based on ConnectorName. +version_added: '1.0.0' extends_documentation_fragment: - cisco.ise.module author: Rafael Campos (@racampos) options: additionalProperties: - description: Connector Config's additionalProperties. + description: Px Grid Direct's additionalProperties. type: dict attributes: description: ConnectorName. @@ -29,16 +29,16 @@ options: elements: dict suboptions: dictionaryAttribute: - description: Connector Config's dictionaryAttribute. + description: Px Grid Direct's dictionaryAttribute. type: str includeInDictionary: description: IncludeInDictionary flag. type: bool jsonAttribute: - description: Connector Config's jsonAttribute. + description: Px Grid Direct's jsonAttribute. type: str type: list - bulkUniqueIdentifier: + correlationIdentifier: description: Uniqueness to identify. type: str topLevelObject: @@ -58,7 +58,7 @@ options: description: Connector Type list. type: str deltasyncSchedule: - description: Connector Config's deltasyncSchedule. + description: Px Grid Direct's deltasyncSchedule. suboptions: interval: description: Run at interval (hours). @@ -77,7 +77,7 @@ options: description: Enabled flag. type: bool fullsyncSchedule: - description: Connector Config's fullsyncSchedule. + description: Px Grid Direct's fullsyncSchedule. suboptions: interval: description: Run at interval (hours). @@ -96,58 +96,43 @@ options: description: SkipCertificateValidations flag. type: bool url: - description: Connector Config's url. + description: Px Grid Direct's url. suboptions: - accessKey: - description: Accesskey. - type: str authenticationType: description: Authentication Type list. type: str bulkUrl: description: BulkUrl. type: str - clientId: - description: Clientid. - type: str - clientSecret: - description: Clientsecret. - type: str incrementalUrl: description: IncrementalUrl. type: str password: description: Password. type: str - refreshToken: - description: Refreshtoken. - type: str - tokenHeader: - description: TokenHeader. - type: str userName: description: UserName. type: str type: dict requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are - edda.Edda.create_connector_config, - edda.Edda.delete_connector_config_by_connector_name, - edda.Edda.update_connector_config_by_connector_name, + px_grid_direct.PxGridDirect.create_connector_config, + px_grid_direct.PxGridDirect.delete_connector_config_by_connector_name, + px_grid_direct.PxGridDirect.update_connector_config_by_connector_name, - Paths used are - post /api/v1/edda/connector-config, - delete /api/v1/edda/connector-config/{connectorName}, - put /api/v1/edda/connector-config/{connectorName}, + post /api/v1/pxgrid-direct/connector-config, + delete /api/v1/pxgrid-direct/connector-config/{connectorName}, + put /api/v1/pxgrid-direct/connector-config/{connectorName}, """ EXAMPLES = r""" - name: Create - cisco.ise.connector_config: + cisco.ise.px_grid_direct: ise_hostname: "{{ise_hostname}}" ise_username: "{{ise_username}}" ise_password: "{{ise_password}}" @@ -159,7 +144,7 @@ EXAMPLES = r""" - dictionaryAttribute: string includeInDictionary: true jsonAttribute: string - bulkUniqueIdentifier: string + correlationIdentifier: string topLevelObject: string uniqueIdentifier: string versionIdentifier: string @@ -178,19 +163,14 @@ EXAMPLES = r""" protocol: string skipCertificateValidations: true url: - accessKey: string authenticationType: string bulkUrl: string - clientId: string - clientSecret: string incrementalUrl: string password: string - refreshToken: string - tokenHeader: string userName: string - name: Update by name - cisco.ise.connector_config: + cisco.ise.px_grid_direct: ise_hostname: "{{ise_hostname}}" ise_username: "{{ise_username}}" ise_password: "{{ise_password}}" @@ -202,7 +182,7 @@ EXAMPLES = r""" - dictionaryAttribute: string includeInDictionary: true jsonAttribute: string - bulkUniqueIdentifier: string + correlationIdentifier: string topLevelObject: string uniqueIdentifier: string versionIdentifier: string @@ -221,19 +201,14 @@ EXAMPLES = r""" protocol: string skipCertificateValidations: true url: - accessKey: string authenticationType: string bulkUrl: string - clientId: string - clientSecret: string incrementalUrl: string password: string - refreshToken: string - tokenHeader: string userName: string - name: Delete by name - cisco.ise.connector_config: + cisco.ise.px_grid_direct: ise_hostname: "{{ise_hostname}}" ise_username: "{{ise_username}}" ise_password: "{{ise_password}}" @@ -260,7 +235,7 @@ ise_response: "jsonAttribute": "string" } ], - "bulkUniqueIdentifier": "string", + "correlationIdentifier": "string", "topLevelObject": "string", "uniqueIdentifier": "string", "versionIdentifier": "string" @@ -282,15 +257,10 @@ ise_response: "protocol": "string", "skipCertificateValidations": true, "url": { - "accessKey": "string", "authenticationType": "string", "bulkUrl": "string", - "clientId": "string", - "clientSecret": "string", "incrementalUrl": "string", "password": "string", - "refreshToken": "string", - "tokenHeader": "string", "userName": "string" } } @@ -299,6 +269,7 @@ ise_response: ise_update_response: description: A dictionary or list with the response returned by the Cisco ISE Python SDK returned: always + version_added: '1.1.0' type: str sample: > "'string'" diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_dictionary_info.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_dictionary_info.py new file mode 100644 index 000000000..c79b68fa4 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_dictionary_info.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: px_grid_direct_dictionary_info +short_description: Information module for Px Grid Direct Dictionary Info +description: +- Get all Px Grid Direct Dictionary Info. +- PxGrid Direct - Get a map of references to pxgrid-direct dictionaries. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: {} +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + px_grid_direct.PxGridDirect.getpxgrid_direct_dictionary_references, + + - Paths used are + get /api/v1/pxgrid-direct/dictionary-references, + +""" + +EXAMPLES = r""" +- name: Get all Px Grid Direct Dictionary Info + cisco.ise.px_grid_direct_dictionary_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + {} +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/connector_config_info.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_info.py index 698dd2fd7..c9a65591c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/connector_config_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_info.py @@ -6,14 +6,14 @@ DOCUMENTATION = r""" --- -module: connector_config_info -short_description: Information module for Connector Config +module: px_grid_direct_info +short_description: Information module for Px Grid Direct Info description: -- Get all Connector Config. -- Get Connector Config by name. -- EDDA - Get ALL connectorConfig information. -- EDDA - Get connectorConfig information based on ConnectorName. -version_added: '2.8.0' +- Get all Px Grid Direct Info. +- Get Px Grid Direct Info by name. +- PxGrid Direct - Get ALL connectorConfig information. +- PxGrid Direct - Get connectorConfig information based on ConnectorName. +version_added: '1.0.0' extends_documentation_fragment: - cisco.ise.module_info author: Rafael Campos (@racampos) @@ -23,30 +23,30 @@ options: - ConnectorName path parameter. Update or delete or retrieve the connector config. type: str requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are - edda.Edda.get_connector_config, - edda.Edda.get_connector_config_by_connector_name, + px_grid_direct.PxGridDirect.get_connector_config, + px_grid_direct.PxGridDirect.get_connector_config_by_connector_name, - Paths used are - get /api/v1/edda/connector-config, - get /api/v1/edda/connector-config/{connectorName}, + get /api/v1/pxgrid-direct/connector-config, + get /api/v1/pxgrid-direct/connector-config/{connectorName}, """ EXAMPLES = r""" -- name: Get all Connector Config - cisco.ise.connector_config_info: +- name: Get all Px Grid Direct Info + cisco.ise.px_grid_direct_info: ise_hostname: "{{ise_hostname}}" ise_username: "{{ise_username}}" ise_password: "{{ise_password}}" ise_verify: "{{ise_verify}}" register: result -- name: Get Connector Config by name - cisco.ise.connector_config_info: +- name: Get Px Grid Direct Info by name + cisco.ise.px_grid_direct_info: ise_hostname: "{{ise_hostname}}" ise_username: "{{ise_username}}" ise_password: "{{ise_password}}" @@ -73,7 +73,7 @@ ise_response: "jsonAttribute": "string" } ], - "bulkUniqueIdentifier": "string", + "correlationIdentifier": "string", "topLevelObject": "string", "uniqueIdentifier": "string", "versionIdentifier": "string" @@ -95,15 +95,10 @@ ise_response: "protocol": "string", "skipCertificateValidations": true, "url": { - "accessKey": "string", "authenticationType": "string", "bulkUrl": "string", - "clientId": "string", - "clientSecret": "string", "incrementalUrl": "string", "password": "string", - "refreshToken": "string", - "tokenHeader": "string", "userName": "string" } } diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync.py new file mode 100644 index 000000000..932642039 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync.py @@ -0,0 +1,66 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: px_grid_direct_sync +short_description: Resource module for Px Grid Direct Sync +description: +- Manage operation create of the resource Px Grid Direct Sync. +- This syncNow is used on demand on a URLFetch Type connector only. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + SyncType: + description: Connector Type list. + type: str + connectorName: + description: ConnectorName. + type: str + description: + description: Description. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + px_grid_direct.PxGridDirect.sync_now_connector, + + - Paths used are + post /api/v1/pxgrid-direct/syncnow, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.px_grid_direct_sync: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + SyncType: string + connectorName: string + description: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connector": { + "connectorName": "string", + "syncStatus": "string" + } + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync_info.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync_info.py new file mode 100644 index 000000000..1b99ee501 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_sync_info.py @@ -0,0 +1,59 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: px_grid_direct_sync_info +short_description: Information module for Px Grid Direct Sync +description: +- Get Px Grid Direct Sync by name. +- This API is used to get the status for SyncNow Status. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + connectorName: + description: + - ConnectorName path parameter. Retrieve the connector syncnow status. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + px_grid_direct.PxGridDirect.get_connector_config_sync_now_status, + + - Paths used are + get /api/v1/pxgrid-direct/syncNowStatus/{connectorName}, + +""" + +EXAMPLES = r""" +- name: Get Px Grid Direct Sync by name + cisco.ise.px_grid_direct_sync_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + connectorName: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "connector": { + "connectorName": "string", + "syncStatus": "string" + } + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/test_connector.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_test_connector.py index 4caaadc4b..7fc243fe3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/test_connector.py +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_direct_test_connector.py @@ -6,12 +6,12 @@ DOCUMENTATION = r""" --- -module: test_connector -short_description: Resource module for Test Connector +module: px_grid_direct_test_connector +short_description: Resource module for Px Grid Direct Test Connector description: -- Manage operation create of the resource Test Connector. -- EDDA - test the Connector. -version_added: '2.8.0' +- Manage operation create of the resource Px Grid Direct Test Connector. +- PxGrid Direct - test the Connector. +version_added: '1.0.0' extends_documentation_fragment: - cisco.ise.module author: Rafael Campos (@racampos) @@ -35,6 +35,9 @@ options: responseParsing: description: Uniqueness to identify. type: str + skipCertificateValidations: + description: SkipCertificateValidations. + type: bool uniqueID: description: Uniqueness to identify. type: str @@ -42,20 +45,20 @@ options: description: BulkUrl. type: str requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are - edda.Edda.test_connector, + px_grid_direct.PxGridDirect.test_connector, - Paths used are - post /api/v1/edda/test-connector, + post /api/v1/pxgrid-direct/test-connector, """ EXAMPLES = r""" - name: Create - cisco.ise.test_connector: + cisco.ise.px_grid_direct_test_connector: ise_hostname: "{{ise_hostname}}" ise_username: "{{ise_username}}" ise_password: "{{ise_password}}" @@ -66,6 +69,7 @@ EXAMPLES = r""" userName: string connectorName: string responseParsing: string + skipCertificateValidations: true uniqueID: string url: string @@ -81,6 +85,7 @@ ise_response: "connectorName": "string", "data": "string", "error": "string", + "skipCertificateValidations": true, "status": "string", "uniqueID": "string" } diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_node_approve.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_node_approve.py index 8cb0c132b..1a2981c47 100644 --- a/ansible_collections/cisco/ise/plugins/modules/px_grid_node_approve.py +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_node_approve.py @@ -20,7 +20,7 @@ options: description: Name path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_node_delete.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_node_delete.py index bac63eb41..9774d8a51 100644 --- a/ansible_collections/cisco/ise/plugins/modules/px_grid_node_delete.py +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_node_delete.py @@ -20,7 +20,7 @@ options: description: Name path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_node_info.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_node_info.py index 7241dcd52..3d7639ba6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/px_grid_node_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_node_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/px_grid_settings_auto_approve.py b/ansible_collections/cisco/ise/plugins/modules/px_grid_settings_auto_approve.py index e87b41303..5cf766342 100644 --- a/ansible_collections/cisco/ise/plugins/modules/px_grid_settings_auto_approve.py +++ b/ansible_collections/cisco/ise/plugins/modules/px_grid_settings_auto_approve.py @@ -23,7 +23,7 @@ options: description: Auto approve certificate based accounts when true. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_access_secret.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_access_secret.py index 358d777f0..b3f1c77aa 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_access_secret.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_access_secret.py @@ -19,7 +19,7 @@ options: description: pxGrid Access Secret's peerNodeName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_activate.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_activate.py index bcb84e34a..c3ff43d1a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_activate.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_activate.py @@ -19,7 +19,7 @@ options: description: pxGrid Account Activate's description. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_create.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_create.py index 83a6b2f8a..c398f08ce 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_create.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_account_create.py @@ -19,7 +19,7 @@ options: description: pxGrid Account Create's nodeName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_authorization.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_authorization.py index 13022cd27..9e57bc921 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_authorization.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_authorization.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_bindings_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_bindings_info.py index d7d05cf37..51ba7b0e6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_bindings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_bindings_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_matrices_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_matrices_info.py index 2e6450f32..fb8b42ddf 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_matrices_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_matrices_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_policies_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_policies_info.py index b2024371d..0175bb209 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_policies_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_egress_policies_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoint_by_mac_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoint_by_mac_info.py index 55e255bc3..ca815db2d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoint_by_mac_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoint_by_mac_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_os_type_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_os_type_info.py index a9c6fa00f..36f5ce3f5 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_os_type_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_os_type_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_type_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_type_info.py index ef1ddf642..239709c8c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_type_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_by_type_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_info.py index 9224eb08e..98c4af38f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_endpoints_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_failures_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_failures_info.py index dc552be6d..97b460d29 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_failures_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_failures_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_healths_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_healths_info.py index f5963ddf2..a6f3e8e86 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_healths_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_healths_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_approve.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_approve.py index f808e5cc7..c8796201f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_approve.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_approve.py @@ -20,7 +20,7 @@ options: description: Name path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_delete.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_delete.py index 16c42889c..9b139f0a3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_delete.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_delete.py @@ -20,7 +20,7 @@ options: description: Name path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_info.py index 5da12013d..ffef9a9ff 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_node_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_performances_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_performances_info.py index f9a4767c1..919b54ef5 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_performances_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_performances_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_profiles_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_profiles_info.py index 687581cea..fffed0df2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_profiles_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_profiles_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_group_acls_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_group_acls_info.py index c41be5560..2fdb9987f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_group_acls_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_group_acls_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_groups_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_groups_info.py index 2abc51e1e..8b15b1d81 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_security_groups_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_lookup.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_lookup.py index 755a1231f..0afbedcee 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_lookup.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_lookup.py @@ -19,7 +19,7 @@ options: description: pxGrid Service Lookup's name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_register.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_register.py index 4484573af..378e6dd1c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_register.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_register.py @@ -19,7 +19,7 @@ options: description: pxGrid Service Register's name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_reregister.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_reregister.py index b91798631..371b3ab85 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_reregister.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_reregister.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_unregister.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_unregister.py index 3926a9960..bdb51f3dd 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_unregister.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_service_unregister.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_ip_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_ip_info.py index df9720cb7..e0a416319 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_ip_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_ip_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_mac_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_mac_info.py index 56a5e9204..639c621d1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_mac_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_by_mac_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_for_recovery_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_for_recovery_info.py index 6e3ca80eb..53b441508 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_for_recovery_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_session_for_recovery_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_sessions_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_sessions_info.py index 9f0305ab6..c2bcf5b7a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_sessions_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_sessions_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_settings_auto_approve.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_settings_auto_approve.py index 3203ed0b8..f287298de 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_settings_auto_approve.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_settings_auto_approve.py @@ -23,7 +23,7 @@ options: description: Auto approve certificate based accounts when true. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_group_by_username_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_group_by_username_info.py index e3b54fa92..f79717e8f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_group_by_username_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_group_by_username_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_groups_info.py b/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_groups_info.py index 3add71347..3b7cdca5c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_groups_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/pxgrid_user_groups_info.py @@ -16,7 +16,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence.py b/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence.py index 8031470a4..e5827e123 100644 --- a/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence.py +++ b/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence.py @@ -103,7 +103,7 @@ options: description: UseAttrSetOnRequest flag. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence_info.py b/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence_info.py index 1073928ea..7c5f35e02 100644 --- a/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/radius_server_sequence_info.py @@ -31,7 +31,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/renew_certificate.py b/ansible_collections/cisco/ise/plugins/modules/renew_certificate.py index a4561a02b..b085f42e1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/renew_certificate.py +++ b/ansible_collections/cisco/ise/plugins/modules/renew_certificate.py @@ -10,7 +10,7 @@ module: renew_certificate short_description: Resource module for Renew Certificate description: - Manage operation create of the resource Renew Certificate. -- This API initiates regeneration of certificates. Response contains ID which can be used to track the status. +- This API initiates regeneration of certificates. The response contains an ID which can be used to track the status. version_added: '1.0.0' extends_documentation_fragment: - cisco.ise.module @@ -20,7 +20,7 @@ options: description: Renew Certificate's certType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/repository.py b/ansible_collections/cisco/ise/plugins/modules/repository.py index 635d1d464..937b26a9c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/repository.py +++ b/ansible_collections/cisco/ise/plugins/modules/repository.py @@ -45,7 +45,7 @@ options: description: Username may contain alphanumeric and _-./@\\$ characters. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Repository diff --git a/ansible_collections/cisco/ise/plugins/modules/repository_files_info.py b/ansible_collections/cisco/ise/plugins/modules/repository_files_info.py index 32f628688..11d5454bd 100644 --- a/ansible_collections/cisco/ise/plugins/modules/repository_files_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/repository_files_info.py @@ -21,7 +21,7 @@ options: - RepositoryName path parameter. Unique name for a repository. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Repository diff --git a/ansible_collections/cisco/ise/plugins/modules/repository_info.py b/ansible_collections/cisco/ise/plugins/modules/repository_info.py index 6631f499b..5a0f9cae5 100644 --- a/ansible_collections/cisco/ise/plugins/modules/repository_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/repository_info.py @@ -23,7 +23,7 @@ options: - RepositoryName path parameter. Unique name for a repository. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Repository diff --git a/ansible_collections/cisco/ise/plugins/modules/reservation.py b/ansible_collections/cisco/ise/plugins/modules/reservation.py new file mode 100644 index 000000000..9682fcf3a --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/reservation.py @@ -0,0 +1,114 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: reservation +short_description: Resource module for Reservation +description: +- Manage operations create, update and delete of the resource Reservation. +- Reserve given number of SGTs in a continuous range for the given Client. +- Delete the reserved range of SGT for the given Client. +- Update the reserved ranges of a specific Client by giving the custom start and end index. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + clientID: + description: ClientID path parameter. Unique name for a Client. + type: str + clientId: + description: Unique ID of the given client. + type: str + clientName: + description: Name of the given client. + type: str + endIndex: + description: End index of the reserved range. + type: int + numberOfTags: + description: Nummber of tags required to be reserved in ISE. + type: int + startIndex: + description: Start index of the reserved range. + type: int +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + sgt_range_reservation.SgtRangeReservation.delete_sgt_reserve_range, + sgt_range_reservation.SgtRangeReservation.reserve_sgt_range, + sgt_range_reservation.SgtRangeReservation.update_reserved_range, + + - Paths used are + post /api/v1/sgt/reservation/reserveRange, + delete /api/v1/sgt/reservation/{clientID}, + put /api/v1/sgt/reservation/{clientID}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.reservation: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + clientName: string + numberOfTags: 0 + +- name: Update by id + cisco.ise.reservation: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + clientID: string + clientId: string + endIndex: 0 + startIndex: 0 + +- name: Delete by id + cisco.ise.reservation: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + clientID: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "clientId": "string", + "clientName": "string", + "endIndex": 0, + "startIndex": 0 + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "success": { + "message": "string" + }, + "version": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/reservation_info.py b/ansible_collections/cisco/ise/plugins/modules/reservation_info.py new file mode 100644 index 000000000..dbbdc17a2 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/reservation_info.py @@ -0,0 +1,97 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: reservation_info +short_description: Information module for Reservation Info +description: +- Get all Reservation Info. +- Get Reservation Info by id. +- Get all the reserved Security Group tag ranges in ISE. +- Get the reserved range of SGT for the specific client which is passed in the URL. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + clientID: + description: + - ClientID path parameter. Unique name for a Client. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + sgt_range_reservation.SgtRangeReservation.get_sgt_reserved_range, + sgt_range_reservation.SgtRangeReservation.get_sgt_reserved_ranges_generator, + + - Paths used are + get /api/v1/sgt/reservation, + get /api/v1/sgt/reservation/{clientID}, + +""" + +EXAMPLES = r""" +- name: Get all Reservation Info + cisco.ise.reservation_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + register: result + +- name: Get Reservation Info by id + cisco.ise.reservation_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + clientID: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "clientId": "string", + "clientName": "string", + "endIndex": 0, + "startIndex": 0 + } + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: list + elements: dict + sample: > + [ + { + "clientId": "string", + "clientName": "string", + "endIndex": 0, + "startIndex": 0 + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/resource_version_info.py b/ansible_collections/cisco/ise/plugins/modules/resource_version_info.py index 826afa9c8..53e684719 100644 --- a/ansible_collections/cisco/ise/plugins/modules/resource_version_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/resource_version_info.py @@ -21,7 +21,7 @@ options: - Resource path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/rest_id_store.py b/ansible_collections/cisco/ise/plugins/modules/rest_id_store.py index a91c0b4f8..a36b1ac58 100644 --- a/ansible_collections/cisco/ise/plugins/modules/rest_id_store.py +++ b/ansible_collections/cisco/ise/plugins/modules/rest_id_store.py @@ -63,7 +63,7 @@ options: description: REST Id Store's name. type: str requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/rest_id_store_info.py b/ansible_collections/cisco/ise/plugins/modules/rest_id_store_info.py index 07a3b19e2..0a71cc368 100644 --- a/ansible_collections/cisco/ise/plugins/modules/rest_id_store_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/rest_id_store_info.py @@ -71,7 +71,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/self_registered_portal.py b/ansible_collections/cisco/ise/plugins/modules/self_registered_portal.py index 81b396660..8c5e67603 100644 --- a/ansible_collections/cisco/ise/plugins/modules/self_registered_portal.py +++ b/ansible_collections/cisco/ise/plugins/modules/self_registered_portal.py @@ -682,7 +682,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SelfRegisteredPortal diff --git a/ansible_collections/cisco/ise/plugins/modules/self_registered_portal_info.py b/ansible_collections/cisco/ise/plugins/modules/self_registered_portal_info.py index 5d1952ed7..1924cf493 100644 --- a/ansible_collections/cisco/ise/plugins/modules/self_registered_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/self_registered_portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SelfRegisteredPortal diff --git a/ansible_collections/cisco/ise/plugins/modules/selfsigned_certificate_generate.py b/ansible_collections/cisco/ise/plugins/modules/selfsigned_certificate_generate.py index 84be20739..956a9aa2b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/selfsigned_certificate_generate.py +++ b/ansible_collections/cisco/ise/plugins/modules/selfsigned_certificate_generate.py @@ -119,7 +119,7 @@ options: description: Certificate state (ST). type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/session_service_node_info.py b/ansible_collections/cisco/ise/plugins/modules/session_service_node_info.py index 8d531833a..92d8c81e8 100644 --- a/ansible_collections/cisco/ise/plugins/modules/session_service_node_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/session_service_node_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for PsnNodeDetailsWithRadiusService diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_acl.py b/ansible_collections/cisco/ise/plugins/modules/sg_acl.py index 8f6d53354..9c511a188 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_acl.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_acl.py @@ -43,7 +43,7 @@ options: description: SGACL's name. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupsACLs diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_monitor_status_info.py index 814837559..b322a819c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupsACLs diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_request.py index 79dd73025..83455ae39 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_acl_bulk_request.py @@ -23,7 +23,7 @@ options: description: SGACL Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupsACLs diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_acl_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_acl_info.py index b3c4cae7c..39b723dd9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_acl_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_acl_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupsACLs diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping.py index 9d27da3cb..d0ff397b4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping.py @@ -44,7 +44,7 @@ options: description: Mandatory unless mappingGroup is set. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_monitor_status_info.py index c0988da7c..677867aa7 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_request.py index c3298c551..3baac7d8d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_bulk_request.py @@ -23,7 +23,7 @@ options: description: SG Mapping Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy.py index 97b9c2368..dc2059ac4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_all.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_all.py index 317037a5b..3e6169246 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_all.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_all.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_status_info.py index 40a7adb84..97a80417c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_deploy_status_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group.py index 6b6d7fcd0..cc40ba315 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group.py @@ -34,7 +34,7 @@ options: description: Mandatory unless mappingGroup is set. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_monitor_status_info.py index cd6af8a56..cafa582ed 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_request.py index 18ed1150d..dcdea3c60 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_bulk_request.py @@ -23,7 +23,7 @@ options: description: SG Mapping Group Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy.py index 1012ababc..3f8c47b6f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy.py @@ -20,7 +20,7 @@ options: description: Id path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_all.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_all.py index 08b7223e2..a5781f637 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_all.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_all.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_status_info.py index f02d6260a..745e6aa20 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_deploy_status_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_info.py index c05b582ff..c82308a61 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_group_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMappingGroup diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_info.py index cc46a2d6a..d0aaba2c9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_mapping_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_mapping_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for IPToSGTMapping diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan.py b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan.py index bba7eeb3a..9d5c53ed8 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan.py @@ -71,7 +71,7 @@ options: type: list type: list requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupToVirtualNetwork diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_monitor_status_info.py index ceebe7245..d9bbb2176 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupToVirtualNetwork diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_request.py index c466ec4a7..6b4b3dbe6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_bulk_request.py @@ -23,7 +23,7 @@ options: description: SG To VN To VLAN Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupToVirtualNetwork diff --git a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_info.py b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_info.py index 5759bcbdf..6e7527738 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sg_to_vn_to_vlan_info.py @@ -57,7 +57,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroupToVirtualNetwork diff --git a/ansible_collections/cisco/ise/plugins/modules/sgt.py b/ansible_collections/cisco/ise/plugins/modules/sgt.py index 7d65c2e9a..232e7bb59 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sgt.py +++ b/ansible_collections/cisco/ise/plugins/modules/sgt.py @@ -46,7 +46,7 @@ options: type: int required: true requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroups diff --git a/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_monitor_status_info.py index 29ffa4038..d0d4d7dd3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroups diff --git a/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_request.py index 6afae3073..d87d53662 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sgt_bulk_request.py @@ -23,7 +23,7 @@ options: description: SGt Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroups diff --git a/ansible_collections/cisco/ise/plugins/modules/sgt_info.py b/ansible_collections/cisco/ise/plugins/modules/sgt_info.py index 98190f097..fd01585ef 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sgt_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sgt_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SecurityGroups diff --git a/ansible_collections/cisco/ise/plugins/modules/sms_provider_info.py b/ansible_collections/cisco/ise/plugins/modules/sms_provider_info.py index 38175a56e..71a768a5d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sms_provider_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sms_provider_info.py @@ -59,7 +59,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsor_group.py b/ansible_collections/cisco/ise/plugins/modules/sponsor_group.py index be39a7e2c..41c03eff7 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsor_group.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsor_group.py @@ -120,7 +120,7 @@ options: type: bool type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsor_group_info.py b/ansible_collections/cisco/ise/plugins/modules/sponsor_group_info.py index 88e4f9599..f482d97af 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsor_group_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsor_group_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsor_group_member_info.py b/ansible_collections/cisco/ise/plugins/modules/sponsor_group_member_info.py index 4d782aa71..1e8bf6704 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsor_group_member_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsor_group_member_info.py @@ -59,7 +59,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsor_portal.py b/ansible_collections/cisco/ise/plugins/modules/sponsor_portal.py index 6acb22f0f..be4ac95ed 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsor_portal.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsor_portal.py @@ -281,7 +281,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsor_portal_info.py b/ansible_collections/cisco/ise/plugins/modules/sponsor_portal_info.py index 9c51373f0..7f5edcd72 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsor_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsor_portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal.py b/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal.py index e8f99c386..2ca0b2edf 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal.py @@ -385,7 +385,7 @@ options: type: dict type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal_info.py b/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal_info.py index 017236454..87fe321a2 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sponsored_guest_portal_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/stop_replication.py b/ansible_collections/cisco/ise/plugins/modules/stop_replication.py new file mode 100644 index 000000000..6f52d3da8 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/stop_replication.py @@ -0,0 +1,68 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: stop_replication +short_description: Resource module for Stop Replication +description: +- Manage operation update of the resource Stop Replication. +- This API updates the status of Endpoint stop replication Service. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + isEnabled: + description: IsEnabled flag. + type: bool +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoint_stop_replication_service.EndpointStopReplicationService.set_stop_replication_service, + + - Paths used are + put /api/v1/stop-replication, + +""" + +EXAMPLES = r""" +- name: Update all + cisco.ise.stop_replication: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + isEnabled: true + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "isEnabled": true + } + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "success": { + "message": "string" + }, + "version": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/stop_replication_info.py b/ansible_collections/cisco/ise/plugins/modules/stop_replication_info.py new file mode 100644 index 000000000..8acb0474e --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/stop_replication_info.py @@ -0,0 +1,51 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: stop_replication_info +short_description: Information module for Stop Replication Info +description: +- Get all Stop Replication Info. +- This API retrieves the status of Endpoint stop replication Service. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: {} +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + endpoint_stop_replication_service.EndpointStopReplicationService.get_stop_replication_status, + + - Paths used are + get /api/v1/stop-replication, + +""" + +EXAMPLES = r""" +- name: Get all Stop Replication Info + cisco.ise.stop_replication_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "isEnabled": true + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/subscriber.py b/ansible_collections/cisco/ise/plugins/modules/subscriber.py index e62fe2c55..baeca3007 100644 --- a/ansible_collections/cisco/ise/plugins/modules/subscriber.py +++ b/ansible_collections/cisco/ise/plugins/modules/subscriber.py @@ -41,7 +41,7 @@ options: description: SubscriberId path parameter. Unique id for a subscriber object. type: str requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/subscriber_bulk.py b/ansible_collections/cisco/ise/plugins/modules/subscriber_bulk.py index 2b6547097..f7370752b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/subscriber_bulk.py +++ b/ansible_collections/cisco/ise/plugins/modules/subscriber_bulk.py @@ -49,7 +49,7 @@ options: description: Subscriber Bulk's operation. type: str requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/subscriber_imsi_info.py b/ansible_collections/cisco/ise/plugins/modules/subscriber_imsi_info.py index 4da62a78f..f2bf23c84 100644 --- a/ansible_collections/cisco/ise/plugins/modules/subscriber_imsi_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/subscriber_imsi_info.py @@ -20,7 +20,7 @@ options: - Imsi path parameter. IMSI parameter. type: str requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/subscriber_info.py b/ansible_collections/cisco/ise/plugins/modules/subscriber_info.py index 660937786..189befb9f 100644 --- a/ansible_collections/cisco/ise/plugins/modules/subscriber_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/subscriber_info.py @@ -62,7 +62,7 @@ options: - SubscriberId path parameter. Unique id for a subscriber object. type: str requirements: -- ciscoisesdk >= 2.0.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/support_bundle.py b/ansible_collections/cisco/ise/plugins/modules/support_bundle.py index cd29a5b31..dc00458ec 100644 --- a/ansible_collections/cisco/ise/plugins/modules/support_bundle.py +++ b/ansible_collections/cisco/ise/plugins/modules/support_bundle.py @@ -57,7 +57,7 @@ options: type: str type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for SupportBundleTriggerConfiguration diff --git a/ansible_collections/cisco/ise/plugins/modules/support_bundle_download.py b/ansible_collections/cisco/ise/plugins/modules/support_bundle_download.py index 952d9fcf3..3e668519a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/support_bundle_download.py +++ b/ansible_collections/cisco/ise/plugins/modules/support_bundle_download.py @@ -29,7 +29,7 @@ options: description: Enable or disable automatic file creation of raw response. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/support_bundle_status_info.py b/ansible_collections/cisco/ise/plugins/modules/support_bundle_status_info.py index 67fd177d2..9d4f1db9b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/support_bundle_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/support_bundle_status_info.py @@ -31,7 +31,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_connections.py b/ansible_collections/cisco/ise/plugins/modules/sxp_connections.py index 53a6ec262..a68eb2bdb 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_connections.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_connections.py @@ -46,7 +46,7 @@ options: description: SXP Connections's sxpVpn. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_monitor_status_info.py index dfcbb8eb2..36dc9c500 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_request.py index 3e62f2782..2f18d5528 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_connections_bulk_request.py @@ -23,7 +23,7 @@ options: description: SXP Connections Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_connections_info.py b/ansible_collections/cisco/ise/plugins/modules/sxp_connections_info.py index 42e979779..8f9c8be41 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_connections_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_connections_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings.py b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings.py index a403670fd..1197d063d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings.py @@ -42,7 +42,7 @@ options: or vns should be defined. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_monitor_status_info.py index f34f4741c..f50e1b818 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_request.py index 66b5e0ab1..71127a465 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_bulk_request.py @@ -23,7 +23,7 @@ options: description: SXP Local Bindings Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_info.py b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_info.py index 15aeaf5e3..ffb26a276 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_local_bindings_info.py @@ -65,7 +65,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns.py b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns.py index abab51624..861608a2a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns.py @@ -24,7 +24,7 @@ options: description: SXP VPNs's sxpVpnName. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_monitor_status_info.py b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_monitor_status_info.py index d749941ab..9e1e061df 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_monitor_status_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_monitor_status_info.py @@ -21,7 +21,7 @@ options: - Bulkid path parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_request.py b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_request.py index 0d24fbc94..537b4a2a0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_request.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_bulk_request.py @@ -23,7 +23,7 @@ options: description: SXP VPNs Bulk Request's resourceMediaType. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_info.py b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_info.py index 4fffbfc4a..3707fbb3c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/sxp_vpns_info.py @@ -65,7 +65,7 @@ options: - Sortdsc query parameter. Sort desc. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/system_certificate.py b/ansible_collections/cisco/ise/plugins/modules/system_certificate.py index f2dd7a73b..456efaf31 100644 --- a/ansible_collections/cisco/ise/plugins/modules/system_certificate.py +++ b/ansible_collections/cisco/ise/plugins/modules/system_certificate.py @@ -78,7 +78,7 @@ options: description: Use certificate for SAML Signing. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/system_certificate_create.py b/ansible_collections/cisco/ise/plugins/modules/system_certificate_create.py index 916142bb3..9c95376a6 100644 --- a/ansible_collections/cisco/ise/plugins/modules/system_certificate_create.py +++ b/ansible_collections/cisco/ise/plugins/modules/system_certificate_create.py @@ -88,7 +88,7 @@ options: description: NodeId of Cisco ISE application. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/system_certificate_export_info.py b/ansible_collections/cisco/ise/plugins/modules/system_certificate_export_info.py index e53c17a3a..16504a65d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/system_certificate_export_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/system_certificate_export_info.py @@ -25,6 +25,10 @@ options: filename: description: The filename used to save the download file. type: str + hostName: + description: Hostname of the Cisco ISE node in which self-signed certificate should + be generated. + type: str id: description: System Certificate Export Info's id. type: str @@ -35,7 +39,7 @@ options: description: Enable or disable automatic file creation of raw response. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates @@ -59,6 +63,7 @@ EXAMPLES = r""" dirPath: /tmp/downloads/ export: string filename: download_filename.extension + hostName: string id: string password: string saveFile: true @@ -69,7 +74,16 @@ RETURN = r""" ise_response: description: A dictionary or list with the response returned by the Cisco ISE Python SDK returned: always - type: str + type: dict sample: > - "'string'" + { + "description": "string", + "file": "string", + "filename": "string", + "inputStream": {}, + "open": true, + "readable": true, + "uri": "string", + "url": "string" + } """ diff --git a/ansible_collections/cisco/ise/plugins/modules/system_certificate_import.py b/ansible_collections/cisco/ise/plugins/modules/system_certificate_import.py index 72f69d078..a1ef8c87a 100644 --- a/ansible_collections/cisco/ise/plugins/modules/system_certificate_import.py +++ b/ansible_collections/cisco/ise/plugins/modules/system_certificate_import.py @@ -81,7 +81,7 @@ options: description: Validate certificate extensions. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/system_certificate_info.py b/ansible_collections/cisco/ise/plugins/modules/system_certificate_info.py index 7d90d10d4..66fcea6c9 100644 --- a/ansible_collections/cisco/ise/plugins/modules/system_certificate_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/system_certificate_info.py @@ -11,8 +11,8 @@ short_description: Information module for System Certificate description: - Get System Certificate by id. - Get System Certificate by name. -- This API provides details of a System Certificate of a particular node based on given HostName and ID. -- This API supports Filtering, Sorting and Pagination. +- This API provides details of a system certificate of a particular node based on given hostname and ID. +- This API supports filtering, sorting and pagination. version_added: '1.0.0' extends_documentation_fragment: - cisco.ise.module_info @@ -20,7 +20,7 @@ author: Rafael Campos (@racampos) options: hostName: description: - - HostName path parameter. Name of the host of which system certificates should be returned. + - HostName path parameter. Name of the host for which the system certificates should be returned. type: str page: description: @@ -56,8 +56,7 @@ options: - The 'NENDSW' operator describes 'Not Ends With'. - The 'CONTAINS' operator describes 'Contains'. - The 'NCONTAINS' operator describes 'Not Contains'. - elements: str - type: list + type: str filterType: description: - > @@ -69,7 +68,7 @@ options: - Id path parameter. ID of the system certificate. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates @@ -107,7 +106,7 @@ EXAMPLES = r""" size: 0 sort: string sortBy: string - filter: [] + filter: string filterType: string hostName: string register: result diff --git a/ansible_collections/cisco/ise/plugins/modules/system_config_version_info.py b/ansible_collections/cisco/ise/plugins/modules/system_config_version_info.py index 2213574f0..4f76508f1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/system_config_version_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/system_config_version_info.py @@ -17,7 +17,7 @@ extends_documentation_fragment: author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for VersionAndPatch diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets.py index af3075c13..061cb68e4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets.py @@ -49,7 +49,7 @@ options: description: PermitUnmatched flag. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets_info.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets_info.py index 4aa4f9be9..5fbf50064 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_command_sets_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers.py index 2d724e764..15dcb8ef4 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers.py @@ -43,7 +43,7 @@ options: description: The server timeout. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers_info.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers_info.py index d097fcf25..67d1339fb 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_external_servers_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_profile.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_profile.py index 304caaabd..3d6885843 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_profile.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_profile.py @@ -46,7 +46,7 @@ options: type: list type: dict requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_profile_info.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_profile_info.py index 59f1495f6..b5e6edb92 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_profile_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_profile_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence.py index e26adf0ae..afd5bff12 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence.py @@ -50,7 +50,7 @@ options: description: Define if a delimiter will be used for suffix strip. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence_info.py b/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence_info.py index 69d4424b0..a6247d2ae 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/tacacs_server_sequence_info.py @@ -37,7 +37,7 @@ options: - Size query parameter. Number of objects returned per page. type: int requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 notes: - SDK Method used are diff --git a/ansible_collections/cisco/ise/plugins/modules/tasks_info.py b/ansible_collections/cisco/ise/plugins/modules/tasks_info.py index b038c6e9d..c4278c530 100644 --- a/ansible_collections/cisco/ise/plugins/modules/tasks_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/tasks_info.py @@ -21,7 +21,7 @@ options: - TaskId path parameter. The id of the task executed before. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for tasks diff --git a/ansible_collections/cisco/ise/plugins/modules/telemetry_info.py b/ansible_collections/cisco/ise/plugins/modules/telemetry_info.py index 089d885d1..013b23a6c 100644 --- a/ansible_collections/cisco/ise/plugins/modules/telemetry_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/telemetry_info.py @@ -57,7 +57,7 @@ options: can be changed by using the parameter. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for TelemetryInformation diff --git a/ansible_collections/cisco/ise/plugins/modules/threat_vulnerabilities_clear.py b/ansible_collections/cisco/ise/plugins/modules/threat_vulnerabilities_clear.py index 6288b13c6..d18b33cbf 100644 --- a/ansible_collections/cisco/ise/plugins/modules/threat_vulnerabilities_clear.py +++ b/ansible_collections/cisco/ise/plugins/modules/threat_vulnerabilities_clear.py @@ -20,7 +20,7 @@ options: description: Threat Vulnerabilities Clear's macAddresses. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for ClearThreatsAndVulnerabilities diff --git a/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings.py b/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings.py index 9b7012f3b..3668f2f9b 100644 --- a/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings.py +++ b/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings.py @@ -10,7 +10,7 @@ module: transport_gateway_settings short_description: Resource module for Transport Gateway Settings description: - Manage operation update of the resource Transport Gateway Settings. -- Transport Gateway acts a proxy for the communication between the ISE servers in your network and the Telemetry servers in case of air-gapped network. +- Transport Gateway acts a proxy for the communication between the ISE servers in your network and the telemetry servers in case of air-gapped network. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module @@ -23,7 +23,7 @@ options: description: URL of transport gateway. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for telemetry diff --git a/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings_info.py b/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings_info.py index 404d01827..88c7b5159 100644 --- a/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/transport_gateway_settings_info.py @@ -10,14 +10,14 @@ module: transport_gateway_settings_info short_description: Information module for Transport Gateway Settings description: - Get all Transport Gateway Settings. -- Transport Gateway acts a proxy for the communication between the ISE servers in your network and the Telemetry servers in case of air-gapped network. +- Transport Gateway acts a proxy for the communication between the ISE servers in your network and the telemetry servers in case of air-gapped network. version_added: '2.1.0' extends_documentation_fragment: - cisco.ise.module_info author: Rafael Campos (@racampos) options: {} requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for telemetry diff --git a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate.py b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate.py index abe3948a5..933652bb1 100644 --- a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate.py +++ b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate.py @@ -91,7 +91,7 @@ options: description: Trust for authentication within Cisco ISE. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_export_info.py b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_export_info.py index 640dffb3b..b65e803f3 100644 --- a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_export_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_export_info.py @@ -33,7 +33,7 @@ options: - The filename used to save the download file. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_import.py b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_import.py index a03c7d41d..10947ddf0 100644 --- a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_import.py +++ b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_import.py @@ -50,7 +50,7 @@ options: description: Validate trust certificate extension. type: bool requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates diff --git a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_info.py b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_info.py index 198e0539b..12744d57d 100644 --- a/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_info.py +++ b/ansible_collections/cisco/ise/plugins/modules/trusted_certificate_info.py @@ -52,8 +52,7 @@ options: - The 'NENDSW' operator describes 'Not Ends With'. - The 'CONTAINS' operator describes 'Contains'. - The 'NCONTAINS' operator describes 'Not Contains'. - elements: str - type: list + type: str filterType: description: - > @@ -65,7 +64,7 @@ options: - Id path parameter. ID of the trust certificate. type: str requirements: -- ciscoisesdk >= 2.1.1 +- ciscoisesdk >= 2.2.1 - python >= 3.5 seealso: - name: Cisco ISE documentation for Certificates @@ -93,7 +92,7 @@ EXAMPLES = r""" size: 0 sort: string sortBy: string - filter: [] + filter: string filterType: string register: result diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app.py new file mode 100644 index 000000000..42ef74eb2 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app.py @@ -0,0 +1,141 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_nbar_app +short_description: Resource module for Trustsec NBAR App +description: +- Manage operations create, update and delete of the resource Trustsec NBAR App. +- Create NBAR application. +- Update NBAR Application. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + description: + description: Trustsec NBAR App's description. + type: str + id: + description: Trustsec NBAR App's id. + type: str + name: + description: Trustsec NBAR App's name. + type: str + networkIdentities: + description: Array of NIs. + elements: dict + suboptions: + ports: + description: Trustsec NBAR App's ports. + type: str + protocol: + description: Trustsec NBAR App's protocol. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for nbarApp + description: Complete reference of the nbarApp API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + nbar_app.NbarApp.create_nbar_app, + nbar_app.NbarApp.delete_nbar_app_by_id, + nbar_app.NbarApp.update_nbar_app_by_id, + + - Paths used are + post /api/v1/trustsec/sgacl/nbarapp, + delete /api/v1/trustsec/sgacl/nbarapp/{id}, + put /api/v1/trustsec/sgacl/nbarapp/{id}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_nbar_app: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + description: string + id: string + name: string + networkIdentities: + - ports: string + protocol: string + +- name: Update by id + cisco.ise.trustsec_nbar_app: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + description: string + id: string + name: string + networkIdentities: + - ports: string + protocol: string + +- name: Delete by id + cisco.ise.trustsec_nbar_app: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + id: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "description": "string", + "id": "string", + "name": "string", + "networkIdentities": [ + { + "ports": "string", + "protocol": "string" + } + ] + } + ] + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "response": [ + { + "description": "string", + "id": "string", + "name": "string", + "networkIdentities": [ + { + "ports": "string", + "protocol": "string" + } + ] + } + ] + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app_info.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app_info.py new file mode 100644 index 000000000..e5d3a7ebe --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_nbar_app_info.py @@ -0,0 +1,150 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_nbar_app_info +short_description: Information module for Trustsec NBAR App +description: +- Get all Trustsec NBAR App. +- Get Trustsec NBAR App by id. +- Get NBAR Application by id. +- Get all NBAR Applications. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *"filterType=or"* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + id: + description: + - Id path parameter. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for nbarApp + description: Complete reference of the nbarApp API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + nbar_app.NbarApp.get_nbar_app_by_id, + nbar_app.NbarApp.get_nbar_apps_generator, + + - Paths used are + get /api/v1/trustsec/sgacl/nbarapp, + get /api/v1/trustsec/sgacl/nbarapp/{id}, + +""" + +EXAMPLES = r""" +- name: Get all Trustsec NBAR App + cisco.ise.trustsec_nbar_app_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + sort: string + sortBy: string + filter: string + filterType: string + register: result + +- name: Get Trustsec NBAR App by id + cisco.ise.trustsec_nbar_app_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + id: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "description": "string", + "id": "string", + "name": "string", + "networkIdentities": [ + { + "ports": "string", + "protocol": "string" + } + ] + } + ] + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "description": "string", + "id": "string", + "name": "string", + "networkIdentities": [ + { + "ports": "string", + "protocol": "string" + } + ] + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping.py new file mode 100644 index 000000000..5aed74a06 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping.py @@ -0,0 +1,134 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_sg_vn_mapping +short_description: Resource module for Trustsec SG VN Mapping +description: +- Manage operations create, update and delete of the resource Trustsec SG VN Mapping. +- Create Security Group and Virtual Network mapping. +- Delete Security Group and Virtual Network mapping. +- Update Security Group and Virtual Network mapping. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + id: + description: Identifier of the SG-VN mapping. + type: str + lastUpdate: + description: Timestamp for the last update of the SG-VN mapping. + type: str + sgName: + description: Name of the associated Security Group to be used for identity if id + is not provided. + type: str + sgtId: + description: Identifier of the associated Security Group which is required unless + its name is provided. + type: str + vnId: + description: Identifier for the associated Virtual Network which is required unless + its name is provided. + type: str + vnName: + description: Name of the associated Virtual Network to be used for identity if id + is not provided. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for sgVnMapping + description: Complete reference of the sgVnMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + sg_vn_mapping.SgVnMapping.create_sg_vn_mapping, + sg_vn_mapping.SgVnMapping.delete_sg_vn_mapping, + sg_vn_mapping.SgVnMapping.update_sg_vn_mapping, + + - Paths used are + post /api/v1/trustsec/sgvnmapping, + delete /api/v1/trustsec/sgvnmapping/{id}, + put /api/v1/trustsec/sgvnmapping/{id}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_sg_vn_mapping: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + id: string + lastUpdate: string + sgName: string + sgtId: string + vnId: string + vnName: string + +- name: Update by id + cisco.ise.trustsec_sg_vn_mapping: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + id: string + lastUpdate: string + sgName: string + sgtId: string + vnId: string + vnName: string + +- name: Delete by id + cisco.ise.trustsec_sg_vn_mapping: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + id: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "id": "string", + "lastUpdate": "string", + "sgName": "string", + "sgtId": "string", + "vnId": "string", + "vnName": "string" + } + ] + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string", + "lastUpdate": "string", + "sgName": "string", + "sgtId": "string", + "vnId": "string", + "vnName": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_create.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_create.py new file mode 100644 index 000000000..18b2ae711 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_create.py @@ -0,0 +1,87 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_sg_vn_mapping_bulk_create +short_description: Resource module for Trustsec SG VN Mapping Bulk Create +description: +- Manage operation create of the resource Trustsec SG VN Mapping Bulk Create. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec SG VN Mapping Bulk Create's payload. + elements: dict + suboptions: + id: + description: Identifier of the SG-VN mapping. + type: str + lastUpdate: + description: Timestamp for the last update of the SG-VN mapping. + type: str + sgName: + description: Name of the associated Security Group to be used for identity if + id is not provided. + type: str + sgtId: + description: Identifier of the associated Security Group which is required unless + its name is provided. + type: str + vnId: + description: Identifier for the associated Virtual Network which is required + unless its name is provided. + type: str + vnName: + description: Name of the associated Virtual Network to be used for identity + if id is not provided. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for sgVnMapping + description: Complete reference of the sgVnMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + sg_vn_mapping.SgVnMapping.bulk_create_sg_vn_mappings, + + - Paths used are + post /api/v1/trustsec/sgvnmapping/bulk/create, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_sg_vn_mapping_bulk_create: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - id: string + lastUpdate: string + sgName: string + sgtId: string + vnId: string + vnName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_delete.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_delete.py new file mode 100644 index 000000000..5d1638c84 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_delete.py @@ -0,0 +1,59 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_sg_vn_mapping_bulk_delete +short_description: Resource module for Trustsec SG VN Mapping Bulk Delete +description: +- Manage operation create of the resource Trustsec SG VN Mapping Bulk Delete. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec SG VN Mapping Bulk Delete's payload. + elements: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for sgVnMapping + description: Complete reference of the sgVnMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + sg_vn_mapping.SgVnMapping.bulk_delete_sg_vn_mappings, + + - Paths used are + post /api/v1/trustsec/sgvnmapping/bulk/delete, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_sg_vn_mapping_bulk_delete: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_update.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_update.py new file mode 100644 index 000000000..4c91c767c --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_bulk_update.py @@ -0,0 +1,87 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_sg_vn_mapping_bulk_update +short_description: Resource module for Trustsec SG VN Mapping Bulk Update +description: +- Manage operation create of the resource Trustsec SG VN Mapping Bulk Update. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec SG VN Mapping Bulk Update's payload. + elements: dict + suboptions: + id: + description: Identifier of the SG-VN mapping. + type: str + lastUpdate: + description: Timestamp for the last update of the SG-VN mapping. + type: str + sgName: + description: Name of the associated Security Group to be used for identity if + id is not provided. + type: str + sgtId: + description: Identifier of the associated Security Group which is required unless + its name is provided. + type: str + vnId: + description: Identifier for the associated Virtual Network which is required + unless its name is provided. + type: str + vnName: + description: Name of the associated Virtual Network to be used for identity + if id is not provided. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for sgVnMapping + description: Complete reference of the sgVnMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + sg_vn_mapping.SgVnMapping.bulk_update_sg_vn_mappings, + + - Paths used are + post /api/v1/trustsec/sgvnmapping/bulk/update, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_sg_vn_mapping_bulk_update: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - id: string + lastUpdate: string + sgName: string + sgtId: string + vnId: string + vnName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_info.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_info.py new file mode 100644 index 000000000..9a41af068 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_sg_vn_mapping_info.py @@ -0,0 +1,144 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_sg_vn_mapping_info +short_description: Information module for Trustsec SG VN Mapping +description: +- Get all Trustsec SG VN Mapping. +- Get Trustsec SG VN Mapping by id. +- Get Security Group and Virtual Network mapping by id. +- Get all Security Group and Virtual Network mappings. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *"filterType=or"* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + id: + description: + - Id path parameter. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for sgVnMapping + description: Complete reference of the sgVnMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + sg_vn_mapping.SgVnMapping.get_sg_vn_mapping_by_id, + sg_vn_mapping.SgVnMapping.get_sg_vn_mapping_list_generator, + + - Paths used are + get /api/v1/trustsec/sgvnmapping, + get /api/v1/trustsec/sgvnmapping/{id}, + +""" + +EXAMPLES = r""" +- name: Get all Trustsec SG VN Mapping + cisco.ise.trustsec_sg_vn_mapping_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + sort: string + sortBy: string + filter: string + filterType: string + register: result + +- name: Get Trustsec SG VN Mapping by id + cisco.ise.trustsec_sg_vn_mapping_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + id: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "id": "string", + "lastUpdate": "string", + "sgName": "string", + "sgtId": "string", + "vnId": "string", + "vnName": "string" + } + ] + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "id": "string", + "lastUpdate": "string", + "sgName": "string", + "sgtId": "string", + "vnId": "string", + "vnName": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn.py new file mode 100644 index 000000000..3742bd146 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn.py @@ -0,0 +1,119 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn +short_description: Resource module for Trustsec VN +description: +- Manage operations create, update and delete of the resource Trustsec VN. +- Create Virtual Network. +- Update Virtual Network. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + additionalAttributes: + description: JSON String of additional attributes for the Virtual Network. + type: str + id: + description: Identifier of the Virtual Network. + type: str + lastUpdate: + description: Timestamp for the last update of the Virtual Network. + type: str + name: + description: Name of the Virtual Network. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for virtualNetwork + description: Complete reference of the virtualNetwork API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + virtual_network.VirtualNetwork.create_virtual_network, + virtual_network.VirtualNetwork.delete_virtual_network_by_id, + virtual_network.VirtualNetwork.update_virtual_network_by_id, + + - Paths used are + post /api/v1/trustsec/virtualnetwork, + delete /api/v1/trustsec/virtualnetwork/{id}, + put /api/v1/trustsec/virtualnetwork/{id}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + additionalAttributes: string + id: string + lastUpdate: string + name: string + +- name: Update by id + cisco.ise.trustsec_vn: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + additionalAttributes: string + id: string + lastUpdate: string + name: string + +- name: Delete by id + cisco.ise.trustsec_vn: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + id: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "additionalAttributes": "string", + "id": "string", + "lastUpdate": "string", + "name": "string" + } + ] + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "response": [ + { + "additionalAttributes": "string", + "id": "string", + "lastUpdate": "string", + "name": "string" + } + ] + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_create.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_create.py new file mode 100644 index 000000000..17a41128f --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_create.py @@ -0,0 +1,75 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_bulk_create +short_description: Resource module for Trustsec VN Bulk Create +description: +- Manage operation create of the resource Trustsec VN Bulk Create. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec VN Bulk Create's payload. + elements: dict + suboptions: + additionalAttributes: + description: JSON String of additional attributes for the Virtual Network. + type: str + id: + description: Identifier of the Virtual Network. + type: str + lastUpdate: + description: Timestamp for the last update of the Virtual Network. + type: str + name: + description: Name of the Virtual Network. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for virtualNetwork + description: Complete reference of the virtualNetwork API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + virtual_network.VirtualNetwork.bulk_create_virtual_networks, + + - Paths used are + post /api/v1/trustsec/virtualnetwork/bulk/create, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_bulk_create: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - additionalAttributes: string + id: string + lastUpdate: string + name: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_delete.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_delete.py new file mode 100644 index 000000000..d8ab682d9 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_delete.py @@ -0,0 +1,59 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_bulk_delete +short_description: Resource module for Trustsec VN Bulk Delete +description: +- Manage operation create of the resource Trustsec VN Bulk Delete. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec VN Bulk Delete's payload. + elements: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for virtualNetwork + description: Complete reference of the virtualNetwork API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + virtual_network.VirtualNetwork.bulk_delete_virtual_networks, + + - Paths used are + post /api/v1/trustsec/virtualnetwork/bulk/delete, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_bulk_delete: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_update.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_update.py new file mode 100644 index 000000000..bf79b2c28 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_bulk_update.py @@ -0,0 +1,75 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_bulk_update +short_description: Resource module for Trustsec VN Bulk Update +description: +- Manage operation create of the resource Trustsec VN Bulk Update. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec VN Bulk Update's payload. + elements: dict + suboptions: + additionalAttributes: + description: JSON String of additional attributes for the Virtual Network. + type: str + id: + description: Identifier of the Virtual Network. + type: str + lastUpdate: + description: Timestamp for the last update of the Virtual Network. + type: str + name: + description: Name of the Virtual Network. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for virtualNetwork + description: Complete reference of the virtualNetwork API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + virtual_network.VirtualNetwork.bulk_update_virtual_networks, + + - Paths used are + post /api/v1/trustsec/virtualnetwork/bulk/update, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_bulk_update: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - additionalAttributes: string + id: string + lastUpdate: string + name: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_info.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_info.py new file mode 100644 index 000000000..cb1bbd9f8 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_info.py @@ -0,0 +1,140 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_info +short_description: Information module for Trustsec VN +description: +- Get all Trustsec VN. +- Get Trustsec VN by id. +- Get Virtual Network by id. +- Get all Virtual Networks. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *"filterType=or"* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + id: + description: + - Id path parameter. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for virtualNetwork + description: Complete reference of the virtualNetwork API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + virtual_network.VirtualNetwork.get_virtual_network_by_id, + virtual_network.VirtualNetwork.get_virtual_networks_generator, + + - Paths used are + get /api/v1/trustsec/virtualnetwork, + get /api/v1/trustsec/virtualnetwork/{id}, + +""" + +EXAMPLES = r""" +- name: Get all Trustsec VN + cisco.ise.trustsec_vn_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + sort: string + sortBy: string + filter: string + filterType: string + register: result + +- name: Get Trustsec VN by id + cisco.ise.trustsec_vn_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + id: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "additionalAttributes": "string", + "id": "string", + "lastUpdate": "string", + "name": "string" + } + ] + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "additionalAttributes": "string", + "id": "string", + "lastUpdate": "string", + "name": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping.py new file mode 100644 index 000000000..fd8ced03d --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping.py @@ -0,0 +1,138 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_vlan_mapping +short_description: Resource module for Trustsec VN VLAN Mapping +description: +- Manage operations create, update and delete of the resource Trustsec VN VLAN Mapping. +- Create VN-Vlan Mapping. +- Update VN-Vlan Mapping. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + id: + description: Identifier of the VN-VLAN Mapping. + type: str + isData: + description: Flag which indicates whether the VLAN is data or voice type. + type: bool + isDefaultVLAN: + description: Flag which indicates if the VLAN is default. + type: bool + lastUpdate: + description: Timestamp for the last update of the VN-VLAN Mapping. + type: str + maxValue: + description: Max value. + type: int + name: + description: Name of the VLAN. + type: str + vnId: + description: Identifier for the associated Virtual Network which is required unless + its name is provided. + type: str + vnName: + description: Name of the associated Virtual Network to be used for identity if id + is not provided. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for vnVlanMapping + description: Complete reference of the vnVlanMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + vn_vlan_mapping.VnVlanMapping.create_vn_vlan_mapping, + vn_vlan_mapping.VnVlanMapping.delete_vn_vlan_mapping, + vn_vlan_mapping.VnVlanMapping.update_vn_vlan_mapping, + + - Paths used are + post /api/v1/trustsec/vnvlanmapping, + delete /api/v1/trustsec/vnvlanmapping/{id}, + put /api/v1/trustsec/vnvlanmapping/{id}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_vlan_mapping: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + id: string + isData: true + isDefaultVlan: true + lastUpdate: string + maxValue: 0 + name: string + vnId: string + vnName: string + +- name: Update by id + cisco.ise.trustsec_vn_vlan_mapping: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + id: string + isData: true + isDefaultVlan: true + lastUpdate: string + maxValue: 0 + name: string + vnId: string + vnName: string + +- name: Delete by id + cisco.ise.trustsec_vn_vlan_mapping: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + id: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "id": "string", + "isData": true, + "isDefaultVlan": true, + "lastUpdate": "string", + "maxValue": 0, + "name": "string", + "vnId": "string", + "vnName": "string" + } + ] + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "message": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_create.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_create.py new file mode 100644 index 000000000..d2e819c33 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_create.py @@ -0,0 +1,93 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_vlan_mapping_bulk_create +short_description: Resource module for Trustsec VN VLAN Mapping Bulk Create +description: +- Manage operation create of the resource Trustsec VN VLAN Mapping Bulk Create. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec VN VLAN Mapping Bulk Create's payload. + elements: dict + suboptions: + id: + description: Identifier of the VN-VLAN Mapping. + type: str + isData: + description: Flag which indicates whether the VLAN is data or voice type. + type: bool + isDefaultVLAN: + description: Flag which indicates if the VLAN is default. + type: bool + lastUpdate: + description: Timestamp for the last update of the VN-VLAN Mapping. + type: str + maxValue: + description: Max value. + type: int + name: + description: Name of the VLAN. + type: str + vnId: + description: Identifier for the associated Virtual Network which is required + unless its name is provided. + type: str + vnName: + description: Name of the associated Virtual Network to be used for identity + if id is not provided. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for vnVlanMapping + description: Complete reference of the vnVlanMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + vn_vlan_mapping.VnVlanMapping.bulk_create_vn_vlan_mappings, + + - Paths used are + post /api/v1/trustsec/vnvlanmapping/bulk/create, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_vlan_mapping_bulk_create: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - id: string + isData: true + isDefaultVlan: true + lastUpdate: string + maxValue: 0 + name: string + vnId: string + vnName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_delete.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_delete.py new file mode 100644 index 000000000..4431bf32e --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_delete.py @@ -0,0 +1,59 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_vlan_mapping_bulk_delete +short_description: Resource module for Trustsec VN VLAN Mapping Bulk Delete +description: +- Manage operation create of the resource Trustsec VN VLAN Mapping Bulk Delete. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec VN VLAN Mapping Bulk Delete's payload. + elements: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for vnVlanMapping + description: Complete reference of the vnVlanMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + vn_vlan_mapping.VnVlanMapping.bulk_delete_vn_vlan_mappings, + + - Paths used are + post /api/v1/trustsec/vnvlanmapping/bulk/delete, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_vlan_mapping_bulk_delete: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_update.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_update.py new file mode 100644 index 000000000..531296199 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_bulk_update.py @@ -0,0 +1,93 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_vlan_mapping_bulk_update +short_description: Resource module for Trustsec VN VLAN Mapping Bulk Update +description: +- Manage operation create of the resource Trustsec VN VLAN Mapping Bulk Update. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + payload: + description: Trustsec VN VLAN Mapping Bulk Update's payload. + elements: dict + suboptions: + id: + description: Identifier of the VN-VLAN Mapping. + type: str + isData: + description: Flag which indicates whether the VLAN is data or voice type. + type: bool + isDefaultVLAN: + description: Flag which indicates if the VLAN is default. + type: bool + lastUpdate: + description: Timestamp for the last update of the VN-VLAN Mapping. + type: str + maxValue: + description: Max value. + type: int + name: + description: Name of the VLAN. + type: str + vnId: + description: Identifier for the associated Virtual Network which is required + unless its name is provided. + type: str + vnName: + description: Name of the associated Virtual Network to be used for identity + if id is not provided. + type: str + type: list +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for vnVlanMapping + description: Complete reference of the vnVlanMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + vn_vlan_mapping.VnVlanMapping.bulk_update_vn_vlan_mappings, + + - Paths used are + post /api/v1/trustsec/vnvlanmapping/bulk/update, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.trustsec_vn_vlan_mapping_bulk_update: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + payload: + - id: string + isData: true + isDefaultVlan: true + lastUpdate: string + maxValue: 0 + name: string + vnId: string + vnName: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_info.py b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_info.py new file mode 100644 index 000000000..5e9c19413 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/trustsec_vn_vlan_mapping_info.py @@ -0,0 +1,148 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: trustsec_vn_vlan_mapping_info +short_description: Information module for Trustsec VN VLAN Mapping +description: +- Get all Trustsec VN VLAN Mapping. +- Get Trustsec VN VLAN Mapping by id. +- Get VN-Vlan Mapping by id. +- Get all VN-Vlan Mappings. +version_added: '2.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *"filterType=or"* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + id: + description: + - Id path parameter. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +seealso: +- name: Cisco ISE documentation for vnVlanMapping + description: Complete reference of the vnVlanMapping API. + link: https://developer.cisco.com/docs/identity-services-engine/v1/#!trustsec-openapi +notes: + - SDK Method used are + vn_vlan_mapping.VnVlanMapping.get_vn_vlan_mapping_by_id, + vn_vlan_mapping.VnVlanMapping.get_vn_vlan_mapping_list_generator, + + - Paths used are + get /api/v1/trustsec/vnvlanmapping, + get /api/v1/trustsec/vnvlanmapping/{id}, + +""" + +EXAMPLES = r""" +- name: Get all Trustsec VN VLAN Mapping + cisco.ise.trustsec_vn_vlan_mapping_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + sort: string + sortBy: string + filter: string + filterType: string + register: result + +- name: Get Trustsec VN VLAN Mapping by id + cisco.ise.trustsec_vn_vlan_mapping_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + id: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "id": "string", + "isData": true, + "isDefaultVlan": true, + "lastUpdate": "string", + "maxValue": 0, + "name": "string", + "vnId": "string", + "vnName": "string" + } + ] + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "id": "string", + "isData": true, + "isDefaultVlan": true, + "lastUpdate": "string", + "maxValue": 0, + "name": "string", + "vnId": "string", + "vnName": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/upgrade_proceed.py b/ansible_collections/cisco/ise/plugins/modules/upgrade_proceed.py new file mode 100644 index 000000000..c53223cad --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/upgrade_proceed.py @@ -0,0 +1,69 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: upgrade_proceed +short_description: Resource module for Upgrade Proceed +description: +- Manage operation create of the resource Upgrade Proceed. +- API's purpose would be to orchestrate upgrade execution on PPAN. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + hostnames: + description: Upgrade Proceed's hostnames. + elements: str + type: list + preCheckReportID: + description: Upgrade Proceed's preCheckReportID. + type: str + upgradeType: + description: Upgrade Proceed's upgradeType. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + fullupgrade.Fullupgrade.initiate_upgrade_on_p_p_a_n, + + - Paths used are + post /api/v1/upgrade/proceed/initiate-upgrade, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.upgrade_proceed: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + hostnames: + - string + preCheckReportID: string + upgradeType: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "response": { + "message": "string", + "preCheckReportID": "string" + }, + "version": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/upgrade_proceed_info.py b/ansible_collections/cisco/ise/plugins/modules/upgrade_proceed_info.py new file mode 100644 index 000000000..df27e55ef --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/upgrade_proceed_info.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: upgrade_proceed_info +short_description: Information module for Upgrade Proceed +description: +- Get the status of upgrade process for the requested nodes +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + preCheckReportID: + description: preCheckReportID. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + full_upgrade.FullUpgrade.proceed_status, + - Paths used are + get /api/v1/upgrade/proceed/get-status, + +""" + +EXAMPLES = r""" +- name: Get status of upgrade process for the requested nodes + cisco.ise.upgrade_proceed_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + preCheckReportID: string + register: result +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "message": "string", + "preCheckReportID": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel.py b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel.py new file mode 100644 index 000000000..8399cfb38 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel.py @@ -0,0 +1,73 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: upgrade_stage_cancel +short_description: Resource module for Upgrade Stage Cancel +description: +- Manage operation create of the resource Upgrade Stage Cancel. +- API to cancel staging process of specified nodes from PPAN. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + hostnames: + description: Upgrade Stage Cancel's hostnames. + elements: str + type: list + preCheckReportID: + description: Upgrade Stage Cancel's preCheckReportID. + type: str + upgradeType: + description: Upgrade Stage Cancel's upgradeType. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + fullupgrade.Fullupgrade.cancel_staging_on_p_p_a_n, + + - Paths used are + post /api/v1/upgrade/stage/cancel-stage, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.upgrade_stage_cancel: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + hostnames: + - string + preCheckReportID: string + upgradeType: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "dbStatus": "string", + "message": "string", + "node": "string", + "percentage": 0, + "progressMsg": "string", + "status": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel_info.py b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel_info.py new file mode 100644 index 000000000..13e83e709 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_cancel_info.py @@ -0,0 +1,64 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: upgrade_stage_cancel_info +short_description: Information module for Upgrade Stage Cancel +description: +- Get all Upgrade Stage Cancel. +- Get the status of upgrade stage process for the requested nodes. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + preCheckReportID: + description: + - PreCheckReportID query parameter. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + fullupgrade.Fullupgrade.stage_status, + + - Paths used are + get /api/v1/upgrade/stage/get-status, + +""" + +EXAMPLES = r""" +- name: Get all Upgrade Stage Cancel + cisco.ise.upgrade_stage_cancel_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + preCheckReportID: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "dbStatus": "string", + "message": "string", + "node": "string", + "percentage": 0, + "progressMsg": "string", + "status": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start.py b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start.py new file mode 100644 index 000000000..5d6b248eb --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start.py @@ -0,0 +1,77 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: upgrade_stage_start +short_description: Resource module for Upgrade Stage Start +description: +- Manage operation create of the resource Upgrade Stage Start. +- API to initiate staging orcheastration from PPAN. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + hostnames: + description: Upgrade Stage Start's hostnames. + elements: str + type: list + preCheckReportID: + description: Upgrade Stage Start's preCheckReportID. + type: str + reTrigger: + description: ReTrigger flag. + type: bool + upgradeType: + description: Upgrade Stage Start's upgradeType. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + fullupgrade.Fullupgrade.initiate_staging_on_p_p_a_n, + + - Paths used are + post /api/v1/upgrade/stage/start-stage, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.upgrade_stage_start: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + hostnames: + - string + preCheckReportID: string + reTrigger: true + upgradeType: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "dbStatus": "string", + "message": "string", + "node": "string", + "percentage": 0, + "progressMsg": "string", + "status": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start_info.py b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start_info.py new file mode 100644 index 000000000..2d7f92cf3 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/upgrade_stage_start_info.py @@ -0,0 +1,64 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: upgrade_stage_start_info +short_description: Information module for Upgrade Stage Start +description: +- Get all Upgrade Stage Start. +- Get the status of upgrade stage process for the requested nodes. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + preCheckReportID: + description: + - PreCheckReportID query parameter. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + fullupgrade.Fullupgrade.stage_status, + + - Paths used are + get /api/v1/upgrade/stage/get-status, + +""" + +EXAMPLES = r""" +- name: Get all Upgrade Stage Start + cisco.ise.upgrade_stage_start_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + preCheckReportID: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "dbStatus": "string", + "message": "string", + "node": "string", + "percentage": 0, + "progressMsg": "string", + "status": "string" + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/user_equipment.py b/ansible_collections/cisco/ise/plugins/modules/user_equipment.py new file mode 100644 index 000000000..ff7f4c971 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/user_equipment.py @@ -0,0 +1,98 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: user_equipment +short_description: Resource module for User Equipment +description: +- Manage operations create, update and delete of the resource User Equipment. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + description: + description: Description for User Equipment. + type: str + deviceGroup: + description: Device or Endpoint Group. + type: str + imei: + description: IMEI for User Equipment. + type: str + userEquipmentId: + description: UserEquipmentId path parameter. Unique ID for a user equipment object. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + user_equipment.UserEquipment.create_user_equipment, + user_equipment.UserEquipment.delete_user_equipment, + user_equipment.UserEquipment.update_user_equipment, + + - Paths used are + post /api/v1/fiveg/user-equipment, + delete /api/v1/fiveg/user-equipment/{userEquipmentId}, + put /api/v1/fiveg/user-equipment/{userEquipmentId}, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.user_equipment: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + description: string + deviceGroup: string + imei: string + +- name: Update by id + cisco.ise.user_equipment: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: present + description: string + deviceGroup: string + userEquipmentId: 7c9484cf-0ebc-47ad-a9ef-bc12729ed73b + +- name: Delete by id + cisco.ise.user_equipment: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + state: absent + userEquipmentId: 7c9484cf-0ebc-47ad-a9ef-bc12729ed73b + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + {} + +ise_update_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: dict + sample: > + { + "response": {}, + "version": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/user_equipment_bulk.py b/ansible_collections/cisco/ise/plugins/modules/user_equipment_bulk.py new file mode 100644 index 000000000..240bad6e9 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/user_equipment_bulk.py @@ -0,0 +1,75 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: user_equipment_bulk +short_description: Resource module for User Equipment Bulk +description: +- Manage operation create of the resource User Equipment Bulk. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: + ItemList: + description: User Equipment Bulk's ItemList. + elements: dict + suboptions: + description: + description: User Equipment Bulk's description. + type: str + deviceGroup: + description: Device or Endpoint Group. + type: str + id: + description: User Equipment Bulk's id. + type: str + imei: + description: User Equipment Bulk's imei. + type: str + type: list + operation: + description: User Equipment Bulk's operation. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + user_equipment.UserEquipment.bulk_user_equipment_operation, + + - Paths used are + post /api/v1/fiveg/user-equipment/bulk, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.user_equipment_bulk: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + ItemList: + - description: string + deviceGroup: string + id: string + imei: string + operation: string + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/user_equipment_csv.py b/ansible_collections/cisco/ise/plugins/modules/user_equipment_csv.py new file mode 100644 index 000000000..5a80cdac8 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/user_equipment_csv.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: user_equipment_csv +short_description: Resource module for User Equipment Csv +description: +- Manage operation create of the resource User Equipment Csv. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module +author: Rafael Campos (@racampos) +options: {} +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + user_equipment.UserEquipment.create_user_equipments_from_c_s_v, + + - Paths used are + post /api/v1/fiveg/user-equipment/csv, + +""" + +EXAMPLES = r""" +- name: Create + cisco.ise.user_equipment_csv: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + { + "id": "string" + } +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/user_equipment_imei_info.py b/ansible_collections/cisco/ise/plugins/modules/user_equipment_imei_info.py new file mode 100644 index 000000000..cd74da4e2 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/user_equipment_imei_info.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: user_equipment_imei_info +short_description: Information module for User Equipment Imei Info +description: +- Get User Equipment Imei Info by id. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + imei: + description: + - Imei path parameter. IMEI for the user equipment object. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + user_equipment.UserEquipment.get_user_equipment_by_i_m_e_i, + + - Paths used are + get /api/v1/fiveg/user-equipment/imei/{imei}, + +""" + +EXAMPLES = r""" +- name: Get User Equipment Imei Info by id + cisco.ise.user_equipment_imei_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + imei: string + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + {} +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/user_equipment_info.py b/ansible_collections/cisco/ise/plugins/modules/user_equipment_info.py new file mode 100644 index 000000000..89c951e57 --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/user_equipment_info.py @@ -0,0 +1,122 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: user_equipment_info +short_description: Information module for User Equipment Info +description: +- Get all User Equipment Info. +- Get User Equipment Info by id. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + page: + description: + - Page query parameter. Page number. + type: int + size: + description: + - Size query parameter. Number of objects returned per page. + type: int + filter: + description: + - > + Filter query parameter. .. Container **Simple filtering** should be available through the filter query + string parameter. The structure of a filter is a triplet of field operator and value separated with dots. + More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, + and can be changed by using the *"filterType=or"* query string parameter. + - Each resource Data model description should specify if an attribute is a filtered field. + - The 'EQ' operator describes 'Equals'. + - The 'NEQ' operator describes 'Not Equals'. + - The 'GT' operator describes 'Greater Than'. + - The 'LT' operator describes 'Less Than'. + - The 'STARTSW' operator describes 'Starts With'. + - The 'NSTARTSW' operator describes 'Not Starts With'. + - The 'ENDSW' operator describes 'Ends With'. + - The 'NENDSW' operator describes 'Not Ends With'. + - The 'CONTAINS' operator describes 'Contains'. + - The 'NCONTAINS' operator describes 'Not Contains'. + type: str + filterType: + description: + - > + FilterType query parameter. The logical operator common to ALL filter criteria will be by default AND, and + can be changed by using the parameter. + type: str + sort: + description: + - Sort query parameter. Sort type - asc or desc. + type: str + sortBy: + description: + - SortBy query parameter. Sort column by which objects needs to be sorted. + type: str + userEquipmentId: + description: + - UserEquipmentId path parameter. Unique ID for a user equipment object. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + user_equipment.UserEquipment.get_user_equipment_by_id, + user_equipment.UserEquipment.get_user_equipments_generator, + + - Paths used are + get /api/v1/fiveg/user-equipment, + get /api/v1/fiveg/user-equipment/{userEquipmentId}, + +""" + +EXAMPLES = r""" +- name: Get all User Equipment Info + cisco.ise.user_equipment_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + page: 0 + size: 0 + filter: string + filterType: string + sort: string + sortBy: string + register: result + +- name: Get User Equipment Info by id + cisco.ise.user_equipment_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + userEquipmentId: 7c9484cf-0ebc-47ad-a9ef-bc12729ed73b + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: dict + sample: > + {} + +ise_responses: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + version_added: '1.1.0' + type: list + elements: dict + sample: > + [ + {} + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/modules/user_equipment_subscriber_info.py b/ansible_collections/cisco/ise/plugins/modules/user_equipment_subscriber_info.py new file mode 100644 index 000000000..48b40dd5d --- /dev/null +++ b/ansible_collections/cisco/ise/plugins/modules/user_equipment_subscriber_info.py @@ -0,0 +1,68 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021, Cisco Systems +# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +--- +module: user_equipment_subscriber_info +short_description: Information module for User Equipment Subscriber Info +description: +- Get User Equipment Subscriber Info by id. +version_added: '1.0.0' +extends_documentation_fragment: + - cisco.ise.module_info +author: Rafael Campos (@racampos) +options: + subscriberId: + description: + - SubscriberId path parameter. Unique ID for a subscriber object. + type: str +requirements: +- ciscoisesdk >= 2.2.1 +- python >= 3.5 +notes: + - SDK Method used are + user_equipment.UserEquipment.get_user_equipments_by_subscriber_id, + + - Paths used are + get /api/v1/fiveg/user-equipment/subscriber/{subscriberId}, + +""" + +EXAMPLES = r""" +- name: Get User Equipment Subscriber Info by id + cisco.ise.user_equipment_subscriber_info: + ise_hostname: "{{ise_hostname}}" + ise_username: "{{ise_username}}" + ise_password: "{{ise_password}}" + ise_verify: "{{ise_verify}}" + subscriberId: 7c9484cf-0ebc-47ad-a9ef-bc12729ed73d + register: result + +""" + +RETURN = r""" +ise_response: + description: A dictionary or list with the response returned by the Cisco ISE Python SDK + returned: always + type: list + elements: dict + sample: > + [ + { + "description": "string", + "deviceGroup": "string", + "imei": "string", + "createTime": "string", + "updateTime": "string", + "id": "string", + "link": { + "rel": "string", + "href": "string", + "type": "string" + } + } + ] +""" diff --git a/ansible_collections/cisco/ise/plugins/plugin_utils/ise.py b/ansible_collections/cisco/ise/plugins/plugin_utils/ise.py index fbb0843c2..85d6889f2 100644 --- a/ansible_collections/cisco/ise/plugins/plugin_utils/ise.py +++ b/ansible_collections/cisco/ise/plugins/plugin_utils/ise.py @@ -133,7 +133,7 @@ def ise_argument_spec(): ise_username=dict(type="str", fallback=(env_fallback, ['ISE_USERNAME']), required=True), ise_password=dict(type="str", fallback=(env_fallback, ['ISE_PASSWORD']), required=True, no_log=True), ise_verify=dict(type="bool", default=True, fallback=(env_fallback, ['ISE_VERIFY'])), - ise_version=dict(type="str", default="3.2_beta", fallback=(env_fallback, ['ISE_VERSION'])), + ise_version=dict(type="str", default="3.3_patch_1", fallback=(env_fallback, ['ISE_VERSION'])), ise_wait_on_rate_limit=dict(type="bool", default=True, fallback=(env_fallback, ['ISE_WAIT_ON_RATE_LIMIT'])), ise_uses_api_gateway=dict(type="bool", default=True, fallback=(env_fallback, ['ISE_USES_API_GATEWAY'])), ise_uses_csrf_token=dict(type="bool", default=False, fallback=(env_fallback, ['ISE_USES_CSRF_TOKEN'])), diff --git a/ansible_collections/cisco/ise/requirements.txt b/ansible_collections/cisco/ise/requirements.txt index 010de3983..5e460438f 100644 --- a/ansible_collections/cisco/ise/requirements.txt +++ b/ansible_collections/cisco/ise/requirements.txt @@ -1,2 +1,2 @@ -ciscoisesdk >= 2.1.1 +ciscoisesdk >= 2.2.1 requests >= 2.25.1 |