Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
ansible / fortinet / fortimanager / plugins / modules / fmgr_system_global.py
Size: Mime:
#!/usr/bin/python
from __future__ import absolute_import, division, print_function
# Copyright 2019-2021 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_system_global
short_description: Global range attributes.
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.10"
author:
    - Link Zheng (@chillancezen)
    - Jie Xue (@JieX19)
    - 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:
    enable_log:
        description: Enable/Disable logging for task
        required: false
        type: bool
        default: false
    proposed_method:
        description: The overridden method for the underlying Json RPC request
        required: false
        type: str
        choices:
          - update
          - set
          - add
    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
    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
    state:
        description: the directive to create, update or delete an object
        type: str
        required: true
        choices:
          - present
          - absent
    rc_succeeded:
        description: the rc codes list with which the conditions to succeed will be overriden
        type: list
        required: false
    rc_failed:
        description: the rc codes list with which the conditions to fail will be overriden
        type: list
        required: false
    system_global:
        description: the top level parameters set
        required: false
        type: dict
        suboptions:
            admin-lockout-duration:
                type: int
                default: 60
                description: 'Lockout duration(sec) for administration.'
            admin-lockout-threshold:
                type: int
                default: 3
                description: 'Lockout threshold for administration.'
            adom-mode:
                type: str
                default: 'normal'
                description:
                 - 'ADOM mode.'
                 - 'normal - Normal ADOM mode.'
                 - 'advanced - Advanced ADOM mode.'
                choices:
                    - 'normal'
                    - 'advanced'
            adom-rev-auto-delete:
                type: str
                default: 'by-revisions'
                description:
                 - 'Auto delete features for old ADOM revisions.'
                 - 'disable - Disable auto delete function for ADOM revision.'
                 - 'by-revisions - Auto delete ADOM revisions by maximum number of revisions.'
                 - 'by-days - Auto delete ADOM revisions by maximum days.'
                choices:
                    - 'disable'
                    - 'by-revisions'
                    - 'by-days'
            adom-rev-max-backup-revisions:
                type: int
                default: 5
                description: 'Maximum number of ADOM revisions to backup.'
            adom-rev-max-days:
                type: int
                default: 30
                description: 'Number of days to keep old ADOM revisions.'
            adom-rev-max-revisions:
                type: int
                default: 120
                description: 'Maximum number of ADOM revisions to keep.'
            adom-select:
                type: str
                default: 'enable'
                description:
                 - 'Enable/disable select ADOM after login.'
                 - 'disable - Disable select ADOM after login.'
                 - 'enable - Enable select ADOM after login.'
                choices:
                    - 'disable'
                    - 'enable'
            adom-status:
                type: str
                default: 'disable'
                description:
                 - 'ADOM status.'
                 - 'disable - Disable ADOM mode.'
                 - 'enable - Enable ADOM mode.'
                choices:
                    - 'disable'
                    - 'enable'
            clt-cert-req:
                type: str
                default: 'disable'
                description:
                 - 'Require client certificate for GUI login.'
                 - 'disable - Disable setting.'
                 - 'enable - Require client certificate for GUI login.'
                 - 'optional - Optional client certificate for GUI login.'
                choices:
                    - 'disable'
                    - 'enable'
                    - 'optional'
            console-output:
                type: str
                default: 'standard'
                description:
                 - 'Console output mode.'
                 - 'standard - Standard output.'
                 - 'more - More page output.'
                choices:
                    - 'standard'
                    - 'more'
            country-flag:
                type: str
                default: 'enable'
                description:
                 - 'Country flag Status.'
                 - 'disable - Disable country flag icon beside ip address.'
                 - 'enable - Enable country flag icon beside ip address.'
                choices:
                    - 'disable'
                    - 'enable'
            create-revision:
                type: str
                default: 'disable'
                description:
                 - 'Enable/disable create revision by default.'
                 - 'disable - Disable create revision by default.'
                 - 'enable - Enable create revision by default.'
                choices:
                    - 'disable'
                    - 'enable'
            daylightsavetime:
                type: str
                default: 'enable'
                description:
                 - 'Enable/disable daylight saving time.'
                 - 'disable - Disable setting.'
                 - 'enable - Enable setting.'
                choices:
                    - 'disable'
                    - 'enable'
            default-disk-quota:
                type: int
                default: 1000
                description: 'Default disk quota for registered device (MB).'
            detect-unregistered-log-device:
                type: str
                default: 'enable'
                description:
                 - 'Detect unregistered logging device from log message.'
                 - 'disable - Disable attribute function.'
                 - 'enable - Enable attribute function.'
                choices:
                    - 'disable'
                    - 'enable'
            device-view-mode:
                type: str
                default: 'regular'
                description:
                 - 'Set devices/groups view mode.'
                 - 'regular - Regular view mode.'
                 - 'tree - Tree view mode.'
                choices:
                    - 'regular'
                    - 'tree'
            dh-params:
                type: str
                default: '2048'
                description:
                 - 'Minimum size of Diffie-Hellman prime for SSH/HTTPS (bits).'
                 - '1024 - 1024 bits.'
                 - '1536 - 1536 bits.'
                 - '2048 - 2048 bits.'
                 - '3072 - 3072 bits.'
                 - '4096 - 4096 bits.'
                 - '6144 - 6144 bits.'
                 - '8192 - 8192 bits.'
                choices:
                    - '1024'
                    - '1536'
                    - '2048'
                    - '3072'
                    - '4096'
                    - '6144'
                    - '8192'
            disable-module:
                description: 'Disable module list.'
                type: list
                choices:
                 - fortiview-noc
                 - none
                 - fortirecorder
                 - siem
                 - soc
                 - ai
            enc-algorithm:
                type: str
                default: 'high'
                description:
                 - 'SSL communication encryption algorithms.'
                 - 'low - SSL communication using all available encryption algorithms.'
                 - 'medium - SSL communication using high and medium encryption algorithms.'
                 - 'high - SSL communication using high encryption algorithms.'
                choices:
                    - 'low'
                    - 'medium'
                    - 'high'
            faz-status:
                type: str
                default: 'disable'
                description:
                 - 'FAZ status.'
                 - 'disable - Disable FAZ feature.'
                 - 'enable - Enable FAZ feature.'
                choices:
                    - 'disable'
                    - 'enable'
            fgfm-local-cert:
                type: str
                description: 'set the fgfm local certificate.'
            fgfm-ssl-protocol:
                type: str
                default: 'tlsv1.2'
                description:
                 - 'set the lowest SSL protocols for fgfmsd.'
                 - 'sslv3 - set SSLv3 as the lowest version.'
                 - 'tlsv1.0 - set TLSv1.0 as the lowest version.'
                 - 'tlsv1.1 - set TLSv1.1 as the lowest version.'
                 - 'tlsv1.2 - set TLSv1.2 as the lowest version (default).'
                choices:
                    - 'sslv3'
                    - 'tlsv1.0'
                    - 'tlsv1.1'
                    - 'tlsv1.2'
                    - 'tlsv1.3'
            ha-member-auto-grouping:
                type: str
                default: 'enable'
                description:
                 - 'Enable/disable automatically group HA members feature'
                 - 'disable - Disable automatically grouping HA members feature.'
                 - 'enable - Enable automatically grouping HA members only when group name is unique in your network.'
                choices:
                    - 'disable'
                    - 'enable'
            hitcount_concurrent:
                type: int
                default: 100
                description: 'The number of FortiGates that FortiManager polls at one time (10 - 500, default = 100).'
            hitcount_interval:
                type: int
                default: 300
                description: 'The interval for getting hit count from managed FortiGate devices, in seconds (60 - 86400, default = 300).'
            hostname:
                type: str
                default: 'FMG-VM64'
                description: 'System hostname.'
            import-ignore-addr-cmt:
                type: str
                default: 'disable'
                description:
                 - 'Enable/Disable import ignore of address comments.'
                 - 'disable - Disable import ignore of address comments.'
                 - 'enable - Enable import ignore of address comments.'
                choices:
                    - 'disable'
                    - 'enable'
            language:
                type: str
                default: 'english'
                description:
                 - 'System global language.'
                 - 'english - English'
                 - 'simch - Simplified Chinese'
                 - 'japanese - Japanese'
                 - 'korean - Korean'
                 - 'spanish - Spanish'
                 - 'trach - Traditional Chinese'
                choices:
                    - 'english'
                    - 'simch'
                    - 'japanese'
                    - 'korean'
                    - 'spanish'
                    - 'trach'
            latitude:
                type: str
                description: 'fmg location latitude'
            ldap-cache-timeout:
                type: int
                default: 86400
                description: 'LDAP browser cache timeout (seconds).'
            ldapconntimeout:
                type: int
                default: 60000
                description: 'LDAP connection timeout (msec).'
            lock-preempt:
                type: str
                default: 'disable'
                description:
                 - 'Enable/disable ADOM lock override.'
                 - 'disable - Disable lock preempt.'
                 - 'enable - Enable lock preempt.'
                choices:
                    - 'disable'
                    - 'enable'
            log-checksum:
                type: str
                default: 'none'
                description:
                 - 'Record log file hash value, timestamp, and authentication code at transmission or rolling.'
                 - 'none - No record log file checksum.'
                 - 'md5 - Record log files MD5 hash value only.'
                 - 'md5-auth - Record log files MD5 hash value and authentication code.'
                choices:
                    - 'none'
                    - 'md5'
                    - 'md5-auth'
            log-forward-cache-size:
                type: int
                default: 0
                description: 'Log forwarding disk cache size (GB).'
            longitude:
                type: str
                description: 'fmg location longitude'
            max-log-forward:
                type: int
                default: 5
                description: 'Maximum number of log-forward and aggregation settings.'
            max-running-reports:
                type: int
                default: 1
                description: 'Maximum number of reports generating at one time.'
            oftp-ssl-protocol:
                type: str
                default: 'tlsv1.2'
                description:
                 - 'set the lowest SSL protocols for oftpd.'
                 - 'sslv3 - set SSLv3 as the lowest version.'
                 - 'tlsv1.0 - set TLSv1.0 as the lowest version.'
                 - 'tlsv1.1 - set TLSv1.1 as the lowest version.'
                 - 'tlsv1.2 - set TLSv1.2 as the lowest version (default).'
                choices:
                    - 'sslv3'
                    - 'tlsv1.0'
                    - 'tlsv1.1'
                    - 'tlsv1.2'
                    - 'tlsv1.3'
            partial-install:
                type: str
                default: 'disable'
                description:
                 - 'Enable/Disable partial install (install some objects).'
                 - 'disable - Disable partial install function.'
                 - 'enable - Enable partial install function.'
                choices:
                    - 'disable'
                    - 'enable'
            partial-install-force:
                type: str
                default: 'disable'
                description:
                 - 'Enable/Disable partial install when devdb is modified.'
                 - 'disable - Disable partial install when devdb is modified.'
                 - 'enable - Enable partial install when devdb is modified.'
                choices:
                    - 'disable'
                    - 'enable'
            partial-install-rev:
                type: str
                default: 'disable'
                description:
                 - 'Enable/Disable auto creating adom revision for partial install.'
                 - 'disable - Disable partial install revision.'
                 - 'enable - Enable partial install revision.'
                choices:
                    - 'disable'
                    - 'enable'
            perform-improve-by-ha:
                type: str
                default: 'disable'
                description:
                 - 'Enable/Disable performance improvement by distributing tasks to HA slaves.'
                 - 'disable - Disable performance improvement by HA.'
                 - 'enable - Enable performance improvement by HA.'
                choices:
                    - 'disable'
                    - 'enable'
            policy-hit-count:
                type: str
                default: 'disable'
                description:
                 - 'show policy hit count.'
                 - 'disable - Disable policy hit count.'
                 - 'enable - Enable policy hit count.'
                choices:
                    - 'disable'
                    - 'enable'
            policy-object-in-dual-pane:
                type: str
                default: 'disable'
                description:
                 - 'show policies and objects in dual pane.'
                 - 'disable - Disable polices and objects in dual pane.'
                 - 'enable - Enable polices and objects in dual pane.'
                choices:
                    - 'disable'
                    - 'enable'
            pre-login-banner:
                type: str
                default: 'disable'
                description:
                 - 'Enable/disable pre-login banner.'
                 - 'disable - Disable pre-login banner.'
                 - 'enable - Enable pre-login banner.'
                choices:
                    - 'disable'
                    - 'enable'
            pre-login-banner-message:
                type: str
                description: 'Pre-login banner message.'
            remoteauthtimeout:
                type: int
                default: 10
                description: 'Remote authentication (RADIUS/LDAP) timeout (sec).'
            search-all-adoms:
                type: str
                default: 'disable'
                description:
                 - 'Enable/Disable Search all ADOMs for where-used query.'
                 - 'disable - Disable search all ADOMs for where-used queries.'
                 - 'enable - Enable search all ADOMs for where-used queries.'
                choices:
                    - 'disable'
                    - 'enable'
            ssl-low-encryption:
                type: str
                default: 'disable'
                description:
                 - 'SSL low-grade encryption.'
                 - 'disable - Disable SSL low-grade encryption.'
                 - 'enable - Enable SSL low-grade encryption.'
                choices:
                    - 'disable'
                    - 'enable'
            ssl-protocol:
                description: 'SSL protocols.'
                type: list
                choices:
                 - tlsv1.2
                 - tlsv1.1
                 - tlsv1.0
                 - sslv3
                 - tlsv1.3
            ssl-static-key-ciphers:
                type: str
                default: 'enable'
                description:
                 - 'Enable/disable SSL static key ciphers.'
                 - 'disable - Disable setting.'
                 - 'enable - Enable setting.'
                choices:
                    - 'disable'
                    - 'enable'
            task-list-size:
                type: int
                default: 2000
                description: 'Maximum number of completed tasks to keep.'
            tftp:
                type: str
                default: 'disable'
                description:
                 - 'Enable/disable TFTP in `exec restore image` command (disabled by default in FIPS mode)'
                 - 'disable - Disable TFTP'
                 - 'enable - Enable TFTP'
                choices:
                    - 'disable'
                    - 'enable'
            timezone:
                type: str
                default: '04'
                description:
                 - 'Time zone.'
                 - '00 - (GMT-12:00) Eniwetak, Kwajalein.'
                 - '01 - (GMT-11:00) Midway Island, Samoa.'
                 - '02 - (GMT-10:00) Hawaii.'
                 - '03 - (GMT-9:00) Alaska.'
                 - '04 - (GMT-8:00) Pacific Time (US & Canada).'
                 - '05 - (GMT-7:00) Arizona.'
                 - '06 - (GMT-7:00) Mountain Time (US & Canada).'
                 - '07 - (GMT-6:00) Central America.'
                 - '08 - (GMT-6:00) Central Time (US & Canada).'
                 - '09 - (GMT-6:00) Mexico City.'
                 - '10 - (GMT-6:00) Saskatchewan.'
                 - '11 - (GMT-5:00) Bogota, Lima, Quito.'
                 - '12 - (GMT-5:00) Eastern Time (US & Canada).'
                 - '13 - (GMT-5:00) Indiana (East).'
                 - '14 - (GMT-4:00) Atlantic Time (Canada).'
                 - '15 - (GMT-4:00) La Paz.'
                 - '16 - (GMT-4:00) Santiago.'
                 - '17 - (GMT-3:30) Newfoundland.'
                 - '18 - (GMT-3:00) Brasilia.'
                 - '19 - (GMT-3:00) Buenos Aires, Georgetown.'
                 - '20 - (GMT-3:00) Nuuk (Greenland).'
                 - '21 - (GMT-2:00) Mid-Atlantic.'
                 - '22 - (GMT-1:00) Azores.'
                 - '23 - (GMT-1:00) Cape Verde Is.'
                 - '24 - (GMT) Monrovia.'
                 - '25 - (GMT) Greenwich Mean Time:Dublin, Edinburgh, Lisbon, London.'
                 - '26 - (GMT+1:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna.'
                 - '27 - (GMT+1:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague.'
                 - '28 - (GMT+1:00) Brussels, Copenhagen, Madrid, Paris.'
                 - '29 - (GMT+1:00) Sarajevo, Skopje, Warsaw, Zagreb.'
                 - '30 - (GMT+1:00) West Central Africa.'
                 - '31 - (GMT+2:00) Athens, Sofia, Vilnius.'
                 - '32 - (GMT+2:00) Bucharest.'
                 - '33 - (GMT+2:00) Cairo.'
                 - '34 - (GMT+2:00) Harare, Pretoria.'
                 - '35 - (GMT+2:00) Helsinki, Riga,Tallinn.'
                 - '36 - (GMT+2:00) Jerusalem.'
                 - '37 - (GMT+3:00) Baghdad.'
                 - '38 - (GMT+3:00) Kuwait, Riyadh.'
                 - '39 - (GMT+3:00) St.Petersburg, Volgograd.'
                 - '40 - (GMT+3:00) Nairobi.'
                 - '41 - (GMT+3:30) Tehran.'
                 - '42 - (GMT+4:00) Abu Dhabi, Muscat.'
                 - '43 - (GMT+4:00) Baku.'
                 - '44 - (GMT+4:30) Kabul.'
                 - '45 - (GMT+5:00) Ekaterinburg.'
                 - '46 - (GMT+5:00) Islamabad, Karachi,Tashkent.'
                 - '47 - (GMT+5:30) Calcutta, Chennai, Mumbai, New Delhi.'
                 - '48 - (GMT+5:45) Kathmandu.'
                 - '49 - (GMT+6:00) Almaty, Novosibirsk.'
                 - '50 - (GMT+6:00) Astana, Dhaka.'
                 - '51 - (GMT+6:00) Sri Jayawardenapura.'
                 - '52 - (GMT+6:30) Rangoon.'
                 - '53 - (GMT+7:00) Bangkok, Hanoi, Jakarta.'
                 - '54 - (GMT+7:00) Krasnoyarsk.'
                 - '55 - (GMT+8:00) Beijing,ChongQing, HongKong,Urumqi.'
                 - '56 - (GMT+8:00) Irkutsk, Ulaanbaatar.'
                 - '57 - (GMT+8:00) Kuala Lumpur, Singapore.'
                 - '58 - (GMT+8:00) Perth.'
                 - '59 - (GMT+8:00) Taipei.'
                 - '60 - (GMT+9:00) Osaka, Sapporo, Tokyo, Seoul.'
                 - '61 - (GMT+9:00) Yakutsk.'
                 - '62 - (GMT+9:30) Adelaide.'
                 - '63 - (GMT+9:30) Darwin.'
                 - '64 - (GMT+10:00) Brisbane.'
                 - '65 - (GMT+10:00) Canberra, Melbourne, Sydney.'
                 - '66 - (GMT+10:00) Guam, Port Moresby.'
                 - '67 - (GMT+10:00) Hobart.'
                 - '68 - (GMT+10:00) Vladivostok.'
                 - '69 - (GMT+11:00) Magadan.'
                 - '70 - (GMT+11:00) Solomon Is., New Caledonia.'
                 - '71 - (GMT+12:00) Auckland, Wellington.'
                 - '72 - (GMT+12:00) Fiji, Kamchatka, Marshall Is.'
                 - '73 - (GMT+13:00) Nukualofa.'
                 - '74 - (GMT-4:30) Caracas.'
                 - '75 - (GMT+1:00) Namibia.'
                 - '76 - (GMT-5:00) Brazil-Acre.'
                 - '77 - (GMT-4:00) Brazil-West.'
                 - '78 - (GMT-3:00) Brazil-East.'
                 - '79 - (GMT-2:00) Brazil-DeNoronha.'
                 - '80 - (GMT+14:00) Kiritimati.'
                 - '81 - (GMT-7:00) Baja California Sur, Chihuahua.'
                 - '82 - (GMT+12:45) Chatham Islands.'
                 - '83 - (GMT+3:00) Minsk.'
                 - '84 - (GMT+13:00) Samoa.'
                 - '85 - (GMT+3:00) Istanbul.'
                 - '86 - (GMT-4:00) Paraguay.'
                 - '87 - (GMT) Casablanca.'
                 - '88 - (GMT+3:00) Moscow.'
                 - '89 - (GMT) Greenwich Mean Time.'
                choices:
                    - '00'
                    - '01'
                    - '02'
                    - '03'
                    - '04'
                    - '05'
                    - '06'
                    - '07'
                    - '08'
                    - '09'
                    - '10'
                    - '11'
                    - '12'
                    - '13'
                    - '14'
                    - '15'
                    - '16'
                    - '17'
                    - '18'
                    - '19'
                    - '20'
                    - '21'
                    - '22'
                    - '23'
                    - '24'
                    - '25'
                    - '26'
                    - '27'
                    - '28'
                    - '29'
                    - '30'
                    - '31'
                    - '32'
                    - '33'
                    - '34'
                    - '35'
                    - '36'
                    - '37'
                    - '38'
                    - '39'
                    - '40'
                    - '41'
                    - '42'
                    - '43'
                    - '44'
                    - '45'
                    - '46'
                    - '47'
                    - '48'
                    - '49'
                    - '50'
                    - '51'
                    - '52'
                    - '53'
                    - '54'
                    - '55'
                    - '56'
                    - '57'
                    - '58'
                    - '59'
                    - '60'
                    - '61'
                    - '62'
                    - '63'
                    - '64'
                    - '65'
                    - '66'
                    - '67'
                    - '68'
                    - '69'
                    - '70'
                    - '71'
                    - '72'
                    - '73'
                    - '74'
                    - '75'
                    - '76'
                    - '77'
                    - '78'
                    - '79'
                    - '80'
                    - '81'
                    - '82'
                    - '83'
                    - '84'
                    - '85'
                    - '86'
                    - '87'
                    - '88'
                    - '89'
                    - '90'
                    - '91'
            tunnel-mtu:
                type: int
                default: 1500
                description: 'Maximum transportation unit(68 - 9000).'
            usg:
                type: str
                default: 'disable'
                description:
                 - 'Enable/disable Fortiguard server restriction.'
                 - 'disable - Contact any Fortiguard server'
                 - 'enable - Contact Fortiguard server in USA only'
                choices:
                    - 'disable'
                    - 'enable'
            vdom-mirror:
                type: str
                default: 'disable'
                description:
                 - 'VDOM mirror.'
                 - 'disable - Disable VDOM mirror function.'
                 - 'enable - Enable VDOM mirror function.'
                choices:
                    - 'disable'
                    - 'enable'
            webservice-proto:
                description: 'Web Service connection support SSL protocols.'
                type: list
                choices:
                 - tlsv1.2
                 - tlsv1.1
                 - tlsv1.0
                 - sslv3
                 - sslv2
                 - tlsv1.3
            workflow-max-sessions:
                type: int
                default: 500
                description: 'Maximum number of workflow sessions per ADOM (minimum 100).'
            workspace-mode:
                type: str
                default: 'disabled'
                description:
                 - 'Set workspace mode (ADOM Locking).'
                 - 'disabled - Workspace disabled.'
                 - 'normal - Workspace lock mode.'
                 - 'workflow - Workspace workflow mode.'
                choices:
                    - 'disabled'
                    - 'normal'
                    - 'workflow'
                    - 'per-adom'
            clone-name-option:
                type: str
                default: 'default'
                description:
                 - 'set the clone object names option.'
                 - 'default - Add a prefix of Clone of to the clone name.'
                 - 'keep - Keep the original name for user to edit.'
                choices:
                    - 'default'
                    - 'keep'
            fgfm-ca-cert:
                type: str
                description: 'set the extra fgfm CA certificates.'
            mc-policy-disabled-adoms:
                description: 'Mc-Policy-Disabled-Adoms.'
                type: list
                suboptions:
                    adom-name:
                        type: str
                        description: 'Adom names.'
            policy-object-icon:
                type: str
                default: 'disable'
                description:
                 - 'show icons of policy objects.'
                 - 'disable - Disable icon of policy objects.'
                 - 'enable - Enable icon of policy objects.'
                choices:
                    - 'disable'
                    - 'enable'
            private-data-encryption:
                type: str
                default: 'disable'
                description:
                 - 'Enable/disable private data encryption using an AES 128-bit key.'
                 - 'disable - Disable private data encryption using an AES 128-bit key.'
                 - 'enable - Enable private data encryption using an AES 128-bit key.'
                choices:
                    - 'disable'
                    - 'enable'
            per-policy-lock:
                type: str
                default: 'disable'
                description:
                 - 'Enable/Disable per policy lock.'
                 - 'disable - Disable per policy lock.'
                 - 'enable - Enable per policy lock.'
                choices:
                    - 'disable'
                    - 'enable'
            multiple-steps-upgrade-in-autolink:
                type: str
                default: 'disable'
                description:
                 - 'Enable/disable multiple steps upgade in autolink process'
                 - 'disable - Disable setting.'
                 - 'enable - Enable setting.'
                choices:
                    - 'disable'
                    - 'enable'
            object-revision-db-max:
                type: int
                default: 100000
                description: 'Maximum revisions for a single database (10,000-1,000,000 default 100,000).'
            object-revision-mandatory-note:
                type: str
                default: 'enable'
                description:
                 - 'Enable/disable mandatory note when create revision.'
                 - 'disable - Disable object revision.'
                 - 'enable - Enable object revision.'
                choices:
                    - 'disable'
                    - 'enable'
            object-revision-object-max:
                type: int
                default: 100
                description: 'Maximum revisions for a single object (10-1000 default 100).'
            object-revision-status:
                type: str
                default: 'enable'
                description:
                 - 'Enable/disable create revision when modify objects.'
                 - 'disable - Disable object revision.'
                 - 'enable - Enable object revision.'
                choices:
                    - 'disable'
                    - 'enable'

'''

EXAMPLES = '''
 - hosts: fortimanager00
   collections:
     - fortinet.fortimanager
   connection: httpapi
   vars:
      ansible_httpapi_use_ssl: True
      ansible_httpapi_validate_certs: False
      ansible_httpapi_port: 443
   tasks:
    - name: enable workspace mode
      fmgr_system_global:
         system_global:
              adom-status: enable
              workspace-mode: normal
 
    - name: Script table.
      fmgr_dvmdb_script:
         bypass_validation: False
         adom: root
         state: present
         workspace_locking_adom: 'root'
         dvmdb_script:
            content: 'ansiblt-test'
            name: 'fooscript000'
            target: device_database
            type: cli
 
    - name: verify script table
      fmgr_fact:
         facts:
            selector: 'dvmdb_script'
            params:
                adom: 'root'
                script: 'fooscript000'
      register: info
      failed_when: info.meta.response_code != 0
 
    - name: restore workspace mode
      fmgr_system_global:
         system_global:
             adom-status: enable
             workspace-mode: disabled

'''

RETURN = '''
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_message:
    description: The descriptive message of the api response
    type: str
    returned: always
    sample: OK.

'''
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 = [
        '/cli/global/system/global'
    ]

    perobject_jrpc_urls = [
        '/cli/global/system/global/{global}'
    ]

    url_params = []
    module_primary_key = None
    module_arg_spec = {
        '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'
            ]
        },
        'bypass_validation': {
            'type': 'bool',
            'required': False,
            'default': False
        },
        'workspace_locking_adom': {
            'type': 'str',
            'required': False
        },
        'workspace_locking_timeout': {
            'type': 'int',
            'required': False,
            'default': 300
        },
        'rc_succeeded': {
            'required': False,
            'type': 'list'
        },
        'rc_failed': {
            'required': False,
            'type': 'list'
        },
        'system_global': {
            'required': False,
            'type': 'dict',
            '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
            },
            'options': {
                'admin-lockout-duration': {
                    '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
                    },
                    'type': 'int'
                },
                'admin-lockout-threshold': {
                    '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
                    },
                    'type': 'int'
                },
                'adom-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
                    },
                    'choices': [
                        'normal',
                        'advanced'
                    ],
                    'type': 'str'
                },
                'adom-rev-auto-delete': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'by-revisions',
                        'by-days'
                    ],
                    'type': 'str'
                },
                'adom-rev-max-backup-revisions': {
                    '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
                    },
                    'type': 'int'
                },
                'adom-rev-max-days': {
                    '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
                    },
                    'type': 'int'
                },
                'adom-rev-max-revisions': {
                    '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
                    },
                    'type': 'int'
                },
                'adom-select': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'adom-status': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'clt-cert-req': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable',
                        'optional'
                    ],
                    'type': 'str'
                },
                'console-output': {
                    '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
                    },
                    'choices': [
                        'standard',
                        'more'
                    ],
                    'type': 'str'
                },
                'country-flag': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'create-revision': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'daylightsavetime': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'default-disk-quota': {
                    'required': False,
                    'revision': {
                        '6.0.0': True,
                        '6.2.1': False,
                        '6.2.3': False,
                        '6.2.5': False,
                        '6.4.0': False,
                        '6.4.2': False,
                        '6.4.5': False,
                        '7.0.0': False
                    },
                    'type': 'int'
                },
                'detect-unregistered-log-device': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'device-view-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
                    },
                    'choices': [
                        'regular',
                        'tree'
                    ],
                    'type': 'str'
                },
                'dh-params': {
                    '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
                    },
                    'choices': [
                        '1024',
                        '1536',
                        '2048',
                        '3072',
                        '4096',
                        '6144',
                        '8192'
                    ],
                    'type': 'str'
                },
                'disable-module': {
                    '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
                    },
                    'type': 'list',
                    'choices': [
                        'fortiview-noc',
                        'none',
                        'fortirecorder',
                        'siem',
                        'soc',
                        'ai'
                    ]
                },
                'enc-algorithm': {
                    '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
                    },
                    'choices': [
                        'low',
                        'medium',
                        'high'
                    ],
                    'type': 'str'
                },
                'faz-status': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'fgfm-local-cert': {
                    '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
                    },
                    'type': 'str'
                },
                'fgfm-ssl-protocol': {
                    '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
                    },
                    'choices': [
                        'sslv3',
                        'tlsv1.0',
                        'tlsv1.1',
                        'tlsv1.2',
                        'tlsv1.3'
                    ],
                    'type': 'str'
                },
                'ha-member-auto-grouping': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'hitcount_concurrent': {
                    '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': False,
                        '7.0.0': False
                    },
                    'type': 'int'
                },
                'hitcount_interval': {
                    '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': False,
                        '7.0.0': False
                    },
                    'type': 'int'
                },
                'hostname': {
                    '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
                    },
                    'type': 'str'
                },
                'import-ignore-addr-cmt': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'language': {
                    '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
                    },
                    'choices': [
                        'english',
                        'simch',
                        'japanese',
                        'korean',
                        'spanish',
                        'trach'
                    ],
                    'type': 'str'
                },
                'latitude': {
                    '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
                    },
                    'type': 'str'
                },
                'ldap-cache-timeout': {
                    '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
                    },
                    'type': 'int'
                },
                'ldapconntimeout': {
                    '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
                    },
                    'type': 'int'
                },
                'lock-preempt': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'log-checksum': {
                    '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
                    },
                    'choices': [
                        'none',
                        'md5',
                        'md5-auth'
                    ],
                    'type': 'str'
                },
                'log-forward-cache-size': {
                    '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
                    },
                    'type': 'int'
                },
                'longitude': {
                    '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
                    },
                    'type': 'str'
                },
                'max-log-forward': {
                    '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
                    },
                    'type': 'int'
                },
                'max-running-reports': {
                    '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
                    },
                    'type': 'int'
                },
                'oftp-ssl-protocol': {
                    '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
                    },
                    'choices': [
                        'sslv3',
                        'tlsv1.0',
                        'tlsv1.1',
                        'tlsv1.2',
                        'tlsv1.3'
                    ],
                    'type': 'str'
                },
                'partial-install': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'partial-install-force': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'partial-install-rev': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'perform-improve-by-ha': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'policy-hit-count': {
                    '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': False,
                        '7.0.0': False
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'policy-object-in-dual-pane': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'pre-login-banner': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'pre-login-banner-message': {
                    '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
                    },
                    'type': 'str'
                },
                'remoteauthtimeout': {
                    '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
                    },
                    'type': 'int'
                },
                'search-all-adoms': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'ssl-low-encryption': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'ssl-protocol': {
                    '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
                    },
                    'type': 'list',
                    'choices': [
                        'tlsv1.2',
                        'tlsv1.1',
                        'tlsv1.0',
                        'sslv3',
                        'tlsv1.3'
                    ]
                },
                'ssl-static-key-ciphers': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'task-list-size': {
                    '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
                    },
                    'type': 'int'
                },
                'tftp': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'timezone': {
                    '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
                    },
                    'choices': [
                        '00',
                        '01',
                        '02',
                        '03',
                        '04',
                        '05',
                        '06',
                        '07',
                        '08',
                        '09',
                        '10',
                        '11',
                        '12',
                        '13',
                        '14',
                        '15',
                        '16',
                        '17',
                        '18',
                        '19',
                        '20',
                        '21',
                        '22',
                        '23',
                        '24',
                        '25',
                        '26',
                        '27',
                        '28',
                        '29',
                        '30',
                        '31',
                        '32',
                        '33',
                        '34',
                        '35',
                        '36',
                        '37',
                        '38',
                        '39',
                        '40',
                        '41',
                        '42',
                        '43',
                        '44',
                        '45',
                        '46',
                        '47',
                        '48',
                        '49',
                        '50',
                        '51',
                        '52',
                        '53',
                        '54',
                        '55',
                        '56',
                        '57',
                        '58',
                        '59',
                        '60',
                        '61',
                        '62',
                        '63',
                        '64',
                        '65',
                        '66',
                        '67',
                        '68',
                        '69',
                        '70',
                        '71',
                        '72',
                        '73',
                        '74',
                        '75',
                        '76',
                        '77',
                        '78',
                        '79',
                        '80',
                        '81',
                        '82',
                        '83',
                        '84',
                        '85',
                        '86',
                        '87',
                        '88',
                        '89',
                        '90',
                        '91'
                    ],
                    'type': 'str'
                },
                'tunnel-mtu': {
                    '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
                    },
                    'type': 'int'
                },
                'usg': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'vdom-mirror': {
                    '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
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'webservice-proto': {
                    '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
                    },
                    'type': 'list',
                    'choices': [
                        'tlsv1.2',
                        'tlsv1.1',
                        'tlsv1.0',
                        'sslv3',
                        'sslv2',
                        'tlsv1.3'
                    ]
                },
                'workflow-max-sessions': {
                    '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
                    },
                    'type': 'int'
                },
                'workspace-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
                    },
                    'choices': [
                        'disabled',
                        'normal',
                        'workflow',
                        'per-adom'
                    ],
                    'type': 'str'
                },
                'clone-name-option': {
                    'required': False,
                    'revision': {
                        '6.2.3': True,
                        '6.2.5': True,
                        '6.4.0': True,
                        '6.4.2': True,
                        '6.4.5': True,
                        '7.0.0': True
                    },
                    'choices': [
                        'default',
                        'keep'
                    ],
                    'type': 'str'
                },
                'fgfm-ca-cert': {
                    'required': False,
                    'revision': {
                        '6.2.3': True,
                        '6.2.5': True,
                        '6.4.0': True,
                        '6.4.2': True,
                        '6.4.5': True,
                        '7.0.0': True
                    },
                    'type': 'str'
                },
                'mc-policy-disabled-adoms': {
                    'required': False,
                    'revision': {
                        '6.2.3': True,
                        '6.2.5': True,
                        '6.4.0': True,
                        '6.4.2': True,
                        '6.4.5': True,
                        '7.0.0': True
                    },
                    'type': 'list',
                    'options': {
                        'adom-name': {
                            'required': False,
                            'revision': {
                                '6.2.3': True,
                                '6.2.5': True,
                                '6.4.0': True,
                                '6.4.2': True,
                                '6.4.5': True,
                                '7.0.0': True
                            },
                            'type': 'str'
                        }
                    }
                },
                'policy-object-icon': {
                    'required': False,
                    'revision': {
                        '6.2.3': True,
                        '6.2.5': True,
                        '6.4.0': True,
                        '6.4.2': True,
                        '6.4.5': True,
                        '7.0.0': True
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'private-data-encryption': {
                    'required': False,
                    'revision': {
                        '6.2.5': True,
                        '6.4.0': True,
                        '6.4.2': True,
                        '6.4.5': True,
                        '7.0.0': True
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'per-policy-lock': {
                    'required': False,
                    'revision': {
                        '6.4.0': True,
                        '6.4.2': True,
                        '6.4.5': True,
                        '7.0.0': True
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'multiple-steps-upgrade-in-autolink': {
                    'required': False,
                    'revision': {
                        '6.4.5': True,
                        '7.0.0': True
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'object-revision-db-max': {
                    'required': False,
                    'revision': {
                        '7.0.0': True
                    },
                    'type': 'int'
                },
                'object-revision-mandatory-note': {
                    'required': False,
                    'revision': {
                        '7.0.0': True
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                },
                'object-revision-object-max': {
                    'required': False,
                    'revision': {
                        '7.0.0': True
                    },
                    'type': 'int'
                },
                'object-revision-status': {
                    'required': False,
                    'revision': {
                        '7.0.0': True
                    },
                    'choices': [
                        'disable',
                        'enable'
                    ],
                    'type': 'str'
                }
            }

        }
    }

    params_validation_blob = []
    check_galaxy_version(module_arg_spec)
    module = AnsibleModule(argument_spec=check_parameter_bypass(module_arg_spec, 'system_global'),
                           supports_check_mode=False)

    fmgr = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        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_partial_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()