Server IP : 85.214.239.14 / Your IP : 13.58.119.79 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/ansible_collections/fortinet/fortimanager/plugins/modules/ |
Upload File : |
#!/usr/bin/python from __future__ import absolute_import, division, print_function # Copyright 2019-2023 Fortinet, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. __metaclass__ = type ANSIBLE_METADATA = {'status': ['preview'], 'supported_by': 'community', 'metadata_version': '1.1'} DOCUMENTATION = ''' --- module: fmgr_pm_pkg short_description: Policy package or folder. description: - This module is able to configure a FortiManager device. - Examples include all parameters and values which need to be adjusted to data sources before usage. version_added: "2.0.0" author: - Xinwei Du (@dux-fortinet) - Xing Li (@lix-fortinet) - Jie Xue (@JieX19) - Link Zheng (@chillancezen) - Frank Shen (@fshen01) - Hongbin Lu (@fgtdev-hblu) notes: - Running in workspace locking mode is supported in this FortiManager module, the top level parameters workspace_locking_adom and workspace_locking_timeout help do the work. - To create or update an object, use state present directive. - To delete an object, use state absent directive. - Normally, running one module can fail when a non-zero rc is returned. you can also override the conditions to fail or succeed with parameters rc_failed and rc_succeeded options: access_token: description: The token to access FortiManager without using username and password. required: false type: str bypass_validation: description: Only set to True when module schema diffs with FortiManager API structure, module continues to execute without validating parameters. required: false type: bool default: false enable_log: description: Enable/Disable logging for task. required: false type: bool default: false forticloud_access_token: description: Authenticate Ansible client with forticloud API access token. required: false type: str proposed_method: description: The overridden method for the underlying Json RPC request. required: false type: str choices: - update - set - add rc_succeeded: description: The rc codes list with which the conditions to succeed will be overriden. type: list required: false elements: int rc_failed: description: The rc codes list with which the conditions to fail will be overriden. type: list required: false elements: int state: description: The directive to create, update or delete an object. type: str required: true choices: - present - absent workspace_locking_adom: description: The adom to lock for FortiManager running in workspace mode, the value can be global and others including root. required: false type: str workspace_locking_timeout: description: The maximum time in seconds to wait for other user to release the workspace lock. required: false type: int default: 300 adom: description: the parameter (adom) in requested url type: str required: true pkg_path: description: the parameter (pkg_path) in requested url type: str required: true pm_pkg: description: the top level parameters set required: false type: dict suboptions: name: type: str description: no description obj ver: type: int description: no description oid: type: int description: no description package setting: description: no description type: dict required: false suboptions: central-nat: type: str description: no description choices: - 'disable' - 'enable' consolidated-firewall-mode: type: str description: no description choices: - 'disable' - 'enable' fwpolicy-implicit-log: type: str description: no description choices: - 'disable' - 'enable' fwpolicy6-implicit-log: type: str description: no description choices: - 'disable' - 'enable' inspection-mode: type: str description: no description choices: - 'proxy' - 'flow' ngfw-mode: type: str description: no description choices: - 'profile-based' - 'policy-based' ssl-ssh-profile: type: str description: no description scope member: description: description type: list elements: dict suboptions: name: type: str description: no description vdom: type: str description: no description type: type: str description: no description choices: - 'pkg' - 'folder' package settings: description: no description type: dict required: false suboptions: central-nat: type: str description: - disable - - enable - choices: - 'disable' - 'enable' consolidated-firewall-mode: type: str description: - For flow-based policy package. - disable - - enable - choices: - 'disable' - 'enable' fwpolicy-implicit-log: type: str description: - disable - - enable - choices: - 'disable' - 'enable' fwpolicy6-implicit-log: type: str description: - disable - - enable - choices: - 'disable' - 'enable' inspection-mode: type: str description: - proxy - - flow - choices: - 'proxy' - 'flow' ngfw-mode: type: str description: - For flow-based policy package. - profile-based - - policy-based - choices: - 'profile-based' - 'policy-based' policy-offload-level: type: str description: - disable - - default - - dos-offload - - full-offload - choices: - 'disable' - 'default' - 'dos-offload' - 'full-offload' ssl-ssh-profile: type: str description: SSL-SSH profile required for NGFW-mode policy package. ''' EXAMPLES = ''' - hosts: fortimanager-inventory collections: - fortinet.fortimanager connection: httpapi vars: ansible_httpapi_use_ssl: True ansible_httpapi_validate_certs: False ansible_httpapi_port: 443 tasks: - name: Policy package or folder. fmgr_pm_pkg: bypass_validation: False workspace_locking_adom: <value in [global, custom adom including root]> workspace_locking_timeout: 300 rc_succeeded: [0, -2, -3, ...] rc_failed: [-2, -3, ...] adom: <your own value> pkg_path: <your own value> state: <value in [present, absent]> pm_pkg: name: <value of string> obj ver: <value of integer> oid: <value of integer> package setting: central-nat: <value in [disable, enable]> consolidated-firewall-mode: <value in [disable, enable]> fwpolicy-implicit-log: <value in [disable, enable]> fwpolicy6-implicit-log: <value in [disable, enable]> inspection-mode: <value in [proxy, flow]> ngfw-mode: <value in [profile-based, policy-based]> ssl-ssh-profile: <value of string> scope member: - name: <value of string> vdom: <value of string> type: <value in [pkg, folder]> package settings: central-nat: <value in [disable, enable]> consolidated-firewall-mode: <value in [disable, enable]> fwpolicy-implicit-log: <value in [disable, enable]> fwpolicy6-implicit-log: <value in [disable, enable]> inspection-mode: <value in [proxy, flow]> ngfw-mode: <value in [profile-based, policy-based]> policy-offload-level: <value in [disable, default, dos-offload, ...]> ssl-ssh-profile: <value of string> ''' RETURN = ''' meta: description: The result of the request. type: dict returned: always contains: request_url: description: The full url requested. returned: always type: str sample: /sys/login/user response_code: description: The status of api request. returned: always type: int sample: 0 response_data: description: The api response. type: list returned: always response_message: description: The descriptive message of the api response. type: str returned: always sample: OK. system_information: description: The information of the target system. type: dict returned: always rc: description: The status the request. type: int returned: always sample: 0 version_check_warning: description: Warning if the parameters used in the playbook are not supported by the current FortiManager version. type: list returned: complex ''' from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.connection import Connection from ansible_collections.fortinet.fortimanager.plugins.module_utils.napi import NAPIManager from ansible_collections.fortinet.fortimanager.plugins.module_utils.napi import check_galaxy_version from ansible_collections.fortinet.fortimanager.plugins.module_utils.napi import check_parameter_bypass def main(): jrpc_urls = [ '/pm/pkg/adom/{adom}/{pkg_path}', '/pm/pkg/global/{pkg_path}' ] perobject_jrpc_urls = [ '/pm/pkg/adom/{adom}/{pkg_path}', '/pm/pkg/global/{pkg_path}' ] url_params = ['adom', 'pkg_path'] module_primary_key = 'name' module_arg_spec = { 'access_token': { 'type': 'str', 'required': False, 'no_log': True }, 'bypass_validation': { 'type': 'bool', 'required': False, 'default': False }, 'enable_log': { 'type': 'bool', 'required': False, 'default': False }, 'forticloud_access_token': { 'type': 'str', 'required': False, 'no_log': True }, 'proposed_method': { 'type': 'str', 'required': False, 'choices': [ 'set', 'update', 'add' ] }, 'rc_succeeded': { 'required': False, 'type': 'list', 'elements': 'int' }, 'rc_failed': { 'required': False, 'type': 'list', 'elements': 'int' }, 'state': { 'type': 'str', 'required': True, 'choices': [ 'present', 'absent' ] }, 'workspace_locking_adom': { 'type': 'str', 'required': False }, 'workspace_locking_timeout': { 'type': 'int', 'required': False, 'default': 300 }, 'adom': { 'required': True, 'type': 'str' }, 'pkg_path': { 'required': True, 'type': 'str' }, 'pm_pkg': { 'required': False, 'type': 'dict', 'revision': { '6.0.0': True, '6.2.0': True, '6.2.1': True, '6.2.2': True, '6.2.3': True, '6.2.5': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.0': True, '6.4.1': True, '6.4.2': True, '6.4.3': True, '6.4.4': True, '6.4.5': True, '6.4.6': True, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.0': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.0': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'options': { 'name': { 'required': True, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': True, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'type': 'str' }, 'obj ver': { 'required': False, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': True, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'type': 'int' }, 'oid': { 'required': False, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': True, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'type': 'int' }, 'package setting': { 'required': False, 'type': 'dict', 'options': { 'central-nat': { 'required': False, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': False, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': False, '6.4.8': False, '6.4.9': False, '6.4.10': False, '6.4.11': False, '7.0.1': False, '7.0.2': False, '7.0.3': False, '7.0.4': False, '7.0.5': False, '7.0.6': False, '7.0.7': False, '7.2.1': False, '7.2.2': False, '7.4.0': False }, 'choices': [ 'disable', 'enable' ], 'type': 'str' }, 'consolidated-firewall-mode': { 'required': False, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': False, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': False, '6.4.8': False, '6.4.9': False, '6.4.10': False, '6.4.11': False, '7.0.1': False, '7.0.2': False, '7.0.3': False, '7.0.4': False, '7.0.5': False, '7.0.6': False, '7.0.7': False, '7.2.1': False, '7.2.2': False, '7.4.0': False }, 'choices': [ 'disable', 'enable' ], 'type': 'str' }, 'fwpolicy-implicit-log': { 'required': False, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': False, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': False, '6.4.8': False, '6.4.9': False, '6.4.10': False, '6.4.11': False, '7.0.1': False, '7.0.2': False, '7.0.3': False, '7.0.4': False, '7.0.5': False, '7.0.6': False, '7.0.7': False, '7.2.1': False, '7.2.2': False, '7.4.0': False }, 'choices': [ 'disable', 'enable' ], 'type': 'str' }, 'fwpolicy6-implicit-log': { 'required': False, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': False, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': False, '6.4.8': False, '6.4.9': False, '6.4.10': False, '6.4.11': False, '7.0.1': False, '7.0.2': False, '7.0.3': False, '7.0.4': False, '7.0.5': False, '7.0.6': False, '7.0.7': False, '7.2.1': False, '7.2.2': False, '7.4.0': False }, 'choices': [ 'disable', 'enable' ], 'type': 'str' }, 'inspection-mode': { 'required': False, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': False, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': False, '6.4.8': False, '6.4.9': False, '6.4.10': False, '6.4.11': False, '7.0.1': False, '7.0.2': False, '7.0.3': False, '7.0.4': False, '7.0.5': False, '7.0.6': False, '7.0.7': False, '7.2.1': False, '7.2.2': False, '7.4.0': False }, 'choices': [ 'proxy', 'flow' ], 'type': 'str' }, 'ngfw-mode': { 'required': False, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': False, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': False, '6.4.8': False, '6.4.9': False, '6.4.10': False, '6.4.11': False, '7.0.1': False, '7.0.2': False, '7.0.3': False, '7.0.4': False, '7.0.5': False, '7.0.6': False, '7.0.7': False, '7.2.1': False, '7.2.2': False, '7.4.0': False }, 'choices': [ 'profile-based', 'policy-based' ], 'type': 'str' }, 'ssl-ssh-profile': { 'required': False, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': False, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': False, '6.4.8': False, '6.4.9': False, '6.4.10': False, '6.4.11': False, '7.0.1': False, '7.0.2': False, '7.0.3': False, '7.0.4': False, '7.0.5': False, '7.0.6': False, '7.0.7': False, '7.2.1': False, '7.2.2': False, '7.4.0': False }, 'type': 'str' } } }, 'scope member': { 'required': False, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': True, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'type': 'list', 'options': { 'name': { 'required': False, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': True, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'type': 'str' }, 'vdom': { 'required': False, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': True, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'type': 'str' } }, 'elements': 'dict' }, 'type': { 'required': False, 'revision': { '6.0.0': True, '6.2.1': True, '6.2.3': True, '6.2.5': True, '6.4.0': True, '6.4.2': True, '6.4.5': True, '7.0.0': True, '7.2.0': True, '6.2.0': True, '6.2.2': True, '6.2.6': True, '6.2.7': True, '6.2.8': True, '6.2.9': True, '6.2.10': True, '6.4.1': True, '6.4.3': True, '6.4.4': True, '6.4.6': True, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'choices': [ 'pkg', 'folder' ], 'type': 'str' }, 'package settings': { 'required': False, 'type': 'dict', 'options': { 'central-nat': { 'required': False, 'revision': { '7.2.0': True, '6.2.0': False, '6.2.2': False, '6.2.6': False, '6.2.7': False, '6.2.8': False, '6.2.9': False, '6.2.10': False, '6.4.1': False, '6.4.3': False, '6.4.4': False, '6.4.6': False, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'choices': [ 'disable', 'enable' ], 'type': 'str' }, 'consolidated-firewall-mode': { 'required': False, 'revision': { '7.2.0': True, '6.2.0': False, '6.2.2': False, '6.2.6': False, '6.2.7': False, '6.2.8': False, '6.2.9': False, '6.2.10': False, '6.4.1': False, '6.4.3': False, '6.4.4': False, '6.4.6': False, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'choices': [ 'disable', 'enable' ], 'type': 'str' }, 'fwpolicy-implicit-log': { 'required': False, 'revision': { '7.2.0': True, '6.2.0': False, '6.2.2': False, '6.2.6': False, '6.2.7': False, '6.2.8': False, '6.2.9': False, '6.2.10': False, '6.4.1': False, '6.4.3': False, '6.4.4': False, '6.4.6': False, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'choices': [ 'disable', 'enable' ], 'type': 'str' }, 'fwpolicy6-implicit-log': { 'required': False, 'revision': { '7.2.0': True, '6.2.0': False, '6.2.2': False, '6.2.6': False, '6.2.7': False, '6.2.8': False, '6.2.9': False, '6.2.10': False, '6.4.1': False, '6.4.3': False, '6.4.4': False, '6.4.6': False, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'choices': [ 'disable', 'enable' ], 'type': 'str' }, 'inspection-mode': { 'required': False, 'revision': { '7.2.0': True, '6.2.0': False, '6.2.2': False, '6.2.6': False, '6.2.7': False, '6.2.8': False, '6.2.9': False, '6.2.10': False, '6.4.1': False, '6.4.3': False, '6.4.4': False, '6.4.6': False, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'choices': [ 'proxy', 'flow' ], 'type': 'str' }, 'ngfw-mode': { 'required': False, 'revision': { '7.2.0': True, '6.2.0': False, '6.2.2': False, '6.2.6': False, '6.2.7': False, '6.2.8': False, '6.2.9': False, '6.2.10': False, '6.4.1': False, '6.4.3': False, '6.4.4': False, '6.4.6': False, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'choices': [ 'profile-based', 'policy-based' ], 'type': 'str' }, 'policy-offload-level': { 'required': False, 'revision': { '7.2.0': True, '6.2.0': False, '6.2.2': False, '6.2.6': False, '6.2.7': False, '6.2.8': False, '6.2.9': False, '6.2.10': False, '6.4.1': False, '6.4.3': False, '6.4.4': False, '6.4.6': False, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'choices': [ 'disable', 'default', 'dos-offload', 'full-offload' ], 'type': 'str' }, 'ssl-ssh-profile': { 'required': False, 'revision': { '7.2.0': True, '6.2.0': False, '6.2.2': False, '6.2.6': False, '6.2.7': False, '6.2.8': False, '6.2.9': False, '6.2.10': False, '6.4.1': False, '6.4.3': False, '6.4.4': False, '6.4.6': False, '6.4.7': True, '6.4.8': True, '6.4.9': True, '6.4.10': True, '6.4.11': True, '7.0.1': True, '7.0.2': True, '7.0.3': True, '7.0.4': True, '7.0.5': True, '7.0.6': True, '7.0.7': True, '7.2.1': True, '7.2.2': True, '7.4.0': True }, 'type': 'str' } } } } } } params_validation_blob = [] check_galaxy_version(module_arg_spec) module = AnsibleModule(argument_spec=check_parameter_bypass(module_arg_spec, 'pm_pkg'), supports_check_mode=False) fmgr = None if module._socket_path: connection = Connection(module._socket_path) connection.set_option('access_token', module.params['access_token'] if 'access_token' in module.params else None) connection.set_option('enable_log', module.params['enable_log'] if 'enable_log' in module.params else False) connection.set_option('forticloud_access_token', module.params['forticloud_access_token'] if 'forticloud_access_token' in module.params else None) fmgr = NAPIManager(jrpc_urls, perobject_jrpc_urls, module_primary_key, url_params, module, connection, top_level_schema_name='data') fmgr.validate_parameters(params_validation_blob) fmgr.process_curd(argument_specs=module_arg_spec) else: module.fail_json(msg='MUST RUN IN HTTPAPI MODE') module.exit_json(meta=module.params) if __name__ == '__main__': main()