1#!/usr/local/bin/python3.8
2from __future__ import (absolute_import, division, print_function)
3# Copyright 2019-2020 Fortinet, Inc.
4#
5# This program is free software: you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation, either version 3 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program.  If not, see <https://www.gnu.org/licenses/>.
17
18__metaclass__ = type
19
20ANSIBLE_METADATA = {'status': ['preview'],
21                    'supported_by': 'community',
22                    'metadata_version': '1.1'}
23
24DOCUMENTATION = '''
25---
26module: fortios_webfilter_profile
27short_description: Configure Web filter profiles in Fortinet's FortiOS and FortiGate.
28description:
29    - This module is able to configure a FortiGate or FortiOS (FOS) device by allowing the
30      user to set and modify webfilter feature and profile category.
31      Examples include all parameters and values need to be adjusted to datasources before usage.
32      Tested with FOS v6.0.0
33version_added: "2.10"
34author:
35    - Link Zheng (@chillancezen)
36    - Jie Xue (@JieX19)
37    - Hongbin Lu (@fgtdev-hblu)
38    - Frank Shen (@frankshen01)
39    - Miguel Angel Munoz (@mamunozgonzalez)
40    - Nicolas Thomas (@thomnico)
41notes:
42    - Legacy fortiosapi has been deprecated, httpapi is the preferred way to run playbooks
43
44requirements:
45    - ansible>=2.9.0
46options:
47    access_token:
48        description:
49            - Token-based authentication.
50              Generated from GUI of Fortigate.
51        type: str
52        required: false
53    enable_log:
54        description:
55            - Enable/Disable logging for task.
56        type: bool
57        required: false
58        default: false
59    vdom:
60        description:
61            - Virtual domain, among those defined previously. A vdom is a
62              virtual instance of the FortiGate that can be configured and
63              used as a different unit.
64        type: str
65        default: root
66
67    state:
68        description:
69            - Indicates whether to create or remove the object.
70        type: str
71        required: true
72        choices:
73            - present
74            - absent
75    webfilter_profile:
76        description:
77            - Configure Web filter profiles.
78        default: null
79        type: dict
80        suboptions:
81            antiphish:
82                description:
83                    - AntiPhishing profile.
84                type: dict
85                suboptions:
86                    authentication:
87                        description:
88                            - Authentication methods.
89                        type: str
90                        choices:
91                            - domain-controller
92                            - ldap
93                    check_basic_auth:
94                        description:
95                            - Enable/disable checking of HTTP Basic Auth field for known credentials.
96                        type: str
97                        choices:
98                            - enable
99                            - disable
100                    check_uri:
101                        description:
102                            - Enable/disable checking of GET URI parameters for known credentials.
103                        type: str
104                        choices:
105                            - enable
106                            - disable
107                    check_username_only:
108                        description:
109                            - Enable/disable acting only on valid username credentials. Action will be taken for valid usernames regardless of password
110                               validity.
111                        type: str
112                        choices:
113                            - enable
114                            - disable
115                    custom_patterns:
116                        description:
117                            - Custom username and password regex patterns.
118                        type: list
119                        suboptions:
120                            category:
121                                description:
122                                    - Category that the pattern matches.
123                                type: str
124                                choices:
125                                    - username
126                                    - password
127                            pattern:
128                                description:
129                                    - Target pattern.
130                                required: true
131                                type: str
132                            type:
133                                description:
134                                    - Pattern will be treated either as a regex pattern or literal string.
135                                type: str
136                                choices:
137                                    - regex
138                                    - literal
139                    default_action:
140                        description:
141                            - Action to be taken when there is no matching rule.
142                        type: str
143                        choices:
144                            - exempt
145                            - log
146                            - block
147                    domain_controller:
148                        description:
149                            - Domain for which to verify received credentials against. Source credential-store.domain-controller.server-name.
150                        type: str
151                    inspection_entries:
152                        description:
153                            - AntiPhishing entries.
154                        type: list
155                        suboptions:
156                            action:
157                                description:
158                                    - Action to be taken upon an AntiPhishing match.
159                                type: str
160                                choices:
161                                    - exempt
162                                    - log
163                                    - block
164                            fortiguard_category:
165                                description:
166                                    - FortiGuard category to match.
167                                type: str
168                            name:
169                                description:
170                                    - Inspection target name.
171                                required: true
172                                type: str
173                    ldap:
174                        description:
175                            - LDAP server for which to verify received credentials against. Source user.ldap.name.
176                        type: str
177                    max_body_len:
178                        description:
179                            - Maximum size of a POST body to check for credentials.
180                        type: int
181                    status:
182                        description:
183                            - Toggle AntiPhishing functionality.
184                        type: str
185                        choices:
186                            - enable
187                            - disable
188            comment:
189                description:
190                    - Optional comments.
191                type: str
192            extended_log:
193                description:
194                    - Enable/disable extended logging for web filtering.
195                type: str
196                choices:
197                    - enable
198                    - disable
199            feature_set:
200                description:
201                    - Flow/proxy feature set.
202                type: str
203                choices:
204                    - flow
205                    - proxy
206            file_filter:
207                description:
208                    - File filter.
209                type: dict
210                suboptions:
211                    entries:
212                        description:
213                            - File filter entries.
214                        type: list
215                        suboptions:
216                            action:
217                                description:
218                                    - Action taken for matched file.
219                                type: str
220                                choices:
221                                    - log
222                                    - block
223                            comment:
224                                description:
225                                    - Comment.
226                                type: str
227                            direction:
228                                description:
229                                    - Match files transmitted in the session"s originating or reply direction.
230                                type: str
231                                choices:
232                                    - incoming
233                                    - outgoing
234                                    - any
235                            file_type:
236                                description:
237                                    - Select file type.
238                                type: list
239                                suboptions:
240                                    name:
241                                        description:
242                                            - File type name. Source antivirus.filetype.name.
243                                        required: true
244                                        type: str
245                            filter:
246                                description:
247                                    - Add a file filter.
248                                required: true
249                                type: str
250                            password_protected:
251                                description:
252                                    - Match password-protected files.
253                                type: str
254                                choices:
255                                    - yes
256                                    - any
257                            protocol:
258                                description:
259                                    - Protocols to apply with.
260                                type: str
261                                choices:
262                                    - http
263                                    - ftp
264                    log:
265                        description:
266                            - Enable/disable file filter logging.
267                        type: str
268                        choices:
269                            - enable
270                            - disable
271                    scan_archive_contents:
272                        description:
273                            - Enable/disable file filter archive contents scan.
274                        type: str
275                        choices:
276                            - enable
277                            - disable
278                    status:
279                        description:
280                            - Enable/disable file filter.
281                        type: str
282                        choices:
283                            - enable
284                            - disable
285            ftgd_wf:
286                description:
287                    - FortiGuard Web Filter settings.
288                type: dict
289                suboptions:
290                    exempt_quota:
291                        description:
292                            - Do not stop quota for these categories.
293                        type: str
294                    filters:
295                        description:
296                            - FortiGuard filters.
297                        type: list
298                        suboptions:
299                            action:
300                                description:
301                                    - Action to take for matches.
302                                type: str
303                                choices:
304                                    - block
305                                    - authenticate
306                                    - monitor
307                                    - warning
308                            auth_usr_grp:
309                                description:
310                                    - Groups with permission to authenticate.
311                                type: str
312                                suboptions:
313                                    name:
314                                        description:
315                                            - User group name. Source user.group.name.
316                                        required: true
317                                        type: str
318                            category:
319                                description:
320                                    - Categories and groups the filter examines.
321                                type: int
322                            id:
323                                description:
324                                    - ID number.
325                                required: true
326                                type: int
327                            log:
328                                description:
329                                    - Enable/disable logging.
330                                type: str
331                                choices:
332                                    - enable
333                                    - disable
334                            override_replacemsg:
335                                description:
336                                    - Override replacement message.
337                                type: str
338                            warn_duration:
339                                description:
340                                    - Duration of warnings.
341                                type: str
342                            warning_duration_type:
343                                description:
344                                    - Re-display warning after closing browser or after a timeout.
345                                type: str
346                                choices:
347                                    - session
348                                    - timeout
349                            warning_prompt:
350                                description:
351                                    - Warning prompts in each category or each domain.
352                                type: str
353                                choices:
354                                    - per-domain
355                                    - per-category
356                    max_quota_timeout:
357                        description:
358                            - Maximum FortiGuard quota used by single page view in seconds (excludes streams).
359                        type: int
360                    options:
361                        description:
362                            - Options for FortiGuard Web Filter.
363                        type: str
364                        choices:
365                            - error-allow
366                            - rate-server-ip
367                            - connect-request-bypass
368                            - ftgd-disable
369                    ovrd:
370                        description:
371                            - Allow web filter profile overrides.
372                        type: str
373                    quota:
374                        description:
375                            - FortiGuard traffic quota settings.
376                        type: list
377                        suboptions:
378                            category:
379                                description:
380                                    - FortiGuard categories to apply quota to (category action must be set to monitor).
381                                type: str
382                            duration:
383                                description:
384                                    - Duration of quota.
385                                type: str
386                            id:
387                                description:
388                                    - ID number.
389                                required: true
390                                type: int
391                            override_replacemsg:
392                                description:
393                                    - Override replacement message.
394                                type: str
395                            type:
396                                description:
397                                    - Quota type.
398                                type: str
399                                choices:
400                                    - time
401                                    - traffic
402                            unit:
403                                description:
404                                    - Traffic quota unit of measurement.
405                                type: str
406                                choices:
407                                    - B
408                                    - KB
409                                    - MB
410                                    - GB
411                            value:
412                                description:
413                                    - Traffic quota value.
414                                type: int
415                    rate_crl_urls:
416                        description:
417                            - Enable/disable rating CRL by URL.
418                        type: str
419                        choices:
420                            - disable
421                            - enable
422                    rate_css_urls:
423                        description:
424                            - Enable/disable rating CSS by URL.
425                        type: str
426                        choices:
427                            - disable
428                            - enable
429                    rate_image_urls:
430                        description:
431                            - Enable/disable rating images by URL.
432                        type: str
433                        choices:
434                            - disable
435                            - enable
436                    rate_javascript_urls:
437                        description:
438                            - Enable/disable rating JavaScript by URL.
439                        type: str
440                        choices:
441                            - disable
442                            - enable
443            https_replacemsg:
444                description:
445                    - Enable replacement messages for HTTPS.
446                type: str
447                choices:
448                    - enable
449                    - disable
450            inspection_mode:
451                description:
452                    - Web filtering inspection mode.
453                type: str
454                choices:
455                    - proxy
456                    - flow-based
457            log_all_url:
458                description:
459                    - Enable/disable logging all URLs visited.
460                type: str
461                choices:
462                    - enable
463                    - disable
464            name:
465                description:
466                    - Profile name.
467                required: true
468                type: str
469            options:
470                description:
471                    - Options.
472                type: list
473                choices:
474                    - activexfilter
475                    - cookiefilter
476                    - javafilter
477                    - block-invalid-url
478                    - jscript
479                    - js
480                    - vbs
481                    - unknown
482                    - intrinsic
483                    - wf-referer
484                    - wf-cookie
485                    - per-user-bwl
486                    - per-user-bal
487            override:
488                description:
489                    - Web Filter override settings.
490                type: dict
491                suboptions:
492                    ovrd_cookie:
493                        description:
494                            - Allow/deny browser-based (cookie) overrides.
495                        type: str
496                        choices:
497                            - allow
498                            - deny
499                    ovrd_dur:
500                        description:
501                            - Override duration.
502                        type: str
503                    ovrd_dur_mode:
504                        description:
505                            - Override duration mode.
506                        type: str
507                        choices:
508                            - constant
509                            - ask
510                    ovrd_scope:
511                        description:
512                            - Override scope.
513                        type: str
514                        choices:
515                            - user
516                            - user-group
517                            - ip
518                            - browser
519                            - ask
520                    ovrd_user_group:
521                        description:
522                            - User groups with permission to use the override.
523                        type: str
524                        suboptions:
525                            name:
526                                description:
527                                    - User group name. Source user.group.name.
528                                required: true
529                                type: str
530                    profile:
531                        description:
532                            - Web filter profile with permission to create overrides.
533                        type: list
534                        suboptions:
535                            name:
536                                description:
537                                    - Web profile. Source webfilter.profile.name.
538                                required: true
539                                type: str
540                    profile_attribute:
541                        description:
542                            - Profile attribute to retrieve from the RADIUS server.
543                        type: str
544                        choices:
545                            - User-Name
546                            - NAS-IP-Address
547                            - Framed-IP-Address
548                            - Framed-IP-Netmask
549                            - Filter-Id
550                            - Login-IP-Host
551                            - Reply-Message
552                            - Callback-Number
553                            - Callback-Id
554                            - Framed-Route
555                            - Framed-IPX-Network
556                            - Class
557                            - Called-Station-Id
558                            - Calling-Station-Id
559                            - NAS-Identifier
560                            - Proxy-State
561                            - Login-LAT-Service
562                            - Login-LAT-Node
563                            - Login-LAT-Group
564                            - Framed-AppleTalk-Zone
565                            - Acct-Session-Id
566                            - Acct-Multi-Session-Id
567                    profile_type:
568                        description:
569                            - Override profile type.
570                        type: str
571                        choices:
572                            - list
573                            - radius
574            ovrd_perm:
575                description:
576                    - Permitted override types.
577                type: list
578                choices:
579                    - bannedword-override
580                    - urlfilter-override
581                    - fortiguard-wf-override
582                    - contenttype-check-override
583            post_action:
584                description:
585                    - Action taken for HTTP POST traffic.
586                type: str
587                choices:
588                    - normal
589                    - block
590            replacemsg_group:
591                description:
592                    - Replacement message group. Source system.replacemsg-group.name.
593                type: str
594            url_extraction:
595                description:
596                    - Configure URL Extraction
597                type: dict
598                suboptions:
599                    redirect_header:
600                        description:
601                            - HTTP header name to use for client redirect on blocked requests
602                        type: str
603                    redirect_no_content:
604                        description:
605                            - Enable / Disable empty message-body entity in HTTP response
606                        type: str
607                        choices:
608                            - enable
609                            - disable
610                    redirect_url:
611                        description:
612                            - HTTP header value to use for client redirect on blocked requests
613                        type: str
614                    server_fqdn:
615                        description:
616                            - URL extraction server FQDN (fully qualified domain name)
617                        type: str
618                    status:
619                        description:
620                            - Enable URL Extraction
621                        type: str
622                        choices:
623                            - enable
624                            - disable
625            web:
626                description:
627                    - Web content filtering settings.
628                type: dict
629                suboptions:
630                    allowlist:
631                        description:
632                            - FortiGuard allowlist settings.
633                        type: list
634                        choices:
635                            - exempt-av
636                            - exempt-webcontent
637                            - exempt-activex-java-cookie
638                            - exempt-dlp
639                            - exempt-rangeblock
640                            - extended-log-others
641                    blacklist:
642                        description:
643                            - Enable/disable automatic addition of URLs detected by FortiSandbox to blacklist.
644                        type: str
645                        choices:
646                            - enable
647                            - disable
648                    blocklist:
649                        description:
650                            - Enable/disable automatic addition of URLs detected by FortiSandbox to blocklist.
651                        type: str
652                        choices:
653                            - enable
654                            - disable
655                    bword_table:
656                        description:
657                            - Banned word table ID. Source webfilter.content.id.
658                        type: int
659                    bword_threshold:
660                        description:
661                            - Banned word score threshold.
662                        type: int
663                    content_header_list:
664                        description:
665                            - Content header list. Source webfilter.content-header.id.
666                        type: int
667                    keyword_match:
668                        description:
669                            - Search keywords to log when match is found.
670                        type: str
671                        suboptions:
672                            pattern:
673                                description:
674                                    - Pattern/keyword to search for.
675                                required: true
676                                type: str
677                    log_search:
678                        description:
679                            - Enable/disable logging all search phrases.
680                        type: str
681                        choices:
682                            - enable
683                            - disable
684                    safe_search:
685                        description:
686                            - Safe search type.
687                        type: list
688                        choices:
689                            - url
690                            - header
691                    urlfilter_table:
692                        description:
693                            - URL filter table ID. Source webfilter.urlfilter.id.
694                        type: int
695                    whitelist:
696                        description:
697                            - FortiGuard whitelist settings.
698                        type: list
699                        choices:
700                            - exempt-av
701                            - exempt-webcontent
702                            - exempt-activex-java-cookie
703                            - exempt-dlp
704                            - exempt-rangeblock
705                            - extended-log-others
706                    youtube_restrict:
707                        description:
708                            - YouTube EDU filter level.
709                        type: str
710                        choices:
711                            - none
712                            - strict
713                            - moderate
714            web_antiphishing_log:
715                description:
716                    - Enable/disable logging of AntiPhishing checks.
717                type: str
718                choices:
719                    - enable
720                    - disable
721            web_content_log:
722                description:
723                    - Enable/disable logging logging blocked web content.
724                type: str
725                choices:
726                    - enable
727                    - disable
728            web_extended_all_action_log:
729                description:
730                    - Enable/disable extended any filter action logging for web filtering.
731                type: str
732                choices:
733                    - enable
734                    - disable
735            web_filter_activex_log:
736                description:
737                    - Enable/disable logging ActiveX.
738                type: str
739                choices:
740                    - enable
741                    - disable
742            web_filter_applet_log:
743                description:
744                    - Enable/disable logging Java applets.
745                type: str
746                choices:
747                    - enable
748                    - disable
749            web_filter_command_block_log:
750                description:
751                    - Enable/disable logging blocked commands.
752                type: str
753                choices:
754                    - enable
755                    - disable
756            web_filter_cookie_log:
757                description:
758                    - Enable/disable logging cookie filtering.
759                type: str
760                choices:
761                    - enable
762                    - disable
763            web_filter_cookie_removal_log:
764                description:
765                    - Enable/disable logging blocked cookies.
766                type: str
767                choices:
768                    - enable
769                    - disable
770            web_filter_js_log:
771                description:
772                    - Enable/disable logging Java scripts.
773                type: str
774                choices:
775                    - enable
776                    - disable
777            web_filter_jscript_log:
778                description:
779                    - Enable/disable logging JScripts.
780                type: str
781                choices:
782                    - enable
783                    - disable
784            web_filter_referer_log:
785                description:
786                    - Enable/disable logging referrers.
787                type: str
788                choices:
789                    - enable
790                    - disable
791            web_filter_unknown_log:
792                description:
793                    - Enable/disable logging unknown scripts.
794                type: str
795                choices:
796                    - enable
797                    - disable
798            web_filter_vbs_log:
799                description:
800                    - Enable/disable logging VBS scripts.
801                type: str
802                choices:
803                    - enable
804                    - disable
805            web_ftgd_err_log:
806                description:
807                    - Enable/disable logging rating errors.
808                type: str
809                choices:
810                    - enable
811                    - disable
812            web_ftgd_quota_usage:
813                description:
814                    - Enable/disable logging daily quota usage.
815                type: str
816                choices:
817                    - enable
818                    - disable
819            web_invalid_domain_log:
820                description:
821                    - Enable/disable logging invalid domain names.
822                type: str
823                choices:
824                    - enable
825                    - disable
826            web_url_log:
827                description:
828                    - Enable/disable logging URL filtering.
829                type: str
830                choices:
831                    - enable
832                    - disable
833            wisp:
834                description:
835                    - Enable/disable web proxy WISP.
836                type: str
837                choices:
838                    - enable
839                    - disable
840            wisp_algorithm:
841                description:
842                    - WISP server selection algorithm.
843                type: str
844                choices:
845                    - primary-secondary
846                    - round-robin
847                    - auto-learning
848            wisp_servers:
849                description:
850                    - WISP servers.
851                type: list
852                suboptions:
853                    name:
854                        description:
855                            - Server name. Source web-proxy.wisp.name.
856                        required: true
857                        type: str
858            youtube_channel_filter:
859                description:
860                    - YouTube channel filter.
861                type: list
862                suboptions:
863                    channel_id:
864                        description:
865                            - YouTube channel ID to be filtered.
866                        type: str
867                    comment:
868                        description:
869                            - Comment.
870                        type: str
871                    id:
872                        description:
873                            - ID.
874                        required: true
875                        type: int
876            youtube_channel_status:
877                description:
878                    - YouTube channel filter status.
879                type: str
880                choices:
881                    - disable
882                    - blacklist
883                    - whitelist
884'''
885
886EXAMPLES = '''
887- hosts: fortigates
888  collections:
889    - fortinet.fortios
890  connection: httpapi
891  vars:
892   vdom: "root"
893   ansible_httpapi_use_ssl: yes
894   ansible_httpapi_validate_certs: no
895   ansible_httpapi_port: 443
896  tasks:
897  - name: Configure Web filter profiles.
898    fortios_webfilter_profile:
899      vdom:  "{{ vdom }}"
900      state: "present"
901      access_token: "<your_own_value>"
902      webfilter_profile:
903        antiphish:
904            authentication: "domain-controller"
905            check_basic_auth: "enable"
906            check_uri: "enable"
907            check_username_only: "enable"
908            custom_patterns:
909             -
910                category: "username"
911                pattern: "<your_own_value>"
912                type: "regex"
913            default_action: "exempt"
914            domain_controller: "<your_own_value> (source credential-store.domain-controller.server-name)"
915            inspection_entries:
916             -
917                action: "exempt"
918                fortiguard_category: "<your_own_value>"
919                name: "default_name_17"
920            ldap: "<your_own_value> (source user.ldap.name)"
921            max_body_len: "19"
922            status: "enable"
923        comment: "Optional comments."
924        extended_log: "enable"
925        feature_set: "flow"
926        file_filter:
927            entries:
928             -
929                action: "log"
930                comment: "Comment."
931                direction: "incoming"
932                file_type:
933                 -
934                    name: "default_name_30 (source antivirus.filetype.name)"
935                filter: "<your_own_value>"
936                password_protected: "yes"
937                protocol: "http"
938            log: "enable"
939            scan_archive_contents: "enable"
940            status: "enable"
941        ftgd_wf:
942            exempt_quota: "<your_own_value>"
943            filters:
944             -
945                action: "block"
946                auth_usr_grp:
947                 -
948                    name: "default_name_42 (source user.group.name)"
949                category: "43"
950                id:  "44"
951                log: "enable"
952                override_replacemsg: "<your_own_value>"
953                warn_duration: "<your_own_value>"
954                warning_duration_type: "session"
955                warning_prompt: "per-domain"
956            max_quota_timeout: "50"
957            options: "error-allow"
958            ovrd: "<your_own_value>"
959            quota:
960             -
961                category: "<your_own_value>"
962                duration: "<your_own_value>"
963                id:  "56"
964                override_replacemsg: "<your_own_value>"
965                type: "time"
966                unit: "B"
967                value: "60"
968            rate_crl_urls: "disable"
969            rate_css_urls: "disable"
970            rate_image_urls: "disable"
971            rate_javascript_urls: "disable"
972        https_replacemsg: "enable"
973        inspection_mode: "proxy"
974        log_all_url: "enable"
975        name: "default_name_68"
976        options: "activexfilter"
977        override:
978            ovrd_cookie: "allow"
979            ovrd_dur: "<your_own_value>"
980            ovrd_dur_mode: "constant"
981            ovrd_scope: "user"
982            ovrd_user_group:
983             -
984                name: "default_name_76 (source user.group.name)"
985            profile:
986             -
987                name: "default_name_78 (source webfilter.profile.name)"
988            profile_attribute: "User-Name"
989            profile_type: "list"
990        ovrd_perm: "bannedword-override"
991        post_action: "normal"
992        replacemsg_group: "<your_own_value> (source system.replacemsg-group.name)"
993        url_extraction:
994            redirect_header: "<your_own_value>"
995            redirect_no_content: "enable"
996            redirect_url: "<your_own_value>"
997            server_fqdn: "<your_own_value>"
998            status: "enable"
999        web:
1000            allowlist: "exempt-av"
1001            blacklist: "enable"
1002            blocklist: "enable"
1003            bword_table: "94 (source webfilter.content.id)"
1004            bword_threshold: "95"
1005            content_header_list: "96 (source webfilter.content-header.id)"
1006            keyword_match:
1007             -
1008                pattern: "<your_own_value>"
1009            log_search: "enable"
1010            safe_search: "url"
1011            urlfilter_table: "101 (source webfilter.urlfilter.id)"
1012            whitelist: "exempt-av"
1013            youtube_restrict: "none"
1014        web_antiphishing_log: "enable"
1015        web_content_log: "enable"
1016        web_extended_all_action_log: "enable"
1017        web_filter_activex_log: "enable"
1018        web_filter_applet_log: "enable"
1019        web_filter_command_block_log: "enable"
1020        web_filter_cookie_log: "enable"
1021        web_filter_cookie_removal_log: "enable"
1022        web_filter_js_log: "enable"
1023        web_filter_jscript_log: "enable"
1024        web_filter_referer_log: "enable"
1025        web_filter_unknown_log: "enable"
1026        web_filter_vbs_log: "enable"
1027        web_ftgd_err_log: "enable"
1028        web_ftgd_quota_usage: "enable"
1029        web_invalid_domain_log: "enable"
1030        web_url_log: "enable"
1031        wisp: "enable"
1032        wisp_algorithm: "primary-secondary"
1033        wisp_servers:
1034         -
1035            name: "default_name_124 (source web-proxy.wisp.name)"
1036        youtube_channel_filter:
1037         -
1038            channel_id: "<your_own_value>"
1039            comment: "Comment."
1040            id:  "128"
1041        youtube_channel_status: "disable"
1042
1043'''
1044
1045RETURN = '''
1046build:
1047  description: Build number of the fortigate image
1048  returned: always
1049  type: str
1050  sample: '1547'
1051http_method:
1052  description: Last method used to provision the content into FortiGate
1053  returned: always
1054  type: str
1055  sample: 'PUT'
1056http_status:
1057  description: Last result given by FortiGate on last operation applied
1058  returned: always
1059  type: str
1060  sample: "200"
1061mkey:
1062  description: Master key (id) used in the last call to FortiGate
1063  returned: success
1064  type: str
1065  sample: "id"
1066name:
1067  description: Name of the table used to fulfill the request
1068  returned: always
1069  type: str
1070  sample: "urlfilter"
1071path:
1072  description: Path of the table used to fulfill the request
1073  returned: always
1074  type: str
1075  sample: "webfilter"
1076revision:
1077  description: Internal revision number
1078  returned: always
1079  type: str
1080  sample: "17.0.2.10658"
1081serial:
1082  description: Serial number of the unit
1083  returned: always
1084  type: str
1085  sample: "FGVMEVYYQT3AB5352"
1086status:
1087  description: Indication of the operation's result
1088  returned: always
1089  type: str
1090  sample: "success"
1091vdom:
1092  description: Virtual domain used
1093  returned: always
1094  type: str
1095  sample: "root"
1096version:
1097  description: Version of the FortiGate
1098  returned: always
1099  type: str
1100  sample: "v5.6.3"
1101
1102'''
1103from ansible.module_utils.basic import AnsibleModule
1104from ansible.module_utils.connection import Connection
1105from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import FortiOSHandler
1106from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import check_legacy_fortiosapi
1107from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import schema_to_module_spec
1108from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import check_schema_versioning
1109from ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.common import FAIL_SOCKET_MSG
1110from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.comparison import is_same_comparison
1111from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.comparison import serialize
1112
1113
1114def filter_webfilter_profile_data(json):
1115    option_list = ['antiphish', 'comment', 'extended_log',
1116                   'feature_set', 'file_filter', 'ftgd_wf',
1117                   'https_replacemsg', 'inspection_mode', 'log_all_url',
1118                   'name', 'options', 'override',
1119                   'ovrd_perm', 'post_action', 'replacemsg_group',
1120                   'url_extraction', 'web', 'web_antiphishing_log',
1121                   'web_content_log', 'web_extended_all_action_log', 'web_filter_activex_log',
1122                   'web_filter_applet_log', 'web_filter_command_block_log', 'web_filter_cookie_log',
1123                   'web_filter_cookie_removal_log', 'web_filter_js_log', 'web_filter_jscript_log',
1124                   'web_filter_referer_log', 'web_filter_unknown_log', 'web_filter_vbs_log',
1125                   'web_ftgd_err_log', 'web_ftgd_quota_usage', 'web_invalid_domain_log',
1126                   'web_url_log', 'wisp', 'wisp_algorithm',
1127                   'wisp_servers', 'youtube_channel_filter', 'youtube_channel_status']
1128    dictionary = {}
1129
1130    for attribute in option_list:
1131        if attribute in json and json[attribute] is not None:
1132            dictionary[attribute] = json[attribute]
1133
1134    return dictionary
1135
1136
1137def flatten_single_path(data, path, index):
1138    if not data or index == len(path) or path[index] not in data or not data[path[index]]:
1139        return
1140
1141    if index == len(path) - 1:
1142        data[path[index]] = ' '.join(str(elem) for elem in data[path[index]])
1143    elif isinstance(data[path[index]], list):
1144        for value in data[path[index]]:
1145            flatten_single_path(value, path, index + 1)
1146    else:
1147        flatten_single_path(data[path[index]], path, index + 1)
1148
1149
1150def flatten_multilists_attributes(data):
1151    multilist_attrs = [[u'ovrd_perm'], [u'web', u'safe_search'], [u'web', u'whitelist'], [u'web', u'allowlist'], [u'ftgd_wf', u'options'], [u'file_filter',
1152                                                                                                                                            u'entries', u'protocol'], [u'options']]
1153
1154    for attr in multilist_attrs:
1155        flatten_single_path(data, attr, 0)
1156
1157    return data
1158
1159
1160def underscore_to_hyphen(data):
1161    if isinstance(data, list):
1162        for i, elem in enumerate(data):
1163            data[i] = underscore_to_hyphen(elem)
1164    elif isinstance(data, dict):
1165        new_data = {}
1166        for k, v in data.items():
1167            new_data[k.replace('_', '-')] = underscore_to_hyphen(v)
1168        data = new_data
1169
1170    return data
1171
1172
1173def webfilter_profile(data, fos, check_mode=False):
1174
1175    vdom = data['vdom']
1176
1177    state = data['state']
1178
1179    webfilter_profile_data = data['webfilter_profile']
1180    webfilter_profile_data = flatten_multilists_attributes(webfilter_profile_data)
1181    filtered_data = underscore_to_hyphen(filter_webfilter_profile_data(webfilter_profile_data))
1182
1183    # check_mode starts from here
1184    if check_mode:
1185        mkey = fos.get_mkey('system', 'interface', filtered_data, vdom=vdom)
1186        current_data = fos.get('system', 'interface', vdom=vdom, mkey=mkey)
1187        is_existed = current_data and current_data.get('http_status') == 200 \
1188            and isinstance(current_data.get('results'), list) \
1189            and len(current_data['results']) > 0
1190
1191        # 2. if it exists and the state is 'present' then compare current settings with desired
1192        if state == 'present' or state is True:
1193            if mkey is None:
1194                return False, True, filtered_data
1195
1196            # if mkey exists then compare each other
1197            # record exits and they're matched or not
1198            if is_existed:
1199                is_same = is_same_comparison(
1200                    serialize(current_data['results'][0]), serialize(filtered_data))
1201                return False, not is_same, filtered_data
1202
1203            # record does not exist
1204            return False, True, filtered_data
1205
1206        if state == 'absent':
1207            if mkey is None:
1208                return False, False, filtered_data
1209
1210            if is_existed:
1211                return False, True, filtered_data
1212            return False, False, filtered_data
1213
1214        return True, False, {'reason: ': 'Must provide state parameter'}
1215
1216    if state == "present" or state is True:
1217        return fos.set('webfilter',
1218                       'profile',
1219                       data=filtered_data,
1220                       vdom=vdom)
1221
1222    elif state == "absent":
1223        return fos.delete('webfilter',
1224                          'profile',
1225                          mkey=filtered_data['name'],
1226                          vdom=vdom)
1227    else:
1228        fos._module.fail_json(msg='state must be present or absent!')
1229
1230
1231def is_successful_status(status):
1232    return status['status'] == "success" or \
1233        status['http_method'] == "DELETE" and status['http_status'] == 404
1234
1235
1236def fortios_webfilter(data, fos, check_mode):
1237
1238    if data['webfilter_profile']:
1239        resp = webfilter_profile(data, fos, check_mode)
1240    else:
1241        fos._module.fail_json(msg='missing task body: %s' % ('webfilter_profile'))
1242    if check_mode:
1243        return resp
1244    return not is_successful_status(resp), \
1245        resp['status'] == "success" and \
1246        (resp['revision_changed'] if 'revision_changed' in resp else True), \
1247        resp
1248
1249
1250versioned_schema = {
1251    "type": "list",
1252    "children": {
1253        "comment": {
1254            "type": "string",
1255            "revisions": {
1256                "v6.0.0": True,
1257                "v7.0.0": True,
1258                "v6.0.5": True,
1259                "v6.4.4": True,
1260                "v6.4.0": True,
1261                "v6.4.1": True,
1262                "v6.2.0": True,
1263                "v6.2.3": True,
1264                "v6.2.5": True,
1265                "v6.2.7": True,
1266                "v6.0.11": True
1267            }
1268        },
1269        "feature_set": {
1270            "type": "string",
1271            "options": [
1272                {
1273                    "value": "flow",
1274                    "revisions": {
1275                        "v6.4.4": True,
1276                        "v7.0.0": True,
1277                        "v6.4.0": True,
1278                        "v6.4.1": True
1279                    }
1280                },
1281                {
1282                    "value": "proxy",
1283                    "revisions": {
1284                        "v6.4.4": True,
1285                        "v7.0.0": True,
1286                        "v6.4.0": True,
1287                        "v6.4.1": True
1288                    }
1289                }
1290            ],
1291            "revisions": {
1292                "v6.4.4": True,
1293                "v7.0.0": True,
1294                "v6.4.0": True,
1295                "v6.4.1": True
1296            }
1297        },
1298        "web_filter_referer_log": {
1299            "type": "string",
1300            "options": [
1301                {
1302                    "value": "enable",
1303                    "revisions": {
1304                        "v6.0.0": True,
1305                        "v7.0.0": True,
1306                        "v6.0.5": True,
1307                        "v6.4.4": True,
1308                        "v6.4.0": True,
1309                        "v6.4.1": True,
1310                        "v6.2.0": True,
1311                        "v6.2.3": True,
1312                        "v6.2.5": True,
1313                        "v6.2.7": True,
1314                        "v6.0.11": True
1315                    }
1316                },
1317                {
1318                    "value": "disable",
1319                    "revisions": {
1320                        "v6.0.0": True,
1321                        "v7.0.0": True,
1322                        "v6.0.5": True,
1323                        "v6.4.4": True,
1324                        "v6.4.0": True,
1325                        "v6.4.1": True,
1326                        "v6.2.0": True,
1327                        "v6.2.3": True,
1328                        "v6.2.5": True,
1329                        "v6.2.7": True,
1330                        "v6.0.11": True
1331                    }
1332                }
1333            ],
1334            "revisions": {
1335                "v6.0.0": True,
1336                "v7.0.0": True,
1337                "v6.0.5": True,
1338                "v6.4.4": True,
1339                "v6.4.0": True,
1340                "v6.4.1": True,
1341                "v6.2.0": True,
1342                "v6.2.3": True,
1343                "v6.2.5": True,
1344                "v6.2.7": True,
1345                "v6.0.11": True
1346            }
1347        },
1348        "web_filter_activex_log": {
1349            "type": "string",
1350            "options": [
1351                {
1352                    "value": "enable",
1353                    "revisions": {
1354                        "v6.0.0": True,
1355                        "v7.0.0": True,
1356                        "v6.0.5": True,
1357                        "v6.4.4": True,
1358                        "v6.4.0": True,
1359                        "v6.4.1": True,
1360                        "v6.2.0": True,
1361                        "v6.2.3": True,
1362                        "v6.2.5": True,
1363                        "v6.2.7": True,
1364                        "v6.0.11": True
1365                    }
1366                },
1367                {
1368                    "value": "disable",
1369                    "revisions": {
1370                        "v6.0.0": True,
1371                        "v7.0.0": True,
1372                        "v6.0.5": True,
1373                        "v6.4.4": True,
1374                        "v6.4.0": True,
1375                        "v6.4.1": True,
1376                        "v6.2.0": True,
1377                        "v6.2.3": True,
1378                        "v6.2.5": True,
1379                        "v6.2.7": True,
1380                        "v6.0.11": True
1381                    }
1382                }
1383            ],
1384            "revisions": {
1385                "v6.0.0": True,
1386                "v7.0.0": True,
1387                "v6.0.5": True,
1388                "v6.4.4": True,
1389                "v6.4.0": True,
1390                "v6.4.1": True,
1391                "v6.2.0": True,
1392                "v6.2.3": True,
1393                "v6.2.5": True,
1394                "v6.2.7": True,
1395                "v6.0.11": True
1396            }
1397        },
1398        "web_filter_jscript_log": {
1399            "type": "string",
1400            "options": [
1401                {
1402                    "value": "enable",
1403                    "revisions": {
1404                        "v6.0.0": True,
1405                        "v7.0.0": True,
1406                        "v6.0.5": True,
1407                        "v6.4.4": True,
1408                        "v6.4.0": True,
1409                        "v6.4.1": True,
1410                        "v6.2.0": True,
1411                        "v6.2.3": True,
1412                        "v6.2.5": True,
1413                        "v6.2.7": True,
1414                        "v6.0.11": True
1415                    }
1416                },
1417                {
1418                    "value": "disable",
1419                    "revisions": {
1420                        "v6.0.0": True,
1421                        "v7.0.0": True,
1422                        "v6.0.5": True,
1423                        "v6.4.4": True,
1424                        "v6.4.0": True,
1425                        "v6.4.1": True,
1426                        "v6.2.0": True,
1427                        "v6.2.3": True,
1428                        "v6.2.5": True,
1429                        "v6.2.7": True,
1430                        "v6.0.11": True
1431                    }
1432                }
1433            ],
1434            "revisions": {
1435                "v6.0.0": True,
1436                "v7.0.0": True,
1437                "v6.0.5": True,
1438                "v6.4.4": True,
1439                "v6.4.0": True,
1440                "v6.4.1": True,
1441                "v6.2.0": True,
1442                "v6.2.3": True,
1443                "v6.2.5": True,
1444                "v6.2.7": True,
1445                "v6.0.11": True
1446            }
1447        },
1448        "replacemsg_group": {
1449            "type": "string",
1450            "revisions": {
1451                "v6.0.0": True,
1452                "v7.0.0": True,
1453                "v6.0.5": True,
1454                "v6.4.4": True,
1455                "v6.4.0": True,
1456                "v6.4.1": True,
1457                "v6.2.0": True,
1458                "v6.2.3": True,
1459                "v6.2.5": True,
1460                "v6.2.7": True,
1461                "v6.0.11": True
1462            }
1463        },
1464        "web_url_log": {
1465            "type": "string",
1466            "options": [
1467                {
1468                    "value": "enable",
1469                    "revisions": {
1470                        "v6.0.0": True,
1471                        "v7.0.0": True,
1472                        "v6.0.5": True,
1473                        "v6.4.4": True,
1474                        "v6.4.0": True,
1475                        "v6.4.1": True,
1476                        "v6.2.0": True,
1477                        "v6.2.3": True,
1478                        "v6.2.5": True,
1479                        "v6.2.7": True,
1480                        "v6.0.11": True
1481                    }
1482                },
1483                {
1484                    "value": "disable",
1485                    "revisions": {
1486                        "v6.0.0": True,
1487                        "v7.0.0": True,
1488                        "v6.0.5": True,
1489                        "v6.4.4": True,
1490                        "v6.4.0": True,
1491                        "v6.4.1": True,
1492                        "v6.2.0": True,
1493                        "v6.2.3": True,
1494                        "v6.2.5": True,
1495                        "v6.2.7": True,
1496                        "v6.0.11": True
1497                    }
1498                }
1499            ],
1500            "revisions": {
1501                "v6.0.0": True,
1502                "v7.0.0": True,
1503                "v6.0.5": True,
1504                "v6.4.4": True,
1505                "v6.4.0": True,
1506                "v6.4.1": True,
1507                "v6.2.0": True,
1508                "v6.2.3": True,
1509                "v6.2.5": True,
1510                "v6.2.7": True,
1511                "v6.0.11": True
1512            }
1513        },
1514        "wisp_algorithm": {
1515            "type": "string",
1516            "options": [
1517                {
1518                    "value": "primary-secondary",
1519                    "revisions": {
1520                        "v6.0.0": True,
1521                        "v7.0.0": True,
1522                        "v6.0.5": True,
1523                        "v6.4.4": True,
1524                        "v6.4.0": True,
1525                        "v6.4.1": True,
1526                        "v6.2.0": True,
1527                        "v6.2.3": True,
1528                        "v6.2.5": True,
1529                        "v6.2.7": True,
1530                        "v6.0.11": True
1531                    }
1532                },
1533                {
1534                    "value": "round-robin",
1535                    "revisions": {
1536                        "v6.0.0": True,
1537                        "v7.0.0": True,
1538                        "v6.0.5": True,
1539                        "v6.4.4": True,
1540                        "v6.4.0": True,
1541                        "v6.4.1": True,
1542                        "v6.2.0": True,
1543                        "v6.2.3": True,
1544                        "v6.2.5": True,
1545                        "v6.2.7": True,
1546                        "v6.0.11": True
1547                    }
1548                },
1549                {
1550                    "value": "auto-learning",
1551                    "revisions": {
1552                        "v6.0.0": True,
1553                        "v7.0.0": True,
1554                        "v6.0.5": True,
1555                        "v6.4.4": True,
1556                        "v6.4.0": True,
1557                        "v6.4.1": True,
1558                        "v6.2.0": True,
1559                        "v6.2.3": True,
1560                        "v6.2.5": True,
1561                        "v6.2.7": True,
1562                        "v6.0.11": True
1563                    }
1564                }
1565            ],
1566            "revisions": {
1567                "v6.0.0": True,
1568                "v7.0.0": True,
1569                "v6.0.5": True,
1570                "v6.4.4": True,
1571                "v6.4.0": True,
1572                "v6.4.1": True,
1573                "v6.2.0": True,
1574                "v6.2.3": True,
1575                "v6.2.5": True,
1576                "v6.2.7": True,
1577                "v6.0.11": True
1578            }
1579        },
1580        "url_extraction": {
1581            "type": "dict",
1582            "children": {
1583                "status": {
1584                    "type": "string",
1585                    "options": [
1586                        {
1587                            "value": "enable",
1588                            "revisions": {
1589                                "v6.0.0": True,
1590                                "v7.0.0": True,
1591                                "v6.0.5": True,
1592                                "v6.4.4": True,
1593                                "v6.4.0": True,
1594                                "v6.4.1": True,
1595                                "v6.2.0": True,
1596                                "v6.2.3": True,
1597                                "v6.2.5": True,
1598                                "v6.2.7": True,
1599                                "v6.0.11": True
1600                            }
1601                        },
1602                        {
1603                            "value": "disable",
1604                            "revisions": {
1605                                "v6.0.0": True,
1606                                "v7.0.0": True,
1607                                "v6.0.5": True,
1608                                "v6.4.4": True,
1609                                "v6.4.0": True,
1610                                "v6.4.1": True,
1611                                "v6.2.0": True,
1612                                "v6.2.3": True,
1613                                "v6.2.5": True,
1614                                "v6.2.7": True,
1615                                "v6.0.11": True
1616                            }
1617                        }
1618                    ],
1619                    "revisions": {
1620                        "v6.0.0": True,
1621                        "v7.0.0": True,
1622                        "v6.0.5": True,
1623                        "v6.4.4": True,
1624                        "v6.4.0": True,
1625                        "v6.4.1": True,
1626                        "v6.2.0": True,
1627                        "v6.2.3": True,
1628                        "v6.2.5": True,
1629                        "v6.2.7": True,
1630                        "v6.0.11": True
1631                    }
1632                },
1633                "redirect_no_content": {
1634                    "type": "string",
1635                    "options": [
1636                        {
1637                            "value": "enable",
1638                            "revisions": {
1639                                "v6.0.0": True,
1640                                "v7.0.0": True,
1641                                "v6.0.5": True,
1642                                "v6.4.4": True,
1643                                "v6.4.0": True,
1644                                "v6.4.1": True,
1645                                "v6.2.0": True,
1646                                "v6.2.3": True,
1647                                "v6.2.5": True,
1648                                "v6.2.7": True,
1649                                "v6.0.11": True
1650                            }
1651                        },
1652                        {
1653                            "value": "disable",
1654                            "revisions": {
1655                                "v6.0.0": True,
1656                                "v7.0.0": True,
1657                                "v6.0.5": True,
1658                                "v6.4.4": True,
1659                                "v6.4.0": True,
1660                                "v6.4.1": True,
1661                                "v6.2.0": True,
1662                                "v6.2.3": True,
1663                                "v6.2.5": True,
1664                                "v6.2.7": True,
1665                                "v6.0.11": True
1666                            }
1667                        }
1668                    ],
1669                    "revisions": {
1670                        "v6.0.0": True,
1671                        "v7.0.0": True,
1672                        "v6.0.5": True,
1673                        "v6.4.4": True,
1674                        "v6.4.0": True,
1675                        "v6.4.1": True,
1676                        "v6.2.0": True,
1677                        "v6.2.3": True,
1678                        "v6.2.5": True,
1679                        "v6.2.7": True,
1680                        "v6.0.11": True
1681                    }
1682                },
1683                "redirect_url": {
1684                    "type": "string",
1685                    "revisions": {
1686                        "v6.0.0": True,
1687                        "v7.0.0": True,
1688                        "v6.0.5": True,
1689                        "v6.4.4": True,
1690                        "v6.4.0": True,
1691                        "v6.4.1": True,
1692                        "v6.2.0": True,
1693                        "v6.2.3": True,
1694                        "v6.2.5": True,
1695                        "v6.2.7": True,
1696                        "v6.0.11": True
1697                    }
1698                },
1699                "server_fqdn": {
1700                    "type": "string",
1701                    "revisions": {
1702                        "v6.0.0": True,
1703                        "v7.0.0": True,
1704                        "v6.0.5": True,
1705                        "v6.4.4": True,
1706                        "v6.4.0": True,
1707                        "v6.4.1": True,
1708                        "v6.2.0": True,
1709                        "v6.2.3": True,
1710                        "v6.2.5": True,
1711                        "v6.2.7": True,
1712                        "v6.0.11": True
1713                    }
1714                },
1715                "redirect_header": {
1716                    "type": "string",
1717                    "revisions": {
1718                        "v6.0.0": True,
1719                        "v7.0.0": True,
1720                        "v6.0.5": True,
1721                        "v6.4.4": True,
1722                        "v6.4.0": True,
1723                        "v6.4.1": True,
1724                        "v6.2.0": True,
1725                        "v6.2.3": True,
1726                        "v6.2.5": True,
1727                        "v6.2.7": True,
1728                        "v6.0.11": True
1729                    }
1730                }
1731            },
1732            "revisions": {
1733                "v6.0.0": True,
1734                "v7.0.0": False,
1735                "v6.0.5": True,
1736                "v6.4.4": True,
1737                "v6.4.0": True,
1738                "v6.4.1": True,
1739                "v6.2.0": True,
1740                "v6.2.3": True,
1741                "v6.2.5": True,
1742                "v6.2.7": True,
1743                "v6.0.11": True
1744            }
1745        },
1746        "web_filter_unknown_log": {
1747            "type": "string",
1748            "options": [
1749                {
1750                    "value": "enable",
1751                    "revisions": {
1752                        "v6.0.0": True,
1753                        "v7.0.0": True,
1754                        "v6.0.5": True,
1755                        "v6.4.4": True,
1756                        "v6.4.0": True,
1757                        "v6.4.1": True,
1758                        "v6.2.0": True,
1759                        "v6.2.3": True,
1760                        "v6.2.5": True,
1761                        "v6.2.7": True,
1762                        "v6.0.11": True
1763                    }
1764                },
1765                {
1766                    "value": "disable",
1767                    "revisions": {
1768                        "v6.0.0": True,
1769                        "v7.0.0": True,
1770                        "v6.0.5": True,
1771                        "v6.4.4": True,
1772                        "v6.4.0": True,
1773                        "v6.4.1": True,
1774                        "v6.2.0": True,
1775                        "v6.2.3": True,
1776                        "v6.2.5": True,
1777                        "v6.2.7": True,
1778                        "v6.0.11": True
1779                    }
1780                }
1781            ],
1782            "revisions": {
1783                "v6.0.0": True,
1784                "v7.0.0": True,
1785                "v6.0.5": True,
1786                "v6.4.4": True,
1787                "v6.4.0": True,
1788                "v6.4.1": True,
1789                "v6.2.0": True,
1790                "v6.2.3": True,
1791                "v6.2.5": True,
1792                "v6.2.7": True,
1793                "v6.0.11": True
1794            }
1795        },
1796        "ovrd_perm": {
1797            "multiple_values": True,
1798            "type": "list",
1799            "options": [
1800                {
1801                    "value": "bannedword-override",
1802                    "revisions": {
1803                        "v6.0.0": True,
1804                        "v7.0.0": True,
1805                        "v6.0.5": True,
1806                        "v6.4.4": True,
1807                        "v6.4.0": True,
1808                        "v6.4.1": True,
1809                        "v6.2.0": True,
1810                        "v6.2.3": True,
1811                        "v6.2.5": True,
1812                        "v6.2.7": True,
1813                        "v6.0.11": True
1814                    }
1815                },
1816                {
1817                    "value": "urlfilter-override",
1818                    "revisions": {
1819                        "v6.0.0": True,
1820                        "v7.0.0": True,
1821                        "v6.0.5": True,
1822                        "v6.4.4": True,
1823                        "v6.4.0": True,
1824                        "v6.4.1": True,
1825                        "v6.2.0": True,
1826                        "v6.2.3": True,
1827                        "v6.2.5": True,
1828                        "v6.2.7": True,
1829                        "v6.0.11": True
1830                    }
1831                },
1832                {
1833                    "value": "fortiguard-wf-override",
1834                    "revisions": {
1835                        "v6.0.0": True,
1836                        "v7.0.0": True,
1837                        "v6.0.5": True,
1838                        "v6.4.4": True,
1839                        "v6.4.0": True,
1840                        "v6.4.1": True,
1841                        "v6.2.0": True,
1842                        "v6.2.3": True,
1843                        "v6.2.5": True,
1844                        "v6.2.7": True,
1845                        "v6.0.11": True
1846                    }
1847                },
1848                {
1849                    "value": "contenttype-check-override",
1850                    "revisions": {
1851                        "v6.0.0": True,
1852                        "v7.0.0": True,
1853                        "v6.0.5": True,
1854                        "v6.4.4": True,
1855                        "v6.4.0": True,
1856                        "v6.4.1": True,
1857                        "v6.2.0": True,
1858                        "v6.2.3": True,
1859                        "v6.2.5": True,
1860                        "v6.2.7": True,
1861                        "v6.0.11": True
1862                    }
1863                }
1864            ],
1865            "revisions": {
1866                "v6.0.0": True,
1867                "v7.0.0": True,
1868                "v6.0.5": True,
1869                "v6.4.4": True,
1870                "v6.4.0": True,
1871                "v6.4.1": True,
1872                "v6.2.0": True,
1873                "v6.2.3": True,
1874                "v6.2.5": True,
1875                "v6.2.7": True,
1876                "v6.0.11": True
1877            }
1878        },
1879        "web_filter_applet_log": {
1880            "type": "string",
1881            "options": [
1882                {
1883                    "value": "enable",
1884                    "revisions": {
1885                        "v6.0.0": True,
1886                        "v7.0.0": True,
1887                        "v6.0.5": True,
1888                        "v6.4.4": True,
1889                        "v6.4.0": True,
1890                        "v6.4.1": True,
1891                        "v6.2.0": True,
1892                        "v6.2.3": True,
1893                        "v6.2.5": True,
1894                        "v6.2.7": True,
1895                        "v6.0.11": True
1896                    }
1897                },
1898                {
1899                    "value": "disable",
1900                    "revisions": {
1901                        "v6.0.0": True,
1902                        "v7.0.0": True,
1903                        "v6.0.5": True,
1904                        "v6.4.4": True,
1905                        "v6.4.0": True,
1906                        "v6.4.1": True,
1907                        "v6.2.0": True,
1908                        "v6.2.3": True,
1909                        "v6.2.5": True,
1910                        "v6.2.7": True,
1911                        "v6.0.11": True
1912                    }
1913                }
1914            ],
1915            "revisions": {
1916                "v6.0.0": True,
1917                "v7.0.0": True,
1918                "v6.0.5": True,
1919                "v6.4.4": True,
1920                "v6.4.0": True,
1921                "v6.4.1": True,
1922                "v6.2.0": True,
1923                "v6.2.3": True,
1924                "v6.2.5": True,
1925                "v6.2.7": True,
1926                "v6.0.11": True
1927            }
1928        },
1929        "web_filter_cookie_removal_log": {
1930            "type": "string",
1931            "options": [
1932                {
1933                    "value": "enable",
1934                    "revisions": {
1935                        "v6.0.0": True,
1936                        "v7.0.0": True,
1937                        "v6.0.5": True,
1938                        "v6.4.4": True,
1939                        "v6.4.0": True,
1940                        "v6.4.1": True,
1941                        "v6.2.0": True,
1942                        "v6.2.3": True,
1943                        "v6.2.5": True,
1944                        "v6.2.7": True,
1945                        "v6.0.11": True
1946                    }
1947                },
1948                {
1949                    "value": "disable",
1950                    "revisions": {
1951                        "v6.0.0": True,
1952                        "v7.0.0": True,
1953                        "v6.0.5": True,
1954                        "v6.4.4": True,
1955                        "v6.4.0": True,
1956                        "v6.4.1": True,
1957                        "v6.2.0": True,
1958                        "v6.2.3": True,
1959                        "v6.2.5": True,
1960                        "v6.2.7": True,
1961                        "v6.0.11": True
1962                    }
1963                }
1964            ],
1965            "revisions": {
1966                "v6.0.0": True,
1967                "v7.0.0": True,
1968                "v6.0.5": True,
1969                "v6.4.4": True,
1970                "v6.4.0": True,
1971                "v6.4.1": True,
1972                "v6.2.0": True,
1973                "v6.2.3": True,
1974                "v6.2.5": True,
1975                "v6.2.7": True,
1976                "v6.0.11": True
1977            }
1978        },
1979        "web": {
1980            "type": "dict",
1981            "children": {
1982                "bword_threshold": {
1983                    "type": "integer",
1984                    "revisions": {
1985                        "v6.0.0": True,
1986                        "v7.0.0": True,
1987                        "v6.0.5": True,
1988                        "v6.4.4": True,
1989                        "v6.4.0": True,
1990                        "v6.4.1": True,
1991                        "v6.2.0": True,
1992                        "v6.2.3": True,
1993                        "v6.2.5": True,
1994                        "v6.2.7": True,
1995                        "v6.0.11": True
1996                    }
1997                },
1998                "blocklist": {
1999                    "type": "string",
2000                    "options": [
2001                        {
2002                            "value": "enable",
2003                            "revisions": {
2004                                "v7.0.0": True
2005                            }
2006                        },
2007                        {
2008                            "value": "disable",
2009                            "revisions": {
2010                                "v7.0.0": True
2011                            }
2012                        }
2013                    ],
2014                    "revisions": {
2015                        "v7.0.0": True
2016                    }
2017                },
2018                "youtube_restrict": {
2019                    "type": "string",
2020                    "options": [
2021                        {
2022                            "value": "none",
2023                            "revisions": {
2024                                "v6.0.0": True,
2025                                "v6.0.5": True,
2026                                "v6.4.4": True,
2027                                "v6.4.0": True,
2028                                "v6.4.1": True,
2029                                "v6.2.0": True,
2030                                "v6.2.3": True,
2031                                "v6.2.5": True,
2032                                "v6.2.7": True,
2033                                "v6.0.11": True
2034                            }
2035                        },
2036                        {
2037                            "value": "strict",
2038                            "revisions": {
2039                                "v6.0.0": True,
2040                                "v6.0.5": True,
2041                                "v6.4.4": True,
2042                                "v6.4.0": True,
2043                                "v6.4.1": True,
2044                                "v6.2.0": True,
2045                                "v6.2.3": True,
2046                                "v6.2.5": True,
2047                                "v6.2.7": True,
2048                                "v6.0.11": True
2049                            }
2050                        },
2051                        {
2052                            "value": "moderate",
2053                            "revisions": {
2054                                "v6.0.0": True,
2055                                "v6.0.5": True,
2056                                "v6.4.4": True,
2057                                "v6.4.0": True,
2058                                "v6.4.1": True,
2059                                "v6.2.0": True,
2060                                "v6.2.3": True,
2061                                "v6.2.5": True,
2062                                "v6.2.7": True,
2063                                "v6.0.11": True
2064                            }
2065                        }
2066                    ],
2067                    "revisions": {
2068                        "v6.0.0": True,
2069                        "v7.0.0": False,
2070                        "v6.0.5": True,
2071                        "v6.4.4": True,
2072                        "v6.4.0": True,
2073                        "v6.4.1": True,
2074                        "v6.2.0": True,
2075                        "v6.2.3": True,
2076                        "v6.2.5": True,
2077                        "v6.2.7": True,
2078                        "v6.0.11": True
2079                    }
2080                },
2081                "urlfilter_table": {
2082                    "type": "integer",
2083                    "revisions": {
2084                        "v6.0.0": True,
2085                        "v7.0.0": True,
2086                        "v6.0.5": True,
2087                        "v6.4.4": True,
2088                        "v6.4.0": True,
2089                        "v6.4.1": True,
2090                        "v6.2.0": True,
2091                        "v6.2.3": True,
2092                        "v6.2.5": True,
2093                        "v6.2.7": True,
2094                        "v6.0.11": True
2095                    }
2096                },
2097                "bword_table": {
2098                    "type": "integer",
2099                    "revisions": {
2100                        "v6.0.0": True,
2101                        "v7.0.0": True,
2102                        "v6.0.5": True,
2103                        "v6.4.4": True,
2104                        "v6.4.0": True,
2105                        "v6.4.1": True,
2106                        "v6.2.0": True,
2107                        "v6.2.3": True,
2108                        "v6.2.5": True,
2109                        "v6.2.7": True,
2110                        "v6.0.11": True
2111                    }
2112                },
2113                "safe_search": {
2114                    "multiple_values": True,
2115                    "type": "list",
2116                    "options": [
2117                        {
2118                            "value": "url",
2119                            "revisions": {
2120                                "v6.0.0": True,
2121                                "v7.0.0": True,
2122                                "v6.0.5": True,
2123                                "v6.4.4": True,
2124                                "v6.4.0": True,
2125                                "v6.4.1": True,
2126                                "v6.2.0": True,
2127                                "v6.2.3": True,
2128                                "v6.2.5": True,
2129                                "v6.2.7": True,
2130                                "v6.0.11": True
2131                            }
2132                        },
2133                        {
2134                            "value": "header",
2135                            "revisions": {
2136                                "v6.0.0": True,
2137                                "v7.0.0": True,
2138                                "v6.0.5": True,
2139                                "v6.4.4": True,
2140                                "v6.4.0": True,
2141                                "v6.4.1": True,
2142                                "v6.2.0": True,
2143                                "v6.2.3": True,
2144                                "v6.2.5": True,
2145                                "v6.2.7": True,
2146                                "v6.0.11": True
2147                            }
2148                        }
2149                    ],
2150                    "revisions": {
2151                        "v6.0.0": True,
2152                        "v7.0.0": True,
2153                        "v6.0.5": True,
2154                        "v6.4.4": True,
2155                        "v6.4.0": True,
2156                        "v6.4.1": True,
2157                        "v6.2.0": True,
2158                        "v6.2.3": True,
2159                        "v6.2.5": True,
2160                        "v6.2.7": True,
2161                        "v6.0.11": True
2162                    }
2163                },
2164                "whitelist": {
2165                    "multiple_values": True,
2166                    "type": "list",
2167                    "options": [
2168                        {
2169                            "value": "exempt-av",
2170                            "revisions": {
2171                                "v6.0.0": True,
2172                                "v6.0.5": True,
2173                                "v6.4.4": True,
2174                                "v6.4.0": True,
2175                                "v6.4.1": True,
2176                                "v6.2.0": True,
2177                                "v6.2.3": True,
2178                                "v6.2.5": True,
2179                                "v6.2.7": True,
2180                                "v6.0.11": True
2181                            }
2182                        },
2183                        {
2184                            "value": "exempt-webcontent",
2185                            "revisions": {
2186                                "v6.0.0": True,
2187                                "v6.0.5": True,
2188                                "v6.4.4": True,
2189                                "v6.4.0": True,
2190                                "v6.4.1": True,
2191                                "v6.2.0": True,
2192                                "v6.2.3": True,
2193                                "v6.2.5": True,
2194                                "v6.2.7": True,
2195                                "v6.0.11": True
2196                            }
2197                        },
2198                        {
2199                            "value": "exempt-activex-java-cookie",
2200                            "revisions": {
2201                                "v6.0.0": True,
2202                                "v6.0.5": True,
2203                                "v6.4.4": True,
2204                                "v6.4.0": True,
2205                                "v6.4.1": True,
2206                                "v6.2.0": True,
2207                                "v6.2.3": True,
2208                                "v6.2.5": True,
2209                                "v6.2.7": True,
2210                                "v6.0.11": True
2211                            }
2212                        },
2213                        {
2214                            "value": "exempt-dlp",
2215                            "revisions": {
2216                                "v6.0.0": True,
2217                                "v6.0.5": True,
2218                                "v6.4.4": True,
2219                                "v6.4.0": True,
2220                                "v6.4.1": True,
2221                                "v6.2.0": True,
2222                                "v6.2.3": True,
2223                                "v6.2.5": True,
2224                                "v6.2.7": True,
2225                                "v6.0.11": True
2226                            }
2227                        },
2228                        {
2229                            "value": "exempt-rangeblock",
2230                            "revisions": {
2231                                "v6.0.0": True,
2232                                "v6.0.5": True,
2233                                "v6.4.4": True,
2234                                "v6.4.0": True,
2235                                "v6.4.1": True,
2236                                "v6.2.0": True,
2237                                "v6.2.3": True,
2238                                "v6.2.5": True,
2239                                "v6.2.7": True,
2240                                "v6.0.11": True
2241                            }
2242                        },
2243                        {
2244                            "value": "extended-log-others",
2245                            "revisions": {
2246                                "v6.0.0": True,
2247                                "v6.0.5": True,
2248                                "v6.4.4": True,
2249                                "v6.4.0": True,
2250                                "v6.4.1": True,
2251                                "v6.2.0": True,
2252                                "v6.2.3": True,
2253                                "v6.2.5": True,
2254                                "v6.2.7": True,
2255                                "v6.0.11": True
2256                            }
2257                        }
2258                    ],
2259                    "revisions": {
2260                        "v6.0.0": True,
2261                        "v7.0.0": False,
2262                        "v6.0.5": True,
2263                        "v6.4.4": True,
2264                        "v6.4.0": True,
2265                        "v6.4.1": True,
2266                        "v6.2.0": True,
2267                        "v6.2.3": True,
2268                        "v6.2.5": True,
2269                        "v6.2.7": True,
2270                        "v6.0.11": True
2271                    }
2272                },
2273                "content_header_list": {
2274                    "type": "integer",
2275                    "revisions": {
2276                        "v6.0.0": True,
2277                        "v7.0.0": True,
2278                        "v6.0.5": True,
2279                        "v6.4.4": True,
2280                        "v6.4.0": True,
2281                        "v6.4.1": True,
2282                        "v6.2.0": True,
2283                        "v6.2.3": True,
2284                        "v6.2.5": True,
2285                        "v6.2.7": True,
2286                        "v6.0.11": True
2287                    }
2288                },
2289                "allowlist": {
2290                    "multiple_values": True,
2291                    "type": "list",
2292                    "options": [
2293                        {
2294                            "value": "exempt-av",
2295                            "revisions": {
2296                                "v7.0.0": True
2297                            }
2298                        },
2299                        {
2300                            "value": "exempt-webcontent",
2301                            "revisions": {
2302                                "v7.0.0": True
2303                            }
2304                        },
2305                        {
2306                            "value": "exempt-activex-java-cookie",
2307                            "revisions": {
2308                                "v7.0.0": True
2309                            }
2310                        },
2311                        {
2312                            "value": "exempt-dlp",
2313                            "revisions": {
2314                                "v7.0.0": True
2315                            }
2316                        },
2317                        {
2318                            "value": "exempt-rangeblock",
2319                            "revisions": {
2320                                "v7.0.0": True
2321                            }
2322                        },
2323                        {
2324                            "value": "extended-log-others",
2325                            "revisions": {
2326                                "v7.0.0": True
2327                            }
2328                        }
2329                    ],
2330                    "revisions": {
2331                        "v7.0.0": True
2332                    }
2333                },
2334                "blacklist": {
2335                    "type": "string",
2336                    "options": [
2337                        {
2338                            "value": "enable",
2339                            "revisions": {
2340                                "v6.0.0": True,
2341                                "v6.0.5": True,
2342                                "v6.4.4": True,
2343                                "v6.4.0": True,
2344                                "v6.4.1": True,
2345                                "v6.2.0": True,
2346                                "v6.2.3": True,
2347                                "v6.2.5": True,
2348                                "v6.2.7": True,
2349                                "v6.0.11": True
2350                            }
2351                        },
2352                        {
2353                            "value": "disable",
2354                            "revisions": {
2355                                "v6.0.0": True,
2356                                "v6.0.5": True,
2357                                "v6.4.4": True,
2358                                "v6.4.0": True,
2359                                "v6.4.1": True,
2360                                "v6.2.0": True,
2361                                "v6.2.3": True,
2362                                "v6.2.5": True,
2363                                "v6.2.7": True,
2364                                "v6.0.11": True
2365                            }
2366                        }
2367                    ],
2368                    "revisions": {
2369                        "v6.0.0": True,
2370                        "v7.0.0": False,
2371                        "v6.0.5": True,
2372                        "v6.4.4": True,
2373                        "v6.4.0": True,
2374                        "v6.4.1": True,
2375                        "v6.2.0": True,
2376                        "v6.2.3": True,
2377                        "v6.2.5": True,
2378                        "v6.2.7": True,
2379                        "v6.0.11": True
2380                    }
2381                },
2382                "keyword_match": {
2383                    "type": "list",
2384                    "children": {
2385                        "pattern": {
2386                            "type": "string",
2387                            "revisions": {
2388                                "v6.0.0": True,
2389                                "v7.0.0": True,
2390                                "v6.0.5": True,
2391                                "v6.4.4": True,
2392                                "v6.4.0": True,
2393                                "v6.4.1": True,
2394                                "v6.2.0": True,
2395                                "v6.2.3": True,
2396                                "v6.2.5": True,
2397                                "v6.2.7": True,
2398                                "v6.0.11": True
2399                            }
2400                        }
2401                    },
2402                    "revisions": {
2403                        "v6.0.0": True,
2404                        "v7.0.0": True,
2405                        "v6.0.5": True,
2406                        "v6.4.4": True,
2407                        "v6.4.0": True,
2408                        "v6.4.1": True,
2409                        "v6.2.0": True,
2410                        "v6.2.3": True,
2411                        "v6.2.5": True,
2412                        "v6.2.7": True,
2413                        "v6.0.11": True
2414                    }
2415                },
2416                "log_search": {
2417                    "type": "string",
2418                    "options": [
2419                        {
2420                            "value": "enable",
2421                            "revisions": {
2422                                "v6.0.0": True,
2423                                "v7.0.0": True,
2424                                "v6.0.5": True,
2425                                "v6.4.4": True,
2426                                "v6.4.0": True,
2427                                "v6.4.1": True,
2428                                "v6.2.0": True,
2429                                "v6.2.3": True,
2430                                "v6.2.5": True,
2431                                "v6.2.7": True,
2432                                "v6.0.11": True
2433                            }
2434                        },
2435                        {
2436                            "value": "disable",
2437                            "revisions": {
2438                                "v6.0.0": True,
2439                                "v7.0.0": True,
2440                                "v6.0.5": True,
2441                                "v6.4.4": True,
2442                                "v6.4.0": True,
2443                                "v6.4.1": True,
2444                                "v6.2.0": True,
2445                                "v6.2.3": True,
2446                                "v6.2.5": True,
2447                                "v6.2.7": True,
2448                                "v6.0.11": True
2449                            }
2450                        }
2451                    ],
2452                    "revisions": {
2453                        "v6.0.0": True,
2454                        "v7.0.0": True,
2455                        "v6.0.5": True,
2456                        "v6.4.4": True,
2457                        "v6.4.0": True,
2458                        "v6.4.1": True,
2459                        "v6.2.0": True,
2460                        "v6.2.3": True,
2461                        "v6.2.5": True,
2462                        "v6.2.7": True,
2463                        "v6.0.11": True
2464                    }
2465                }
2466            },
2467            "revisions": {
2468                "v6.0.0": True,
2469                "v7.0.0": True,
2470                "v6.0.5": True,
2471                "v6.4.4": True,
2472                "v6.4.0": True,
2473                "v6.4.1": True,
2474                "v6.2.0": True,
2475                "v6.2.3": True,
2476                "v6.2.5": True,
2477                "v6.2.7": True,
2478                "v6.0.11": True
2479            }
2480        },
2481        "web_filter_js_log": {
2482            "type": "string",
2483            "options": [
2484                {
2485                    "value": "enable",
2486                    "revisions": {
2487                        "v6.0.0": True,
2488                        "v7.0.0": True,
2489                        "v6.0.5": True,
2490                        "v6.4.4": True,
2491                        "v6.4.0": True,
2492                        "v6.4.1": True,
2493                        "v6.2.0": True,
2494                        "v6.2.3": True,
2495                        "v6.2.5": True,
2496                        "v6.2.7": True,
2497                        "v6.0.11": True
2498                    }
2499                },
2500                {
2501                    "value": "disable",
2502                    "revisions": {
2503                        "v6.0.0": True,
2504                        "v7.0.0": True,
2505                        "v6.0.5": True,
2506                        "v6.4.4": True,
2507                        "v6.4.0": True,
2508                        "v6.4.1": True,
2509                        "v6.2.0": True,
2510                        "v6.2.3": True,
2511                        "v6.2.5": True,
2512                        "v6.2.7": True,
2513                        "v6.0.11": True
2514                    }
2515                }
2516            ],
2517            "revisions": {
2518                "v6.0.0": True,
2519                "v7.0.0": True,
2520                "v6.0.5": True,
2521                "v6.4.4": True,
2522                "v6.4.0": True,
2523                "v6.4.1": True,
2524                "v6.2.0": True,
2525                "v6.2.3": True,
2526                "v6.2.5": True,
2527                "v6.2.7": True,
2528                "v6.0.11": True
2529            }
2530        },
2531        "web_filter_command_block_log": {
2532            "type": "string",
2533            "options": [
2534                {
2535                    "value": "enable",
2536                    "revisions": {
2537                        "v6.0.0": True,
2538                        "v7.0.0": True,
2539                        "v6.0.5": True,
2540                        "v6.4.4": True,
2541                        "v6.4.0": True,
2542                        "v6.4.1": True,
2543                        "v6.2.0": True,
2544                        "v6.2.3": True,
2545                        "v6.2.5": True,
2546                        "v6.2.7": True,
2547                        "v6.0.11": True
2548                    }
2549                },
2550                {
2551                    "value": "disable",
2552                    "revisions": {
2553                        "v6.0.0": True,
2554                        "v7.0.0": True,
2555                        "v6.0.5": True,
2556                        "v6.4.4": True,
2557                        "v6.4.0": True,
2558                        "v6.4.1": True,
2559                        "v6.2.0": True,
2560                        "v6.2.3": True,
2561                        "v6.2.5": True,
2562                        "v6.2.7": True,
2563                        "v6.0.11": True
2564                    }
2565                }
2566            ],
2567            "revisions": {
2568                "v6.0.0": True,
2569                "v7.0.0": True,
2570                "v6.0.5": True,
2571                "v6.4.4": True,
2572                "v6.4.0": True,
2573                "v6.4.1": True,
2574                "v6.2.0": True,
2575                "v6.2.3": True,
2576                "v6.2.5": True,
2577                "v6.2.7": True,
2578                "v6.0.11": True
2579            }
2580        },
2581        "extended_log": {
2582            "type": "string",
2583            "options": [
2584                {
2585                    "value": "enable",
2586                    "revisions": {
2587                        "v6.0.0": True,
2588                        "v7.0.0": True,
2589                        "v6.0.5": True,
2590                        "v6.4.4": True,
2591                        "v6.4.0": True,
2592                        "v6.4.1": True,
2593                        "v6.2.0": True,
2594                        "v6.2.3": True,
2595                        "v6.2.5": True,
2596                        "v6.2.7": True,
2597                        "v6.0.11": True
2598                    }
2599                },
2600                {
2601                    "value": "disable",
2602                    "revisions": {
2603                        "v6.0.0": True,
2604                        "v7.0.0": True,
2605                        "v6.0.5": True,
2606                        "v6.4.4": True,
2607                        "v6.4.0": True,
2608                        "v6.4.1": True,
2609                        "v6.2.0": True,
2610                        "v6.2.3": True,
2611                        "v6.2.5": True,
2612                        "v6.2.7": True,
2613                        "v6.0.11": True
2614                    }
2615                }
2616            ],
2617            "revisions": {
2618                "v6.0.0": True,
2619                "v7.0.0": True,
2620                "v6.0.5": True,
2621                "v6.4.4": True,
2622                "v6.4.0": True,
2623                "v6.4.1": True,
2624                "v6.2.0": True,
2625                "v6.2.3": True,
2626                "v6.2.5": True,
2627                "v6.2.7": True,
2628                "v6.0.11": True
2629            }
2630        },
2631        "youtube_channel_status": {
2632            "type": "string",
2633            "options": [
2634                {
2635                    "value": "disable",
2636                    "revisions": {
2637                        "v6.0.0": True,
2638                        "v6.0.5": True,
2639                        "v6.4.4": True,
2640                        "v6.4.0": True,
2641                        "v6.4.1": True,
2642                        "v6.2.0": True,
2643                        "v6.2.3": True,
2644                        "v6.2.5": True,
2645                        "v6.2.7": True,
2646                        "v6.0.11": True
2647                    }
2648                },
2649                {
2650                    "value": "blacklist",
2651                    "revisions": {
2652                        "v6.0.0": True,
2653                        "v6.0.5": True,
2654                        "v6.4.4": True,
2655                        "v6.4.0": True,
2656                        "v6.4.1": True,
2657                        "v6.2.0": True,
2658                        "v6.2.3": True,
2659                        "v6.2.5": True,
2660                        "v6.2.7": True,
2661                        "v6.0.11": True
2662                    }
2663                },
2664                {
2665                    "value": "whitelist",
2666                    "revisions": {
2667                        "v6.0.0": True,
2668                        "v6.0.5": True,
2669                        "v6.4.4": True,
2670                        "v6.4.0": True,
2671                        "v6.4.1": True,
2672                        "v6.2.0": True,
2673                        "v6.2.3": True,
2674                        "v6.2.5": True,
2675                        "v6.2.7": True,
2676                        "v6.0.11": True
2677                    }
2678                }
2679            ],
2680            "revisions": {
2681                "v6.0.0": True,
2682                "v7.0.0": False,
2683                "v6.0.5": True,
2684                "v6.4.4": True,
2685                "v6.4.0": True,
2686                "v6.4.1": True,
2687                "v6.2.0": True,
2688                "v6.2.3": True,
2689                "v6.2.5": True,
2690                "v6.2.7": True,
2691                "v6.0.11": True
2692            }
2693        },
2694        "override": {
2695            "type": "dict",
2696            "children": {
2697                "profile": {
2698                    "type": "list",
2699                    "children": {
2700                        "name": {
2701                            "type": "string",
2702                            "revisions": {
2703                                "v6.0.0": True,
2704                                "v7.0.0": True,
2705                                "v6.0.5": True,
2706                                "v6.4.4": True,
2707                                "v6.4.0": True,
2708                                "v6.4.1": True,
2709                                "v6.2.0": True,
2710                                "v6.2.3": True,
2711                                "v6.2.5": True,
2712                                "v6.2.7": True,
2713                                "v6.0.11": True
2714                            }
2715                        }
2716                    },
2717                    "revisions": {
2718                        "v6.0.0": True,
2719                        "v7.0.0": True,
2720                        "v6.0.5": True,
2721                        "v6.4.4": True,
2722                        "v6.4.0": True,
2723                        "v6.4.1": True,
2724                        "v6.2.0": True,
2725                        "v6.2.3": True,
2726                        "v6.2.5": True,
2727                        "v6.2.7": True,
2728                        "v6.0.11": True
2729                    }
2730                },
2731                "ovrd_cookie": {
2732                    "type": "string",
2733                    "options": [
2734                        {
2735                            "value": "allow",
2736                            "revisions": {
2737                                "v6.0.0": True,
2738                                "v7.0.0": True,
2739                                "v6.0.5": True,
2740                                "v6.4.4": True,
2741                                "v6.4.0": True,
2742                                "v6.4.1": True,
2743                                "v6.2.0": True,
2744                                "v6.2.3": True,
2745                                "v6.2.5": True,
2746                                "v6.2.7": True,
2747                                "v6.0.11": True
2748                            }
2749                        },
2750                        {
2751                            "value": "deny",
2752                            "revisions": {
2753                                "v6.0.0": True,
2754                                "v7.0.0": True,
2755                                "v6.0.5": True,
2756                                "v6.4.4": True,
2757                                "v6.4.0": True,
2758                                "v6.4.1": True,
2759                                "v6.2.0": True,
2760                                "v6.2.3": True,
2761                                "v6.2.5": True,
2762                                "v6.2.7": True,
2763                                "v6.0.11": True
2764                            }
2765                        }
2766                    ],
2767                    "revisions": {
2768                        "v6.0.0": True,
2769                        "v7.0.0": True,
2770                        "v6.0.5": True,
2771                        "v6.4.4": True,
2772                        "v6.4.0": True,
2773                        "v6.4.1": True,
2774                        "v6.2.0": True,
2775                        "v6.2.3": True,
2776                        "v6.2.5": True,
2777                        "v6.2.7": True,
2778                        "v6.0.11": True
2779                    }
2780                },
2781                "profile_type": {
2782                    "type": "string",
2783                    "options": [
2784                        {
2785                            "value": "list",
2786                            "revisions": {
2787                                "v6.0.0": True,
2788                                "v7.0.0": True,
2789                                "v6.0.5": True,
2790                                "v6.4.4": True,
2791                                "v6.4.0": True,
2792                                "v6.4.1": True,
2793                                "v6.2.0": True,
2794                                "v6.2.3": True,
2795                                "v6.2.5": True,
2796                                "v6.2.7": True,
2797                                "v6.0.11": True
2798                            }
2799                        },
2800                        {
2801                            "value": "radius",
2802                            "revisions": {
2803                                "v6.0.0": True,
2804                                "v7.0.0": True,
2805                                "v6.0.5": True,
2806                                "v6.4.4": True,
2807                                "v6.4.0": True,
2808                                "v6.4.1": True,
2809                                "v6.2.0": True,
2810                                "v6.2.3": True,
2811                                "v6.2.5": True,
2812                                "v6.2.7": True,
2813                                "v6.0.11": True
2814                            }
2815                        }
2816                    ],
2817                    "revisions": {
2818                        "v6.0.0": True,
2819                        "v7.0.0": True,
2820                        "v6.0.5": True,
2821                        "v6.4.4": True,
2822                        "v6.4.0": True,
2823                        "v6.4.1": True,
2824                        "v6.2.0": True,
2825                        "v6.2.3": True,
2826                        "v6.2.5": True,
2827                        "v6.2.7": True,
2828                        "v6.0.11": True
2829                    }
2830                },
2831                "ovrd_dur": {
2832                    "type": "string",
2833                    "revisions": {
2834                        "v6.0.0": True,
2835                        "v7.0.0": True,
2836                        "v6.0.5": True,
2837                        "v6.4.4": True,
2838                        "v6.4.0": True,
2839                        "v6.4.1": True,
2840                        "v6.2.0": True,
2841                        "v6.2.3": True,
2842                        "v6.2.5": True,
2843                        "v6.2.7": True,
2844                        "v6.0.11": True
2845                    }
2846                },
2847                "ovrd_dur_mode": {
2848                    "type": "string",
2849                    "options": [
2850                        {
2851                            "value": "constant",
2852                            "revisions": {
2853                                "v6.0.0": True,
2854                                "v7.0.0": True,
2855                                "v6.0.5": True,
2856                                "v6.4.4": True,
2857                                "v6.4.0": True,
2858                                "v6.4.1": True,
2859                                "v6.2.0": True,
2860                                "v6.2.3": True,
2861                                "v6.2.5": True,
2862                                "v6.2.7": True,
2863                                "v6.0.11": True
2864                            }
2865                        },
2866                        {
2867                            "value": "ask",
2868                            "revisions": {
2869                                "v6.0.0": True,
2870                                "v7.0.0": True,
2871                                "v6.0.5": True,
2872                                "v6.4.4": True,
2873                                "v6.4.0": True,
2874                                "v6.4.1": True,
2875                                "v6.2.0": True,
2876                                "v6.2.3": True,
2877                                "v6.2.5": True,
2878                                "v6.2.7": True,
2879                                "v6.0.11": True
2880                            }
2881                        }
2882                    ],
2883                    "revisions": {
2884                        "v6.0.0": True,
2885                        "v7.0.0": True,
2886                        "v6.0.5": True,
2887                        "v6.4.4": True,
2888                        "v6.4.0": True,
2889                        "v6.4.1": True,
2890                        "v6.2.0": True,
2891                        "v6.2.3": True,
2892                        "v6.2.5": True,
2893                        "v6.2.7": True,
2894                        "v6.0.11": True
2895                    }
2896                },
2897                "ovrd_user_group": {
2898                    "type": "list",
2899                    "children": {
2900                        "name": {
2901                            "type": "string",
2902                            "revisions": {
2903                                "v6.0.0": True,
2904                                "v7.0.0": True,
2905                                "v6.0.5": True,
2906                                "v6.4.4": True,
2907                                "v6.4.0": True,
2908                                "v6.4.1": True,
2909                                "v6.2.0": True,
2910                                "v6.2.3": True,
2911                                "v6.2.5": True,
2912                                "v6.2.7": True,
2913                                "v6.0.11": True
2914                            }
2915                        }
2916                    },
2917                    "revisions": {
2918                        "v6.0.0": True,
2919                        "v7.0.0": True,
2920                        "v6.0.5": True,
2921                        "v6.4.4": True,
2922                        "v6.4.0": True,
2923                        "v6.4.1": True,
2924                        "v6.2.0": True,
2925                        "v6.2.3": True,
2926                        "v6.2.5": True,
2927                        "v6.2.7": True,
2928                        "v6.0.11": True
2929                    }
2930                },
2931                "ovrd_scope": {
2932                    "type": "string",
2933                    "options": [
2934                        {
2935                            "value": "user",
2936                            "revisions": {
2937                                "v6.0.0": True,
2938                                "v7.0.0": True,
2939                                "v6.0.5": True,
2940                                "v6.4.4": True,
2941                                "v6.4.0": True,
2942                                "v6.4.1": True,
2943                                "v6.2.0": True,
2944                                "v6.2.3": True,
2945                                "v6.2.5": True,
2946                                "v6.2.7": True,
2947                                "v6.0.11": True
2948                            }
2949                        },
2950                        {
2951                            "value": "user-group",
2952                            "revisions": {
2953                                "v6.0.0": True,
2954                                "v7.0.0": True,
2955                                "v6.0.5": True,
2956                                "v6.4.4": True,
2957                                "v6.4.0": True,
2958                                "v6.4.1": True,
2959                                "v6.2.0": True,
2960                                "v6.2.3": True,
2961                                "v6.2.5": True,
2962                                "v6.2.7": True,
2963                                "v6.0.11": True
2964                            }
2965                        },
2966                        {
2967                            "value": "ip",
2968                            "revisions": {
2969                                "v6.0.0": True,
2970                                "v7.0.0": True,
2971                                "v6.0.5": True,
2972                                "v6.4.4": True,
2973                                "v6.4.0": True,
2974                                "v6.4.1": True,
2975                                "v6.2.0": True,
2976                                "v6.2.3": True,
2977                                "v6.2.5": True,
2978                                "v6.2.7": True,
2979                                "v6.0.11": True
2980                            }
2981                        },
2982                        {
2983                            "value": "browser",
2984                            "revisions": {
2985                                "v6.0.0": True,
2986                                "v7.0.0": True,
2987                                "v6.0.5": True,
2988                                "v6.4.4": True,
2989                                "v6.4.0": True,
2990                                "v6.4.1": True,
2991                                "v6.2.0": True,
2992                                "v6.2.3": True,
2993                                "v6.2.5": True,
2994                                "v6.2.7": True,
2995                                "v6.0.11": True
2996                            }
2997                        },
2998                        {
2999                            "value": "ask",
3000                            "revisions": {
3001                                "v6.0.0": True,
3002                                "v7.0.0": True,
3003                                "v6.0.5": True,
3004                                "v6.4.4": True,
3005                                "v6.4.0": True,
3006                                "v6.4.1": True,
3007                                "v6.2.0": True,
3008                                "v6.2.3": True,
3009                                "v6.2.5": True,
3010                                "v6.2.7": True,
3011                                "v6.0.11": True
3012                            }
3013                        }
3014                    ],
3015                    "revisions": {
3016                        "v6.0.0": True,
3017                        "v7.0.0": True,
3018                        "v6.0.5": True,
3019                        "v6.4.4": True,
3020                        "v6.4.0": True,
3021                        "v6.4.1": True,
3022                        "v6.2.0": True,
3023                        "v6.2.3": True,
3024                        "v6.2.5": True,
3025                        "v6.2.7": True,
3026                        "v6.0.11": True
3027                    }
3028                },
3029                "profile_attribute": {
3030                    "type": "string",
3031                    "options": [
3032                        {
3033                            "value": "User-Name",
3034                            "revisions": {
3035                                "v6.0.0": True,
3036                                "v7.0.0": True,
3037                                "v6.0.5": True,
3038                                "v6.4.4": True,
3039                                "v6.4.0": True,
3040                                "v6.4.1": True,
3041                                "v6.2.0": True,
3042                                "v6.2.3": True,
3043                                "v6.2.5": True,
3044                                "v6.2.7": True,
3045                                "v6.0.11": True
3046                            }
3047                        },
3048                        {
3049                            "value": "NAS-IP-Address",
3050                            "revisions": {
3051                                "v6.0.0": True,
3052                                "v7.0.0": True,
3053                                "v6.0.5": True,
3054                                "v6.4.4": True,
3055                                "v6.4.0": True,
3056                                "v6.4.1": True,
3057                                "v6.2.0": True,
3058                                "v6.2.3": True,
3059                                "v6.2.5": True,
3060                                "v6.2.7": True,
3061                                "v6.0.11": True
3062                            }
3063                        },
3064                        {
3065                            "value": "Framed-IP-Address",
3066                            "revisions": {
3067                                "v6.0.0": True,
3068                                "v7.0.0": True,
3069                                "v6.0.5": True,
3070                                "v6.4.4": True,
3071                                "v6.4.0": True,
3072                                "v6.4.1": True,
3073                                "v6.2.0": True,
3074                                "v6.2.3": True,
3075                                "v6.2.5": True,
3076                                "v6.2.7": True,
3077                                "v6.0.11": True
3078                            }
3079                        },
3080                        {
3081                            "value": "Framed-IP-Netmask",
3082                            "revisions": {
3083                                "v6.0.0": True,
3084                                "v7.0.0": True,
3085                                "v6.0.5": True,
3086                                "v6.4.4": True,
3087                                "v6.4.0": True,
3088                                "v6.4.1": True,
3089                                "v6.2.0": True,
3090                                "v6.2.3": True,
3091                                "v6.2.5": True,
3092                                "v6.2.7": True,
3093                                "v6.0.11": True
3094                            }
3095                        },
3096                        {
3097                            "value": "Filter-Id",
3098                            "revisions": {
3099                                "v6.0.0": True,
3100                                "v7.0.0": True,
3101                                "v6.0.5": True,
3102                                "v6.4.4": True,
3103                                "v6.4.0": True,
3104                                "v6.4.1": True,
3105                                "v6.2.0": True,
3106                                "v6.2.3": True,
3107                                "v6.2.5": True,
3108                                "v6.2.7": True,
3109                                "v6.0.11": True
3110                            }
3111                        },
3112                        {
3113                            "value": "Login-IP-Host",
3114                            "revisions": {
3115                                "v6.0.0": True,
3116                                "v7.0.0": True,
3117                                "v6.0.5": True,
3118                                "v6.4.4": True,
3119                                "v6.4.0": True,
3120                                "v6.4.1": True,
3121                                "v6.2.0": True,
3122                                "v6.2.3": True,
3123                                "v6.2.5": True,
3124                                "v6.2.7": True,
3125                                "v6.0.11": True
3126                            }
3127                        },
3128                        {
3129                            "value": "Reply-Message",
3130                            "revisions": {
3131                                "v6.0.0": True,
3132                                "v7.0.0": True,
3133                                "v6.0.5": True,
3134                                "v6.4.4": True,
3135                                "v6.4.0": True,
3136                                "v6.4.1": True,
3137                                "v6.2.0": True,
3138                                "v6.2.3": True,
3139                                "v6.2.5": True,
3140                                "v6.2.7": True,
3141                                "v6.0.11": True
3142                            }
3143                        },
3144                        {
3145                            "value": "Callback-Number",
3146                            "revisions": {
3147                                "v6.0.0": True,
3148                                "v7.0.0": True,
3149                                "v6.0.5": True,
3150                                "v6.4.4": True,
3151                                "v6.4.0": True,
3152                                "v6.4.1": True,
3153                                "v6.2.0": True,
3154                                "v6.2.3": True,
3155                                "v6.2.5": True,
3156                                "v6.2.7": True,
3157                                "v6.0.11": True
3158                            }
3159                        },
3160                        {
3161                            "value": "Callback-Id",
3162                            "revisions": {
3163                                "v6.0.0": True,
3164                                "v7.0.0": True,
3165                                "v6.0.5": True,
3166                                "v6.4.4": True,
3167                                "v6.4.0": True,
3168                                "v6.4.1": True,
3169                                "v6.2.0": True,
3170                                "v6.2.3": True,
3171                                "v6.2.5": True,
3172                                "v6.2.7": True,
3173                                "v6.0.11": True
3174                            }
3175                        },
3176                        {
3177                            "value": "Framed-Route",
3178                            "revisions": {
3179                                "v6.0.0": True,
3180                                "v7.0.0": True,
3181                                "v6.0.5": True,
3182                                "v6.4.4": True,
3183                                "v6.4.0": True,
3184                                "v6.4.1": True,
3185                                "v6.2.0": True,
3186                                "v6.2.3": True,
3187                                "v6.2.5": True,
3188                                "v6.2.7": True,
3189                                "v6.0.11": True
3190                            }
3191                        },
3192                        {
3193                            "value": "Framed-IPX-Network",
3194                            "revisions": {
3195                                "v6.0.0": True,
3196                                "v7.0.0": True,
3197                                "v6.0.5": True,
3198                                "v6.4.4": True,
3199                                "v6.4.0": True,
3200                                "v6.4.1": True,
3201                                "v6.2.0": True,
3202                                "v6.2.3": True,
3203                                "v6.2.5": True,
3204                                "v6.2.7": True,
3205                                "v6.0.11": True
3206                            }
3207                        },
3208                        {
3209                            "value": "Class",
3210                            "revisions": {
3211                                "v6.0.0": True,
3212                                "v7.0.0": True,
3213                                "v6.0.5": True,
3214                                "v6.4.4": True,
3215                                "v6.4.0": True,
3216                                "v6.4.1": True,
3217                                "v6.2.0": True,
3218                                "v6.2.3": True,
3219                                "v6.2.5": True,
3220                                "v6.2.7": True,
3221                                "v6.0.11": True
3222                            }
3223                        },
3224                        {
3225                            "value": "Called-Station-Id",
3226                            "revisions": {
3227                                "v6.0.0": True,
3228                                "v7.0.0": True,
3229                                "v6.0.5": True,
3230                                "v6.4.4": True,
3231                                "v6.4.0": True,
3232                                "v6.4.1": True,
3233                                "v6.2.0": True,
3234                                "v6.2.3": True,
3235                                "v6.2.5": True,
3236                                "v6.2.7": True,
3237                                "v6.0.11": True
3238                            }
3239                        },
3240                        {
3241                            "value": "Calling-Station-Id",
3242                            "revisions": {
3243                                "v6.0.0": True,
3244                                "v7.0.0": True,
3245                                "v6.0.5": True,
3246                                "v6.4.4": True,
3247                                "v6.4.0": True,
3248                                "v6.4.1": True,
3249                                "v6.2.0": True,
3250                                "v6.2.3": True,
3251                                "v6.2.5": True,
3252                                "v6.2.7": True,
3253                                "v6.0.11": True
3254                            }
3255                        },
3256                        {
3257                            "value": "NAS-Identifier",
3258                            "revisions": {
3259                                "v6.0.0": True,
3260                                "v7.0.0": True,
3261                                "v6.0.5": True,
3262                                "v6.4.4": True,
3263                                "v6.4.0": True,
3264                                "v6.4.1": True,
3265                                "v6.2.0": True,
3266                                "v6.2.3": True,
3267                                "v6.2.5": True,
3268                                "v6.2.7": True,
3269                                "v6.0.11": True
3270                            }
3271                        },
3272                        {
3273                            "value": "Proxy-State",
3274                            "revisions": {
3275                                "v6.0.0": True,
3276                                "v7.0.0": True,
3277                                "v6.0.5": True,
3278                                "v6.4.4": True,
3279                                "v6.4.0": True,
3280                                "v6.4.1": True,
3281                                "v6.2.0": True,
3282                                "v6.2.3": True,
3283                                "v6.2.5": True,
3284                                "v6.2.7": True,
3285                                "v6.0.11": True
3286                            }
3287                        },
3288                        {
3289                            "value": "Login-LAT-Service",
3290                            "revisions": {
3291                                "v6.0.0": True,
3292                                "v7.0.0": True,
3293                                "v6.0.5": True,
3294                                "v6.4.4": True,
3295                                "v6.4.0": True,
3296                                "v6.4.1": True,
3297                                "v6.2.0": True,
3298                                "v6.2.3": True,
3299                                "v6.2.5": True,
3300                                "v6.2.7": True,
3301                                "v6.0.11": True
3302                            }
3303                        },
3304                        {
3305                            "value": "Login-LAT-Node",
3306                            "revisions": {
3307                                "v6.0.0": True,
3308                                "v7.0.0": True,
3309                                "v6.0.5": True,
3310                                "v6.4.4": True,
3311                                "v6.4.0": True,
3312                                "v6.4.1": True,
3313                                "v6.2.0": True,
3314                                "v6.2.3": True,
3315                                "v6.2.5": True,
3316                                "v6.2.7": True,
3317                                "v6.0.11": True
3318                            }
3319                        },
3320                        {
3321                            "value": "Login-LAT-Group",
3322                            "revisions": {
3323                                "v6.0.0": True,
3324                                "v7.0.0": True,
3325                                "v6.0.5": True,
3326                                "v6.4.4": True,
3327                                "v6.4.0": True,
3328                                "v6.4.1": True,
3329                                "v6.2.0": True,
3330                                "v6.2.3": True,
3331                                "v6.2.5": True,
3332                                "v6.2.7": True,
3333                                "v6.0.11": True
3334                            }
3335                        },
3336                        {
3337                            "value": "Framed-AppleTalk-Zone",
3338                            "revisions": {
3339                                "v6.0.0": True,
3340                                "v7.0.0": True,
3341                                "v6.0.5": True,
3342                                "v6.4.4": True,
3343                                "v6.4.0": True,
3344                                "v6.4.1": True,
3345                                "v6.2.0": True,
3346                                "v6.2.3": True,
3347                                "v6.2.5": True,
3348                                "v6.2.7": True,
3349                                "v6.0.11": True
3350                            }
3351                        },
3352                        {
3353                            "value": "Acct-Session-Id",
3354                            "revisions": {
3355                                "v6.0.0": True,
3356                                "v7.0.0": True,
3357                                "v6.0.5": True,
3358                                "v6.4.4": True,
3359                                "v6.4.0": True,
3360                                "v6.4.1": True,
3361                                "v6.2.0": True,
3362                                "v6.2.3": True,
3363                                "v6.2.5": True,
3364                                "v6.2.7": True,
3365                                "v6.0.11": True
3366                            }
3367                        },
3368                        {
3369                            "value": "Acct-Multi-Session-Id",
3370                            "revisions": {
3371                                "v6.0.0": True,
3372                                "v7.0.0": True,
3373                                "v6.0.5": True,
3374                                "v6.4.4": True,
3375                                "v6.4.0": True,
3376                                "v6.4.1": True,
3377                                "v6.2.0": True,
3378                                "v6.2.3": True,
3379                                "v6.2.5": True,
3380                                "v6.2.7": True,
3381                                "v6.0.11": True
3382                            }
3383                        }
3384                    ],
3385                    "revisions": {
3386                        "v6.0.0": True,
3387                        "v7.0.0": True,
3388                        "v6.0.5": True,
3389                        "v6.4.4": True,
3390                        "v6.4.0": True,
3391                        "v6.4.1": True,
3392                        "v6.2.0": True,
3393                        "v6.2.3": True,
3394                        "v6.2.5": True,
3395                        "v6.2.7": True,
3396                        "v6.0.11": True
3397                    }
3398                }
3399            },
3400            "revisions": {
3401                "v6.0.0": True,
3402                "v7.0.0": True,
3403                "v6.0.5": True,
3404                "v6.4.4": True,
3405                "v6.4.0": True,
3406                "v6.4.1": True,
3407                "v6.2.0": True,
3408                "v6.2.3": True,
3409                "v6.2.5": True,
3410                "v6.2.7": True,
3411                "v6.0.11": True
3412            }
3413        },
3414        "web_filter_cookie_log": {
3415            "type": "string",
3416            "options": [
3417                {
3418                    "value": "enable",
3419                    "revisions": {
3420                        "v6.0.0": True,
3421                        "v7.0.0": True,
3422                        "v6.0.5": True,
3423                        "v6.4.4": True,
3424                        "v6.4.0": True,
3425                        "v6.4.1": True,
3426                        "v6.2.0": True,
3427                        "v6.2.3": True,
3428                        "v6.2.5": True,
3429                        "v6.2.7": True,
3430                        "v6.0.11": True
3431                    }
3432                },
3433                {
3434                    "value": "disable",
3435                    "revisions": {
3436                        "v6.0.0": True,
3437                        "v7.0.0": True,
3438                        "v6.0.5": True,
3439                        "v6.4.4": True,
3440                        "v6.4.0": True,
3441                        "v6.4.1": True,
3442                        "v6.2.0": True,
3443                        "v6.2.3": True,
3444                        "v6.2.5": True,
3445                        "v6.2.7": True,
3446                        "v6.0.11": True
3447                    }
3448                }
3449            ],
3450            "revisions": {
3451                "v6.0.0": True,
3452                "v7.0.0": True,
3453                "v6.0.5": True,
3454                "v6.4.4": True,
3455                "v6.4.0": True,
3456                "v6.4.1": True,
3457                "v6.2.0": True,
3458                "v6.2.3": True,
3459                "v6.2.5": True,
3460                "v6.2.7": True,
3461                "v6.0.11": True
3462            }
3463        },
3464        "wisp_servers": {
3465            "type": "list",
3466            "children": {
3467                "name": {
3468                    "type": "string",
3469                    "revisions": {
3470                        "v6.0.0": True,
3471                        "v7.0.0": True,
3472                        "v6.0.5": True,
3473                        "v6.4.4": True,
3474                        "v6.4.0": True,
3475                        "v6.4.1": True,
3476                        "v6.2.0": True,
3477                        "v6.2.3": True,
3478                        "v6.2.5": True,
3479                        "v6.2.7": True,
3480                        "v6.0.11": True
3481                    }
3482                }
3483            },
3484            "revisions": {
3485                "v6.0.0": True,
3486                "v7.0.0": True,
3487                "v6.0.5": True,
3488                "v6.4.4": True,
3489                "v6.4.0": True,
3490                "v6.4.1": True,
3491                "v6.2.0": True,
3492                "v6.2.3": True,
3493                "v6.2.5": True,
3494                "v6.2.7": True,
3495                "v6.0.11": True
3496            }
3497        },
3498        "web_ftgd_quota_usage": {
3499            "type": "string",
3500            "options": [
3501                {
3502                    "value": "enable",
3503                    "revisions": {
3504                        "v6.0.0": True,
3505                        "v7.0.0": True,
3506                        "v6.0.5": True,
3507                        "v6.4.4": True,
3508                        "v6.4.0": True,
3509                        "v6.4.1": True,
3510                        "v6.2.0": True,
3511                        "v6.2.3": True,
3512                        "v6.2.5": True,
3513                        "v6.2.7": True,
3514                        "v6.0.11": True
3515                    }
3516                },
3517                {
3518                    "value": "disable",
3519                    "revisions": {
3520                        "v6.0.0": True,
3521                        "v7.0.0": True,
3522                        "v6.0.5": True,
3523                        "v6.4.4": True,
3524                        "v6.4.0": True,
3525                        "v6.4.1": True,
3526                        "v6.2.0": True,
3527                        "v6.2.3": True,
3528                        "v6.2.5": True,
3529                        "v6.2.7": True,
3530                        "v6.0.11": True
3531                    }
3532                }
3533            ],
3534            "revisions": {
3535                "v6.0.0": True,
3536                "v7.0.0": True,
3537                "v6.0.5": True,
3538                "v6.4.4": True,
3539                "v6.4.0": True,
3540                "v6.4.1": True,
3541                "v6.2.0": True,
3542                "v6.2.3": True,
3543                "v6.2.5": True,
3544                "v6.2.7": True,
3545                "v6.0.11": True
3546            }
3547        },
3548        "web_content_log": {
3549            "type": "string",
3550            "options": [
3551                {
3552                    "value": "enable",
3553                    "revisions": {
3554                        "v6.0.0": True,
3555                        "v7.0.0": True,
3556                        "v6.0.5": True,
3557                        "v6.4.4": True,
3558                        "v6.4.0": True,
3559                        "v6.4.1": True,
3560                        "v6.2.0": True,
3561                        "v6.2.3": True,
3562                        "v6.2.5": True,
3563                        "v6.2.7": True,
3564                        "v6.0.11": True
3565                    }
3566                },
3567                {
3568                    "value": "disable",
3569                    "revisions": {
3570                        "v6.0.0": True,
3571                        "v7.0.0": True,
3572                        "v6.0.5": True,
3573                        "v6.4.4": True,
3574                        "v6.4.0": True,
3575                        "v6.4.1": True,
3576                        "v6.2.0": True,
3577                        "v6.2.3": True,
3578                        "v6.2.5": True,
3579                        "v6.2.7": True,
3580                        "v6.0.11": True
3581                    }
3582                }
3583            ],
3584            "revisions": {
3585                "v6.0.0": True,
3586                "v7.0.0": True,
3587                "v6.0.5": True,
3588                "v6.4.4": True,
3589                "v6.4.0": True,
3590                "v6.4.1": True,
3591                "v6.2.0": True,
3592                "v6.2.3": True,
3593                "v6.2.5": True,
3594                "v6.2.7": True,
3595                "v6.0.11": True
3596            }
3597        },
3598        "post_action": {
3599            "type": "string",
3600            "options": [
3601                {
3602                    "value": "normal",
3603                    "revisions": {
3604                        "v6.0.0": True,
3605                        "v7.0.0": True,
3606                        "v6.0.5": True,
3607                        "v6.4.4": True,
3608                        "v6.4.0": True,
3609                        "v6.4.1": True,
3610                        "v6.2.0": True,
3611                        "v6.2.3": True,
3612                        "v6.2.5": True,
3613                        "v6.2.7": True,
3614                        "v6.0.11": True
3615                    }
3616                },
3617                {
3618                    "value": "block",
3619                    "revisions": {
3620                        "v6.0.0": True,
3621                        "v7.0.0": True,
3622                        "v6.0.5": True,
3623                        "v6.4.4": True,
3624                        "v6.4.0": True,
3625                        "v6.4.1": True,
3626                        "v6.2.0": True,
3627                        "v6.2.3": True,
3628                        "v6.2.5": True,
3629                        "v6.2.7": True,
3630                        "v6.0.11": True
3631                    }
3632                }
3633            ],
3634            "revisions": {
3635                "v6.0.0": True,
3636                "v7.0.0": True,
3637                "v6.0.5": True,
3638                "v6.4.4": True,
3639                "v6.4.0": True,
3640                "v6.4.1": True,
3641                "v6.2.0": True,
3642                "v6.2.3": True,
3643                "v6.2.5": True,
3644                "v6.2.7": True,
3645                "v6.0.11": True
3646            }
3647        },
3648        "web_ftgd_err_log": {
3649            "type": "string",
3650            "options": [
3651                {
3652                    "value": "enable",
3653                    "revisions": {
3654                        "v6.0.0": True,
3655                        "v7.0.0": True,
3656                        "v6.0.5": True,
3657                        "v6.4.4": True,
3658                        "v6.4.0": True,
3659                        "v6.4.1": True,
3660                        "v6.2.0": True,
3661                        "v6.2.3": True,
3662                        "v6.2.5": True,
3663                        "v6.2.7": True,
3664                        "v6.0.11": True
3665                    }
3666                },
3667                {
3668                    "value": "disable",
3669                    "revisions": {
3670                        "v6.0.0": True,
3671                        "v7.0.0": True,
3672                        "v6.0.5": True,
3673                        "v6.4.4": True,
3674                        "v6.4.0": True,
3675                        "v6.4.1": True,
3676                        "v6.2.0": True,
3677                        "v6.2.3": True,
3678                        "v6.2.5": True,
3679                        "v6.2.7": True,
3680                        "v6.0.11": True
3681                    }
3682                }
3683            ],
3684            "revisions": {
3685                "v6.0.0": True,
3686                "v7.0.0": True,
3687                "v6.0.5": True,
3688                "v6.4.4": True,
3689                "v6.4.0": True,
3690                "v6.4.1": True,
3691                "v6.2.0": True,
3692                "v6.2.3": True,
3693                "v6.2.5": True,
3694                "v6.2.7": True,
3695                "v6.0.11": True
3696            }
3697        },
3698        "web_antiphishing_log": {
3699            "type": "string",
3700            "options": [
3701                {
3702                    "value": "enable",
3703                    "revisions": {
3704                        "v6.4.4": True,
3705                        "v7.0.0": True,
3706                        "v6.4.0": True,
3707                        "v6.4.1": True
3708                    }
3709                },
3710                {
3711                    "value": "disable",
3712                    "revisions": {
3713                        "v6.4.4": True,
3714                        "v7.0.0": True,
3715                        "v6.4.0": True,
3716                        "v6.4.1": True
3717                    }
3718                }
3719            ],
3720            "revisions": {
3721                "v6.4.4": True,
3722                "v7.0.0": True,
3723                "v6.4.0": True,
3724                "v6.4.1": True
3725            }
3726        },
3727        "ftgd_wf": {
3728            "type": "dict",
3729            "children": {
3730                "rate_javascript_urls": {
3731                    "type": "string",
3732                    "options": [
3733                        {
3734                            "value": "disable",
3735                            "revisions": {
3736                                "v6.0.0": True,
3737                                "v7.0.0": True,
3738                                "v6.0.5": True,
3739                                "v6.4.4": True,
3740                                "v6.4.0": True,
3741                                "v6.4.1": True,
3742                                "v6.2.0": True,
3743                                "v6.2.3": True,
3744                                "v6.2.5": True,
3745                                "v6.2.7": True,
3746                                "v6.0.11": True
3747                            }
3748                        },
3749                        {
3750                            "value": "enable",
3751                            "revisions": {
3752                                "v6.0.0": True,
3753                                "v7.0.0": True,
3754                                "v6.0.5": True,
3755                                "v6.4.4": True,
3756                                "v6.4.0": True,
3757                                "v6.4.1": True,
3758                                "v6.2.0": True,
3759                                "v6.2.3": True,
3760                                "v6.2.5": True,
3761                                "v6.2.7": True,
3762                                "v6.0.11": True
3763                            }
3764                        }
3765                    ],
3766                    "revisions": {
3767                        "v6.0.0": True,
3768                        "v7.0.0": True,
3769                        "v6.0.5": True,
3770                        "v6.4.4": True,
3771                        "v6.4.0": True,
3772                        "v6.4.1": True,
3773                        "v6.2.0": True,
3774                        "v6.2.3": True,
3775                        "v6.2.5": True,
3776                        "v6.2.7": True,
3777                        "v6.0.11": True
3778                    }
3779                },
3780                "filters": {
3781                    "type": "list",
3782                    "children": {
3783                        "category": {
3784                            "type": "integer",
3785                            "revisions": {
3786                                "v6.0.0": True,
3787                                "v7.0.0": True,
3788                                "v6.0.5": True,
3789                                "v6.4.4": True,
3790                                "v6.4.0": True,
3791                                "v6.4.1": True,
3792                                "v6.2.0": True,
3793                                "v6.2.3": True,
3794                                "v6.2.5": True,
3795                                "v6.2.7": True,
3796                                "v6.0.11": True
3797                            }
3798                        },
3799                        "warning_duration_type": {
3800                            "type": "string",
3801                            "options": [
3802                                {
3803                                    "value": "session",
3804                                    "revisions": {
3805                                        "v6.0.0": True,
3806                                        "v7.0.0": True,
3807                                        "v6.0.5": True,
3808                                        "v6.4.4": True,
3809                                        "v6.4.0": True,
3810                                        "v6.4.1": True,
3811                                        "v6.2.0": True,
3812                                        "v6.2.3": True,
3813                                        "v6.2.5": True,
3814                                        "v6.2.7": True,
3815                                        "v6.0.11": True
3816                                    }
3817                                },
3818                                {
3819                                    "value": "timeout",
3820                                    "revisions": {
3821                                        "v6.0.0": True,
3822                                        "v7.0.0": True,
3823                                        "v6.0.5": True,
3824                                        "v6.4.4": True,
3825                                        "v6.4.0": True,
3826                                        "v6.4.1": True,
3827                                        "v6.2.0": True,
3828                                        "v6.2.3": True,
3829                                        "v6.2.5": True,
3830                                        "v6.2.7": True,
3831                                        "v6.0.11": True
3832                                    }
3833                                }
3834                            ],
3835                            "revisions": {
3836                                "v6.0.0": True,
3837                                "v7.0.0": True,
3838                                "v6.0.5": True,
3839                                "v6.4.4": True,
3840                                "v6.4.0": True,
3841                                "v6.4.1": True,
3842                                "v6.2.0": True,
3843                                "v6.2.3": True,
3844                                "v6.2.5": True,
3845                                "v6.2.7": True,
3846                                "v6.0.11": True
3847                            }
3848                        },
3849                        "log": {
3850                            "type": "string",
3851                            "options": [
3852                                {
3853                                    "value": "enable",
3854                                    "revisions": {
3855                                        "v6.0.0": True,
3856                                        "v7.0.0": True,
3857                                        "v6.0.5": True,
3858                                        "v6.4.4": True,
3859                                        "v6.4.0": True,
3860                                        "v6.4.1": True,
3861                                        "v6.2.0": True,
3862                                        "v6.2.3": True,
3863                                        "v6.2.5": True,
3864                                        "v6.2.7": True,
3865                                        "v6.0.11": True
3866                                    }
3867                                },
3868                                {
3869                                    "value": "disable",
3870                                    "revisions": {
3871                                        "v6.0.0": True,
3872                                        "v7.0.0": True,
3873                                        "v6.0.5": True,
3874                                        "v6.4.4": True,
3875                                        "v6.4.0": True,
3876                                        "v6.4.1": True,
3877                                        "v6.2.0": True,
3878                                        "v6.2.3": True,
3879                                        "v6.2.5": True,
3880                                        "v6.2.7": True,
3881                                        "v6.0.11": True
3882                                    }
3883                                }
3884                            ],
3885                            "revisions": {
3886                                "v6.0.0": True,
3887                                "v7.0.0": True,
3888                                "v6.0.5": True,
3889                                "v6.4.4": True,
3890                                "v6.4.0": True,
3891                                "v6.4.1": True,
3892                                "v6.2.0": True,
3893                                "v6.2.3": True,
3894                                "v6.2.5": True,
3895                                "v6.2.7": True,
3896                                "v6.0.11": True
3897                            }
3898                        },
3899                        "override_replacemsg": {
3900                            "type": "string",
3901                            "revisions": {
3902                                "v6.0.0": True,
3903                                "v7.0.0": True,
3904                                "v6.0.5": True,
3905                                "v6.4.4": True,
3906                                "v6.4.0": True,
3907                                "v6.4.1": True,
3908                                "v6.2.0": True,
3909                                "v6.2.3": True,
3910                                "v6.2.5": True,
3911                                "v6.2.7": True,
3912                                "v6.0.11": True
3913                            }
3914                        },
3915                        "id": {
3916                            "type": "integer",
3917                            "revisions": {
3918                                "v6.0.0": True,
3919                                "v7.0.0": True,
3920                                "v6.0.5": True,
3921                                "v6.4.4": True,
3922                                "v6.4.0": True,
3923                                "v6.4.1": True,
3924                                "v6.2.0": True,
3925                                "v6.2.3": True,
3926                                "v6.2.5": True,
3927                                "v6.2.7": True,
3928                                "v6.0.11": True
3929                            }
3930                        },
3931                        "warning_prompt": {
3932                            "type": "string",
3933                            "options": [
3934                                {
3935                                    "value": "per-domain",
3936                                    "revisions": {
3937                                        "v6.0.0": True,
3938                                        "v7.0.0": True,
3939                                        "v6.0.5": True,
3940                                        "v6.4.4": True,
3941                                        "v6.4.0": True,
3942                                        "v6.4.1": True,
3943                                        "v6.2.0": True,
3944                                        "v6.2.3": True,
3945                                        "v6.2.5": True,
3946                                        "v6.2.7": True,
3947                                        "v6.0.11": True
3948                                    }
3949                                },
3950                                {
3951                                    "value": "per-category",
3952                                    "revisions": {
3953                                        "v6.0.0": True,
3954                                        "v7.0.0": True,
3955                                        "v6.0.5": True,
3956                                        "v6.4.4": True,
3957                                        "v6.4.0": True,
3958                                        "v6.4.1": True,
3959                                        "v6.2.0": True,
3960                                        "v6.2.3": True,
3961                                        "v6.2.5": True,
3962                                        "v6.2.7": True,
3963                                        "v6.0.11": True
3964                                    }
3965                                }
3966                            ],
3967                            "revisions": {
3968                                "v6.0.0": True,
3969                                "v7.0.0": True,
3970                                "v6.0.5": True,
3971                                "v6.4.4": True,
3972                                "v6.4.0": True,
3973                                "v6.4.1": True,
3974                                "v6.2.0": True,
3975                                "v6.2.3": True,
3976                                "v6.2.5": True,
3977                                "v6.2.7": True,
3978                                "v6.0.11": True
3979                            }
3980                        },
3981                        "action": {
3982                            "type": "string",
3983                            "options": [
3984                                {
3985                                    "value": "block",
3986                                    "revisions": {
3987                                        "v6.0.0": True,
3988                                        "v7.0.0": True,
3989                                        "v6.0.5": True,
3990                                        "v6.4.4": True,
3991                                        "v6.4.0": True,
3992                                        "v6.4.1": True,
3993                                        "v6.2.0": True,
3994                                        "v6.2.3": True,
3995                                        "v6.2.5": True,
3996                                        "v6.2.7": True,
3997                                        "v6.0.11": True
3998                                    }
3999                                },
4000                                {
4001                                    "value": "authenticate",
4002                                    "revisions": {
4003                                        "v6.0.0": True,
4004                                        "v7.0.0": True,
4005                                        "v6.0.5": True,
4006                                        "v6.4.4": True,
4007                                        "v6.4.0": True,
4008                                        "v6.4.1": True,
4009                                        "v6.2.0": True,
4010                                        "v6.2.3": True,
4011                                        "v6.2.5": True,
4012                                        "v6.2.7": True,
4013                                        "v6.0.11": True
4014                                    }
4015                                },
4016                                {
4017                                    "value": "monitor",
4018                                    "revisions": {
4019                                        "v6.0.0": True,
4020                                        "v7.0.0": True,
4021                                        "v6.0.5": True,
4022                                        "v6.4.4": True,
4023                                        "v6.4.0": True,
4024                                        "v6.4.1": True,
4025                                        "v6.2.0": True,
4026                                        "v6.2.3": True,
4027                                        "v6.2.5": True,
4028                                        "v6.2.7": True,
4029                                        "v6.0.11": True
4030                                    }
4031                                },
4032                                {
4033                                    "value": "warning",
4034                                    "revisions": {
4035                                        "v6.0.0": True,
4036                                        "v7.0.0": True,
4037                                        "v6.0.5": True,
4038                                        "v6.4.4": True,
4039                                        "v6.4.0": True,
4040                                        "v6.4.1": True,
4041                                        "v6.2.0": True,
4042                                        "v6.2.3": True,
4043                                        "v6.2.5": True,
4044                                        "v6.2.7": True,
4045                                        "v6.0.11": True
4046                                    }
4047                                }
4048                            ],
4049                            "revisions": {
4050                                "v6.0.0": True,
4051                                "v7.0.0": True,
4052                                "v6.0.5": True,
4053                                "v6.4.4": True,
4054                                "v6.4.0": True,
4055                                "v6.4.1": True,
4056                                "v6.2.0": True,
4057                                "v6.2.3": True,
4058                                "v6.2.5": True,
4059                                "v6.2.7": True,
4060                                "v6.0.11": True
4061                            }
4062                        },
4063                        "auth_usr_grp": {
4064                            "type": "list",
4065                            "children": {
4066                                "name": {
4067                                    "type": "string",
4068                                    "revisions": {
4069                                        "v6.0.0": True,
4070                                        "v7.0.0": True,
4071                                        "v6.0.5": True,
4072                                        "v6.4.4": True,
4073                                        "v6.4.0": True,
4074                                        "v6.4.1": True,
4075                                        "v6.2.0": True,
4076                                        "v6.2.3": True,
4077                                        "v6.2.5": True,
4078                                        "v6.2.7": True,
4079                                        "v6.0.11": True
4080                                    }
4081                                }
4082                            },
4083                            "revisions": {
4084                                "v6.0.0": True,
4085                                "v7.0.0": True,
4086                                "v6.0.5": True,
4087                                "v6.4.4": True,
4088                                "v6.4.0": True,
4089                                "v6.4.1": True,
4090                                "v6.2.0": True,
4091                                "v6.2.3": True,
4092                                "v6.2.5": True,
4093                                "v6.2.7": True,
4094                                "v6.0.11": True
4095                            }
4096                        },
4097                        "warn_duration": {
4098                            "type": "string",
4099                            "revisions": {
4100                                "v6.0.0": True,
4101                                "v7.0.0": True,
4102                                "v6.0.5": True,
4103                                "v6.4.4": True,
4104                                "v6.4.0": True,
4105                                "v6.4.1": True,
4106                                "v6.2.0": True,
4107                                "v6.2.3": True,
4108                                "v6.2.5": True,
4109                                "v6.2.7": True,
4110                                "v6.0.11": True
4111                            }
4112                        }
4113                    },
4114                    "revisions": {
4115                        "v6.0.0": True,
4116                        "v7.0.0": True,
4117                        "v6.0.5": True,
4118                        "v6.4.4": True,
4119                        "v6.4.0": True,
4120                        "v6.4.1": True,
4121                        "v6.2.0": True,
4122                        "v6.2.3": True,
4123                        "v6.2.5": True,
4124                        "v6.2.7": True,
4125                        "v6.0.11": True
4126                    }
4127                },
4128                "max_quota_timeout": {
4129                    "type": "integer",
4130                    "revisions": {
4131                        "v6.0.0": True,
4132                        "v7.0.0": True,
4133                        "v6.0.5": True,
4134                        "v6.4.4": True,
4135                        "v6.4.0": True,
4136                        "v6.4.1": True,
4137                        "v6.2.0": True,
4138                        "v6.2.3": True,
4139                        "v6.2.5": True,
4140                        "v6.2.7": True,
4141                        "v6.0.11": True
4142                    }
4143                },
4144                "ovrd": {
4145                    "type": "string",
4146                    "revisions": {
4147                        "v6.0.0": True,
4148                        "v7.0.0": True,
4149                        "v6.0.5": True,
4150                        "v6.4.4": True,
4151                        "v6.4.0": True,
4152                        "v6.4.1": True,
4153                        "v6.2.0": True,
4154                        "v6.2.3": True,
4155                        "v6.2.5": True,
4156                        "v6.2.7": True,
4157                        "v6.0.11": True
4158                    }
4159                },
4160                "quota": {
4161                    "type": "list",
4162                    "children": {
4163                        "category": {
4164                            "type": "string",
4165                            "revisions": {
4166                                "v6.0.0": True,
4167                                "v7.0.0": True,
4168                                "v6.0.5": True,
4169                                "v6.4.4": True,
4170                                "v6.4.0": True,
4171                                "v6.4.1": True,
4172                                "v6.2.0": True,
4173                                "v6.2.3": True,
4174                                "v6.2.5": True,
4175                                "v6.2.7": True,
4176                                "v6.0.11": True
4177                            }
4178                        },
4179                        "override_replacemsg": {
4180                            "type": "string",
4181                            "revisions": {
4182                                "v6.0.0": True,
4183                                "v7.0.0": True,
4184                                "v6.0.5": True,
4185                                "v6.4.4": True,
4186                                "v6.4.0": True,
4187                                "v6.4.1": True,
4188                                "v6.2.0": True,
4189                                "v6.2.3": True,
4190                                "v6.2.5": True,
4191                                "v6.2.7": True,
4192                                "v6.0.11": True
4193                            }
4194                        },
4195                        "value": {
4196                            "type": "integer",
4197                            "revisions": {
4198                                "v6.0.0": True,
4199                                "v7.0.0": True,
4200                                "v6.0.5": True,
4201                                "v6.4.4": True,
4202                                "v6.4.0": True,
4203                                "v6.4.1": True,
4204                                "v6.2.0": True,
4205                                "v6.2.3": True,
4206                                "v6.2.5": True,
4207                                "v6.2.7": True,
4208                                "v6.0.11": True
4209                            }
4210                        },
4211                        "duration": {
4212                            "type": "string",
4213                            "revisions": {
4214                                "v6.0.0": True,
4215                                "v7.0.0": True,
4216                                "v6.0.5": True,
4217                                "v6.4.4": True,
4218                                "v6.4.0": True,
4219                                "v6.4.1": True,
4220                                "v6.2.0": True,
4221                                "v6.2.3": True,
4222                                "v6.2.5": True,
4223                                "v6.2.7": True,
4224                                "v6.0.11": True
4225                            }
4226                        },
4227                        "type": {
4228                            "type": "string",
4229                            "options": [
4230                                {
4231                                    "value": "time",
4232                                    "revisions": {
4233                                        "v6.0.0": True,
4234                                        "v7.0.0": True,
4235                                        "v6.0.5": True,
4236                                        "v6.4.4": True,
4237                                        "v6.4.0": True,
4238                                        "v6.4.1": True,
4239                                        "v6.2.0": True,
4240                                        "v6.2.3": True,
4241                                        "v6.2.5": True,
4242                                        "v6.2.7": True,
4243                                        "v6.0.11": True
4244                                    }
4245                                },
4246                                {
4247                                    "value": "traffic",
4248                                    "revisions": {
4249                                        "v6.0.0": True,
4250                                        "v7.0.0": True,
4251                                        "v6.0.5": True,
4252                                        "v6.4.4": True,
4253                                        "v6.4.0": True,
4254                                        "v6.4.1": True,
4255                                        "v6.2.0": True,
4256                                        "v6.2.3": True,
4257                                        "v6.2.5": True,
4258                                        "v6.2.7": True,
4259                                        "v6.0.11": True
4260                                    }
4261                                }
4262                            ],
4263                            "revisions": {
4264                                "v6.0.0": True,
4265                                "v7.0.0": True,
4266                                "v6.0.5": True,
4267                                "v6.4.4": True,
4268                                "v6.4.0": True,
4269                                "v6.4.1": True,
4270                                "v6.2.0": True,
4271                                "v6.2.3": True,
4272                                "v6.2.5": True,
4273                                "v6.2.7": True,
4274                                "v6.0.11": True
4275                            }
4276                        },
4277                        "id": {
4278                            "type": "integer",
4279                            "revisions": {
4280                                "v6.0.0": True,
4281                                "v7.0.0": True,
4282                                "v6.0.5": True,
4283                                "v6.4.4": True,
4284                                "v6.4.0": True,
4285                                "v6.4.1": True,
4286                                "v6.2.0": True,
4287                                "v6.2.3": True,
4288                                "v6.2.5": True,
4289                                "v6.2.7": True,
4290                                "v6.0.11": True
4291                            }
4292                        },
4293                        "unit": {
4294                            "type": "string",
4295                            "options": [
4296                                {
4297                                    "value": "B",
4298                                    "revisions": {
4299                                        "v6.0.0": True,
4300                                        "v7.0.0": True,
4301                                        "v6.0.5": True,
4302                                        "v6.4.4": True,
4303                                        "v6.4.0": True,
4304                                        "v6.4.1": True,
4305                                        "v6.2.0": True,
4306                                        "v6.2.3": True,
4307                                        "v6.2.5": True,
4308                                        "v6.2.7": True,
4309                                        "v6.0.11": True
4310                                    }
4311                                },
4312                                {
4313                                    "value": "KB",
4314                                    "revisions": {
4315                                        "v6.0.0": True,
4316                                        "v7.0.0": True,
4317                                        "v6.0.5": True,
4318                                        "v6.4.4": True,
4319                                        "v6.4.0": True,
4320                                        "v6.4.1": True,
4321                                        "v6.2.0": True,
4322                                        "v6.2.3": True,
4323                                        "v6.2.5": True,
4324                                        "v6.2.7": True,
4325                                        "v6.0.11": True
4326                                    }
4327                                },
4328                                {
4329                                    "value": "MB",
4330                                    "revisions": {
4331                                        "v6.0.0": True,
4332                                        "v7.0.0": True,
4333                                        "v6.0.5": True,
4334                                        "v6.4.4": True,
4335                                        "v6.4.0": True,
4336                                        "v6.4.1": True,
4337                                        "v6.2.0": True,
4338                                        "v6.2.3": True,
4339                                        "v6.2.5": True,
4340                                        "v6.2.7": True,
4341                                        "v6.0.11": True
4342                                    }
4343                                },
4344                                {
4345                                    "value": "GB",
4346                                    "revisions": {
4347                                        "v6.0.0": True,
4348                                        "v7.0.0": True,
4349                                        "v6.0.5": True,
4350                                        "v6.4.4": True,
4351                                        "v6.4.0": True,
4352                                        "v6.4.1": True,
4353                                        "v6.2.0": True,
4354                                        "v6.2.3": True,
4355                                        "v6.2.5": True,
4356                                        "v6.2.7": True,
4357                                        "v6.0.11": True
4358                                    }
4359                                }
4360                            ],
4361                            "revisions": {
4362                                "v6.0.0": True,
4363                                "v7.0.0": True,
4364                                "v6.0.5": True,
4365                                "v6.4.4": True,
4366                                "v6.4.0": True,
4367                                "v6.4.1": True,
4368                                "v6.2.0": True,
4369                                "v6.2.3": True,
4370                                "v6.2.5": True,
4371                                "v6.2.7": True,
4372                                "v6.0.11": True
4373                            }
4374                        }
4375                    },
4376                    "revisions": {
4377                        "v6.0.0": True,
4378                        "v7.0.0": True,
4379                        "v6.0.5": True,
4380                        "v6.4.4": True,
4381                        "v6.4.0": True,
4382                        "v6.4.1": True,
4383                        "v6.2.0": True,
4384                        "v6.2.3": True,
4385                        "v6.2.5": True,
4386                        "v6.2.7": True,
4387                        "v6.0.11": True
4388                    }
4389                },
4390                "rate_image_urls": {
4391                    "type": "string",
4392                    "options": [
4393                        {
4394                            "value": "disable",
4395                            "revisions": {
4396                                "v6.0.0": True,
4397                                "v6.0.5": True,
4398                                "v6.4.0": True,
4399                                "v6.4.1": True,
4400                                "v6.2.0": True,
4401                                "v6.2.3": True,
4402                                "v6.2.5": True,
4403                                "v6.2.7": True,
4404                                "v6.0.11": True
4405                            }
4406                        },
4407                        {
4408                            "value": "enable",
4409                            "revisions": {
4410                                "v6.0.0": True,
4411                                "v6.0.5": True,
4412                                "v6.4.0": True,
4413                                "v6.4.1": True,
4414                                "v6.2.0": True,
4415                                "v6.2.3": True,
4416                                "v6.2.5": True,
4417                                "v6.2.7": True,
4418                                "v6.0.11": True
4419                            }
4420                        }
4421                    ],
4422                    "revisions": {
4423                        "v6.0.0": True,
4424                        "v7.0.0": False,
4425                        "v6.0.5": True,
4426                        "v6.4.4": False,
4427                        "v6.4.0": True,
4428                        "v6.4.1": True,
4429                        "v6.2.0": True,
4430                        "v6.2.3": True,
4431                        "v6.2.5": True,
4432                        "v6.2.7": True,
4433                        "v6.0.11": True
4434                    }
4435                },
4436                "exempt_quota": {
4437                    "type": "string",
4438                    "revisions": {
4439                        "v6.0.0": True,
4440                        "v7.0.0": True,
4441                        "v6.0.5": True,
4442                        "v6.4.4": True,
4443                        "v6.4.0": True,
4444                        "v6.4.1": True,
4445                        "v6.2.0": True,
4446                        "v6.2.3": True,
4447                        "v6.2.5": True,
4448                        "v6.2.7": True,
4449                        "v6.0.11": True
4450                    }
4451                },
4452                "rate_css_urls": {
4453                    "type": "string",
4454                    "options": [
4455                        {
4456                            "value": "disable",
4457                            "revisions": {
4458                                "v6.0.0": True,
4459                                "v7.0.0": True,
4460                                "v6.0.5": True,
4461                                "v6.4.4": True,
4462                                "v6.4.0": True,
4463                                "v6.4.1": True,
4464                                "v6.2.0": True,
4465                                "v6.2.3": True,
4466                                "v6.2.5": True,
4467                                "v6.2.7": True,
4468                                "v6.0.11": True
4469                            }
4470                        },
4471                        {
4472                            "value": "enable",
4473                            "revisions": {
4474                                "v6.0.0": True,
4475                                "v7.0.0": True,
4476                                "v6.0.5": True,
4477                                "v6.4.4": True,
4478                                "v6.4.0": True,
4479                                "v6.4.1": True,
4480                                "v6.2.0": True,
4481                                "v6.2.3": True,
4482                                "v6.2.5": True,
4483                                "v6.2.7": True,
4484                                "v6.0.11": True
4485                            }
4486                        }
4487                    ],
4488                    "revisions": {
4489                        "v6.0.0": True,
4490                        "v7.0.0": True,
4491                        "v6.0.5": True,
4492                        "v6.4.4": True,
4493                        "v6.4.0": True,
4494                        "v6.4.1": True,
4495                        "v6.2.0": True,
4496                        "v6.2.3": True,
4497                        "v6.2.5": True,
4498                        "v6.2.7": True,
4499                        "v6.0.11": True
4500                    }
4501                },
4502                "options": {
4503                    "multiple_values": True,
4504                    "type": "list",
4505                    "options": [
4506                        {
4507                            "value": "error-allow",
4508                            "revisions": {
4509                                "v6.0.0": True,
4510                                "v7.0.0": True,
4511                                "v6.0.5": True,
4512                                "v6.4.4": True,
4513                                "v6.4.0": True,
4514                                "v6.4.1": True,
4515                                "v6.2.0": True,
4516                                "v6.2.3": True,
4517                                "v6.2.5": True,
4518                                "v6.2.7": True,
4519                                "v6.0.11": True
4520                            }
4521                        },
4522                        {
4523                            "value": "rate-server-ip",
4524                            "revisions": {
4525                                "v6.0.0": True,
4526                                "v7.0.0": True,
4527                                "v6.0.5": True,
4528                                "v6.4.4": True,
4529                                "v6.4.0": True,
4530                                "v6.4.1": True,
4531                                "v6.2.0": True,
4532                                "v6.2.3": True,
4533                                "v6.2.5": True,
4534                                "v6.2.7": True,
4535                                "v6.0.11": True
4536                            }
4537                        },
4538                        {
4539                            "value": "connect-request-bypass",
4540                            "revisions": {
4541                                "v6.0.0": True,
4542                                "v7.0.0": True,
4543                                "v6.0.5": True,
4544                                "v6.4.4": True,
4545                                "v6.4.0": True,
4546                                "v6.4.1": True,
4547                                "v6.2.0": True,
4548                                "v6.2.3": True,
4549                                "v6.2.5": True,
4550                                "v6.2.7": True,
4551                                "v6.0.11": True
4552                            }
4553                        },
4554                        {
4555                            "value": "ftgd-disable",
4556                            "revisions": {
4557                                "v6.0.0": True,
4558                                "v7.0.0": True,
4559                                "v6.0.5": True,
4560                                "v6.4.4": True,
4561                                "v6.4.0": True,
4562                                "v6.4.1": True,
4563                                "v6.2.0": True,
4564                                "v6.2.3": True,
4565                                "v6.2.5": True,
4566                                "v6.2.7": True,
4567                                "v6.0.11": True
4568                            }
4569                        }
4570                    ],
4571                    "revisions": {
4572                        "v6.0.0": True,
4573                        "v7.0.0": True,
4574                        "v6.0.5": True,
4575                        "v6.4.4": True,
4576                        "v6.4.0": True,
4577                        "v6.4.1": True,
4578                        "v6.2.0": True,
4579                        "v6.2.3": True,
4580                        "v6.2.5": True,
4581                        "v6.2.7": True,
4582                        "v6.0.11": True
4583                    }
4584                },
4585                "rate_crl_urls": {
4586                    "type": "string",
4587                    "options": [
4588                        {
4589                            "value": "disable",
4590                            "revisions": {
4591                                "v6.0.0": True,
4592                                "v7.0.0": True,
4593                                "v6.0.5": True,
4594                                "v6.4.4": True,
4595                                "v6.4.0": True,
4596                                "v6.4.1": True,
4597                                "v6.2.0": True,
4598                                "v6.2.3": True,
4599                                "v6.2.5": True,
4600                                "v6.2.7": True,
4601                                "v6.0.11": True
4602                            }
4603                        },
4604                        {
4605                            "value": "enable",
4606                            "revisions": {
4607                                "v6.0.0": True,
4608                                "v7.0.0": True,
4609                                "v6.0.5": True,
4610                                "v6.4.4": True,
4611                                "v6.4.0": True,
4612                                "v6.4.1": True,
4613                                "v6.2.0": True,
4614                                "v6.2.3": True,
4615                                "v6.2.5": True,
4616                                "v6.2.7": True,
4617                                "v6.0.11": True
4618                            }
4619                        }
4620                    ],
4621                    "revisions": {
4622                        "v6.0.0": True,
4623                        "v7.0.0": True,
4624                        "v6.0.5": True,
4625                        "v6.4.4": True,
4626                        "v6.4.0": True,
4627                        "v6.4.1": True,
4628                        "v6.2.0": True,
4629                        "v6.2.3": True,
4630                        "v6.2.5": True,
4631                        "v6.2.7": True,
4632                        "v6.0.11": True
4633                    }
4634                }
4635            },
4636            "revisions": {
4637                "v6.0.0": True,
4638                "v7.0.0": True,
4639                "v6.0.5": True,
4640                "v6.4.4": True,
4641                "v6.4.0": True,
4642                "v6.4.1": True,
4643                "v6.2.0": True,
4644                "v6.2.3": True,
4645                "v6.2.5": True,
4646                "v6.2.7": True,
4647                "v6.0.11": True
4648            }
4649        },
4650        "web_extended_all_action_log": {
4651            "type": "string",
4652            "options": [
4653                {
4654                    "value": "enable",
4655                    "revisions": {
4656                        "v6.0.0": True,
4657                        "v7.0.0": True,
4658                        "v6.0.5": True,
4659                        "v6.4.4": True,
4660                        "v6.4.0": True,
4661                        "v6.4.1": True,
4662                        "v6.2.0": True,
4663                        "v6.2.3": True,
4664                        "v6.2.5": True,
4665                        "v6.2.7": True,
4666                        "v6.0.11": True
4667                    }
4668                },
4669                {
4670                    "value": "disable",
4671                    "revisions": {
4672                        "v6.0.0": True,
4673                        "v7.0.0": True,
4674                        "v6.0.5": True,
4675                        "v6.4.4": True,
4676                        "v6.4.0": True,
4677                        "v6.4.1": True,
4678                        "v6.2.0": True,
4679                        "v6.2.3": True,
4680                        "v6.2.5": True,
4681                        "v6.2.7": True,
4682                        "v6.0.11": True
4683                    }
4684                }
4685            ],
4686            "revisions": {
4687                "v6.0.0": True,
4688                "v7.0.0": True,
4689                "v6.0.5": True,
4690                "v6.4.4": True,
4691                "v6.4.0": True,
4692                "v6.4.1": True,
4693                "v6.2.0": True,
4694                "v6.2.3": True,
4695                "v6.2.5": True,
4696                "v6.2.7": True,
4697                "v6.0.11": True
4698            }
4699        },
4700        "web_filter_vbs_log": {
4701            "type": "string",
4702            "options": [
4703                {
4704                    "value": "enable",
4705                    "revisions": {
4706                        "v6.0.0": True,
4707                        "v7.0.0": True,
4708                        "v6.0.5": True,
4709                        "v6.4.4": True,
4710                        "v6.4.0": True,
4711                        "v6.4.1": True,
4712                        "v6.2.0": True,
4713                        "v6.2.3": True,
4714                        "v6.2.5": True,
4715                        "v6.2.7": True,
4716                        "v6.0.11": True
4717                    }
4718                },
4719                {
4720                    "value": "disable",
4721                    "revisions": {
4722                        "v6.0.0": True,
4723                        "v7.0.0": True,
4724                        "v6.0.5": True,
4725                        "v6.4.4": True,
4726                        "v6.4.0": True,
4727                        "v6.4.1": True,
4728                        "v6.2.0": True,
4729                        "v6.2.3": True,
4730                        "v6.2.5": True,
4731                        "v6.2.7": True,
4732                        "v6.0.11": True
4733                    }
4734                }
4735            ],
4736            "revisions": {
4737                "v6.0.0": True,
4738                "v7.0.0": True,
4739                "v6.0.5": True,
4740                "v6.4.4": True,
4741                "v6.4.0": True,
4742                "v6.4.1": True,
4743                "v6.2.0": True,
4744                "v6.2.3": True,
4745                "v6.2.5": True,
4746                "v6.2.7": True,
4747                "v6.0.11": True
4748            }
4749        },
4750        "antiphish": {
4751            "type": "dict",
4752            "children": {
4753                "status": {
4754                    "type": "string",
4755                    "options": [
4756                        {
4757                            "value": "enable",
4758                            "revisions": {
4759                                "v6.4.4": True,
4760                                "v7.0.0": True,
4761                                "v6.4.0": True,
4762                                "v6.4.1": True
4763                            }
4764                        },
4765                        {
4766                            "value": "disable",
4767                            "revisions": {
4768                                "v6.4.4": True,
4769                                "v7.0.0": True,
4770                                "v6.4.0": True,
4771                                "v6.4.1": True
4772                            }
4773                        }
4774                    ],
4775                    "revisions": {
4776                        "v6.4.4": True,
4777                        "v7.0.0": True,
4778                        "v6.4.0": True,
4779                        "v6.4.1": True
4780                    }
4781                },
4782                "check_uri": {
4783                    "type": "string",
4784                    "options": [
4785                        {
4786                            "value": "enable",
4787                            "revisions": {
4788                                "v6.4.4": True,
4789                                "v7.0.0": True,
4790                                "v6.4.0": True,
4791                                "v6.4.1": True
4792                            }
4793                        },
4794                        {
4795                            "value": "disable",
4796                            "revisions": {
4797                                "v6.4.4": True,
4798                                "v7.0.0": True,
4799                                "v6.4.0": True,
4800                                "v6.4.1": True
4801                            }
4802                        }
4803                    ],
4804                    "revisions": {
4805                        "v6.4.4": True,
4806                        "v7.0.0": True,
4807                        "v6.4.0": True,
4808                        "v6.4.1": True
4809                    }
4810                },
4811                "authentication": {
4812                    "type": "string",
4813                    "options": [
4814                        {
4815                            "value": "domain-controller",
4816                            "revisions": {
4817                                "v7.0.0": True
4818                            }
4819                        },
4820                        {
4821                            "value": "ldap",
4822                            "revisions": {
4823                                "v7.0.0": True
4824                            }
4825                        }
4826                    ],
4827                    "revisions": {
4828                        "v7.0.0": True
4829                    }
4830                },
4831                "max_body_len": {
4832                    "type": "integer",
4833                    "revisions": {
4834                        "v6.4.4": True,
4835                        "v7.0.0": True,
4836                        "v6.4.0": True,
4837                        "v6.4.1": True
4838                    }
4839                },
4840                "custom_patterns": {
4841                    "type": "list",
4842                    "children": {
4843                        "category": {
4844                            "type": "string",
4845                            "options": [
4846                                {
4847                                    "value": "username",
4848                                    "revisions": {
4849                                        "v6.4.4": True,
4850                                        "v7.0.0": True,
4851                                        "v6.4.0": True,
4852                                        "v6.4.1": True
4853                                    }
4854                                },
4855                                {
4856                                    "value": "password",
4857                                    "revisions": {
4858                                        "v6.4.4": True,
4859                                        "v7.0.0": True,
4860                                        "v6.4.0": True,
4861                                        "v6.4.1": True
4862                                    }
4863                                }
4864                            ],
4865                            "revisions": {
4866                                "v6.4.4": True,
4867                                "v7.0.0": True,
4868                                "v6.4.0": True,
4869                                "v6.4.1": True
4870                            }
4871                        },
4872                        "pattern": {
4873                            "type": "string",
4874                            "revisions": {
4875                                "v6.4.4": True,
4876                                "v7.0.0": True,
4877                                "v6.4.0": True,
4878                                "v6.4.1": True
4879                            }
4880                        },
4881                        "type": {
4882                            "type": "string",
4883                            "options": [
4884                                {
4885                                    "value": "regex",
4886                                    "revisions": {
4887                                        "v7.0.0": True
4888                                    }
4889                                },
4890                                {
4891                                    "value": "literal",
4892                                    "revisions": {
4893                                        "v7.0.0": True
4894                                    }
4895                                }
4896                            ],
4897                            "revisions": {
4898                                "v7.0.0": True
4899                            }
4900                        }
4901                    },
4902                    "revisions": {
4903                        "v6.4.4": True,
4904                        "v7.0.0": True,
4905                        "v6.4.0": True,
4906                        "v6.4.1": True
4907                    }
4908                },
4909                "check_basic_auth": {
4910                    "type": "string",
4911                    "options": [
4912                        {
4913                            "value": "enable",
4914                            "revisions": {
4915                                "v6.4.4": True,
4916                                "v7.0.0": True,
4917                                "v6.4.0": True,
4918                                "v6.4.1": True
4919                            }
4920                        },
4921                        {
4922                            "value": "disable",
4923                            "revisions": {
4924                                "v6.4.4": True,
4925                                "v7.0.0": True,
4926                                "v6.4.0": True,
4927                                "v6.4.1": True
4928                            }
4929                        }
4930                    ],
4931                    "revisions": {
4932                        "v6.4.4": True,
4933                        "v7.0.0": True,
4934                        "v6.4.0": True,
4935                        "v6.4.1": True
4936                    }
4937                },
4938                "ldap": {
4939                    "type": "string",
4940                    "revisions": {
4941                        "v7.0.0": True
4942                    }
4943                },
4944                "default_action": {
4945                    "type": "string",
4946                    "options": [
4947                        {
4948                            "value": "exempt",
4949                            "revisions": {
4950                                "v6.4.4": True,
4951                                "v7.0.0": True,
4952                                "v6.4.0": True,
4953                                "v6.4.1": True
4954                            }
4955                        },
4956                        {
4957                            "value": "log",
4958                            "revisions": {
4959                                "v6.4.4": True,
4960                                "v7.0.0": True,
4961                                "v6.4.0": True,
4962                                "v6.4.1": True
4963                            }
4964                        },
4965                        {
4966                            "value": "block",
4967                            "revisions": {
4968                                "v6.4.4": True,
4969                                "v7.0.0": True,
4970                                "v6.4.0": True,
4971                                "v6.4.1": True
4972                            }
4973                        }
4974                    ],
4975                    "revisions": {
4976                        "v6.4.4": True,
4977                        "v7.0.0": True,
4978                        "v6.4.0": True,
4979                        "v6.4.1": True
4980                    }
4981                },
4982                "check_username_only": {
4983                    "type": "string",
4984                    "options": [
4985                        {
4986                            "value": "enable",
4987                            "revisions": {
4988                                "v6.4.4": True,
4989                                "v7.0.0": True
4990                            }
4991                        },
4992                        {
4993                            "value": "disable",
4994                            "revisions": {
4995                                "v6.4.4": True,
4996                                "v7.0.0": True
4997                            }
4998                        }
4999                    ],
5000                    "revisions": {
5001                        "v6.4.4": True,
5002                        "v7.0.0": True
5003                    }
5004                },
5005                "inspection_entries": {
5006                    "type": "list",
5007                    "children": {
5008                        "action": {
5009                            "type": "string",
5010                            "options": [
5011                                {
5012                                    "value": "exempt",
5013                                    "revisions": {
5014                                        "v6.4.4": True,
5015                                        "v7.0.0": True,
5016                                        "v6.4.0": True,
5017                                        "v6.4.1": True
5018                                    }
5019                                },
5020                                {
5021                                    "value": "log",
5022                                    "revisions": {
5023                                        "v6.4.4": True,
5024                                        "v7.0.0": True,
5025                                        "v6.4.0": True,
5026                                        "v6.4.1": True
5027                                    }
5028                                },
5029                                {
5030                                    "value": "block",
5031                                    "revisions": {
5032                                        "v6.4.4": True,
5033                                        "v7.0.0": True,
5034                                        "v6.4.0": True,
5035                                        "v6.4.1": True
5036                                    }
5037                                }
5038                            ],
5039                            "revisions": {
5040                                "v6.4.4": True,
5041                                "v7.0.0": True,
5042                                "v6.4.0": True,
5043                                "v6.4.1": True
5044                            }
5045                        },
5046                        "fortiguard_category": {
5047                            "type": "string",
5048                            "revisions": {
5049                                "v6.4.4": True,
5050                                "v7.0.0": True,
5051                                "v6.4.0": True,
5052                                "v6.4.1": True
5053                            }
5054                        },
5055                        "name": {
5056                            "type": "string",
5057                            "revisions": {
5058                                "v6.4.4": True,
5059                                "v7.0.0": True,
5060                                "v6.4.0": True,
5061                                "v6.4.1": True
5062                            }
5063                        }
5064                    },
5065                    "revisions": {
5066                        "v6.4.4": True,
5067                        "v7.0.0": True,
5068                        "v6.4.0": True,
5069                        "v6.4.1": True
5070                    }
5071                },
5072                "domain_controller": {
5073                    "type": "string",
5074                    "revisions": {
5075                        "v6.4.4": True,
5076                        "v7.0.0": True,
5077                        "v6.4.0": True,
5078                        "v6.4.1": True
5079                    }
5080                }
5081            },
5082            "revisions": {
5083                "v6.4.4": True,
5084                "v7.0.0": True,
5085                "v6.4.0": True,
5086                "v6.4.1": True
5087            }
5088        },
5089        "web_invalid_domain_log": {
5090            "type": "string",
5091            "options": [
5092                {
5093                    "value": "enable",
5094                    "revisions": {
5095                        "v6.0.0": True,
5096                        "v7.0.0": True,
5097                        "v6.0.5": True,
5098                        "v6.4.4": True,
5099                        "v6.4.0": True,
5100                        "v6.4.1": True,
5101                        "v6.2.0": True,
5102                        "v6.2.3": True,
5103                        "v6.2.5": True,
5104                        "v6.2.7": True,
5105                        "v6.0.11": True
5106                    }
5107                },
5108                {
5109                    "value": "disable",
5110                    "revisions": {
5111                        "v6.0.0": True,
5112                        "v7.0.0": True,
5113                        "v6.0.5": True,
5114                        "v6.4.4": True,
5115                        "v6.4.0": True,
5116                        "v6.4.1": True,
5117                        "v6.2.0": True,
5118                        "v6.2.3": True,
5119                        "v6.2.5": True,
5120                        "v6.2.7": True,
5121                        "v6.0.11": True
5122                    }
5123                }
5124            ],
5125            "revisions": {
5126                "v6.0.0": True,
5127                "v7.0.0": True,
5128                "v6.0.5": True,
5129                "v6.4.4": True,
5130                "v6.4.0": True,
5131                "v6.4.1": True,
5132                "v6.2.0": True,
5133                "v6.2.3": True,
5134                "v6.2.5": True,
5135                "v6.2.7": True,
5136                "v6.0.11": True
5137            }
5138        },
5139        "name": {
5140            "type": "string",
5141            "revisions": {
5142                "v6.0.0": True,
5143                "v7.0.0": True,
5144                "v6.0.5": True,
5145                "v6.4.4": True,
5146                "v6.4.0": True,
5147                "v6.4.1": True,
5148                "v6.2.0": True,
5149                "v6.2.3": True,
5150                "v6.2.5": True,
5151                "v6.2.7": True,
5152                "v6.0.11": True
5153            }
5154        },
5155        "file_filter": {
5156            "type": "dict",
5157            "children": {
5158                "status": {
5159                    "type": "string",
5160                    "options": [
5161                        {
5162                            "value": "enable",
5163                            "revisions": {
5164                                "v6.2.0": True,
5165                                "v6.2.3": True,
5166                                "v6.2.5": True,
5167                                "v6.2.7": True
5168                            }
5169                        },
5170                        {
5171                            "value": "disable",
5172                            "revisions": {
5173                                "v6.2.0": True,
5174                                "v6.2.3": True,
5175                                "v6.2.5": True,
5176                                "v6.2.7": True
5177                            }
5178                        }
5179                    ],
5180                    "revisions": {
5181                        "v6.2.0": True,
5182                        "v6.2.3": True,
5183                        "v6.2.5": True,
5184                        "v6.2.7": True
5185                    }
5186                },
5187                "scan_archive_contents": {
5188                    "type": "string",
5189                    "options": [
5190                        {
5191                            "value": "enable",
5192                            "revisions": {
5193                                "v6.2.0": True,
5194                                "v6.2.3": True,
5195                                "v6.2.5": True,
5196                                "v6.2.7": True
5197                            }
5198                        },
5199                        {
5200                            "value": "disable",
5201                            "revisions": {
5202                                "v6.2.0": True,
5203                                "v6.2.3": True,
5204                                "v6.2.5": True,
5205                                "v6.2.7": True
5206                            }
5207                        }
5208                    ],
5209                    "revisions": {
5210                        "v6.2.0": True,
5211                        "v6.2.3": True,
5212                        "v6.2.5": True,
5213                        "v6.2.7": True
5214                    }
5215                },
5216                "log": {
5217                    "type": "string",
5218                    "options": [
5219                        {
5220                            "value": "enable",
5221                            "revisions": {
5222                                "v6.2.0": True,
5223                                "v6.2.3": True,
5224                                "v6.2.5": True,
5225                                "v6.2.7": True
5226                            }
5227                        },
5228                        {
5229                            "value": "disable",
5230                            "revisions": {
5231                                "v6.2.0": True,
5232                                "v6.2.3": True,
5233                                "v6.2.5": True,
5234                                "v6.2.7": True
5235                            }
5236                        }
5237                    ],
5238                    "revisions": {
5239                        "v6.2.0": True,
5240                        "v6.2.3": True,
5241                        "v6.2.5": True,
5242                        "v6.2.7": True
5243                    }
5244                },
5245                "entries": {
5246                    "type": "list",
5247                    "children": {
5248                        "comment": {
5249                            "type": "string",
5250                            "revisions": {
5251                                "v6.2.0": True,
5252                                "v6.2.3": True,
5253                                "v6.2.5": True,
5254                                "v6.2.7": True
5255                            }
5256                        },
5257                        "direction": {
5258                            "type": "string",
5259                            "options": [
5260                                {
5261                                    "value": "incoming",
5262                                    "revisions": {
5263                                        "v6.2.0": True,
5264                                        "v6.2.3": True,
5265                                        "v6.2.5": True,
5266                                        "v6.2.7": True
5267                                    }
5268                                },
5269                                {
5270                                    "value": "outgoing",
5271                                    "revisions": {
5272                                        "v6.2.0": True,
5273                                        "v6.2.3": True,
5274                                        "v6.2.5": True,
5275                                        "v6.2.7": True
5276                                    }
5277                                },
5278                                {
5279                                    "value": "any",
5280                                    "revisions": {
5281                                        "v6.2.0": True,
5282                                        "v6.2.3": True,
5283                                        "v6.2.5": True,
5284                                        "v6.2.7": True
5285                                    }
5286                                }
5287                            ],
5288                            "revisions": {
5289                                "v6.2.0": True,
5290                                "v6.2.3": True,
5291                                "v6.2.5": True,
5292                                "v6.2.7": True
5293                            }
5294                        },
5295                        "protocol": {
5296                            "multiple_values": True,
5297                            "type": "list",
5298                            "options": [
5299                                {
5300                                    "value": "http",
5301                                    "revisions": {
5302                                        "v6.2.0": True,
5303                                        "v6.2.3": True,
5304                                        "v6.2.5": True,
5305                                        "v6.2.7": True
5306                                    }
5307                                },
5308                                {
5309                                    "value": "ftp",
5310                                    "revisions": {
5311                                        "v6.2.0": True,
5312                                        "v6.2.3": True,
5313                                        "v6.2.5": True,
5314                                        "v6.2.7": True
5315                                    }
5316                                }
5317                            ],
5318                            "revisions": {
5319                                "v6.2.0": True,
5320                                "v6.2.3": True,
5321                                "v6.2.5": True,
5322                                "v6.2.7": True
5323                            }
5324                        },
5325                        "file_type": {
5326                            "type": "list",
5327                            "children": {
5328                                "name": {
5329                                    "type": "string",
5330                                    "revisions": {
5331                                        "v6.2.0": True,
5332                                        "v6.2.3": True,
5333                                        "v6.2.5": True,
5334                                        "v6.2.7": True
5335                                    }
5336                                }
5337                            },
5338                            "revisions": {
5339                                "v6.2.0": True,
5340                                "v6.2.3": True,
5341                                "v6.2.5": True,
5342                                "v6.2.7": True
5343                            }
5344                        },
5345                        "password_protected": {
5346                            "type": "string",
5347                            "options": [
5348                                {
5349                                    "value": "yes",
5350                                    "revisions": {
5351                                        "v6.2.0": True,
5352                                        "v6.2.3": True,
5353                                        "v6.2.5": True,
5354                                        "v6.2.7": True
5355                                    }
5356                                },
5357                                {
5358                                    "value": "any",
5359                                    "revisions": {
5360                                        "v6.2.0": True,
5361                                        "v6.2.3": True,
5362                                        "v6.2.5": True,
5363                                        "v6.2.7": True
5364                                    }
5365                                }
5366                            ],
5367                            "revisions": {
5368                                "v6.2.0": True,
5369                                "v6.2.3": True,
5370                                "v6.2.5": True,
5371                                "v6.2.7": True
5372                            }
5373                        },
5374                        "filter": {
5375                            "type": "string",
5376                            "revisions": {
5377                                "v6.2.0": True,
5378                                "v6.2.3": True,
5379                                "v6.2.5": True,
5380                                "v6.2.7": True
5381                            }
5382                        },
5383                        "action": {
5384                            "type": "string",
5385                            "options": [
5386                                {
5387                                    "value": "log",
5388                                    "revisions": {
5389                                        "v6.2.0": True,
5390                                        "v6.2.3": True,
5391                                        "v6.2.5": True,
5392                                        "v6.2.7": True
5393                                    }
5394                                },
5395                                {
5396                                    "value": "block",
5397                                    "revisions": {
5398                                        "v6.2.0": True,
5399                                        "v6.2.3": True,
5400                                        "v6.2.5": True,
5401                                        "v6.2.7": True
5402                                    }
5403                                }
5404                            ],
5405                            "revisions": {
5406                                "v6.2.0": True,
5407                                "v6.2.3": True,
5408                                "v6.2.5": True,
5409                                "v6.2.7": True
5410                            }
5411                        }
5412                    },
5413                    "revisions": {
5414                        "v6.2.0": True,
5415                        "v6.2.3": True,
5416                        "v6.2.5": True,
5417                        "v6.2.7": True
5418                    }
5419                }
5420            },
5421            "revisions": {
5422                "v7.0.0": False,
5423                "v6.4.4": False,
5424                "v6.4.0": False,
5425                "v6.4.1": False,
5426                "v6.2.0": True,
5427                "v6.2.3": True,
5428                "v6.2.5": True,
5429                "v6.2.7": True
5430            }
5431        },
5432        "wisp": {
5433            "type": "string",
5434            "options": [
5435                {
5436                    "value": "enable",
5437                    "revisions": {
5438                        "v6.0.0": True,
5439                        "v7.0.0": True,
5440                        "v6.0.5": True,
5441                        "v6.4.4": True,
5442                        "v6.4.0": True,
5443                        "v6.4.1": True,
5444                        "v6.2.0": True,
5445                        "v6.2.3": True,
5446                        "v6.2.5": True,
5447                        "v6.2.7": True,
5448                        "v6.0.11": True
5449                    }
5450                },
5451                {
5452                    "value": "disable",
5453                    "revisions": {
5454                        "v6.0.0": True,
5455                        "v7.0.0": True,
5456                        "v6.0.5": True,
5457                        "v6.4.4": True,
5458                        "v6.4.0": True,
5459                        "v6.4.1": True,
5460                        "v6.2.0": True,
5461                        "v6.2.3": True,
5462                        "v6.2.5": True,
5463                        "v6.2.7": True,
5464                        "v6.0.11": True
5465                    }
5466                }
5467            ],
5468            "revisions": {
5469                "v6.0.0": True,
5470                "v7.0.0": True,
5471                "v6.0.5": True,
5472                "v6.4.4": True,
5473                "v6.4.0": True,
5474                "v6.4.1": True,
5475                "v6.2.0": True,
5476                "v6.2.3": True,
5477                "v6.2.5": True,
5478                "v6.2.7": True,
5479                "v6.0.11": True
5480            }
5481        },
5482        "youtube_channel_filter": {
5483            "type": "list",
5484            "children": {
5485                "comment": {
5486                    "type": "string",
5487                    "revisions": {
5488                        "v6.0.0": True,
5489                        "v6.0.5": True,
5490                        "v6.4.4": True,
5491                        "v6.4.0": True,
5492                        "v6.4.1": True,
5493                        "v6.2.0": True,
5494                        "v6.2.3": True,
5495                        "v6.2.5": True,
5496                        "v6.2.7": True,
5497                        "v6.0.11": True
5498                    }
5499                },
5500                "channel_id": {
5501                    "type": "string",
5502                    "revisions": {
5503                        "v6.0.0": True,
5504                        "v6.0.5": True,
5505                        "v6.4.4": True,
5506                        "v6.4.0": True,
5507                        "v6.4.1": True,
5508                        "v6.2.0": True,
5509                        "v6.2.3": True,
5510                        "v6.2.5": True,
5511                        "v6.2.7": True,
5512                        "v6.0.11": True
5513                    }
5514                },
5515                "id": {
5516                    "type": "integer",
5517                    "revisions": {
5518                        "v6.0.0": True,
5519                        "v6.0.5": True,
5520                        "v6.4.4": True,
5521                        "v6.4.0": True,
5522                        "v6.4.1": True,
5523                        "v6.2.0": True,
5524                        "v6.2.3": True,
5525                        "v6.2.5": True,
5526                        "v6.2.7": True,
5527                        "v6.0.11": True
5528                    }
5529                }
5530            },
5531            "revisions": {
5532                "v6.0.0": True,
5533                "v7.0.0": False,
5534                "v6.0.5": True,
5535                "v6.4.4": True,
5536                "v6.4.0": True,
5537                "v6.4.1": True,
5538                "v6.2.0": True,
5539                "v6.2.3": True,
5540                "v6.2.5": True,
5541                "v6.2.7": True,
5542                "v6.0.11": True
5543            }
5544        },
5545        "https_replacemsg": {
5546            "type": "string",
5547            "options": [
5548                {
5549                    "value": "enable",
5550                    "revisions": {
5551                        "v6.0.0": True,
5552                        "v7.0.0": True,
5553                        "v6.0.5": True,
5554                        "v6.4.4": True,
5555                        "v6.4.0": True,
5556                        "v6.4.1": True,
5557                        "v6.2.0": True,
5558                        "v6.2.3": True,
5559                        "v6.2.5": True,
5560                        "v6.2.7": True,
5561                        "v6.0.11": True
5562                    }
5563                },
5564                {
5565                    "value": "disable",
5566                    "revisions": {
5567                        "v6.0.0": True,
5568                        "v7.0.0": True,
5569                        "v6.0.5": True,
5570                        "v6.4.4": True,
5571                        "v6.4.0": True,
5572                        "v6.4.1": True,
5573                        "v6.2.0": True,
5574                        "v6.2.3": True,
5575                        "v6.2.5": True,
5576                        "v6.2.7": True,
5577                        "v6.0.11": True
5578                    }
5579                }
5580            ],
5581            "revisions": {
5582                "v6.0.0": True,
5583                "v7.0.0": True,
5584                "v6.0.5": True,
5585                "v6.4.4": True,
5586                "v6.4.0": True,
5587                "v6.4.1": True,
5588                "v6.2.0": True,
5589                "v6.2.3": True,
5590                "v6.2.5": True,
5591                "v6.2.7": True,
5592                "v6.0.11": True
5593            }
5594        },
5595        "log_all_url": {
5596            "type": "string",
5597            "options": [
5598                {
5599                    "value": "enable",
5600                    "revisions": {
5601                        "v6.0.0": True,
5602                        "v7.0.0": True,
5603                        "v6.0.5": True,
5604                        "v6.4.4": True,
5605                        "v6.4.0": True,
5606                        "v6.4.1": True,
5607                        "v6.2.0": True,
5608                        "v6.2.3": True,
5609                        "v6.2.5": True,
5610                        "v6.2.7": True,
5611                        "v6.0.11": True
5612                    }
5613                },
5614                {
5615                    "value": "disable",
5616                    "revisions": {
5617                        "v6.0.0": True,
5618                        "v7.0.0": True,
5619                        "v6.0.5": True,
5620                        "v6.4.4": True,
5621                        "v6.4.0": True,
5622                        "v6.4.1": True,
5623                        "v6.2.0": True,
5624                        "v6.2.3": True,
5625                        "v6.2.5": True,
5626                        "v6.2.7": True,
5627                        "v6.0.11": True
5628                    }
5629                }
5630            ],
5631            "revisions": {
5632                "v6.0.0": True,
5633                "v7.0.0": True,
5634                "v6.0.5": True,
5635                "v6.4.4": True,
5636                "v6.4.0": True,
5637                "v6.4.1": True,
5638                "v6.2.0": True,
5639                "v6.2.3": True,
5640                "v6.2.5": True,
5641                "v6.2.7": True,
5642                "v6.0.11": True
5643            }
5644        },
5645        "options": {
5646            "multiple_values": True,
5647            "type": "list",
5648            "options": [
5649                {
5650                    "value": "activexfilter",
5651                    "revisions": {
5652                        "v6.0.0": True,
5653                        "v7.0.0": True,
5654                        "v6.0.5": True,
5655                        "v6.4.4": True,
5656                        "v6.4.0": True,
5657                        "v6.4.1": True,
5658                        "v6.2.0": True,
5659                        "v6.2.3": True,
5660                        "v6.2.5": True,
5661                        "v6.2.7": True,
5662                        "v6.0.11": True
5663                    }
5664                },
5665                {
5666                    "value": "cookiefilter",
5667                    "revisions": {
5668                        "v6.0.0": True,
5669                        "v7.0.0": True,
5670                        "v6.0.5": True,
5671                        "v6.4.4": True,
5672                        "v6.4.0": True,
5673                        "v6.4.1": True,
5674                        "v6.2.0": True,
5675                        "v6.2.3": True,
5676                        "v6.2.5": True,
5677                        "v6.2.7": True,
5678                        "v6.0.11": True
5679                    }
5680                },
5681                {
5682                    "value": "javafilter",
5683                    "revisions": {
5684                        "v6.0.0": True,
5685                        "v7.0.0": True,
5686                        "v6.0.5": True,
5687                        "v6.4.4": True,
5688                        "v6.4.0": True,
5689                        "v6.4.1": True,
5690                        "v6.2.0": True,
5691                        "v6.2.3": True,
5692                        "v6.2.5": True,
5693                        "v6.2.7": True,
5694                        "v6.0.11": True
5695                    }
5696                },
5697                {
5698                    "value": "block-invalid-url",
5699                    "revisions": {
5700                        "v6.0.0": True,
5701                        "v7.0.0": True,
5702                        "v6.0.5": True,
5703                        "v6.4.4": True,
5704                        "v6.4.0": True,
5705                        "v6.4.1": True,
5706                        "v6.2.0": True,
5707                        "v6.2.3": True,
5708                        "v6.2.5": True,
5709                        "v6.2.7": True,
5710                        "v6.0.11": True
5711                    }
5712                },
5713                {
5714                    "value": "jscript",
5715                    "revisions": {
5716                        "v6.0.0": True,
5717                        "v7.0.0": True,
5718                        "v6.0.5": True,
5719                        "v6.4.4": True,
5720                        "v6.4.0": True,
5721                        "v6.4.1": True,
5722                        "v6.2.0": True,
5723                        "v6.2.3": True,
5724                        "v6.2.5": True,
5725                        "v6.2.7": True,
5726                        "v6.0.11": True
5727                    }
5728                },
5729                {
5730                    "value": "js",
5731                    "revisions": {
5732                        "v6.0.0": True,
5733                        "v7.0.0": True,
5734                        "v6.0.5": True,
5735                        "v6.4.4": True,
5736                        "v6.4.0": True,
5737                        "v6.4.1": True,
5738                        "v6.2.0": True,
5739                        "v6.2.3": True,
5740                        "v6.2.5": True,
5741                        "v6.2.7": True,
5742                        "v6.0.11": True
5743                    }
5744                },
5745                {
5746                    "value": "vbs",
5747                    "revisions": {
5748                        "v6.0.0": True,
5749                        "v7.0.0": True,
5750                        "v6.0.5": True,
5751                        "v6.4.4": True,
5752                        "v6.4.0": True,
5753                        "v6.4.1": True,
5754                        "v6.2.0": True,
5755                        "v6.2.3": True,
5756                        "v6.2.5": True,
5757                        "v6.2.7": True,
5758                        "v6.0.11": True
5759                    }
5760                },
5761                {
5762                    "value": "unknown",
5763                    "revisions": {
5764                        "v6.0.0": True,
5765                        "v7.0.0": True,
5766                        "v6.0.5": True,
5767                        "v6.4.4": True,
5768                        "v6.4.0": True,
5769                        "v6.4.1": True,
5770                        "v6.2.0": True,
5771                        "v6.2.3": True,
5772                        "v6.2.5": True,
5773                        "v6.2.7": True,
5774                        "v6.0.11": True
5775                    }
5776                },
5777                {
5778                    "value": "intrinsic",
5779                    "revisions": {
5780                        "v6.0.0": True,
5781                        "v7.0.0": True,
5782                        "v6.0.5": True,
5783                        "v6.4.4": True,
5784                        "v6.4.0": True,
5785                        "v6.4.1": True,
5786                        "v6.2.0": True,
5787                        "v6.2.3": True,
5788                        "v6.2.5": True,
5789                        "v6.2.7": True,
5790                        "v6.0.11": True
5791                    }
5792                },
5793                {
5794                    "value": "wf-referer",
5795                    "revisions": {
5796                        "v6.0.0": True,
5797                        "v7.0.0": True,
5798                        "v6.0.5": True,
5799                        "v6.4.4": True,
5800                        "v6.4.0": True,
5801                        "v6.4.1": True,
5802                        "v6.2.0": True,
5803                        "v6.2.3": True,
5804                        "v6.2.5": True,
5805                        "v6.2.7": True,
5806                        "v6.0.11": True
5807                    }
5808                },
5809                {
5810                    "value": "wf-cookie",
5811                    "revisions": {
5812                        "v6.0.0": True,
5813                        "v7.0.0": True,
5814                        "v6.0.5": True,
5815                        "v6.4.4": True,
5816                        "v6.4.0": True,
5817                        "v6.4.1": True,
5818                        "v6.2.0": True,
5819                        "v6.2.3": True,
5820                        "v6.2.5": True,
5821                        "v6.2.7": True,
5822                        "v6.0.11": True
5823                    }
5824                },
5825                {
5826                    "value": "per-user-bwl",
5827                    "revisions": {
5828                        "v6.0.0": True,
5829                        "v7.0.0": False,
5830                        "v6.0.5": True,
5831                        "v6.4.4": True,
5832                        "v6.4.0": True,
5833                        "v6.4.1": True,
5834                        "v6.2.0": True,
5835                        "v6.2.3": True,
5836                        "v6.2.5": True,
5837                        "v6.2.7": True,
5838                        "v6.0.11": True
5839                    }
5840                },
5841                {
5842                    "value": "per-user-bal",
5843                    "revisions": {
5844                        "v7.0.0": True
5845                    }
5846                }
5847            ],
5848            "revisions": {
5849                "v6.0.0": True,
5850                "v7.0.0": True,
5851                "v6.0.5": True,
5852                "v6.4.4": True,
5853                "v6.4.0": True,
5854                "v6.4.1": True,
5855                "v6.2.0": True,
5856                "v6.2.3": True,
5857                "v6.2.5": True,
5858                "v6.2.7": True,
5859                "v6.0.11": True
5860            }
5861        },
5862        "inspection_mode": {
5863            "type": "string",
5864            "options": [
5865                {
5866                    "value": "proxy",
5867                    "revisions": {
5868                        "v6.0.11": True,
5869                        "v6.0.0": True,
5870                        "v6.0.5": True
5871                    }
5872                },
5873                {
5874                    "value": "flow-based",
5875                    "revisions": {
5876                        "v6.0.11": True,
5877                        "v6.0.0": True,
5878                        "v6.0.5": True
5879                    }
5880                }
5881            ],
5882            "revisions": {
5883                "v6.0.0": True,
5884                "v7.0.0": False,
5885                "v6.0.5": True,
5886                "v6.4.4": False,
5887                "v6.4.0": False,
5888                "v6.4.1": False,
5889                "v6.2.0": False,
5890                "v6.2.3": False,
5891                "v6.2.5": False,
5892                "v6.2.7": False,
5893                "v6.0.11": True
5894            }
5895        }
5896    },
5897    "revisions": {
5898        "v6.0.0": True,
5899        "v7.0.0": True,
5900        "v6.0.5": True,
5901        "v6.4.4": True,
5902        "v6.4.0": True,
5903        "v6.4.1": True,
5904        "v6.2.0": True,
5905        "v6.2.3": True,
5906        "v6.2.5": True,
5907        "v6.2.7": True,
5908        "v6.0.11": True
5909    }
5910}
5911
5912
5913def main():
5914    module_spec = schema_to_module_spec(versioned_schema)
5915    mkeyname = 'name'
5916    fields = {
5917        "access_token": {"required": False, "type": "str", "no_log": True},
5918        "enable_log": {"required": False, "type": bool},
5919        "vdom": {"required": False, "type": "str", "default": "root"},
5920        "state": {"required": True, "type": "str",
5921                  "choices": ["present", "absent"]},
5922        "webfilter_profile": {
5923            "required": False, "type": "dict", "default": None,
5924            "options": {
5925            }
5926        }
5927    }
5928    for attribute_name in module_spec['options']:
5929        fields["webfilter_profile"]['options'][attribute_name] = module_spec['options'][attribute_name]
5930        if mkeyname and mkeyname == attribute_name:
5931            fields["webfilter_profile"]['options'][attribute_name]['required'] = True
5932
5933    check_legacy_fortiosapi()
5934    module = AnsibleModule(argument_spec=fields,
5935                           supports_check_mode=True)
5936
5937    versions_check_result = None
5938    if module._socket_path:
5939        connection = Connection(module._socket_path)
5940        if 'access_token' in module.params:
5941            connection.set_option('access_token', module.params['access_token'])
5942
5943        if 'enable_log' in module.params:
5944            connection.set_option('enable_log', module.params['enable_log'])
5945        else:
5946            connection.set_option('enable_log', False)
5947        fos = FortiOSHandler(connection, module, mkeyname)
5948        versions_check_result = check_schema_versioning(fos, versioned_schema, "webfilter_profile")
5949
5950        is_error, has_changed, result = fortios_webfilter(module.params, fos, module.check_mode)
5951
5952    else:
5953        module.fail_json(**FAIL_SOCKET_MSG)
5954
5955    if versions_check_result and versions_check_result['matched'] is False:
5956        module.warn("Ansible has detected version mismatch between FortOS system and your playbook, see more details by specifying option -vvv")
5957
5958    if not is_error:
5959        if versions_check_result and versions_check_result['matched'] is False:
5960            module.exit_json(changed=has_changed, version_check_warning=versions_check_result, meta=result)
5961        else:
5962            module.exit_json(changed=has_changed, meta=result)
5963    else:
5964        if versions_check_result and versions_check_result['matched'] is False:
5965            module.fail_json(msg="Error in repo", version_check_warning=versions_check_result, meta=result)
5966        else:
5967            module.fail_json(msg="Error in repo", meta=result)
5968
5969
5970if __name__ == '__main__':
5971    main()
5972