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_waf_profile
27short_description: Web application firewall configuration 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 waf 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    waf_profile:
76        description:
77            - Web application firewall configuration.
78        default: null
79        type: dict
80        suboptions:
81            address_list:
82                description:
83                    - Black address list and white address list.
84                type: dict
85                suboptions:
86                    blocked_address:
87                        description:
88                            - Blocked address.
89                        type: list
90                        suboptions:
91                            name:
92                                description:
93                                    - Address name. Source firewall.address.name firewall.addrgrp.name.
94                                required: true
95                                type: str
96                    blocked_log:
97                        description:
98                            - Enable/disable logging on blocked addresses.
99                        type: str
100                        choices:
101                            - enable
102                            - disable
103                    severity:
104                        description:
105                            - Severity.
106                        type: str
107                        choices:
108                            - high
109                            - medium
110                            - low
111                    status:
112                        description:
113                            - Status.
114                        type: str
115                        choices:
116                            - enable
117                            - disable
118                    trusted_address:
119                        description:
120                            - Trusted address.
121                        type: list
122                        suboptions:
123                            name:
124                                description:
125                                    - Address name. Source firewall.address.name firewall.addrgrp.name.
126                                required: true
127                                type: str
128            comment:
129                description:
130                    - Comment.
131                type: str
132            constraint:
133                description:
134                    - WAF HTTP protocol restrictions.
135                type: dict
136                suboptions:
137                    content_length:
138                        description:
139                            - HTTP content length in request.
140                        type: dict
141                        suboptions:
142                            action:
143                                description:
144                                    - Action.
145                                type: str
146                                choices:
147                                    - allow
148                                    - block
149                            length:
150                                description:
151                                    - Length of HTTP content in bytes (0 to 2147483647).
152                                type: int
153                            log:
154                                description:
155                                    - Enable/disable logging.
156                                type: str
157                                choices:
158                                    - enable
159                                    - disable
160                            severity:
161                                description:
162                                    - Severity.
163                                type: str
164                                choices:
165                                    - high
166                                    - medium
167                                    - low
168                            status:
169                                description:
170                                    - Enable/disable the constraint.
171                                type: str
172                                choices:
173                                    - enable
174                                    - disable
175                    exception:
176                        description:
177                            - HTTP constraint exception.
178                        type: list
179                        suboptions:
180                            address:
181                                description:
182                                    - Host address. Source firewall.address.name firewall.addrgrp.name.
183                                type: str
184                            content_length:
185                                description:
186                                    - HTTP content length in request.
187                                type: str
188                                choices:
189                                    - enable
190                                    - disable
191                            header_length:
192                                description:
193                                    - HTTP header length in request.
194                                type: str
195                                choices:
196                                    - enable
197                                    - disable
198                            hostname:
199                                description:
200                                    - Enable/disable hostname check.
201                                type: str
202                                choices:
203                                    - enable
204                                    - disable
205                            id:
206                                description:
207                                    - Exception ID.
208                                required: true
209                                type: int
210                            line_length:
211                                description:
212                                    - HTTP line length in request.
213                                type: str
214                                choices:
215                                    - enable
216                                    - disable
217                            malformed:
218                                description:
219                                    - Enable/disable malformed HTTP request check.
220                                type: str
221                                choices:
222                                    - enable
223                                    - disable
224                            max_cookie:
225                                description:
226                                    - Maximum number of cookies in HTTP request.
227                                type: str
228                                choices:
229                                    - enable
230                                    - disable
231                            max_header_line:
232                                description:
233                                    - Maximum number of HTTP header line.
234                                type: str
235                                choices:
236                                    - enable
237                                    - disable
238                            max_range_segment:
239                                description:
240                                    - Maximum number of range segments in HTTP range line.
241                                type: str
242                                choices:
243                                    - enable
244                                    - disable
245                            max_url_param:
246                                description:
247                                    - Maximum number of parameters in URL.
248                                type: str
249                                choices:
250                                    - enable
251                                    - disable
252                            method:
253                                description:
254                                    - Enable/disable HTTP method check.
255                                type: str
256                                choices:
257                                    - enable
258                                    - disable
259                            param_length:
260                                description:
261                                    - Maximum length of parameter in URL, HTTP POST request or HTTP body.
262                                type: str
263                                choices:
264                                    - enable
265                                    - disable
266                            pattern:
267                                description:
268                                    - URL pattern.
269                                type: str
270                            regex:
271                                description:
272                                    - Enable/disable regular expression based pattern match.
273                                type: str
274                                choices:
275                                    - enable
276                                    - disable
277                            url_param_length:
278                                description:
279                                    - Maximum length of parameter in URL.
280                                type: str
281                                choices:
282                                    - enable
283                                    - disable
284                            version:
285                                description:
286                                    - Enable/disable HTTP version check.
287                                type: str
288                                choices:
289                                    - enable
290                                    - disable
291                    header_length:
292                        description:
293                            - HTTP header length in request.
294                        type: dict
295                        suboptions:
296                            action:
297                                description:
298                                    - Action.
299                                type: str
300                                choices:
301                                    - allow
302                                    - block
303                            length:
304                                description:
305                                    - Length of HTTP header in bytes (0 to 2147483647).
306                                type: int
307                            log:
308                                description:
309                                    - Enable/disable logging.
310                                type: str
311                                choices:
312                                    - enable
313                                    - disable
314                            severity:
315                                description:
316                                    - Severity.
317                                type: str
318                                choices:
319                                    - high
320                                    - medium
321                                    - low
322                            status:
323                                description:
324                                    - Enable/disable the constraint.
325                                type: str
326                                choices:
327                                    - enable
328                                    - disable
329                    hostname:
330                        description:
331                            - Enable/disable hostname check.
332                        type: dict
333                        suboptions:
334                            action:
335                                description:
336                                    - Action.
337                                type: str
338                                choices:
339                                    - allow
340                                    - block
341                            log:
342                                description:
343                                    - Enable/disable logging.
344                                type: str
345                                choices:
346                                    - enable
347                                    - disable
348                            severity:
349                                description:
350                                    - Severity.
351                                type: str
352                                choices:
353                                    - high
354                                    - medium
355                                    - low
356                            status:
357                                description:
358                                    - Enable/disable the constraint.
359                                type: str
360                                choices:
361                                    - enable
362                                    - disable
363                    line_length:
364                        description:
365                            - HTTP line length in request.
366                        type: dict
367                        suboptions:
368                            action:
369                                description:
370                                    - Action.
371                                type: str
372                                choices:
373                                    - allow
374                                    - block
375                            length:
376                                description:
377                                    - Length of HTTP line in bytes (0 to 2147483647).
378                                type: int
379                            log:
380                                description:
381                                    - Enable/disable logging.
382                                type: str
383                                choices:
384                                    - enable
385                                    - disable
386                            severity:
387                                description:
388                                    - Severity.
389                                type: str
390                                choices:
391                                    - high
392                                    - medium
393                                    - low
394                            status:
395                                description:
396                                    - Enable/disable the constraint.
397                                type: str
398                                choices:
399                                    - enable
400                                    - disable
401                    malformed:
402                        description:
403                            - Enable/disable malformed HTTP request check.
404                        type: dict
405                        suboptions:
406                            action:
407                                description:
408                                    - Action.
409                                type: str
410                                choices:
411                                    - allow
412                                    - block
413                            log:
414                                description:
415                                    - Enable/disable logging.
416                                type: str
417                                choices:
418                                    - enable
419                                    - disable
420                            severity:
421                                description:
422                                    - Severity.
423                                type: str
424                                choices:
425                                    - high
426                                    - medium
427                                    - low
428                            status:
429                                description:
430                                    - Enable/disable the constraint.
431                                type: str
432                                choices:
433                                    - enable
434                                    - disable
435                    max_cookie:
436                        description:
437                            - Maximum number of cookies in HTTP request.
438                        type: dict
439                        suboptions:
440                            action:
441                                description:
442                                    - Action.
443                                type: str
444                                choices:
445                                    - allow
446                                    - block
447                            log:
448                                description:
449                                    - Enable/disable logging.
450                                type: str
451                                choices:
452                                    - enable
453                                    - disable
454                            max_cookie:
455                                description:
456                                    - Maximum number of cookies in HTTP request (0 to 2147483647).
457                                type: int
458                            severity:
459                                description:
460                                    - Severity.
461                                type: str
462                                choices:
463                                    - high
464                                    - medium
465                                    - low
466                            status:
467                                description:
468                                    - Enable/disable the constraint.
469                                type: str
470                                choices:
471                                    - enable
472                                    - disable
473                    max_header_line:
474                        description:
475                            - Maximum number of HTTP header line.
476                        type: dict
477                        suboptions:
478                            action:
479                                description:
480                                    - Action.
481                                type: str
482                                choices:
483                                    - allow
484                                    - block
485                            log:
486                                description:
487                                    - Enable/disable logging.
488                                type: str
489                                choices:
490                                    - enable
491                                    - disable
492                            max_header_line:
493                                description:
494                                    - Maximum number HTTP header lines (0 to 2147483647).
495                                type: int
496                            severity:
497                                description:
498                                    - Severity.
499                                type: str
500                                choices:
501                                    - high
502                                    - medium
503                                    - low
504                            status:
505                                description:
506                                    - Enable/disable the constraint.
507                                type: str
508                                choices:
509                                    - enable
510                                    - disable
511                    max_range_segment:
512                        description:
513                            - Maximum number of range segments in HTTP range line.
514                        type: dict
515                        suboptions:
516                            action:
517                                description:
518                                    - Action.
519                                type: str
520                                choices:
521                                    - allow
522                                    - block
523                            log:
524                                description:
525                                    - Enable/disable logging.
526                                type: str
527                                choices:
528                                    - enable
529                                    - disable
530                            max_range_segment:
531                                description:
532                                    - Maximum number of range segments in HTTP range line (0 to 2147483647).
533                                type: int
534                            severity:
535                                description:
536                                    - Severity.
537                                type: str
538                                choices:
539                                    - high
540                                    - medium
541                                    - low
542                            status:
543                                description:
544                                    - Enable/disable the constraint.
545                                type: str
546                                choices:
547                                    - enable
548                                    - disable
549                    max_url_param:
550                        description:
551                            - Maximum number of parameters in URL.
552                        type: dict
553                        suboptions:
554                            action:
555                                description:
556                                    - Action.
557                                type: str
558                                choices:
559                                    - allow
560                                    - block
561                            log:
562                                description:
563                                    - Enable/disable logging.
564                                type: str
565                                choices:
566                                    - enable
567                                    - disable
568                            max_url_param:
569                                description:
570                                    - Maximum number of parameters in URL (0 to 2147483647).
571                                type: int
572                            severity:
573                                description:
574                                    - Severity.
575                                type: str
576                                choices:
577                                    - high
578                                    - medium
579                                    - low
580                            status:
581                                description:
582                                    - Enable/disable the constraint.
583                                type: str
584                                choices:
585                                    - enable
586                                    - disable
587                    method:
588                        description:
589                            - Enable/disable HTTP method check.
590                        type: dict
591                        suboptions:
592                            action:
593                                description:
594                                    - Action.
595                                type: str
596                                choices:
597                                    - allow
598                                    - block
599                            log:
600                                description:
601                                    - Enable/disable logging.
602                                type: str
603                                choices:
604                                    - enable
605                                    - disable
606                            severity:
607                                description:
608                                    - Severity.
609                                type: str
610                                choices:
611                                    - high
612                                    - medium
613                                    - low
614                            status:
615                                description:
616                                    - Enable/disable the constraint.
617                                type: str
618                                choices:
619                                    - enable
620                                    - disable
621                    param_length:
622                        description:
623                            - Maximum length of parameter in URL, HTTP POST request or HTTP body.
624                        type: dict
625                        suboptions:
626                            action:
627                                description:
628                                    - Action.
629                                type: str
630                                choices:
631                                    - allow
632                                    - block
633                            length:
634                                description:
635                                    - Maximum length of parameter in URL, HTTP POST request or HTTP body in bytes (0 to 2147483647).
636                                type: int
637                            log:
638                                description:
639                                    - Enable/disable logging.
640                                type: str
641                                choices:
642                                    - enable
643                                    - disable
644                            severity:
645                                description:
646                                    - Severity.
647                                type: str
648                                choices:
649                                    - high
650                                    - medium
651                                    - low
652                            status:
653                                description:
654                                    - Enable/disable the constraint.
655                                type: str
656                                choices:
657                                    - enable
658                                    - disable
659                    url_param_length:
660                        description:
661                            - Maximum length of parameter in URL.
662                        type: dict
663                        suboptions:
664                            action:
665                                description:
666                                    - Action.
667                                type: str
668                                choices:
669                                    - allow
670                                    - block
671                            length:
672                                description:
673                                    - Maximum length of URL parameter in bytes (0 to 2147483647).
674                                type: int
675                            log:
676                                description:
677                                    - Enable/disable logging.
678                                type: str
679                                choices:
680                                    - enable
681                                    - disable
682                            severity:
683                                description:
684                                    - Severity.
685                                type: str
686                                choices:
687                                    - high
688                                    - medium
689                                    - low
690                            status:
691                                description:
692                                    - Enable/disable the constraint.
693                                type: str
694                                choices:
695                                    - enable
696                                    - disable
697                    version:
698                        description:
699                            - Enable/disable HTTP version check.
700                        type: dict
701                        suboptions:
702                            action:
703                                description:
704                                    - Action.
705                                type: str
706                                choices:
707                                    - allow
708                                    - block
709                            log:
710                                description:
711                                    - Enable/disable logging.
712                                type: str
713                                choices:
714                                    - enable
715                                    - disable
716                            severity:
717                                description:
718                                    - Severity.
719                                type: str
720                                choices:
721                                    - high
722                                    - medium
723                                    - low
724                            status:
725                                description:
726                                    - Enable/disable the constraint.
727                                type: str
728                                choices:
729                                    - enable
730                                    - disable
731            extended_log:
732                description:
733                    - Enable/disable extended logging.
734                type: str
735                choices:
736                    - enable
737                    - disable
738            external:
739                description:
740                    - Disable/Enable external HTTP Inspection.
741                type: str
742                choices:
743                    - disable
744                    - enable
745            method:
746                description:
747                    - Method restriction.
748                type: dict
749                suboptions:
750                    default_allowed_methods:
751                        description:
752                            - Methods.
753                        type: list
754                        choices:
755                            - get
756                            - post
757                            - put
758                            - head
759                            - connect
760                            - trace
761                            - options
762                            - delete
763                            - others
764                    log:
765                        description:
766                            - Enable/disable logging.
767                        type: str
768                        choices:
769                            - enable
770                            - disable
771                    method_policy:
772                        description:
773                            - HTTP method policy.
774                        type: list
775                        suboptions:
776                            address:
777                                description:
778                                    - Host address. Source firewall.address.name firewall.addrgrp.name.
779                                type: str
780                            allowed_methods:
781                                description:
782                                    - Allowed Methods.
783                                type: str
784                                choices:
785                                    - get
786                                    - post
787                                    - put
788                                    - head
789                                    - connect
790                                    - trace
791                                    - options
792                                    - delete
793                                    - others
794                            id:
795                                description:
796                                    - HTTP method policy ID.
797                                required: true
798                                type: int
799                            pattern:
800                                description:
801                                    - URL pattern.
802                                type: str
803                            regex:
804                                description:
805                                    - Enable/disable regular expression based pattern match.
806                                type: str
807                                choices:
808                                    - enable
809                                    - disable
810                    severity:
811                        description:
812                            - Severity.
813                        type: str
814                        choices:
815                            - high
816                            - medium
817                            - low
818                    status:
819                        description:
820                            - Status.
821                        type: str
822                        choices:
823                            - enable
824                            - disable
825            name:
826                description:
827                    - WAF Profile name.
828                required: true
829                type: str
830            signature:
831                description:
832                    - WAF signatures.
833                type: dict
834                suboptions:
835                    credit_card_detection_threshold:
836                        description:
837                            - The minimum number of Credit cards to detect violation.
838                        type: int
839                    custom_signature:
840                        description:
841                            - Custom signature.
842                        type: list
843                        suboptions:
844                            action:
845                                description:
846                                    - Action.
847                                type: str
848                                choices:
849                                    - allow
850                                    - block
851                                    - erase
852                            case_sensitivity:
853                                description:
854                                    - Case sensitivity in pattern.
855                                type: str
856                                choices:
857                                    - disable
858                                    - enable
859                            direction:
860                                description:
861                                    - Traffic direction.
862                                type: str
863                                choices:
864                                    - request
865                                    - response
866                            log:
867                                description:
868                                    - Enable/disable logging.
869                                type: str
870                                choices:
871                                    - enable
872                                    - disable
873                            name:
874                                description:
875                                    - Signature name.
876                                required: true
877                                type: str
878                            pattern:
879                                description:
880                                    - Match pattern.
881                                type: str
882                            severity:
883                                description:
884                                    - Severity.
885                                type: str
886                                choices:
887                                    - high
888                                    - medium
889                                    - low
890                            status:
891                                description:
892                                    - Status.
893                                type: str
894                                choices:
895                                    - enable
896                                    - disable
897                            target:
898                                description:
899                                    - Match HTTP target.
900                                type: str
901                                choices:
902                                    - arg
903                                    - arg-name
904                                    - req-body
905                                    - req-cookie
906                                    - req-cookie-name
907                                    - req-filename
908                                    - req-header
909                                    - req-header-name
910                                    - req-raw-uri
911                                    - req-uri
912                                    - resp-body
913                                    - resp-hdr
914                                    - resp-status
915                    disabled_signature:
916                        description:
917                            - Disabled signatures
918                        type: list
919                        suboptions:
920                            id:
921                                description:
922                                    - Signature ID. Source waf.signature.id.
923                                required: true
924                                type: int
925                    disabled_sub_class:
926                        description:
927                            - Disabled signature subclasses.
928                        type: list
929                        suboptions:
930                            id:
931                                description:
932                                    - Signature subclass ID. Source waf.sub-class.id.
933                                required: true
934                                type: int
935                    main_class:
936                        description:
937                            - Main signature class.
938                        type: list
939                        suboptions:
940                            action:
941                                description:
942                                    - Action.
943                                type: str
944                                choices:
945                                    - allow
946                                    - block
947                                    - erase
948                            id:
949                                description:
950                                    - Main signature class ID. Source waf.main-class.id.
951                                required: true
952                                type: int
953                            log:
954                                description:
955                                    - Enable/disable logging.
956                                type: str
957                                choices:
958                                    - enable
959                                    - disable
960                            severity:
961                                description:
962                                    - Severity.
963                                type: str
964                                choices:
965                                    - high
966                                    - medium
967                                    - low
968                            status:
969                                description:
970                                    - Status.
971                                type: str
972                                choices:
973                                    - enable
974                                    - disable
975            url_access:
976                description:
977                    - URL access list
978                type: list
979                suboptions:
980                    access_pattern:
981                        description:
982                            - URL access pattern.
983                        type: list
984                        suboptions:
985                            id:
986                                description:
987                                    - URL access pattern ID.
988                                required: true
989                                type: int
990                            negate:
991                                description:
992                                    - Enable/disable match negation.
993                                type: str
994                                choices:
995                                    - enable
996                                    - disable
997                            pattern:
998                                description:
999                                    - URL pattern.
1000                                type: str
1001                            regex:
1002                                description:
1003                                    - Enable/disable regular expression based pattern match.
1004                                type: str
1005                                choices:
1006                                    - enable
1007                                    - disable
1008                            srcaddr:
1009                                description:
1010                                    - Source address. Source firewall.address.name firewall.addrgrp.name.
1011                                type: str
1012                    action:
1013                        description:
1014                            - Action.
1015                        type: str
1016                        choices:
1017                            - bypass
1018                            - permit
1019                            - block
1020                    address:
1021                        description:
1022                            - Host address. Source firewall.address.name firewall.addrgrp.name.
1023                        type: str
1024                    id:
1025                        description:
1026                            - URL access ID.
1027                        required: true
1028                        type: int
1029                    log:
1030                        description:
1031                            - Enable/disable logging.
1032                        type: str
1033                        choices:
1034                            - enable
1035                            - disable
1036                    severity:
1037                        description:
1038                            - Severity.
1039                        type: str
1040                        choices:
1041                            - high
1042                            - medium
1043                            - low
1044'''
1045
1046EXAMPLES = '''
1047- hosts: fortigates
1048  collections:
1049    - fortinet.fortios
1050  connection: httpapi
1051  vars:
1052   vdom: "root"
1053   ansible_httpapi_use_ssl: yes
1054   ansible_httpapi_validate_certs: no
1055   ansible_httpapi_port: 443
1056  tasks:
1057  - name: Web application firewall configuration.
1058    fortios_waf_profile:
1059      vdom:  "{{ vdom }}"
1060      state: "present"
1061      access_token: "<your_own_value>"
1062      waf_profile:
1063        address_list:
1064            blocked_address:
1065             -
1066                name: "default_name_5 (source firewall.address.name firewall.addrgrp.name)"
1067            blocked_log: "enable"
1068            severity: "high"
1069            status: "enable"
1070            trusted_address:
1071             -
1072                name: "default_name_10 (source firewall.address.name firewall.addrgrp.name)"
1073        comment: "Comment."
1074        constraint:
1075            content_length:
1076                action: "allow"
1077                length: "15"
1078                log: "enable"
1079                severity: "high"
1080                status: "enable"
1081            exception:
1082             -
1083                address: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)"
1084                content_length: "enable"
1085                header_length: "enable"
1086                hostname: "enable"
1087                id:  "24"
1088                line_length: "enable"
1089                malformed: "enable"
1090                max_cookie: "enable"
1091                max_header_line: "enable"
1092                max_range_segment: "enable"
1093                max_url_param: "enable"
1094                method: "enable"
1095                param_length: "enable"
1096                pattern: "<your_own_value>"
1097                regex: "enable"
1098                url_param_length: "enable"
1099                version: "enable"
1100            header_length:
1101                action: "allow"
1102                length: "39"
1103                log: "enable"
1104                severity: "high"
1105                status: "enable"
1106            hostname:
1107                action: "allow"
1108                log: "enable"
1109                severity: "high"
1110                status: "enable"
1111            line_length:
1112                action: "allow"
1113                length: "50"
1114                log: "enable"
1115                severity: "high"
1116                status: "enable"
1117            malformed:
1118                action: "allow"
1119                log: "enable"
1120                severity: "high"
1121                status: "enable"
1122            max_cookie:
1123                action: "allow"
1124                log: "enable"
1125                max_cookie: "62"
1126                severity: "high"
1127                status: "enable"
1128            max_header_line:
1129                action: "allow"
1130                log: "enable"
1131                max_header_line: "68"
1132                severity: "high"
1133                status: "enable"
1134            max_range_segment:
1135                action: "allow"
1136                log: "enable"
1137                max_range_segment: "74"
1138                severity: "high"
1139                status: "enable"
1140            max_url_param:
1141                action: "allow"
1142                log: "enable"
1143                max_url_param: "80"
1144                severity: "high"
1145                status: "enable"
1146            method:
1147                action: "allow"
1148                log: "enable"
1149                severity: "high"
1150                status: "enable"
1151            param_length:
1152                action: "allow"
1153                length: "90"
1154                log: "enable"
1155                severity: "high"
1156                status: "enable"
1157            url_param_length:
1158                action: "allow"
1159                length: "96"
1160                log: "enable"
1161                severity: "high"
1162                status: "enable"
1163            version:
1164                action: "allow"
1165                log: "enable"
1166                severity: "high"
1167                status: "enable"
1168        extended_log: "enable"
1169        external: "disable"
1170        method:
1171            default_allowed_methods: "get"
1172            log: "enable"
1173            method_policy:
1174             -
1175                address: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)"
1176                allowed_methods: "get"
1177                id:  "113"
1178                pattern: "<your_own_value>"
1179                regex: "enable"
1180            severity: "high"
1181            status: "enable"
1182        name: "default_name_118"
1183        signature:
1184            credit_card_detection_threshold: "120"
1185            custom_signature:
1186             -
1187                action: "allow"
1188                case_sensitivity: "disable"
1189                direction: "request"
1190                log: "enable"
1191                name: "default_name_126"
1192                pattern: "<your_own_value>"
1193                severity: "high"
1194                status: "enable"
1195                target: "arg"
1196            disabled_signature:
1197             -
1198                id:  "132 (source waf.signature.id)"
1199            disabled_sub_class:
1200             -
1201                id:  "134 (source waf.sub-class.id)"
1202            main_class:
1203             -
1204                action: "allow"
1205                id:  "137 (source waf.main-class.id)"
1206                log: "enable"
1207                severity: "high"
1208                status: "enable"
1209        url_access:
1210         -
1211            access_pattern:
1212             -
1213                id:  "143"
1214                negate: "enable"
1215                pattern: "<your_own_value>"
1216                regex: "enable"
1217                srcaddr: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)"
1218            action: "bypass"
1219            address: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)"
1220            id:  "150"
1221            log: "enable"
1222            severity: "high"
1223
1224'''
1225
1226RETURN = '''
1227build:
1228  description: Build number of the fortigate image
1229  returned: always
1230  type: str
1231  sample: '1547'
1232http_method:
1233  description: Last method used to provision the content into FortiGate
1234  returned: always
1235  type: str
1236  sample: 'PUT'
1237http_status:
1238  description: Last result given by FortiGate on last operation applied
1239  returned: always
1240  type: str
1241  sample: "200"
1242mkey:
1243  description: Master key (id) used in the last call to FortiGate
1244  returned: success
1245  type: str
1246  sample: "id"
1247name:
1248  description: Name of the table used to fulfill the request
1249  returned: always
1250  type: str
1251  sample: "urlfilter"
1252path:
1253  description: Path of the table used to fulfill the request
1254  returned: always
1255  type: str
1256  sample: "webfilter"
1257revision:
1258  description: Internal revision number
1259  returned: always
1260  type: str
1261  sample: "17.0.2.10658"
1262serial:
1263  description: Serial number of the unit
1264  returned: always
1265  type: str
1266  sample: "FGVMEVYYQT3AB5352"
1267status:
1268  description: Indication of the operation's result
1269  returned: always
1270  type: str
1271  sample: "success"
1272vdom:
1273  description: Virtual domain used
1274  returned: always
1275  type: str
1276  sample: "root"
1277version:
1278  description: Version of the FortiGate
1279  returned: always
1280  type: str
1281  sample: "v5.6.3"
1282
1283'''
1284from ansible.module_utils.basic import AnsibleModule
1285from ansible.module_utils.connection import Connection
1286from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import FortiOSHandler
1287from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import check_legacy_fortiosapi
1288from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import schema_to_module_spec
1289from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import check_schema_versioning
1290from ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.common import FAIL_SOCKET_MSG
1291from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.comparison import is_same_comparison
1292from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.comparison import serialize
1293
1294
1295def filter_waf_profile_data(json):
1296    option_list = ['address_list', 'comment', 'constraint',
1297                   'extended_log', 'external', 'method',
1298                   'name', 'signature', 'url_access']
1299    dictionary = {}
1300
1301    for attribute in option_list:
1302        if attribute in json and json[attribute] is not None:
1303            dictionary[attribute] = json[attribute]
1304
1305    return dictionary
1306
1307
1308def flatten_single_path(data, path, index):
1309    if not data or index == len(path) or path[index] not in data or not data[path[index]]:
1310        return
1311
1312    if index == len(path) - 1:
1313        data[path[index]] = ' '.join(str(elem) for elem in data[path[index]])
1314    elif isinstance(data[path[index]], list):
1315        for value in data[path[index]]:
1316            flatten_single_path(value, path, index + 1)
1317    else:
1318        flatten_single_path(data[path[index]], path, index + 1)
1319
1320
1321def flatten_multilists_attributes(data):
1322    multilist_attrs = [[u'signature', u'custom_signature', u'target'], [u'method', u'method_policy', u'allowed_methods'], [u'method',
1323                                                                                                                           u'default_allowed_methods']]
1324
1325    for attr in multilist_attrs:
1326        flatten_single_path(data, attr, 0)
1327
1328    return data
1329
1330
1331def underscore_to_hyphen(data):
1332    if isinstance(data, list):
1333        for i, elem in enumerate(data):
1334            data[i] = underscore_to_hyphen(elem)
1335    elif isinstance(data, dict):
1336        new_data = {}
1337        for k, v in data.items():
1338            new_data[k.replace('_', '-')] = underscore_to_hyphen(v)
1339        data = new_data
1340
1341    return data
1342
1343
1344def waf_profile(data, fos, check_mode=False):
1345
1346    vdom = data['vdom']
1347
1348    state = data['state']
1349
1350    waf_profile_data = data['waf_profile']
1351    waf_profile_data = flatten_multilists_attributes(waf_profile_data)
1352    filtered_data = underscore_to_hyphen(filter_waf_profile_data(waf_profile_data))
1353
1354    # check_mode starts from here
1355    if check_mode:
1356        mkey = fos.get_mkey('system', 'interface', filtered_data, vdom=vdom)
1357        current_data = fos.get('system', 'interface', vdom=vdom, mkey=mkey)
1358        is_existed = current_data and current_data.get('http_status') == 200 \
1359            and isinstance(current_data.get('results'), list) \
1360            and len(current_data['results']) > 0
1361
1362        # 2. if it exists and the state is 'present' then compare current settings with desired
1363        if state == 'present' or state is True:
1364            if mkey is None:
1365                return False, True, filtered_data
1366
1367            # if mkey exists then compare each other
1368            # record exits and they're matched or not
1369            if is_existed:
1370                is_same = is_same_comparison(
1371                    serialize(current_data['results'][0]), serialize(filtered_data))
1372                return False, not is_same, filtered_data
1373
1374            # record does not exist
1375            return False, True, filtered_data
1376
1377        if state == 'absent':
1378            if mkey is None:
1379                return False, False, filtered_data
1380
1381            if is_existed:
1382                return False, True, filtered_data
1383            return False, False, filtered_data
1384
1385        return True, False, {'reason: ': 'Must provide state parameter'}
1386
1387    if state == "present" or state is True:
1388        return fos.set('waf',
1389                       'profile',
1390                       data=filtered_data,
1391                       vdom=vdom)
1392
1393    elif state == "absent":
1394        return fos.delete('waf',
1395                          'profile',
1396                          mkey=filtered_data['name'],
1397                          vdom=vdom)
1398    else:
1399        fos._module.fail_json(msg='state must be present or absent!')
1400
1401
1402def is_successful_status(status):
1403    return status['status'] == "success" or \
1404        status['http_method'] == "DELETE" and status['http_status'] == 404
1405
1406
1407def fortios_waf(data, fos, check_mode):
1408
1409    if data['waf_profile']:
1410        resp = waf_profile(data, fos, check_mode)
1411    else:
1412        fos._module.fail_json(msg='missing task body: %s' % ('waf_profile'))
1413    if check_mode:
1414        return resp
1415    return not is_successful_status(resp), \
1416        resp['status'] == "success" and \
1417        (resp['revision_changed'] if 'revision_changed' in resp else True), \
1418        resp
1419
1420
1421versioned_schema = {
1422    "type": "list",
1423    "children": {
1424        "comment": {
1425            "type": "string",
1426            "revisions": {
1427                "v6.0.0": True,
1428                "v7.0.0": True,
1429                "v6.0.5": True,
1430                "v6.4.4": True,
1431                "v6.4.0": True,
1432                "v6.4.1": True,
1433                "v6.2.0": True,
1434                "v6.2.3": True,
1435                "v6.2.5": True,
1436                "v6.2.7": True,
1437                "v6.0.11": True
1438            }
1439        },
1440        "name": {
1441            "type": "string",
1442            "revisions": {
1443                "v6.0.0": True,
1444                "v7.0.0": True,
1445                "v6.0.5": True,
1446                "v6.4.4": True,
1447                "v6.4.0": True,
1448                "v6.4.1": True,
1449                "v6.2.0": True,
1450                "v6.2.3": True,
1451                "v6.2.5": True,
1452                "v6.2.7": True,
1453                "v6.0.11": True
1454            }
1455        },
1456        "constraint": {
1457            "type": "dict",
1458            "children": {
1459                "content_length": {
1460                    "type": "dict",
1461                    "children": {
1462                        "status": {
1463                            "type": "string",
1464                            "options": [
1465                                {
1466                                    "value": "enable",
1467                                    "revisions": {
1468                                        "v6.0.0": True,
1469                                        "v7.0.0": True,
1470                                        "v6.0.5": True,
1471                                        "v6.4.4": True,
1472                                        "v6.4.0": True,
1473                                        "v6.4.1": True,
1474                                        "v6.2.0": True,
1475                                        "v6.2.3": True,
1476                                        "v6.2.5": True,
1477                                        "v6.2.7": True,
1478                                        "v6.0.11": True
1479                                    }
1480                                },
1481                                {
1482                                    "value": "disable",
1483                                    "revisions": {
1484                                        "v6.0.0": True,
1485                                        "v7.0.0": True,
1486                                        "v6.0.5": True,
1487                                        "v6.4.4": True,
1488                                        "v6.4.0": True,
1489                                        "v6.4.1": True,
1490                                        "v6.2.0": True,
1491                                        "v6.2.3": True,
1492                                        "v6.2.5": True,
1493                                        "v6.2.7": True,
1494                                        "v6.0.11": True
1495                                    }
1496                                }
1497                            ],
1498                            "revisions": {
1499                                "v6.0.0": True,
1500                                "v7.0.0": True,
1501                                "v6.0.5": True,
1502                                "v6.4.4": True,
1503                                "v6.4.0": True,
1504                                "v6.4.1": True,
1505                                "v6.2.0": True,
1506                                "v6.2.3": True,
1507                                "v6.2.5": True,
1508                                "v6.2.7": True,
1509                                "v6.0.11": True
1510                            }
1511                        },
1512                        "action": {
1513                            "type": "string",
1514                            "options": [
1515                                {
1516                                    "value": "allow",
1517                                    "revisions": {
1518                                        "v6.0.0": True,
1519                                        "v7.0.0": True,
1520                                        "v6.0.5": True,
1521                                        "v6.4.4": True,
1522                                        "v6.4.0": True,
1523                                        "v6.4.1": True,
1524                                        "v6.2.0": True,
1525                                        "v6.2.3": True,
1526                                        "v6.2.5": True,
1527                                        "v6.2.7": True,
1528                                        "v6.0.11": True
1529                                    }
1530                                },
1531                                {
1532                                    "value": "block",
1533                                    "revisions": {
1534                                        "v6.0.0": True,
1535                                        "v7.0.0": True,
1536                                        "v6.0.5": True,
1537                                        "v6.4.4": True,
1538                                        "v6.4.0": True,
1539                                        "v6.4.1": True,
1540                                        "v6.2.0": True,
1541                                        "v6.2.3": True,
1542                                        "v6.2.5": True,
1543                                        "v6.2.7": True,
1544                                        "v6.0.11": True
1545                                    }
1546                                }
1547                            ],
1548                            "revisions": {
1549                                "v6.0.0": True,
1550                                "v7.0.0": True,
1551                                "v6.0.5": True,
1552                                "v6.4.4": True,
1553                                "v6.4.0": True,
1554                                "v6.4.1": True,
1555                                "v6.2.0": True,
1556                                "v6.2.3": True,
1557                                "v6.2.5": True,
1558                                "v6.2.7": True,
1559                                "v6.0.11": True
1560                            }
1561                        },
1562                        "length": {
1563                            "type": "integer",
1564                            "revisions": {
1565                                "v6.0.0": True,
1566                                "v7.0.0": True,
1567                                "v6.0.5": True,
1568                                "v6.4.4": True,
1569                                "v6.4.0": True,
1570                                "v6.4.1": True,
1571                                "v6.2.0": True,
1572                                "v6.2.3": True,
1573                                "v6.2.5": True,
1574                                "v6.2.7": True,
1575                                "v6.0.11": True
1576                            }
1577                        },
1578                        "log": {
1579                            "type": "string",
1580                            "options": [
1581                                {
1582                                    "value": "enable",
1583                                    "revisions": {
1584                                        "v6.0.0": True,
1585                                        "v7.0.0": True,
1586                                        "v6.0.5": True,
1587                                        "v6.4.4": True,
1588                                        "v6.4.0": True,
1589                                        "v6.4.1": True,
1590                                        "v6.2.0": True,
1591                                        "v6.2.3": True,
1592                                        "v6.2.5": True,
1593                                        "v6.2.7": True,
1594                                        "v6.0.11": True
1595                                    }
1596                                },
1597                                {
1598                                    "value": "disable",
1599                                    "revisions": {
1600                                        "v6.0.0": True,
1601                                        "v7.0.0": True,
1602                                        "v6.0.5": True,
1603                                        "v6.4.4": True,
1604                                        "v6.4.0": True,
1605                                        "v6.4.1": True,
1606                                        "v6.2.0": True,
1607                                        "v6.2.3": True,
1608                                        "v6.2.5": True,
1609                                        "v6.2.7": True,
1610                                        "v6.0.11": True
1611                                    }
1612                                }
1613                            ],
1614                            "revisions": {
1615                                "v6.0.0": True,
1616                                "v7.0.0": True,
1617                                "v6.0.5": True,
1618                                "v6.4.4": True,
1619                                "v6.4.0": True,
1620                                "v6.4.1": True,
1621                                "v6.2.0": True,
1622                                "v6.2.3": True,
1623                                "v6.2.5": True,
1624                                "v6.2.7": True,
1625                                "v6.0.11": True
1626                            }
1627                        },
1628                        "severity": {
1629                            "type": "string",
1630                            "options": [
1631                                {
1632                                    "value": "high",
1633                                    "revisions": {
1634                                        "v6.0.0": True,
1635                                        "v7.0.0": True,
1636                                        "v6.0.5": True,
1637                                        "v6.4.4": True,
1638                                        "v6.4.0": True,
1639                                        "v6.4.1": True,
1640                                        "v6.2.0": True,
1641                                        "v6.2.3": True,
1642                                        "v6.2.5": True,
1643                                        "v6.2.7": True,
1644                                        "v6.0.11": True
1645                                    }
1646                                },
1647                                {
1648                                    "value": "medium",
1649                                    "revisions": {
1650                                        "v6.0.0": True,
1651                                        "v7.0.0": True,
1652                                        "v6.0.5": True,
1653                                        "v6.4.4": True,
1654                                        "v6.4.0": True,
1655                                        "v6.4.1": True,
1656                                        "v6.2.0": True,
1657                                        "v6.2.3": True,
1658                                        "v6.2.5": True,
1659                                        "v6.2.7": True,
1660                                        "v6.0.11": True
1661                                    }
1662                                },
1663                                {
1664                                    "value": "low",
1665                                    "revisions": {
1666                                        "v6.0.0": True,
1667                                        "v7.0.0": True,
1668                                        "v6.0.5": True,
1669                                        "v6.4.4": True,
1670                                        "v6.4.0": True,
1671                                        "v6.4.1": True,
1672                                        "v6.2.0": True,
1673                                        "v6.2.3": True,
1674                                        "v6.2.5": True,
1675                                        "v6.2.7": True,
1676                                        "v6.0.11": True
1677                                    }
1678                                }
1679                            ],
1680                            "revisions": {
1681                                "v6.0.0": True,
1682                                "v7.0.0": True,
1683                                "v6.0.5": True,
1684                                "v6.4.4": True,
1685                                "v6.4.0": True,
1686                                "v6.4.1": True,
1687                                "v6.2.0": True,
1688                                "v6.2.3": True,
1689                                "v6.2.5": True,
1690                                "v6.2.7": True,
1691                                "v6.0.11": True
1692                            }
1693                        }
1694                    },
1695                    "revisions": {
1696                        "v6.0.0": True,
1697                        "v7.0.0": True,
1698                        "v6.0.5": True,
1699                        "v6.4.4": True,
1700                        "v6.4.0": True,
1701                        "v6.4.1": True,
1702                        "v6.2.0": True,
1703                        "v6.2.3": True,
1704                        "v6.2.5": True,
1705                        "v6.2.7": True,
1706                        "v6.0.11": True
1707                    }
1708                },
1709                "exception": {
1710                    "type": "list",
1711                    "children": {
1712                        "regex": {
1713                            "type": "string",
1714                            "options": [
1715                                {
1716                                    "value": "enable",
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                                    "value": "disable",
1733                                    "revisions": {
1734                                        "v6.0.0": True,
1735                                        "v7.0.0": True,
1736                                        "v6.0.5": True,
1737                                        "v6.4.4": True,
1738                                        "v6.4.0": True,
1739                                        "v6.4.1": True,
1740                                        "v6.2.0": True,
1741                                        "v6.2.3": True,
1742                                        "v6.2.5": True,
1743                                        "v6.2.7": True,
1744                                        "v6.0.11": True
1745                                    }
1746                                }
1747                            ],
1748                            "revisions": {
1749                                "v6.0.0": True,
1750                                "v7.0.0": True,
1751                                "v6.0.5": True,
1752                                "v6.4.4": True,
1753                                "v6.4.0": True,
1754                                "v6.4.1": True,
1755                                "v6.2.0": True,
1756                                "v6.2.3": True,
1757                                "v6.2.5": True,
1758                                "v6.2.7": True,
1759                                "v6.0.11": True
1760                            }
1761                        },
1762                        "content_length": {
1763                            "type": "string",
1764                            "options": [
1765                                {
1766                                    "value": "enable",
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                                    "value": "disable",
1783                                    "revisions": {
1784                                        "v6.0.0": True,
1785                                        "v7.0.0": True,
1786                                        "v6.0.5": True,
1787                                        "v6.4.4": True,
1788                                        "v6.4.0": True,
1789                                        "v6.4.1": True,
1790                                        "v6.2.0": True,
1791                                        "v6.2.3": True,
1792                                        "v6.2.5": True,
1793                                        "v6.2.7": True,
1794                                        "v6.0.11": True
1795                                    }
1796                                }
1797                            ],
1798                            "revisions": {
1799                                "v6.0.0": True,
1800                                "v7.0.0": True,
1801                                "v6.0.5": True,
1802                                "v6.4.4": True,
1803                                "v6.4.0": True,
1804                                "v6.4.1": True,
1805                                "v6.2.0": True,
1806                                "v6.2.3": True,
1807                                "v6.2.5": True,
1808                                "v6.2.7": True,
1809                                "v6.0.11": True
1810                            }
1811                        },
1812                        "header_length": {
1813                            "type": "string",
1814                            "options": [
1815                                {
1816                                    "value": "enable",
1817                                    "revisions": {
1818                                        "v6.0.0": True,
1819                                        "v7.0.0": True,
1820                                        "v6.0.5": True,
1821                                        "v6.4.4": True,
1822                                        "v6.4.0": True,
1823                                        "v6.4.1": True,
1824                                        "v6.2.0": True,
1825                                        "v6.2.3": True,
1826                                        "v6.2.5": True,
1827                                        "v6.2.7": True,
1828                                        "v6.0.11": True
1829                                    }
1830                                },
1831                                {
1832                                    "value": "disable",
1833                                    "revisions": {
1834                                        "v6.0.0": True,
1835                                        "v7.0.0": True,
1836                                        "v6.0.5": True,
1837                                        "v6.4.4": True,
1838                                        "v6.4.0": True,
1839                                        "v6.4.1": True,
1840                                        "v6.2.0": True,
1841                                        "v6.2.3": True,
1842                                        "v6.2.5": True,
1843                                        "v6.2.7": True,
1844                                        "v6.0.11": True
1845                                    }
1846                                }
1847                            ],
1848                            "revisions": {
1849                                "v6.0.0": True,
1850                                "v7.0.0": True,
1851                                "v6.0.5": True,
1852                                "v6.4.4": True,
1853                                "v6.4.0": True,
1854                                "v6.4.1": True,
1855                                "v6.2.0": True,
1856                                "v6.2.3": True,
1857                                "v6.2.5": True,
1858                                "v6.2.7": True,
1859                                "v6.0.11": True
1860                            }
1861                        },
1862                        "max_cookie": {
1863                            "type": "string",
1864                            "options": [
1865                                {
1866                                    "value": "enable",
1867                                    "revisions": {
1868                                        "v6.0.0": True,
1869                                        "v7.0.0": True,
1870                                        "v6.0.5": True,
1871                                        "v6.4.4": True,
1872                                        "v6.4.0": True,
1873                                        "v6.4.1": True,
1874                                        "v6.2.0": True,
1875                                        "v6.2.3": True,
1876                                        "v6.2.5": True,
1877                                        "v6.2.7": True,
1878                                        "v6.0.11": True
1879                                    }
1880                                },
1881                                {
1882                                    "value": "disable",
1883                                    "revisions": {
1884                                        "v6.0.0": True,
1885                                        "v7.0.0": True,
1886                                        "v6.0.5": True,
1887                                        "v6.4.4": True,
1888                                        "v6.4.0": True,
1889                                        "v6.4.1": True,
1890                                        "v6.2.0": True,
1891                                        "v6.2.3": True,
1892                                        "v6.2.5": True,
1893                                        "v6.2.7": True,
1894                                        "v6.0.11": True
1895                                    }
1896                                }
1897                            ],
1898                            "revisions": {
1899                                "v6.0.0": True,
1900                                "v7.0.0": True,
1901                                "v6.0.5": True,
1902                                "v6.4.4": True,
1903                                "v6.4.0": True,
1904                                "v6.4.1": True,
1905                                "v6.2.0": True,
1906                                "v6.2.3": True,
1907                                "v6.2.5": True,
1908                                "v6.2.7": True,
1909                                "v6.0.11": True
1910                            }
1911                        },
1912                        "param_length": {
1913                            "type": "string",
1914                            "options": [
1915                                {
1916                                    "value": "enable",
1917                                    "revisions": {
1918                                        "v6.0.0": True,
1919                                        "v7.0.0": True,
1920                                        "v6.0.5": True,
1921                                        "v6.4.4": True,
1922                                        "v6.4.0": True,
1923                                        "v6.4.1": True,
1924                                        "v6.2.0": True,
1925                                        "v6.2.3": True,
1926                                        "v6.2.5": True,
1927                                        "v6.2.7": True,
1928                                        "v6.0.11": True
1929                                    }
1930                                },
1931                                {
1932                                    "value": "disable",
1933                                    "revisions": {
1934                                        "v6.0.0": True,
1935                                        "v7.0.0": True,
1936                                        "v6.0.5": True,
1937                                        "v6.4.4": True,
1938                                        "v6.4.0": True,
1939                                        "v6.4.1": True,
1940                                        "v6.2.0": True,
1941                                        "v6.2.3": True,
1942                                        "v6.2.5": True,
1943                                        "v6.2.7": True,
1944                                        "v6.0.11": True
1945                                    }
1946                                }
1947                            ],
1948                            "revisions": {
1949                                "v6.0.0": True,
1950                                "v7.0.0": True,
1951                                "v6.0.5": True,
1952                                "v6.4.4": True,
1953                                "v6.4.0": True,
1954                                "v6.4.1": True,
1955                                "v6.2.0": True,
1956                                "v6.2.3": True,
1957                                "v6.2.5": True,
1958                                "v6.2.7": True,
1959                                "v6.0.11": True
1960                            }
1961                        },
1962                        "max_url_param": {
1963                            "type": "string",
1964                            "options": [
1965                                {
1966                                    "value": "enable",
1967                                    "revisions": {
1968                                        "v6.0.0": True,
1969                                        "v7.0.0": True,
1970                                        "v6.0.5": True,
1971                                        "v6.4.4": True,
1972                                        "v6.4.0": True,
1973                                        "v6.4.1": True,
1974                                        "v6.2.0": True,
1975                                        "v6.2.3": True,
1976                                        "v6.2.5": True,
1977                                        "v6.2.7": True,
1978                                        "v6.0.11": True
1979                                    }
1980                                },
1981                                {
1982                                    "value": "disable",
1983                                    "revisions": {
1984                                        "v6.0.0": True,
1985                                        "v7.0.0": True,
1986                                        "v6.0.5": True,
1987                                        "v6.4.4": True,
1988                                        "v6.4.0": True,
1989                                        "v6.4.1": True,
1990                                        "v6.2.0": True,
1991                                        "v6.2.3": True,
1992                                        "v6.2.5": True,
1993                                        "v6.2.7": True,
1994                                        "v6.0.11": True
1995                                    }
1996                                }
1997                            ],
1998                            "revisions": {
1999                                "v6.0.0": True,
2000                                "v7.0.0": True,
2001                                "v6.0.5": True,
2002                                "v6.4.4": True,
2003                                "v6.4.0": True,
2004                                "v6.4.1": True,
2005                                "v6.2.0": True,
2006                                "v6.2.3": True,
2007                                "v6.2.5": True,
2008                                "v6.2.7": True,
2009                                "v6.0.11": True
2010                            }
2011                        },
2012                        "pattern": {
2013                            "type": "string",
2014                            "revisions": {
2015                                "v6.0.0": True,
2016                                "v7.0.0": True,
2017                                "v6.0.5": True,
2018                                "v6.4.4": True,
2019                                "v6.4.0": True,
2020                                "v6.4.1": True,
2021                                "v6.2.0": True,
2022                                "v6.2.3": True,
2023                                "v6.2.5": True,
2024                                "v6.2.7": True,
2025                                "v6.0.11": True
2026                            }
2027                        },
2028                        "hostname": {
2029                            "type": "string",
2030                            "options": [
2031                                {
2032                                    "value": "enable",
2033                                    "revisions": {
2034                                        "v6.0.0": True,
2035                                        "v7.0.0": True,
2036                                        "v6.0.5": True,
2037                                        "v6.4.4": True,
2038                                        "v6.4.0": True,
2039                                        "v6.4.1": True,
2040                                        "v6.2.0": True,
2041                                        "v6.2.3": True,
2042                                        "v6.2.5": True,
2043                                        "v6.2.7": True,
2044                                        "v6.0.11": True
2045                                    }
2046                                },
2047                                {
2048                                    "value": "disable",
2049                                    "revisions": {
2050                                        "v6.0.0": True,
2051                                        "v7.0.0": True,
2052                                        "v6.0.5": True,
2053                                        "v6.4.4": True,
2054                                        "v6.4.0": True,
2055                                        "v6.4.1": True,
2056                                        "v6.2.0": True,
2057                                        "v6.2.3": True,
2058                                        "v6.2.5": True,
2059                                        "v6.2.7": True,
2060                                        "v6.0.11": True
2061                                    }
2062                                }
2063                            ],
2064                            "revisions": {
2065                                "v6.0.0": True,
2066                                "v7.0.0": True,
2067                                "v6.0.5": True,
2068                                "v6.4.4": True,
2069                                "v6.4.0": True,
2070                                "v6.4.1": True,
2071                                "v6.2.0": True,
2072                                "v6.2.3": True,
2073                                "v6.2.5": True,
2074                                "v6.2.7": True,
2075                                "v6.0.11": True
2076                            }
2077                        },
2078                        "method": {
2079                            "type": "string",
2080                            "options": [
2081                                {
2082                                    "value": "enable",
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                                {
2098                                    "value": "disable",
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                            ],
2114                            "revisions": {
2115                                "v6.0.0": True,
2116                                "v7.0.0": True,
2117                                "v6.0.5": True,
2118                                "v6.4.4": True,
2119                                "v6.4.0": True,
2120                                "v6.4.1": True,
2121                                "v6.2.0": True,
2122                                "v6.2.3": True,
2123                                "v6.2.5": True,
2124                                "v6.2.7": True,
2125                                "v6.0.11": True
2126                            }
2127                        },
2128                        "url_param_length": {
2129                            "type": "string",
2130                            "options": [
2131                                {
2132                                    "value": "enable",
2133                                    "revisions": {
2134                                        "v6.0.0": True,
2135                                        "v7.0.0": True,
2136                                        "v6.0.5": True,
2137                                        "v6.4.4": True,
2138                                        "v6.4.0": True,
2139                                        "v6.4.1": True,
2140                                        "v6.2.0": True,
2141                                        "v6.2.3": True,
2142                                        "v6.2.5": True,
2143                                        "v6.2.7": True,
2144                                        "v6.0.11": True
2145                                    }
2146                                },
2147                                {
2148                                    "value": "disable",
2149                                    "revisions": {
2150                                        "v6.0.0": True,
2151                                        "v7.0.0": True,
2152                                        "v6.0.5": True,
2153                                        "v6.4.4": True,
2154                                        "v6.4.0": True,
2155                                        "v6.4.1": True,
2156                                        "v6.2.0": True,
2157                                        "v6.2.3": True,
2158                                        "v6.2.5": True,
2159                                        "v6.2.7": True,
2160                                        "v6.0.11": True
2161                                    }
2162                                }
2163                            ],
2164                            "revisions": {
2165                                "v6.0.0": True,
2166                                "v7.0.0": True,
2167                                "v6.0.5": True,
2168                                "v6.4.4": True,
2169                                "v6.4.0": True,
2170                                "v6.4.1": True,
2171                                "v6.2.0": True,
2172                                "v6.2.3": True,
2173                                "v6.2.5": True,
2174                                "v6.2.7": True,
2175                                "v6.0.11": True
2176                            }
2177                        },
2178                        "malformed": {
2179                            "type": "string",
2180                            "options": [
2181                                {
2182                                    "value": "enable",
2183                                    "revisions": {
2184                                        "v6.0.0": True,
2185                                        "v7.0.0": True,
2186                                        "v6.0.5": True,
2187                                        "v6.4.4": True,
2188                                        "v6.4.0": True,
2189                                        "v6.4.1": True,
2190                                        "v6.2.0": True,
2191                                        "v6.2.3": True,
2192                                        "v6.2.5": True,
2193                                        "v6.2.7": True,
2194                                        "v6.0.11": True
2195                                    }
2196                                },
2197                                {
2198                                    "value": "disable",
2199                                    "revisions": {
2200                                        "v6.0.0": True,
2201                                        "v7.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                            "revisions": {
2215                                "v6.0.0": True,
2216                                "v7.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                        "max_range_segment": {
2229                            "type": "string",
2230                            "options": [
2231                                {
2232                                    "value": "enable",
2233                                    "revisions": {
2234                                        "v6.0.0": True,
2235                                        "v7.0.0": True,
2236                                        "v6.0.5": True,
2237                                        "v6.4.4": True,
2238                                        "v6.4.0": True,
2239                                        "v6.4.1": True,
2240                                        "v6.2.0": True,
2241                                        "v6.2.3": True,
2242                                        "v6.2.5": True,
2243                                        "v6.2.7": True,
2244                                        "v6.0.11": True
2245                                    }
2246                                },
2247                                {
2248                                    "value": "disable",
2249                                    "revisions": {
2250                                        "v6.0.0": True,
2251                                        "v7.0.0": True,
2252                                        "v6.0.5": True,
2253                                        "v6.4.4": True,
2254                                        "v6.4.0": True,
2255                                        "v6.4.1": True,
2256                                        "v6.2.0": True,
2257                                        "v6.2.3": True,
2258                                        "v6.2.5": True,
2259                                        "v6.2.7": True,
2260                                        "v6.0.11": True
2261                                    }
2262                                }
2263                            ],
2264                            "revisions": {
2265                                "v6.0.0": True,
2266                                "v7.0.0": True,
2267                                "v6.0.5": True,
2268                                "v6.4.4": True,
2269                                "v6.4.0": True,
2270                                "v6.4.1": True,
2271                                "v6.2.0": True,
2272                                "v6.2.3": True,
2273                                "v6.2.5": True,
2274                                "v6.2.7": True,
2275                                "v6.0.11": True
2276                            }
2277                        },
2278                        "version": {
2279                            "type": "string",
2280                            "options": [
2281                                {
2282                                    "value": "enable",
2283                                    "revisions": {
2284                                        "v6.0.0": True,
2285                                        "v7.0.0": True,
2286                                        "v6.0.5": True,
2287                                        "v6.4.4": True,
2288                                        "v6.4.0": True,
2289                                        "v6.4.1": True,
2290                                        "v6.2.0": True,
2291                                        "v6.2.3": True,
2292                                        "v6.2.5": True,
2293                                        "v6.2.7": True,
2294                                        "v6.0.11": True
2295                                    }
2296                                },
2297                                {
2298                                    "value": "disable",
2299                                    "revisions": {
2300                                        "v6.0.0": True,
2301                                        "v7.0.0": True,
2302                                        "v6.0.5": True,
2303                                        "v6.4.4": True,
2304                                        "v6.4.0": True,
2305                                        "v6.4.1": True,
2306                                        "v6.2.0": True,
2307                                        "v6.2.3": True,
2308                                        "v6.2.5": True,
2309                                        "v6.2.7": True,
2310                                        "v6.0.11": True
2311                                    }
2312                                }
2313                            ],
2314                            "revisions": {
2315                                "v6.0.0": True,
2316                                "v7.0.0": True,
2317                                "v6.0.5": True,
2318                                "v6.4.4": True,
2319                                "v6.4.0": True,
2320                                "v6.4.1": True,
2321                                "v6.2.0": True,
2322                                "v6.2.3": True,
2323                                "v6.2.5": True,
2324                                "v6.2.7": True,
2325                                "v6.0.11": True
2326                            }
2327                        },
2328                        "address": {
2329                            "type": "string",
2330                            "revisions": {
2331                                "v6.0.0": True,
2332                                "v7.0.0": True,
2333                                "v6.0.5": True,
2334                                "v6.4.4": True,
2335                                "v6.4.0": True,
2336                                "v6.4.1": True,
2337                                "v6.2.0": True,
2338                                "v6.2.3": True,
2339                                "v6.2.5": True,
2340                                "v6.2.7": True,
2341                                "v6.0.11": True
2342                            }
2343                        },
2344                        "max_header_line": {
2345                            "type": "string",
2346                            "options": [
2347                                {
2348                                    "value": "enable",
2349                                    "revisions": {
2350                                        "v6.0.0": True,
2351                                        "v7.0.0": True,
2352                                        "v6.0.5": True,
2353                                        "v6.4.4": True,
2354                                        "v6.4.0": True,
2355                                        "v6.4.1": True,
2356                                        "v6.2.0": True,
2357                                        "v6.2.3": True,
2358                                        "v6.2.5": True,
2359                                        "v6.2.7": True,
2360                                        "v6.0.11": True
2361                                    }
2362                                },
2363                                {
2364                                    "value": "disable",
2365                                    "revisions": {
2366                                        "v6.0.0": True,
2367                                        "v7.0.0": True,
2368                                        "v6.0.5": True,
2369                                        "v6.4.4": True,
2370                                        "v6.4.0": True,
2371                                        "v6.4.1": True,
2372                                        "v6.2.0": True,
2373                                        "v6.2.3": True,
2374                                        "v6.2.5": True,
2375                                        "v6.2.7": True,
2376                                        "v6.0.11": True
2377                                    }
2378                                }
2379                            ],
2380                            "revisions": {
2381                                "v6.0.0": True,
2382                                "v7.0.0": True,
2383                                "v6.0.5": True,
2384                                "v6.4.4": True,
2385                                "v6.4.0": True,
2386                                "v6.4.1": True,
2387                                "v6.2.0": True,
2388                                "v6.2.3": True,
2389                                "v6.2.5": True,
2390                                "v6.2.7": True,
2391                                "v6.0.11": True
2392                            }
2393                        },
2394                        "id": {
2395                            "type": "integer",
2396                            "revisions": {
2397                                "v6.0.0": True,
2398                                "v7.0.0": True,
2399                                "v6.0.5": True,
2400                                "v6.4.4": True,
2401                                "v6.4.0": True,
2402                                "v6.4.1": True,
2403                                "v6.2.0": True,
2404                                "v6.2.3": True,
2405                                "v6.2.5": True,
2406                                "v6.2.7": True,
2407                                "v6.0.11": True
2408                            }
2409                        },
2410                        "line_length": {
2411                            "type": "string",
2412                            "options": [
2413                                {
2414                                    "value": "enable",
2415                                    "revisions": {
2416                                        "v6.0.0": True,
2417                                        "v7.0.0": True,
2418                                        "v6.0.5": True,
2419                                        "v6.4.4": True,
2420                                        "v6.4.0": True,
2421                                        "v6.4.1": True,
2422                                        "v6.2.0": True,
2423                                        "v6.2.3": True,
2424                                        "v6.2.5": True,
2425                                        "v6.2.7": True,
2426                                        "v6.0.11": True
2427                                    }
2428                                },
2429                                {
2430                                    "value": "disable",
2431                                    "revisions": {
2432                                        "v6.0.0": True,
2433                                        "v7.0.0": True,
2434                                        "v6.0.5": True,
2435                                        "v6.4.4": True,
2436                                        "v6.4.0": True,
2437                                        "v6.4.1": True,
2438                                        "v6.2.0": True,
2439                                        "v6.2.3": True,
2440                                        "v6.2.5": True,
2441                                        "v6.2.7": True,
2442                                        "v6.0.11": True
2443                                    }
2444                                }
2445                            ],
2446                            "revisions": {
2447                                "v6.0.0": True,
2448                                "v7.0.0": True,
2449                                "v6.0.5": True,
2450                                "v6.4.4": True,
2451                                "v6.4.0": True,
2452                                "v6.4.1": True,
2453                                "v6.2.0": True,
2454                                "v6.2.3": True,
2455                                "v6.2.5": True,
2456                                "v6.2.7": True,
2457                                "v6.0.11": True
2458                            }
2459                        }
2460                    },
2461                    "revisions": {
2462                        "v6.0.0": True,
2463                        "v7.0.0": True,
2464                        "v6.0.5": True,
2465                        "v6.4.4": True,
2466                        "v6.4.0": True,
2467                        "v6.4.1": True,
2468                        "v6.2.0": True,
2469                        "v6.2.3": True,
2470                        "v6.2.5": True,
2471                        "v6.2.7": True,
2472                        "v6.0.11": True
2473                    }
2474                },
2475                "header_length": {
2476                    "type": "dict",
2477                    "children": {
2478                        "status": {
2479                            "type": "string",
2480                            "options": [
2481                                {
2482                                    "value": "enable",
2483                                    "revisions": {
2484                                        "v6.0.0": True,
2485                                        "v7.0.0": True,
2486                                        "v6.0.5": True,
2487                                        "v6.4.4": True,
2488                                        "v6.4.0": True,
2489                                        "v6.4.1": True,
2490                                        "v6.2.0": True,
2491                                        "v6.2.3": True,
2492                                        "v6.2.5": True,
2493                                        "v6.2.7": True,
2494                                        "v6.0.11": True
2495                                    }
2496                                },
2497                                {
2498                                    "value": "disable",
2499                                    "revisions": {
2500                                        "v6.0.0": True,
2501                                        "v7.0.0": True,
2502                                        "v6.0.5": True,
2503                                        "v6.4.4": True,
2504                                        "v6.4.0": True,
2505                                        "v6.4.1": True,
2506                                        "v6.2.0": True,
2507                                        "v6.2.3": True,
2508                                        "v6.2.5": True,
2509                                        "v6.2.7": True,
2510                                        "v6.0.11": True
2511                                    }
2512                                }
2513                            ],
2514                            "revisions": {
2515                                "v6.0.0": True,
2516                                "v7.0.0": True,
2517                                "v6.0.5": True,
2518                                "v6.4.4": True,
2519                                "v6.4.0": True,
2520                                "v6.4.1": True,
2521                                "v6.2.0": True,
2522                                "v6.2.3": True,
2523                                "v6.2.5": True,
2524                                "v6.2.7": True,
2525                                "v6.0.11": True
2526                            }
2527                        },
2528                        "action": {
2529                            "type": "string",
2530                            "options": [
2531                                {
2532                                    "value": "allow",
2533                                    "revisions": {
2534                                        "v6.0.0": True,
2535                                        "v7.0.0": True,
2536                                        "v6.0.5": True,
2537                                        "v6.4.4": True,
2538                                        "v6.4.0": True,
2539                                        "v6.4.1": True,
2540                                        "v6.2.0": True,
2541                                        "v6.2.3": True,
2542                                        "v6.2.5": True,
2543                                        "v6.2.7": True,
2544                                        "v6.0.11": True
2545                                    }
2546                                },
2547                                {
2548                                    "value": "block",
2549                                    "revisions": {
2550                                        "v6.0.0": True,
2551                                        "v7.0.0": True,
2552                                        "v6.0.5": True,
2553                                        "v6.4.4": True,
2554                                        "v6.4.0": True,
2555                                        "v6.4.1": True,
2556                                        "v6.2.0": True,
2557                                        "v6.2.3": True,
2558                                        "v6.2.5": True,
2559                                        "v6.2.7": True,
2560                                        "v6.0.11": True
2561                                    }
2562                                }
2563                            ],
2564                            "revisions": {
2565                                "v6.0.0": True,
2566                                "v7.0.0": True,
2567                                "v6.0.5": True,
2568                                "v6.4.4": True,
2569                                "v6.4.0": True,
2570                                "v6.4.1": True,
2571                                "v6.2.0": True,
2572                                "v6.2.3": True,
2573                                "v6.2.5": True,
2574                                "v6.2.7": True,
2575                                "v6.0.11": True
2576                            }
2577                        },
2578                        "length": {
2579                            "type": "integer",
2580                            "revisions": {
2581                                "v6.0.0": True,
2582                                "v7.0.0": True,
2583                                "v6.0.5": True,
2584                                "v6.4.4": True,
2585                                "v6.4.0": True,
2586                                "v6.4.1": True,
2587                                "v6.2.0": True,
2588                                "v6.2.3": True,
2589                                "v6.2.5": True,
2590                                "v6.2.7": True,
2591                                "v6.0.11": True
2592                            }
2593                        },
2594                        "log": {
2595                            "type": "string",
2596                            "options": [
2597                                {
2598                                    "value": "enable",
2599                                    "revisions": {
2600                                        "v6.0.0": True,
2601                                        "v7.0.0": True,
2602                                        "v6.0.5": True,
2603                                        "v6.4.4": True,
2604                                        "v6.4.0": True,
2605                                        "v6.4.1": True,
2606                                        "v6.2.0": True,
2607                                        "v6.2.3": True,
2608                                        "v6.2.5": True,
2609                                        "v6.2.7": True,
2610                                        "v6.0.11": True
2611                                    }
2612                                },
2613                                {
2614                                    "value": "disable",
2615                                    "revisions": {
2616                                        "v6.0.0": True,
2617                                        "v7.0.0": True,
2618                                        "v6.0.5": True,
2619                                        "v6.4.4": True,
2620                                        "v6.4.0": True,
2621                                        "v6.4.1": True,
2622                                        "v6.2.0": True,
2623                                        "v6.2.3": True,
2624                                        "v6.2.5": True,
2625                                        "v6.2.7": True,
2626                                        "v6.0.11": True
2627                                    }
2628                                }
2629                            ],
2630                            "revisions": {
2631                                "v6.0.0": True,
2632                                "v7.0.0": True,
2633                                "v6.0.5": True,
2634                                "v6.4.4": True,
2635                                "v6.4.0": True,
2636                                "v6.4.1": True,
2637                                "v6.2.0": True,
2638                                "v6.2.3": True,
2639                                "v6.2.5": True,
2640                                "v6.2.7": True,
2641                                "v6.0.11": True
2642                            }
2643                        },
2644                        "severity": {
2645                            "type": "string",
2646                            "options": [
2647                                {
2648                                    "value": "high",
2649                                    "revisions": {
2650                                        "v6.0.0": True,
2651                                        "v7.0.0": True,
2652                                        "v6.0.5": True,
2653                                        "v6.4.4": True,
2654                                        "v6.4.0": True,
2655                                        "v6.4.1": True,
2656                                        "v6.2.0": True,
2657                                        "v6.2.3": True,
2658                                        "v6.2.5": True,
2659                                        "v6.2.7": True,
2660                                        "v6.0.11": True
2661                                    }
2662                                },
2663                                {
2664                                    "value": "medium",
2665                                    "revisions": {
2666                                        "v6.0.0": True,
2667                                        "v7.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                                    "value": "low",
2681                                    "revisions": {
2682                                        "v6.0.0": True,
2683                                        "v7.0.0": True,
2684                                        "v6.0.5": True,
2685                                        "v6.4.4": True,
2686                                        "v6.4.0": True,
2687                                        "v6.4.1": True,
2688                                        "v6.2.0": True,
2689                                        "v6.2.3": True,
2690                                        "v6.2.5": True,
2691                                        "v6.2.7": True,
2692                                        "v6.0.11": True
2693                                    }
2694                                }
2695                            ],
2696                            "revisions": {
2697                                "v6.0.0": True,
2698                                "v7.0.0": True,
2699                                "v6.0.5": True,
2700                                "v6.4.4": True,
2701                                "v6.4.0": True,
2702                                "v6.4.1": True,
2703                                "v6.2.0": True,
2704                                "v6.2.3": True,
2705                                "v6.2.5": True,
2706                                "v6.2.7": True,
2707                                "v6.0.11": True
2708                            }
2709                        }
2710                    },
2711                    "revisions": {
2712                        "v6.0.0": True,
2713                        "v7.0.0": True,
2714                        "v6.0.5": True,
2715                        "v6.4.4": True,
2716                        "v6.4.0": True,
2717                        "v6.4.1": True,
2718                        "v6.2.0": True,
2719                        "v6.2.3": True,
2720                        "v6.2.5": True,
2721                        "v6.2.7": True,
2722                        "v6.0.11": True
2723                    }
2724                },
2725                "max_cookie": {
2726                    "type": "dict",
2727                    "children": {
2728                        "status": {
2729                            "type": "string",
2730                            "options": [
2731                                {
2732                                    "value": "enable",
2733                                    "revisions": {
2734                                        "v6.0.0": True,
2735                                        "v7.0.0": True,
2736                                        "v6.0.5": True,
2737                                        "v6.4.4": True,
2738                                        "v6.4.0": True,
2739                                        "v6.4.1": True,
2740                                        "v6.2.0": True,
2741                                        "v6.2.3": True,
2742                                        "v6.2.5": True,
2743                                        "v6.2.7": True,
2744                                        "v6.0.11": True
2745                                    }
2746                                },
2747                                {
2748                                    "value": "disable",
2749                                    "revisions": {
2750                                        "v6.0.0": True,
2751                                        "v7.0.0": True,
2752                                        "v6.0.5": True,
2753                                        "v6.4.4": True,
2754                                        "v6.4.0": True,
2755                                        "v6.4.1": True,
2756                                        "v6.2.0": True,
2757                                        "v6.2.3": True,
2758                                        "v6.2.5": True,
2759                                        "v6.2.7": True,
2760                                        "v6.0.11": True
2761                                    }
2762                                }
2763                            ],
2764                            "revisions": {
2765                                "v6.0.0": True,
2766                                "v7.0.0": True,
2767                                "v6.0.5": True,
2768                                "v6.4.4": True,
2769                                "v6.4.0": True,
2770                                "v6.4.1": True,
2771                                "v6.2.0": True,
2772                                "v6.2.3": True,
2773                                "v6.2.5": True,
2774                                "v6.2.7": True,
2775                                "v6.0.11": True
2776                            }
2777                        },
2778                        "action": {
2779                            "type": "string",
2780                            "options": [
2781                                {
2782                                    "value": "allow",
2783                                    "revisions": {
2784                                        "v6.0.0": True,
2785                                        "v7.0.0": True,
2786                                        "v6.0.5": True,
2787                                        "v6.4.4": True,
2788                                        "v6.4.0": True,
2789                                        "v6.4.1": True,
2790                                        "v6.2.0": True,
2791                                        "v6.2.3": True,
2792                                        "v6.2.5": True,
2793                                        "v6.2.7": True,
2794                                        "v6.0.11": True
2795                                    }
2796                                },
2797                                {
2798                                    "value": "block",
2799                                    "revisions": {
2800                                        "v6.0.0": True,
2801                                        "v7.0.0": True,
2802                                        "v6.0.5": True,
2803                                        "v6.4.4": True,
2804                                        "v6.4.0": True,
2805                                        "v6.4.1": True,
2806                                        "v6.2.0": True,
2807                                        "v6.2.3": True,
2808                                        "v6.2.5": True,
2809                                        "v6.2.7": True,
2810                                        "v6.0.11": True
2811                                    }
2812                                }
2813                            ],
2814                            "revisions": {
2815                                "v6.0.0": True,
2816                                "v7.0.0": True,
2817                                "v6.0.5": True,
2818                                "v6.4.4": True,
2819                                "v6.4.0": True,
2820                                "v6.4.1": True,
2821                                "v6.2.0": True,
2822                                "v6.2.3": True,
2823                                "v6.2.5": True,
2824                                "v6.2.7": True,
2825                                "v6.0.11": True
2826                            }
2827                        },
2828                        "max_cookie": {
2829                            "type": "integer",
2830                            "revisions": {
2831                                "v6.0.0": True,
2832                                "v7.0.0": True,
2833                                "v6.0.5": True,
2834                                "v6.4.4": True,
2835                                "v6.4.0": True,
2836                                "v6.4.1": True,
2837                                "v6.2.0": True,
2838                                "v6.2.3": True,
2839                                "v6.2.5": True,
2840                                "v6.2.7": True,
2841                                "v6.0.11": True
2842                            }
2843                        },
2844                        "severity": {
2845                            "type": "string",
2846                            "options": [
2847                                {
2848                                    "value": "high",
2849                                    "revisions": {
2850                                        "v6.0.0": True,
2851                                        "v7.0.0": True,
2852                                        "v6.0.5": True,
2853                                        "v6.4.4": True,
2854                                        "v6.4.0": True,
2855                                        "v6.4.1": True,
2856                                        "v6.2.0": True,
2857                                        "v6.2.3": True,
2858                                        "v6.2.5": True,
2859                                        "v6.2.7": True,
2860                                        "v6.0.11": True
2861                                    }
2862                                },
2863                                {
2864                                    "value": "medium",
2865                                    "revisions": {
2866                                        "v6.0.0": True,
2867                                        "v7.0.0": True,
2868                                        "v6.0.5": True,
2869                                        "v6.4.4": True,
2870                                        "v6.4.0": True,
2871                                        "v6.4.1": True,
2872                                        "v6.2.0": True,
2873                                        "v6.2.3": True,
2874                                        "v6.2.5": True,
2875                                        "v6.2.7": True,
2876                                        "v6.0.11": True
2877                                    }
2878                                },
2879                                {
2880                                    "value": "low",
2881                                    "revisions": {
2882                                        "v6.0.0": True,
2883                                        "v7.0.0": True,
2884                                        "v6.0.5": True,
2885                                        "v6.4.4": True,
2886                                        "v6.4.0": True,
2887                                        "v6.4.1": True,
2888                                        "v6.2.0": True,
2889                                        "v6.2.3": True,
2890                                        "v6.2.5": True,
2891                                        "v6.2.7": True,
2892                                        "v6.0.11": True
2893                                    }
2894                                }
2895                            ],
2896                            "revisions": {
2897                                "v6.0.0": True,
2898                                "v7.0.0": True,
2899                                "v6.0.5": True,
2900                                "v6.4.4": True,
2901                                "v6.4.0": True,
2902                                "v6.4.1": True,
2903                                "v6.2.0": True,
2904                                "v6.2.3": True,
2905                                "v6.2.5": True,
2906                                "v6.2.7": True,
2907                                "v6.0.11": True
2908                            }
2909                        },
2910                        "log": {
2911                            "type": "string",
2912                            "options": [
2913                                {
2914                                    "value": "enable",
2915                                    "revisions": {
2916                                        "v6.0.0": True,
2917                                        "v7.0.0": True,
2918                                        "v6.0.5": True,
2919                                        "v6.4.4": True,
2920                                        "v6.4.0": True,
2921                                        "v6.4.1": True,
2922                                        "v6.2.0": True,
2923                                        "v6.2.3": True,
2924                                        "v6.2.5": True,
2925                                        "v6.2.7": True,
2926                                        "v6.0.11": True
2927                                    }
2928                                },
2929                                {
2930                                    "value": "disable",
2931                                    "revisions": {
2932                                        "v6.0.0": True,
2933                                        "v7.0.0": True,
2934                                        "v6.0.5": True,
2935                                        "v6.4.4": True,
2936                                        "v6.4.0": True,
2937                                        "v6.4.1": True,
2938                                        "v6.2.0": True,
2939                                        "v6.2.3": True,
2940                                        "v6.2.5": True,
2941                                        "v6.2.7": True,
2942                                        "v6.0.11": True
2943                                    }
2944                                }
2945                            ],
2946                            "revisions": {
2947                                "v6.0.0": True,
2948                                "v7.0.0": True,
2949                                "v6.0.5": True,
2950                                "v6.4.4": True,
2951                                "v6.4.0": True,
2952                                "v6.4.1": True,
2953                                "v6.2.0": True,
2954                                "v6.2.3": True,
2955                                "v6.2.5": True,
2956                                "v6.2.7": True,
2957                                "v6.0.11": True
2958                            }
2959                        }
2960                    },
2961                    "revisions": {
2962                        "v6.0.0": True,
2963                        "v7.0.0": True,
2964                        "v6.0.5": True,
2965                        "v6.4.4": True,
2966                        "v6.4.0": True,
2967                        "v6.4.1": True,
2968                        "v6.2.0": True,
2969                        "v6.2.3": True,
2970                        "v6.2.5": True,
2971                        "v6.2.7": True,
2972                        "v6.0.11": True
2973                    }
2974                },
2975                "param_length": {
2976                    "type": "dict",
2977                    "children": {
2978                        "status": {
2979                            "type": "string",
2980                            "options": [
2981                                {
2982                                    "value": "enable",
2983                                    "revisions": {
2984                                        "v6.0.0": True,
2985                                        "v7.0.0": True,
2986                                        "v6.0.5": True,
2987                                        "v6.4.4": True,
2988                                        "v6.4.0": True,
2989                                        "v6.4.1": True,
2990                                        "v6.2.0": True,
2991                                        "v6.2.3": True,
2992                                        "v6.2.5": True,
2993                                        "v6.2.7": True,
2994                                        "v6.0.11": True
2995                                    }
2996                                },
2997                                {
2998                                    "value": "disable",
2999                                    "revisions": {
3000                                        "v6.0.0": True,
3001                                        "v7.0.0": True,
3002                                        "v6.0.5": True,
3003                                        "v6.4.4": True,
3004                                        "v6.4.0": True,
3005                                        "v6.4.1": True,
3006                                        "v6.2.0": True,
3007                                        "v6.2.3": True,
3008                                        "v6.2.5": True,
3009                                        "v6.2.7": True,
3010                                        "v6.0.11": True
3011                                    }
3012                                }
3013                            ],
3014                            "revisions": {
3015                                "v6.0.0": True,
3016                                "v7.0.0": True,
3017                                "v6.0.5": True,
3018                                "v6.4.4": True,
3019                                "v6.4.0": True,
3020                                "v6.4.1": True,
3021                                "v6.2.0": True,
3022                                "v6.2.3": True,
3023                                "v6.2.5": True,
3024                                "v6.2.7": True,
3025                                "v6.0.11": True
3026                            }
3027                        },
3028                        "action": {
3029                            "type": "string",
3030                            "options": [
3031                                {
3032                                    "value": "allow",
3033                                    "revisions": {
3034                                        "v6.0.0": True,
3035                                        "v7.0.0": True,
3036                                        "v6.0.5": True,
3037                                        "v6.4.4": True,
3038                                        "v6.4.0": True,
3039                                        "v6.4.1": True,
3040                                        "v6.2.0": True,
3041                                        "v6.2.3": True,
3042                                        "v6.2.5": True,
3043                                        "v6.2.7": True,
3044                                        "v6.0.11": True
3045                                    }
3046                                },
3047                                {
3048                                    "value": "block",
3049                                    "revisions": {
3050                                        "v6.0.0": True,
3051                                        "v7.0.0": True,
3052                                        "v6.0.5": True,
3053                                        "v6.4.4": True,
3054                                        "v6.4.0": True,
3055                                        "v6.4.1": True,
3056                                        "v6.2.0": True,
3057                                        "v6.2.3": True,
3058                                        "v6.2.5": True,
3059                                        "v6.2.7": True,
3060                                        "v6.0.11": True
3061                                    }
3062                                }
3063                            ],
3064                            "revisions": {
3065                                "v6.0.0": True,
3066                                "v7.0.0": True,
3067                                "v6.0.5": True,
3068                                "v6.4.4": True,
3069                                "v6.4.0": True,
3070                                "v6.4.1": True,
3071                                "v6.2.0": True,
3072                                "v6.2.3": True,
3073                                "v6.2.5": True,
3074                                "v6.2.7": True,
3075                                "v6.0.11": True
3076                            }
3077                        },
3078                        "length": {
3079                            "type": "integer",
3080                            "revisions": {
3081                                "v6.0.0": True,
3082                                "v7.0.0": True,
3083                                "v6.0.5": True,
3084                                "v6.4.4": True,
3085                                "v6.4.0": True,
3086                                "v6.4.1": True,
3087                                "v6.2.0": True,
3088                                "v6.2.3": True,
3089                                "v6.2.5": True,
3090                                "v6.2.7": True,
3091                                "v6.0.11": True
3092                            }
3093                        },
3094                        "log": {
3095                            "type": "string",
3096                            "options": [
3097                                {
3098                                    "value": "enable",
3099                                    "revisions": {
3100                                        "v6.0.0": True,
3101                                        "v7.0.0": True,
3102                                        "v6.0.5": True,
3103                                        "v6.4.4": True,
3104                                        "v6.4.0": True,
3105                                        "v6.4.1": True,
3106                                        "v6.2.0": True,
3107                                        "v6.2.3": True,
3108                                        "v6.2.5": True,
3109                                        "v6.2.7": True,
3110                                        "v6.0.11": True
3111                                    }
3112                                },
3113                                {
3114                                    "value": "disable",
3115                                    "revisions": {
3116                                        "v6.0.0": True,
3117                                        "v7.0.0": True,
3118                                        "v6.0.5": True,
3119                                        "v6.4.4": True,
3120                                        "v6.4.0": True,
3121                                        "v6.4.1": True,
3122                                        "v6.2.0": True,
3123                                        "v6.2.3": True,
3124                                        "v6.2.5": True,
3125                                        "v6.2.7": True,
3126                                        "v6.0.11": True
3127                                    }
3128                                }
3129                            ],
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                        "severity": {
3145                            "type": "string",
3146                            "options": [
3147                                {
3148                                    "value": "high",
3149                                    "revisions": {
3150                                        "v6.0.0": True,
3151                                        "v7.0.0": True,
3152                                        "v6.0.5": True,
3153                                        "v6.4.4": True,
3154                                        "v6.4.0": True,
3155                                        "v6.4.1": True,
3156                                        "v6.2.0": True,
3157                                        "v6.2.3": True,
3158                                        "v6.2.5": True,
3159                                        "v6.2.7": True,
3160                                        "v6.0.11": True
3161                                    }
3162                                },
3163                                {
3164                                    "value": "medium",
3165                                    "revisions": {
3166                                        "v6.0.0": True,
3167                                        "v7.0.0": True,
3168                                        "v6.0.5": True,
3169                                        "v6.4.4": True,
3170                                        "v6.4.0": True,
3171                                        "v6.4.1": True,
3172                                        "v6.2.0": True,
3173                                        "v6.2.3": True,
3174                                        "v6.2.5": True,
3175                                        "v6.2.7": True,
3176                                        "v6.0.11": True
3177                                    }
3178                                },
3179                                {
3180                                    "value": "low",
3181                                    "revisions": {
3182                                        "v6.0.0": True,
3183                                        "v7.0.0": True,
3184                                        "v6.0.5": True,
3185                                        "v6.4.4": True,
3186                                        "v6.4.0": True,
3187                                        "v6.4.1": True,
3188                                        "v6.2.0": True,
3189                                        "v6.2.3": True,
3190                                        "v6.2.5": True,
3191                                        "v6.2.7": True,
3192                                        "v6.0.11": True
3193                                    }
3194                                }
3195                            ],
3196                            "revisions": {
3197                                "v6.0.0": True,
3198                                "v7.0.0": True,
3199                                "v6.0.5": True,
3200                                "v6.4.4": True,
3201                                "v6.4.0": True,
3202                                "v6.4.1": True,
3203                                "v6.2.0": True,
3204                                "v6.2.3": True,
3205                                "v6.2.5": True,
3206                                "v6.2.7": True,
3207                                "v6.0.11": True
3208                            }
3209                        }
3210                    },
3211                    "revisions": {
3212                        "v6.0.0": True,
3213                        "v7.0.0": True,
3214                        "v6.0.5": True,
3215                        "v6.4.4": True,
3216                        "v6.4.0": True,
3217                        "v6.4.1": True,
3218                        "v6.2.0": True,
3219                        "v6.2.3": True,
3220                        "v6.2.5": True,
3221                        "v6.2.7": True,
3222                        "v6.0.11": True
3223                    }
3224                },
3225                "max_url_param": {
3226                    "type": "dict",
3227                    "children": {
3228                        "status": {
3229                            "type": "string",
3230                            "options": [
3231                                {
3232                                    "value": "enable",
3233                                    "revisions": {
3234                                        "v6.0.0": True,
3235                                        "v7.0.0": True,
3236                                        "v6.0.5": True,
3237                                        "v6.4.4": True,
3238                                        "v6.4.0": True,
3239                                        "v6.4.1": True,
3240                                        "v6.2.0": True,
3241                                        "v6.2.3": True,
3242                                        "v6.2.5": True,
3243                                        "v6.2.7": True,
3244                                        "v6.0.11": True
3245                                    }
3246                                },
3247                                {
3248                                    "value": "disable",
3249                                    "revisions": {
3250                                        "v6.0.0": True,
3251                                        "v7.0.0": True,
3252                                        "v6.0.5": True,
3253                                        "v6.4.4": True,
3254                                        "v6.4.0": True,
3255                                        "v6.4.1": True,
3256                                        "v6.2.0": True,
3257                                        "v6.2.3": True,
3258                                        "v6.2.5": True,
3259                                        "v6.2.7": True,
3260                                        "v6.0.11": True
3261                                    }
3262                                }
3263                            ],
3264                            "revisions": {
3265                                "v6.0.0": True,
3266                                "v7.0.0": True,
3267                                "v6.0.5": True,
3268                                "v6.4.4": True,
3269                                "v6.4.0": True,
3270                                "v6.4.1": True,
3271                                "v6.2.0": True,
3272                                "v6.2.3": True,
3273                                "v6.2.5": True,
3274                                "v6.2.7": True,
3275                                "v6.0.11": True
3276                            }
3277                        },
3278                        "action": {
3279                            "type": "string",
3280                            "options": [
3281                                {
3282                                    "value": "allow",
3283                                    "revisions": {
3284                                        "v6.0.0": True,
3285                                        "v7.0.0": True,
3286                                        "v6.0.5": True,
3287                                        "v6.4.4": True,
3288                                        "v6.4.0": True,
3289                                        "v6.4.1": True,
3290                                        "v6.2.0": True,
3291                                        "v6.2.3": True,
3292                                        "v6.2.5": True,
3293                                        "v6.2.7": True,
3294                                        "v6.0.11": True
3295                                    }
3296                                },
3297                                {
3298                                    "value": "block",
3299                                    "revisions": {
3300                                        "v6.0.0": True,
3301                                        "v7.0.0": True,
3302                                        "v6.0.5": True,
3303                                        "v6.4.4": True,
3304                                        "v6.4.0": True,
3305                                        "v6.4.1": True,
3306                                        "v6.2.0": True,
3307                                        "v6.2.3": True,
3308                                        "v6.2.5": True,
3309                                        "v6.2.7": True,
3310                                        "v6.0.11": True
3311                                    }
3312                                }
3313                            ],
3314                            "revisions": {
3315                                "v6.0.0": True,
3316                                "v7.0.0": True,
3317                                "v6.0.5": True,
3318                                "v6.4.4": True,
3319                                "v6.4.0": True,
3320                                "v6.4.1": True,
3321                                "v6.2.0": True,
3322                                "v6.2.3": True,
3323                                "v6.2.5": True,
3324                                "v6.2.7": True,
3325                                "v6.0.11": True
3326                            }
3327                        },
3328                        "log": {
3329                            "type": "string",
3330                            "options": [
3331                                {
3332                                    "value": "enable",
3333                                    "revisions": {
3334                                        "v6.0.0": True,
3335                                        "v7.0.0": True,
3336                                        "v6.0.5": True,
3337                                        "v6.4.4": True,
3338                                        "v6.4.0": True,
3339                                        "v6.4.1": True,
3340                                        "v6.2.0": True,
3341                                        "v6.2.3": True,
3342                                        "v6.2.5": True,
3343                                        "v6.2.7": True,
3344                                        "v6.0.11": True
3345                                    }
3346                                },
3347                                {
3348                                    "value": "disable",
3349                                    "revisions": {
3350                                        "v6.0.0": True,
3351                                        "v7.0.0": True,
3352                                        "v6.0.5": True,
3353                                        "v6.4.4": True,
3354                                        "v6.4.0": True,
3355                                        "v6.4.1": True,
3356                                        "v6.2.0": True,
3357                                        "v6.2.3": True,
3358                                        "v6.2.5": True,
3359                                        "v6.2.7": True,
3360                                        "v6.0.11": True
3361                                    }
3362                                }
3363                            ],
3364                            "revisions": {
3365                                "v6.0.0": True,
3366                                "v7.0.0": True,
3367                                "v6.0.5": True,
3368                                "v6.4.4": True,
3369                                "v6.4.0": True,
3370                                "v6.4.1": True,
3371                                "v6.2.0": True,
3372                                "v6.2.3": True,
3373                                "v6.2.5": True,
3374                                "v6.2.7": True,
3375                                "v6.0.11": True
3376                            }
3377                        },
3378                        "severity": {
3379                            "type": "string",
3380                            "options": [
3381                                {
3382                                    "value": "high",
3383                                    "revisions": {
3384                                        "v6.0.0": True,
3385                                        "v7.0.0": True,
3386                                        "v6.0.5": True,
3387                                        "v6.4.4": True,
3388                                        "v6.4.0": True,
3389                                        "v6.4.1": True,
3390                                        "v6.2.0": True,
3391                                        "v6.2.3": True,
3392                                        "v6.2.5": True,
3393                                        "v6.2.7": True,
3394                                        "v6.0.11": True
3395                                    }
3396                                },
3397                                {
3398                                    "value": "medium",
3399                                    "revisions": {
3400                                        "v6.0.0": True,
3401                                        "v7.0.0": True,
3402                                        "v6.0.5": True,
3403                                        "v6.4.4": True,
3404                                        "v6.4.0": True,
3405                                        "v6.4.1": True,
3406                                        "v6.2.0": True,
3407                                        "v6.2.3": True,
3408                                        "v6.2.5": True,
3409                                        "v6.2.7": True,
3410                                        "v6.0.11": True
3411                                    }
3412                                },
3413                                {
3414                                    "value": "low",
3415                                    "revisions": {
3416                                        "v6.0.0": True,
3417                                        "v7.0.0": True,
3418                                        "v6.0.5": True,
3419                                        "v6.4.4": True,
3420                                        "v6.4.0": True,
3421                                        "v6.4.1": True,
3422                                        "v6.2.0": True,
3423                                        "v6.2.3": True,
3424                                        "v6.2.5": True,
3425                                        "v6.2.7": True,
3426                                        "v6.0.11": True
3427                                    }
3428                                }
3429                            ],
3430                            "revisions": {
3431                                "v6.0.0": True,
3432                                "v7.0.0": True,
3433                                "v6.0.5": True,
3434                                "v6.4.4": True,
3435                                "v6.4.0": True,
3436                                "v6.4.1": True,
3437                                "v6.2.0": True,
3438                                "v6.2.3": True,
3439                                "v6.2.5": True,
3440                                "v6.2.7": True,
3441                                "v6.0.11": True
3442                            }
3443                        },
3444                        "max_url_param": {
3445                            "type": "integer",
3446                            "revisions": {
3447                                "v6.0.0": True,
3448                                "v7.0.0": True,
3449                                "v6.0.5": True,
3450                                "v6.4.4": True,
3451                                "v6.4.0": True,
3452                                "v6.4.1": True,
3453                                "v6.2.0": True,
3454                                "v6.2.3": True,
3455                                "v6.2.5": True,
3456                                "v6.2.7": True,
3457                                "v6.0.11": True
3458                            }
3459                        }
3460                    },
3461                    "revisions": {
3462                        "v6.0.0": True,
3463                        "v7.0.0": True,
3464                        "v6.0.5": True,
3465                        "v6.4.4": True,
3466                        "v6.4.0": True,
3467                        "v6.4.1": True,
3468                        "v6.2.0": True,
3469                        "v6.2.3": True,
3470                        "v6.2.5": True,
3471                        "v6.2.7": True,
3472                        "v6.0.11": True
3473                    }
3474                },
3475                "hostname": {
3476                    "type": "dict",
3477                    "children": {
3478                        "status": {
3479                            "type": "string",
3480                            "options": [
3481                                {
3482                                    "value": "enable",
3483                                    "revisions": {
3484                                        "v6.0.0": True,
3485                                        "v7.0.0": True,
3486                                        "v6.0.5": True,
3487                                        "v6.4.4": True,
3488                                        "v6.4.0": True,
3489                                        "v6.4.1": True,
3490                                        "v6.2.0": True,
3491                                        "v6.2.3": True,
3492                                        "v6.2.5": True,
3493                                        "v6.2.7": True,
3494                                        "v6.0.11": True
3495                                    }
3496                                },
3497                                {
3498                                    "value": "disable",
3499                                    "revisions": {
3500                                        "v6.0.0": True,
3501                                        "v7.0.0": True,
3502                                        "v6.0.5": True,
3503                                        "v6.4.4": True,
3504                                        "v6.4.0": True,
3505                                        "v6.4.1": True,
3506                                        "v6.2.0": True,
3507                                        "v6.2.3": True,
3508                                        "v6.2.5": True,
3509                                        "v6.2.7": True,
3510                                        "v6.0.11": True
3511                                    }
3512                                }
3513                            ],
3514                            "revisions": {
3515                                "v6.0.0": True,
3516                                "v7.0.0": True,
3517                                "v6.0.5": True,
3518                                "v6.4.4": True,
3519                                "v6.4.0": True,
3520                                "v6.4.1": True,
3521                                "v6.2.0": True,
3522                                "v6.2.3": True,
3523                                "v6.2.5": True,
3524                                "v6.2.7": True,
3525                                "v6.0.11": True
3526                            }
3527                        },
3528                        "action": {
3529                            "type": "string",
3530                            "options": [
3531                                {
3532                                    "value": "allow",
3533                                    "revisions": {
3534                                        "v6.0.0": True,
3535                                        "v7.0.0": True,
3536                                        "v6.0.5": True,
3537                                        "v6.4.4": True,
3538                                        "v6.4.0": True,
3539                                        "v6.4.1": True,
3540                                        "v6.2.0": True,
3541                                        "v6.2.3": True,
3542                                        "v6.2.5": True,
3543                                        "v6.2.7": True,
3544                                        "v6.0.11": True
3545                                    }
3546                                },
3547                                {
3548                                    "value": "block",
3549                                    "revisions": {
3550                                        "v6.0.0": True,
3551                                        "v7.0.0": True,
3552                                        "v6.0.5": True,
3553                                        "v6.4.4": True,
3554                                        "v6.4.0": True,
3555                                        "v6.4.1": True,
3556                                        "v6.2.0": True,
3557                                        "v6.2.3": True,
3558                                        "v6.2.5": True,
3559                                        "v6.2.7": True,
3560                                        "v6.0.11": True
3561                                    }
3562                                }
3563                            ],
3564                            "revisions": {
3565                                "v6.0.0": True,
3566                                "v7.0.0": True,
3567                                "v6.0.5": True,
3568                                "v6.4.4": True,
3569                                "v6.4.0": True,
3570                                "v6.4.1": True,
3571                                "v6.2.0": True,
3572                                "v6.2.3": True,
3573                                "v6.2.5": True,
3574                                "v6.2.7": True,
3575                                "v6.0.11": True
3576                            }
3577                        },
3578                        "log": {
3579                            "type": "string",
3580                            "options": [
3581                                {
3582                                    "value": "enable",
3583                                    "revisions": {
3584                                        "v6.0.0": True,
3585                                        "v7.0.0": True,
3586                                        "v6.0.5": True,
3587                                        "v6.4.4": True,
3588                                        "v6.4.0": True,
3589                                        "v6.4.1": True,
3590                                        "v6.2.0": True,
3591                                        "v6.2.3": True,
3592                                        "v6.2.5": True,
3593                                        "v6.2.7": True,
3594                                        "v6.0.11": True
3595                                    }
3596                                },
3597                                {
3598                                    "value": "disable",
3599                                    "revisions": {
3600                                        "v6.0.0": True,
3601                                        "v7.0.0": True,
3602                                        "v6.0.5": True,
3603                                        "v6.4.4": True,
3604                                        "v6.4.0": True,
3605                                        "v6.4.1": True,
3606                                        "v6.2.0": True,
3607                                        "v6.2.3": True,
3608                                        "v6.2.5": True,
3609                                        "v6.2.7": True,
3610                                        "v6.0.11": True
3611                                    }
3612                                }
3613                            ],
3614                            "revisions": {
3615                                "v6.0.0": True,
3616                                "v7.0.0": True,
3617                                "v6.0.5": True,
3618                                "v6.4.4": True,
3619                                "v6.4.0": True,
3620                                "v6.4.1": True,
3621                                "v6.2.0": True,
3622                                "v6.2.3": True,
3623                                "v6.2.5": True,
3624                                "v6.2.7": True,
3625                                "v6.0.11": True
3626                            }
3627                        },
3628                        "severity": {
3629                            "type": "string",
3630                            "options": [
3631                                {
3632                                    "value": "high",
3633                                    "revisions": {
3634                                        "v6.0.0": True,
3635                                        "v7.0.0": True,
3636                                        "v6.0.5": True,
3637                                        "v6.4.4": True,
3638                                        "v6.4.0": True,
3639                                        "v6.4.1": True,
3640                                        "v6.2.0": True,
3641                                        "v6.2.3": True,
3642                                        "v6.2.5": True,
3643                                        "v6.2.7": True,
3644                                        "v6.0.11": True
3645                                    }
3646                                },
3647                                {
3648                                    "value": "medium",
3649                                    "revisions": {
3650                                        "v6.0.0": True,
3651                                        "v7.0.0": True,
3652                                        "v6.0.5": True,
3653                                        "v6.4.4": True,
3654                                        "v6.4.0": True,
3655                                        "v6.4.1": True,
3656                                        "v6.2.0": True,
3657                                        "v6.2.3": True,
3658                                        "v6.2.5": True,
3659                                        "v6.2.7": True,
3660                                        "v6.0.11": True
3661                                    }
3662                                },
3663                                {
3664                                    "value": "low",
3665                                    "revisions": {
3666                                        "v6.0.0": True,
3667                                        "v7.0.0": True,
3668                                        "v6.0.5": True,
3669                                        "v6.4.4": True,
3670                                        "v6.4.0": True,
3671                                        "v6.4.1": True,
3672                                        "v6.2.0": True,
3673                                        "v6.2.3": True,
3674                                        "v6.2.5": True,
3675                                        "v6.2.7": True,
3676                                        "v6.0.11": True
3677                                    }
3678                                }
3679                            ],
3680                            "revisions": {
3681                                "v6.0.0": True,
3682                                "v7.0.0": True,
3683                                "v6.0.5": True,
3684                                "v6.4.4": True,
3685                                "v6.4.0": True,
3686                                "v6.4.1": True,
3687                                "v6.2.0": True,
3688                                "v6.2.3": True,
3689                                "v6.2.5": True,
3690                                "v6.2.7": True,
3691                                "v6.0.11": True
3692                            }
3693                        }
3694                    },
3695                    "revisions": {
3696                        "v6.0.0": True,
3697                        "v7.0.0": True,
3698                        "v6.0.5": True,
3699                        "v6.4.4": True,
3700                        "v6.4.0": True,
3701                        "v6.4.1": True,
3702                        "v6.2.0": True,
3703                        "v6.2.3": True,
3704                        "v6.2.5": True,
3705                        "v6.2.7": True,
3706                        "v6.0.11": True
3707                    }
3708                },
3709                "url_param_length": {
3710                    "type": "dict",
3711                    "children": {
3712                        "status": {
3713                            "type": "string",
3714                            "options": [
3715                                {
3716                                    "value": "enable",
3717                                    "revisions": {
3718                                        "v6.0.0": True,
3719                                        "v7.0.0": True,
3720                                        "v6.0.5": True,
3721                                        "v6.4.4": True,
3722                                        "v6.4.0": True,
3723                                        "v6.4.1": True,
3724                                        "v6.2.0": True,
3725                                        "v6.2.3": True,
3726                                        "v6.2.5": True,
3727                                        "v6.2.7": True,
3728                                        "v6.0.11": True
3729                                    }
3730                                },
3731                                {
3732                                    "value": "disable",
3733                                    "revisions": {
3734                                        "v6.0.0": True,
3735                                        "v7.0.0": True,
3736                                        "v6.0.5": True,
3737                                        "v6.4.4": True,
3738                                        "v6.4.0": True,
3739                                        "v6.4.1": True,
3740                                        "v6.2.0": True,
3741                                        "v6.2.3": True,
3742                                        "v6.2.5": True,
3743                                        "v6.2.7": True,
3744                                        "v6.0.11": True
3745                                    }
3746                                }
3747                            ],
3748                            "revisions": {
3749                                "v6.0.0": True,
3750                                "v7.0.0": True,
3751                                "v6.0.5": True,
3752                                "v6.4.4": True,
3753                                "v6.4.0": True,
3754                                "v6.4.1": True,
3755                                "v6.2.0": True,
3756                                "v6.2.3": True,
3757                                "v6.2.5": True,
3758                                "v6.2.7": True,
3759                                "v6.0.11": True
3760                            }
3761                        },
3762                        "action": {
3763                            "type": "string",
3764                            "options": [
3765                                {
3766                                    "value": "allow",
3767                                    "revisions": {
3768                                        "v6.0.0": True,
3769                                        "v7.0.0": True,
3770                                        "v6.0.5": True,
3771                                        "v6.4.4": True,
3772                                        "v6.4.0": True,
3773                                        "v6.4.1": True,
3774                                        "v6.2.0": True,
3775                                        "v6.2.3": True,
3776                                        "v6.2.5": True,
3777                                        "v6.2.7": True,
3778                                        "v6.0.11": True
3779                                    }
3780                                },
3781                                {
3782                                    "value": "block",
3783                                    "revisions": {
3784                                        "v6.0.0": True,
3785                                        "v7.0.0": True,
3786                                        "v6.0.5": True,
3787                                        "v6.4.4": True,
3788                                        "v6.4.0": True,
3789                                        "v6.4.1": True,
3790                                        "v6.2.0": True,
3791                                        "v6.2.3": True,
3792                                        "v6.2.5": True,
3793                                        "v6.2.7": True,
3794                                        "v6.0.11": True
3795                                    }
3796                                }
3797                            ],
3798                            "revisions": {
3799                                "v6.0.0": True,
3800                                "v7.0.0": True,
3801                                "v6.0.5": True,
3802                                "v6.4.4": True,
3803                                "v6.4.0": True,
3804                                "v6.4.1": True,
3805                                "v6.2.0": True,
3806                                "v6.2.3": True,
3807                                "v6.2.5": True,
3808                                "v6.2.7": True,
3809                                "v6.0.11": True
3810                            }
3811                        },
3812                        "length": {
3813                            "type": "integer",
3814                            "revisions": {
3815                                "v6.0.0": True,
3816                                "v7.0.0": True,
3817                                "v6.0.5": True,
3818                                "v6.4.4": True,
3819                                "v6.4.0": True,
3820                                "v6.4.1": True,
3821                                "v6.2.0": True,
3822                                "v6.2.3": True,
3823                                "v6.2.5": True,
3824                                "v6.2.7": True,
3825                                "v6.0.11": True
3826                            }
3827                        },
3828                        "log": {
3829                            "type": "string",
3830                            "options": [
3831                                {
3832                                    "value": "enable",
3833                                    "revisions": {
3834                                        "v6.0.0": True,
3835                                        "v7.0.0": True,
3836                                        "v6.0.5": True,
3837                                        "v6.4.4": True,
3838                                        "v6.4.0": True,
3839                                        "v6.4.1": True,
3840                                        "v6.2.0": True,
3841                                        "v6.2.3": True,
3842                                        "v6.2.5": True,
3843                                        "v6.2.7": True,
3844                                        "v6.0.11": True
3845                                    }
3846                                },
3847                                {
3848                                    "value": "disable",
3849                                    "revisions": {
3850                                        "v6.0.0": True,
3851                                        "v7.0.0": True,
3852                                        "v6.0.5": True,
3853                                        "v6.4.4": True,
3854                                        "v6.4.0": True,
3855                                        "v6.4.1": True,
3856                                        "v6.2.0": True,
3857                                        "v6.2.3": True,
3858                                        "v6.2.5": True,
3859                                        "v6.2.7": True,
3860                                        "v6.0.11": True
3861                                    }
3862                                }
3863                            ],
3864                            "revisions": {
3865                                "v6.0.0": True,
3866                                "v7.0.0": True,
3867                                "v6.0.5": True,
3868                                "v6.4.4": True,
3869                                "v6.4.0": True,
3870                                "v6.4.1": True,
3871                                "v6.2.0": True,
3872                                "v6.2.3": True,
3873                                "v6.2.5": True,
3874                                "v6.2.7": True,
3875                                "v6.0.11": True
3876                            }
3877                        },
3878                        "severity": {
3879                            "type": "string",
3880                            "options": [
3881                                {
3882                                    "value": "high",
3883                                    "revisions": {
3884                                        "v6.0.0": True,
3885                                        "v7.0.0": True,
3886                                        "v6.0.5": True,
3887                                        "v6.4.4": True,
3888                                        "v6.4.0": True,
3889                                        "v6.4.1": True,
3890                                        "v6.2.0": True,
3891                                        "v6.2.3": True,
3892                                        "v6.2.5": True,
3893                                        "v6.2.7": True,
3894                                        "v6.0.11": True
3895                                    }
3896                                },
3897                                {
3898                                    "value": "medium",
3899                                    "revisions": {
3900                                        "v6.0.0": True,
3901                                        "v7.0.0": True,
3902                                        "v6.0.5": True,
3903                                        "v6.4.4": True,
3904                                        "v6.4.0": True,
3905                                        "v6.4.1": True,
3906                                        "v6.2.0": True,
3907                                        "v6.2.3": True,
3908                                        "v6.2.5": True,
3909                                        "v6.2.7": True,
3910                                        "v6.0.11": True
3911                                    }
3912                                },
3913                                {
3914                                    "value": "low",
3915                                    "revisions": {
3916                                        "v6.0.0": True,
3917                                        "v7.0.0": True,
3918                                        "v6.0.5": True,
3919                                        "v6.4.4": True,
3920                                        "v6.4.0": True,
3921                                        "v6.4.1": True,
3922                                        "v6.2.0": True,
3923                                        "v6.2.3": True,
3924                                        "v6.2.5": True,
3925                                        "v6.2.7": True,
3926                                        "v6.0.11": True
3927                                    }
3928                                }
3929                            ],
3930                            "revisions": {
3931                                "v6.0.0": True,
3932                                "v7.0.0": True,
3933                                "v6.0.5": True,
3934                                "v6.4.4": True,
3935                                "v6.4.0": True,
3936                                "v6.4.1": True,
3937                                "v6.2.0": True,
3938                                "v6.2.3": True,
3939                                "v6.2.5": True,
3940                                "v6.2.7": True,
3941                                "v6.0.11": True
3942                            }
3943                        }
3944                    },
3945                    "revisions": {
3946                        "v6.0.0": True,
3947                        "v7.0.0": True,
3948                        "v6.0.5": True,
3949                        "v6.4.4": True,
3950                        "v6.4.0": True,
3951                        "v6.4.1": True,
3952                        "v6.2.0": True,
3953                        "v6.2.3": True,
3954                        "v6.2.5": True,
3955                        "v6.2.7": True,
3956                        "v6.0.11": True
3957                    }
3958                },
3959                "malformed": {
3960                    "type": "dict",
3961                    "children": {
3962                        "status": {
3963                            "type": "string",
3964                            "options": [
3965                                {
3966                                    "value": "enable",
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                                {
3982                                    "value": "disable",
3983                                    "revisions": {
3984                                        "v6.0.0": True,
3985                                        "v7.0.0": True,
3986                                        "v6.0.5": True,
3987                                        "v6.4.4": True,
3988                                        "v6.4.0": True,
3989                                        "v6.4.1": True,
3990                                        "v6.2.0": True,
3991                                        "v6.2.3": True,
3992                                        "v6.2.5": True,
3993                                        "v6.2.7": True,
3994                                        "v6.0.11": True
3995                                    }
3996                                }
3997                            ],
3998                            "revisions": {
3999                                "v6.0.0": True,
4000                                "v7.0.0": True,
4001                                "v6.0.5": True,
4002                                "v6.4.4": True,
4003                                "v6.4.0": True,
4004                                "v6.4.1": True,
4005                                "v6.2.0": True,
4006                                "v6.2.3": True,
4007                                "v6.2.5": True,
4008                                "v6.2.7": True,
4009                                "v6.0.11": True
4010                            }
4011                        },
4012                        "action": {
4013                            "type": "string",
4014                            "options": [
4015                                {
4016                                    "value": "allow",
4017                                    "revisions": {
4018                                        "v6.0.0": True,
4019                                        "v7.0.0": True,
4020                                        "v6.0.5": True,
4021                                        "v6.4.4": True,
4022                                        "v6.4.0": True,
4023                                        "v6.4.1": True,
4024                                        "v6.2.0": True,
4025                                        "v6.2.3": True,
4026                                        "v6.2.5": True,
4027                                        "v6.2.7": True,
4028                                        "v6.0.11": True
4029                                    }
4030                                },
4031                                {
4032                                    "value": "block",
4033                                    "revisions": {
4034                                        "v6.0.0": True,
4035                                        "v7.0.0": True,
4036                                        "v6.0.5": True,
4037                                        "v6.4.4": True,
4038                                        "v6.4.0": True,
4039                                        "v6.4.1": True,
4040                                        "v6.2.0": True,
4041                                        "v6.2.3": True,
4042                                        "v6.2.5": True,
4043                                        "v6.2.7": True,
4044                                        "v6.0.11": True
4045                                    }
4046                                }
4047                            ],
4048                            "revisions": {
4049                                "v6.0.0": True,
4050                                "v7.0.0": True,
4051                                "v6.0.5": True,
4052                                "v6.4.4": True,
4053                                "v6.4.0": True,
4054                                "v6.4.1": True,
4055                                "v6.2.0": True,
4056                                "v6.2.3": True,
4057                                "v6.2.5": True,
4058                                "v6.2.7": True,
4059                                "v6.0.11": True
4060                            }
4061                        },
4062                        "log": {
4063                            "type": "string",
4064                            "options": [
4065                                {
4066                                    "value": "enable",
4067                                    "revisions": {
4068                                        "v6.0.0": True,
4069                                        "v7.0.0": True,
4070                                        "v6.0.5": True,
4071                                        "v6.4.4": True,
4072                                        "v6.4.0": True,
4073                                        "v6.4.1": True,
4074                                        "v6.2.0": True,
4075                                        "v6.2.3": True,
4076                                        "v6.2.5": True,
4077                                        "v6.2.7": True,
4078                                        "v6.0.11": True
4079                                    }
4080                                },
4081                                {
4082                                    "value": "disable",
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                            ],
4098                            "revisions": {
4099                                "v6.0.0": True,
4100                                "v7.0.0": True,
4101                                "v6.0.5": True,
4102                                "v6.4.4": True,
4103                                "v6.4.0": True,
4104                                "v6.4.1": True,
4105                                "v6.2.0": True,
4106                                "v6.2.3": True,
4107                                "v6.2.5": True,
4108                                "v6.2.7": True,
4109                                "v6.0.11": True
4110                            }
4111                        },
4112                        "severity": {
4113                            "type": "string",
4114                            "options": [
4115                                {
4116                                    "value": "high",
4117                                    "revisions": {
4118                                        "v6.0.0": True,
4119                                        "v7.0.0": True,
4120                                        "v6.0.5": True,
4121                                        "v6.4.4": True,
4122                                        "v6.4.0": True,
4123                                        "v6.4.1": True,
4124                                        "v6.2.0": True,
4125                                        "v6.2.3": True,
4126                                        "v6.2.5": True,
4127                                        "v6.2.7": True,
4128                                        "v6.0.11": True
4129                                    }
4130                                },
4131                                {
4132                                    "value": "medium",
4133                                    "revisions": {
4134                                        "v6.0.0": True,
4135                                        "v7.0.0": True,
4136                                        "v6.0.5": True,
4137                                        "v6.4.4": True,
4138                                        "v6.4.0": True,
4139                                        "v6.4.1": True,
4140                                        "v6.2.0": True,
4141                                        "v6.2.3": True,
4142                                        "v6.2.5": True,
4143                                        "v6.2.7": True,
4144                                        "v6.0.11": True
4145                                    }
4146                                },
4147                                {
4148                                    "value": "low",
4149                                    "revisions": {
4150                                        "v6.0.0": True,
4151                                        "v7.0.0": True,
4152                                        "v6.0.5": True,
4153                                        "v6.4.4": True,
4154                                        "v6.4.0": True,
4155                                        "v6.4.1": True,
4156                                        "v6.2.0": True,
4157                                        "v6.2.3": True,
4158                                        "v6.2.5": True,
4159                                        "v6.2.7": True,
4160                                        "v6.0.11": True
4161                                    }
4162                                }
4163                            ],
4164                            "revisions": {
4165                                "v6.0.0": True,
4166                                "v7.0.0": True,
4167                                "v6.0.5": True,
4168                                "v6.4.4": True,
4169                                "v6.4.0": True,
4170                                "v6.4.1": True,
4171                                "v6.2.0": True,
4172                                "v6.2.3": True,
4173                                "v6.2.5": True,
4174                                "v6.2.7": True,
4175                                "v6.0.11": True
4176                            }
4177                        }
4178                    },
4179                    "revisions": {
4180                        "v6.0.0": True,
4181                        "v7.0.0": True,
4182                        "v6.0.5": True,
4183                        "v6.4.4": True,
4184                        "v6.4.0": True,
4185                        "v6.4.1": True,
4186                        "v6.2.0": True,
4187                        "v6.2.3": True,
4188                        "v6.2.5": True,
4189                        "v6.2.7": True,
4190                        "v6.0.11": True
4191                    }
4192                },
4193                "max_range_segment": {
4194                    "type": "dict",
4195                    "children": {
4196                        "status": {
4197                            "type": "string",
4198                            "options": [
4199                                {
4200                                    "value": "enable",
4201                                    "revisions": {
4202                                        "v6.0.0": True,
4203                                        "v7.0.0": True,
4204                                        "v6.0.5": True,
4205                                        "v6.4.4": True,
4206                                        "v6.4.0": True,
4207                                        "v6.4.1": True,
4208                                        "v6.2.0": True,
4209                                        "v6.2.3": True,
4210                                        "v6.2.5": True,
4211                                        "v6.2.7": True,
4212                                        "v6.0.11": True
4213                                    }
4214                                },
4215                                {
4216                                    "value": "disable",
4217                                    "revisions": {
4218                                        "v6.0.0": True,
4219                                        "v7.0.0": True,
4220                                        "v6.0.5": True,
4221                                        "v6.4.4": True,
4222                                        "v6.4.0": True,
4223                                        "v6.4.1": True,
4224                                        "v6.2.0": True,
4225                                        "v6.2.3": True,
4226                                        "v6.2.5": True,
4227                                        "v6.2.7": True,
4228                                        "v6.0.11": True
4229                                    }
4230                                }
4231                            ],
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                        "action": {
4247                            "type": "string",
4248                            "options": [
4249                                {
4250                                    "value": "allow",
4251                                    "revisions": {
4252                                        "v6.0.0": True,
4253                                        "v7.0.0": True,
4254                                        "v6.0.5": True,
4255                                        "v6.4.4": True,
4256                                        "v6.4.0": True,
4257                                        "v6.4.1": True,
4258                                        "v6.2.0": True,
4259                                        "v6.2.3": True,
4260                                        "v6.2.5": True,
4261                                        "v6.2.7": True,
4262                                        "v6.0.11": True
4263                                    }
4264                                },
4265                                {
4266                                    "value": "block",
4267                                    "revisions": {
4268                                        "v6.0.0": True,
4269                                        "v7.0.0": True,
4270                                        "v6.0.5": True,
4271                                        "v6.4.4": True,
4272                                        "v6.4.0": True,
4273                                        "v6.4.1": True,
4274                                        "v6.2.0": True,
4275                                        "v6.2.3": True,
4276                                        "v6.2.5": True,
4277                                        "v6.2.7": True,
4278                                        "v6.0.11": True
4279                                    }
4280                                }
4281                            ],
4282                            "revisions": {
4283                                "v6.0.0": True,
4284                                "v7.0.0": True,
4285                                "v6.0.5": True,
4286                                "v6.4.4": True,
4287                                "v6.4.0": True,
4288                                "v6.4.1": True,
4289                                "v6.2.0": True,
4290                                "v6.2.3": True,
4291                                "v6.2.5": True,
4292                                "v6.2.7": True,
4293                                "v6.0.11": True
4294                            }
4295                        },
4296                        "max_range_segment": {
4297                            "type": "integer",
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                        "log": {
4313                            "type": "string",
4314                            "options": [
4315                                {
4316                                    "value": "enable",
4317                                    "revisions": {
4318                                        "v6.0.0": True,
4319                                        "v7.0.0": True,
4320                                        "v6.0.5": True,
4321                                        "v6.4.4": True,
4322                                        "v6.4.0": True,
4323                                        "v6.4.1": True,
4324                                        "v6.2.0": True,
4325                                        "v6.2.3": True,
4326                                        "v6.2.5": True,
4327                                        "v6.2.7": True,
4328                                        "v6.0.11": True
4329                                    }
4330                                },
4331                                {
4332                                    "value": "disable",
4333                                    "revisions": {
4334                                        "v6.0.0": True,
4335                                        "v7.0.0": True,
4336                                        "v6.0.5": True,
4337                                        "v6.4.4": True,
4338                                        "v6.4.0": True,
4339                                        "v6.4.1": True,
4340                                        "v6.2.0": True,
4341                                        "v6.2.3": True,
4342                                        "v6.2.5": True,
4343                                        "v6.2.7": True,
4344                                        "v6.0.11": True
4345                                    }
4346                                }
4347                            ],
4348                            "revisions": {
4349                                "v6.0.0": True,
4350                                "v7.0.0": True,
4351                                "v6.0.5": True,
4352                                "v6.4.4": True,
4353                                "v6.4.0": True,
4354                                "v6.4.1": True,
4355                                "v6.2.0": True,
4356                                "v6.2.3": True,
4357                                "v6.2.5": True,
4358                                "v6.2.7": True,
4359                                "v6.0.11": True
4360                            }
4361                        },
4362                        "severity": {
4363                            "type": "string",
4364                            "options": [
4365                                {
4366                                    "value": "high",
4367                                    "revisions": {
4368                                        "v6.0.0": True,
4369                                        "v7.0.0": True,
4370                                        "v6.0.5": True,
4371                                        "v6.4.4": True,
4372                                        "v6.4.0": True,
4373                                        "v6.4.1": True,
4374                                        "v6.2.0": True,
4375                                        "v6.2.3": True,
4376                                        "v6.2.5": True,
4377                                        "v6.2.7": True,
4378                                        "v6.0.11": True
4379                                    }
4380                                },
4381                                {
4382                                    "value": "medium",
4383                                    "revisions": {
4384                                        "v6.0.0": True,
4385                                        "v7.0.0": True,
4386                                        "v6.0.5": True,
4387                                        "v6.4.4": True,
4388                                        "v6.4.0": True,
4389                                        "v6.4.1": True,
4390                                        "v6.2.0": True,
4391                                        "v6.2.3": True,
4392                                        "v6.2.5": True,
4393                                        "v6.2.7": True,
4394                                        "v6.0.11": True
4395                                    }
4396                                },
4397                                {
4398                                    "value": "low",
4399                                    "revisions": {
4400                                        "v6.0.0": True,
4401                                        "v7.0.0": True,
4402                                        "v6.0.5": True,
4403                                        "v6.4.4": True,
4404                                        "v6.4.0": True,
4405                                        "v6.4.1": True,
4406                                        "v6.2.0": True,
4407                                        "v6.2.3": True,
4408                                        "v6.2.5": True,
4409                                        "v6.2.7": True,
4410                                        "v6.0.11": True
4411                                    }
4412                                }
4413                            ],
4414                            "revisions": {
4415                                "v6.0.0": True,
4416                                "v7.0.0": True,
4417                                "v6.0.5": True,
4418                                "v6.4.4": True,
4419                                "v6.4.0": True,
4420                                "v6.4.1": True,
4421                                "v6.2.0": True,
4422                                "v6.2.3": True,
4423                                "v6.2.5": True,
4424                                "v6.2.7": True,
4425                                "v6.0.11": True
4426                            }
4427                        }
4428                    },
4429                    "revisions": {
4430                        "v6.0.0": True,
4431                        "v7.0.0": True,
4432                        "v6.0.5": True,
4433                        "v6.4.4": True,
4434                        "v6.4.0": True,
4435                        "v6.4.1": True,
4436                        "v6.2.0": True,
4437                        "v6.2.3": True,
4438                        "v6.2.5": True,
4439                        "v6.2.7": True,
4440                        "v6.0.11": True
4441                    }
4442                },
4443                "version": {
4444                    "type": "dict",
4445                    "children": {
4446                        "status": {
4447                            "type": "string",
4448                            "options": [
4449                                {
4450                                    "value": "enable",
4451                                    "revisions": {
4452                                        "v6.0.0": True,
4453                                        "v7.0.0": True,
4454                                        "v6.0.5": True,
4455                                        "v6.4.4": True,
4456                                        "v6.4.0": True,
4457                                        "v6.4.1": True,
4458                                        "v6.2.0": True,
4459                                        "v6.2.3": True,
4460                                        "v6.2.5": True,
4461                                        "v6.2.7": True,
4462                                        "v6.0.11": True
4463                                    }
4464                                },
4465                                {
4466                                    "value": "disable",
4467                                    "revisions": {
4468                                        "v6.0.0": True,
4469                                        "v7.0.0": True,
4470                                        "v6.0.5": True,
4471                                        "v6.4.4": True,
4472                                        "v6.4.0": True,
4473                                        "v6.4.1": True,
4474                                        "v6.2.0": True,
4475                                        "v6.2.3": True,
4476                                        "v6.2.5": True,
4477                                        "v6.2.7": True,
4478                                        "v6.0.11": True
4479                                    }
4480                                }
4481                            ],
4482                            "revisions": {
4483                                "v6.0.0": True,
4484                                "v7.0.0": True,
4485                                "v6.0.5": True,
4486                                "v6.4.4": True,
4487                                "v6.4.0": True,
4488                                "v6.4.1": True,
4489                                "v6.2.0": True,
4490                                "v6.2.3": True,
4491                                "v6.2.5": True,
4492                                "v6.2.7": True,
4493                                "v6.0.11": True
4494                            }
4495                        },
4496                        "action": {
4497                            "type": "string",
4498                            "options": [
4499                                {
4500                                    "value": "allow",
4501                                    "revisions": {
4502                                        "v6.0.0": True,
4503                                        "v7.0.0": True,
4504                                        "v6.0.5": True,
4505                                        "v6.4.4": True,
4506                                        "v6.4.0": True,
4507                                        "v6.4.1": True,
4508                                        "v6.2.0": True,
4509                                        "v6.2.3": True,
4510                                        "v6.2.5": True,
4511                                        "v6.2.7": True,
4512                                        "v6.0.11": True
4513                                    }
4514                                },
4515                                {
4516                                    "value": "block",
4517                                    "revisions": {
4518                                        "v6.0.0": True,
4519                                        "v7.0.0": True,
4520                                        "v6.0.5": True,
4521                                        "v6.4.4": True,
4522                                        "v6.4.0": True,
4523                                        "v6.4.1": True,
4524                                        "v6.2.0": True,
4525                                        "v6.2.3": True,
4526                                        "v6.2.5": True,
4527                                        "v6.2.7": True,
4528                                        "v6.0.11": True
4529                                    }
4530                                }
4531                            ],
4532                            "revisions": {
4533                                "v6.0.0": True,
4534                                "v7.0.0": True,
4535                                "v6.0.5": True,
4536                                "v6.4.4": True,
4537                                "v6.4.0": True,
4538                                "v6.4.1": True,
4539                                "v6.2.0": True,
4540                                "v6.2.3": True,
4541                                "v6.2.5": True,
4542                                "v6.2.7": True,
4543                                "v6.0.11": True
4544                            }
4545                        },
4546                        "log": {
4547                            "type": "string",
4548                            "options": [
4549                                {
4550                                    "value": "enable",
4551                                    "revisions": {
4552                                        "v6.0.0": True,
4553                                        "v7.0.0": True,
4554                                        "v6.0.5": True,
4555                                        "v6.4.4": True,
4556                                        "v6.4.0": True,
4557                                        "v6.4.1": True,
4558                                        "v6.2.0": True,
4559                                        "v6.2.3": True,
4560                                        "v6.2.5": True,
4561                                        "v6.2.7": True,
4562                                        "v6.0.11": True
4563                                    }
4564                                },
4565                                {
4566                                    "value": "disable",
4567                                    "revisions": {
4568                                        "v6.0.0": True,
4569                                        "v7.0.0": True,
4570                                        "v6.0.5": True,
4571                                        "v6.4.4": True,
4572                                        "v6.4.0": True,
4573                                        "v6.4.1": True,
4574                                        "v6.2.0": True,
4575                                        "v6.2.3": True,
4576                                        "v6.2.5": True,
4577                                        "v6.2.7": True,
4578                                        "v6.0.11": True
4579                                    }
4580                                }
4581                            ],
4582                            "revisions": {
4583                                "v6.0.0": True,
4584                                "v7.0.0": True,
4585                                "v6.0.5": True,
4586                                "v6.4.4": True,
4587                                "v6.4.0": True,
4588                                "v6.4.1": True,
4589                                "v6.2.0": True,
4590                                "v6.2.3": True,
4591                                "v6.2.5": True,
4592                                "v6.2.7": True,
4593                                "v6.0.11": True
4594                            }
4595                        },
4596                        "severity": {
4597                            "type": "string",
4598                            "options": [
4599                                {
4600                                    "value": "high",
4601                                    "revisions": {
4602                                        "v6.0.0": True,
4603                                        "v7.0.0": True,
4604                                        "v6.0.5": True,
4605                                        "v6.4.4": True,
4606                                        "v6.4.0": True,
4607                                        "v6.4.1": True,
4608                                        "v6.2.0": True,
4609                                        "v6.2.3": True,
4610                                        "v6.2.5": True,
4611                                        "v6.2.7": True,
4612                                        "v6.0.11": True
4613                                    }
4614                                },
4615                                {
4616                                    "value": "medium",
4617                                    "revisions": {
4618                                        "v6.0.0": True,
4619                                        "v7.0.0": True,
4620                                        "v6.0.5": True,
4621                                        "v6.4.4": True,
4622                                        "v6.4.0": True,
4623                                        "v6.4.1": True,
4624                                        "v6.2.0": True,
4625                                        "v6.2.3": True,
4626                                        "v6.2.5": True,
4627                                        "v6.2.7": True,
4628                                        "v6.0.11": True
4629                                    }
4630                                },
4631                                {
4632                                    "value": "low",
4633                                    "revisions": {
4634                                        "v6.0.0": True,
4635                                        "v7.0.0": True,
4636                                        "v6.0.5": True,
4637                                        "v6.4.4": True,
4638                                        "v6.4.0": True,
4639                                        "v6.4.1": True,
4640                                        "v6.2.0": True,
4641                                        "v6.2.3": True,
4642                                        "v6.2.5": True,
4643                                        "v6.2.7": True,
4644                                        "v6.0.11": True
4645                                    }
4646                                }
4647                            ],
4648                            "revisions": {
4649                                "v6.0.0": True,
4650                                "v7.0.0": True,
4651                                "v6.0.5": True,
4652                                "v6.4.4": True,
4653                                "v6.4.0": True,
4654                                "v6.4.1": True,
4655                                "v6.2.0": True,
4656                                "v6.2.3": True,
4657                                "v6.2.5": True,
4658                                "v6.2.7": True,
4659                                "v6.0.11": True
4660                            }
4661                        }
4662                    },
4663                    "revisions": {
4664                        "v6.0.0": True,
4665                        "v7.0.0": True,
4666                        "v6.0.5": True,
4667                        "v6.4.4": True,
4668                        "v6.4.0": True,
4669                        "v6.4.1": True,
4670                        "v6.2.0": True,
4671                        "v6.2.3": True,
4672                        "v6.2.5": True,
4673                        "v6.2.7": True,
4674                        "v6.0.11": True
4675                    }
4676                },
4677                "max_header_line": {
4678                    "type": "dict",
4679                    "children": {
4680                        "status": {
4681                            "type": "string",
4682                            "options": [
4683                                {
4684                                    "value": "enable",
4685                                    "revisions": {
4686                                        "v6.0.0": True,
4687                                        "v7.0.0": True,
4688                                        "v6.0.5": True,
4689                                        "v6.4.4": True,
4690                                        "v6.4.0": True,
4691                                        "v6.4.1": True,
4692                                        "v6.2.0": True,
4693                                        "v6.2.3": True,
4694                                        "v6.2.5": True,
4695                                        "v6.2.7": True,
4696                                        "v6.0.11": True
4697                                    }
4698                                },
4699                                {
4700                                    "value": "disable",
4701                                    "revisions": {
4702                                        "v6.0.0": True,
4703                                        "v7.0.0": True,
4704                                        "v6.0.5": True,
4705                                        "v6.4.4": True,
4706                                        "v6.4.0": True,
4707                                        "v6.4.1": True,
4708                                        "v6.2.0": True,
4709                                        "v6.2.3": True,
4710                                        "v6.2.5": True,
4711                                        "v6.2.7": True,
4712                                        "v6.0.11": True
4713                                    }
4714                                }
4715                            ],
4716                            "revisions": {
4717                                "v6.0.0": True,
4718                                "v7.0.0": True,
4719                                "v6.0.5": True,
4720                                "v6.4.4": True,
4721                                "v6.4.0": True,
4722                                "v6.4.1": True,
4723                                "v6.2.0": True,
4724                                "v6.2.3": True,
4725                                "v6.2.5": True,
4726                                "v6.2.7": True,
4727                                "v6.0.11": True
4728                            }
4729                        },
4730                        "action": {
4731                            "type": "string",
4732                            "options": [
4733                                {
4734                                    "value": "allow",
4735                                    "revisions": {
4736                                        "v6.0.0": True,
4737                                        "v7.0.0": True,
4738                                        "v6.0.5": True,
4739                                        "v6.4.4": True,
4740                                        "v6.4.0": True,
4741                                        "v6.4.1": True,
4742                                        "v6.2.0": True,
4743                                        "v6.2.3": True,
4744                                        "v6.2.5": True,
4745                                        "v6.2.7": True,
4746                                        "v6.0.11": True
4747                                    }
4748                                },
4749                                {
4750                                    "value": "block",
4751                                    "revisions": {
4752                                        "v6.0.0": True,
4753                                        "v7.0.0": True,
4754                                        "v6.0.5": True,
4755                                        "v6.4.4": True,
4756                                        "v6.4.0": True,
4757                                        "v6.4.1": True,
4758                                        "v6.2.0": True,
4759                                        "v6.2.3": True,
4760                                        "v6.2.5": True,
4761                                        "v6.2.7": True,
4762                                        "v6.0.11": True
4763                                    }
4764                                }
4765                            ],
4766                            "revisions": {
4767                                "v6.0.0": True,
4768                                "v7.0.0": True,
4769                                "v6.0.5": True,
4770                                "v6.4.4": True,
4771                                "v6.4.0": True,
4772                                "v6.4.1": True,
4773                                "v6.2.0": True,
4774                                "v6.2.3": True,
4775                                "v6.2.5": True,
4776                                "v6.2.7": True,
4777                                "v6.0.11": True
4778                            }
4779                        },
4780                        "max_header_line": {
4781                            "type": "integer",
4782                            "revisions": {
4783                                "v6.0.0": True,
4784                                "v7.0.0": True,
4785                                "v6.0.5": True,
4786                                "v6.4.4": True,
4787                                "v6.4.0": True,
4788                                "v6.4.1": True,
4789                                "v6.2.0": True,
4790                                "v6.2.3": True,
4791                                "v6.2.5": True,
4792                                "v6.2.7": True,
4793                                "v6.0.11": True
4794                            }
4795                        },
4796                        "log": {
4797                            "type": "string",
4798                            "options": [
4799                                {
4800                                    "value": "enable",
4801                                    "revisions": {
4802                                        "v6.0.0": True,
4803                                        "v7.0.0": True,
4804                                        "v6.0.5": True,
4805                                        "v6.4.4": True,
4806                                        "v6.4.0": True,
4807                                        "v6.4.1": True,
4808                                        "v6.2.0": True,
4809                                        "v6.2.3": True,
4810                                        "v6.2.5": True,
4811                                        "v6.2.7": True,
4812                                        "v6.0.11": True
4813                                    }
4814                                },
4815                                {
4816                                    "value": "disable",
4817                                    "revisions": {
4818                                        "v6.0.0": True,
4819                                        "v7.0.0": True,
4820                                        "v6.0.5": True,
4821                                        "v6.4.4": True,
4822                                        "v6.4.0": True,
4823                                        "v6.4.1": True,
4824                                        "v6.2.0": True,
4825                                        "v6.2.3": True,
4826                                        "v6.2.5": True,
4827                                        "v6.2.7": True,
4828                                        "v6.0.11": True
4829                                    }
4830                                }
4831                            ],
4832                            "revisions": {
4833                                "v6.0.0": True,
4834                                "v7.0.0": True,
4835                                "v6.0.5": True,
4836                                "v6.4.4": True,
4837                                "v6.4.0": True,
4838                                "v6.4.1": True,
4839                                "v6.2.0": True,
4840                                "v6.2.3": True,
4841                                "v6.2.5": True,
4842                                "v6.2.7": True,
4843                                "v6.0.11": True
4844                            }
4845                        },
4846                        "severity": {
4847                            "type": "string",
4848                            "options": [
4849                                {
4850                                    "value": "high",
4851                                    "revisions": {
4852                                        "v6.0.0": True,
4853                                        "v7.0.0": True,
4854                                        "v6.0.5": True,
4855                                        "v6.4.4": True,
4856                                        "v6.4.0": True,
4857                                        "v6.4.1": True,
4858                                        "v6.2.0": True,
4859                                        "v6.2.3": True,
4860                                        "v6.2.5": True,
4861                                        "v6.2.7": True,
4862                                        "v6.0.11": True
4863                                    }
4864                                },
4865                                {
4866                                    "value": "medium",
4867                                    "revisions": {
4868                                        "v6.0.0": True,
4869                                        "v7.0.0": True,
4870                                        "v6.0.5": True,
4871                                        "v6.4.4": True,
4872                                        "v6.4.0": True,
4873                                        "v6.4.1": True,
4874                                        "v6.2.0": True,
4875                                        "v6.2.3": True,
4876                                        "v6.2.5": True,
4877                                        "v6.2.7": True,
4878                                        "v6.0.11": True
4879                                    }
4880                                },
4881                                {
4882                                    "value": "low",
4883                                    "revisions": {
4884                                        "v6.0.0": True,
4885                                        "v7.0.0": True,
4886                                        "v6.0.5": True,
4887                                        "v6.4.4": True,
4888                                        "v6.4.0": True,
4889                                        "v6.4.1": True,
4890                                        "v6.2.0": True,
4891                                        "v6.2.3": True,
4892                                        "v6.2.5": True,
4893                                        "v6.2.7": True,
4894                                        "v6.0.11": True
4895                                    }
4896                                }
4897                            ],
4898                            "revisions": {
4899                                "v6.0.0": True,
4900                                "v7.0.0": True,
4901                                "v6.0.5": True,
4902                                "v6.4.4": True,
4903                                "v6.4.0": True,
4904                                "v6.4.1": True,
4905                                "v6.2.0": True,
4906                                "v6.2.3": True,
4907                                "v6.2.5": True,
4908                                "v6.2.7": True,
4909                                "v6.0.11": True
4910                            }
4911                        }
4912                    },
4913                    "revisions": {
4914                        "v6.0.0": True,
4915                        "v7.0.0": True,
4916                        "v6.0.5": True,
4917                        "v6.4.4": True,
4918                        "v6.4.0": True,
4919                        "v6.4.1": True,
4920                        "v6.2.0": True,
4921                        "v6.2.3": True,
4922                        "v6.2.5": True,
4923                        "v6.2.7": True,
4924                        "v6.0.11": True
4925                    }
4926                },
4927                "method": {
4928                    "type": "dict",
4929                    "children": {
4930                        "status": {
4931                            "type": "string",
4932                            "options": [
4933                                {
4934                                    "value": "enable",
4935                                    "revisions": {
4936                                        "v6.0.0": True,
4937                                        "v7.0.0": True,
4938                                        "v6.0.5": True,
4939                                        "v6.4.4": True,
4940                                        "v6.4.0": True,
4941                                        "v6.4.1": True,
4942                                        "v6.2.0": True,
4943                                        "v6.2.3": True,
4944                                        "v6.2.5": True,
4945                                        "v6.2.7": True,
4946                                        "v6.0.11": True
4947                                    }
4948                                },
4949                                {
4950                                    "value": "disable",
4951                                    "revisions": {
4952                                        "v6.0.0": True,
4953                                        "v7.0.0": True,
4954                                        "v6.0.5": True,
4955                                        "v6.4.4": True,
4956                                        "v6.4.0": True,
4957                                        "v6.4.1": True,
4958                                        "v6.2.0": True,
4959                                        "v6.2.3": True,
4960                                        "v6.2.5": True,
4961                                        "v6.2.7": True,
4962                                        "v6.0.11": True
4963                                    }
4964                                }
4965                            ],
4966                            "revisions": {
4967                                "v6.0.0": True,
4968                                "v7.0.0": True,
4969                                "v6.0.5": True,
4970                                "v6.4.4": True,
4971                                "v6.4.0": True,
4972                                "v6.4.1": True,
4973                                "v6.2.0": True,
4974                                "v6.2.3": True,
4975                                "v6.2.5": True,
4976                                "v6.2.7": True,
4977                                "v6.0.11": True
4978                            }
4979                        },
4980                        "action": {
4981                            "type": "string",
4982                            "options": [
4983                                {
4984                                    "value": "allow",
4985                                    "revisions": {
4986                                        "v6.0.0": True,
4987                                        "v7.0.0": True,
4988                                        "v6.0.5": True,
4989                                        "v6.4.4": True,
4990                                        "v6.4.0": True,
4991                                        "v6.4.1": True,
4992                                        "v6.2.0": True,
4993                                        "v6.2.3": True,
4994                                        "v6.2.5": True,
4995                                        "v6.2.7": True,
4996                                        "v6.0.11": True
4997                                    }
4998                                },
4999                                {
5000                                    "value": "block",
5001                                    "revisions": {
5002                                        "v6.0.0": True,
5003                                        "v7.0.0": True,
5004                                        "v6.0.5": True,
5005                                        "v6.4.4": True,
5006                                        "v6.4.0": True,
5007                                        "v6.4.1": True,
5008                                        "v6.2.0": True,
5009                                        "v6.2.3": True,
5010                                        "v6.2.5": True,
5011                                        "v6.2.7": True,
5012                                        "v6.0.11": True
5013                                    }
5014                                }
5015                            ],
5016                            "revisions": {
5017                                "v6.0.0": True,
5018                                "v7.0.0": True,
5019                                "v6.0.5": True,
5020                                "v6.4.4": True,
5021                                "v6.4.0": True,
5022                                "v6.4.1": True,
5023                                "v6.2.0": True,
5024                                "v6.2.3": True,
5025                                "v6.2.5": True,
5026                                "v6.2.7": True,
5027                                "v6.0.11": True
5028                            }
5029                        },
5030                        "log": {
5031                            "type": "string",
5032                            "options": [
5033                                {
5034                                    "value": "enable",
5035                                    "revisions": {
5036                                        "v6.0.0": True,
5037                                        "v7.0.0": True,
5038                                        "v6.0.5": True,
5039                                        "v6.4.4": True,
5040                                        "v6.4.0": True,
5041                                        "v6.4.1": True,
5042                                        "v6.2.0": True,
5043                                        "v6.2.3": True,
5044                                        "v6.2.5": True,
5045                                        "v6.2.7": True,
5046                                        "v6.0.11": True
5047                                    }
5048                                },
5049                                {
5050                                    "value": "disable",
5051                                    "revisions": {
5052                                        "v6.0.0": True,
5053                                        "v7.0.0": True,
5054                                        "v6.0.5": True,
5055                                        "v6.4.4": True,
5056                                        "v6.4.0": True,
5057                                        "v6.4.1": True,
5058                                        "v6.2.0": True,
5059                                        "v6.2.3": True,
5060                                        "v6.2.5": True,
5061                                        "v6.2.7": True,
5062                                        "v6.0.11": True
5063                                    }
5064                                }
5065                            ],
5066                            "revisions": {
5067                                "v6.0.0": True,
5068                                "v7.0.0": True,
5069                                "v6.0.5": True,
5070                                "v6.4.4": True,
5071                                "v6.4.0": True,
5072                                "v6.4.1": True,
5073                                "v6.2.0": True,
5074                                "v6.2.3": True,
5075                                "v6.2.5": True,
5076                                "v6.2.7": True,
5077                                "v6.0.11": True
5078                            }
5079                        },
5080                        "severity": {
5081                            "type": "string",
5082                            "options": [
5083                                {
5084                                    "value": "high",
5085                                    "revisions": {
5086                                        "v6.0.0": True,
5087                                        "v7.0.0": True,
5088                                        "v6.0.5": True,
5089                                        "v6.4.4": True,
5090                                        "v6.4.0": True,
5091                                        "v6.4.1": True,
5092                                        "v6.2.0": True,
5093                                        "v6.2.3": True,
5094                                        "v6.2.5": True,
5095                                        "v6.2.7": True,
5096                                        "v6.0.11": True
5097                                    }
5098                                },
5099                                {
5100                                    "value": "medium",
5101                                    "revisions": {
5102                                        "v6.0.0": True,
5103                                        "v7.0.0": True,
5104                                        "v6.0.5": True,
5105                                        "v6.4.4": True,
5106                                        "v6.4.0": True,
5107                                        "v6.4.1": True,
5108                                        "v6.2.0": True,
5109                                        "v6.2.3": True,
5110                                        "v6.2.5": True,
5111                                        "v6.2.7": True,
5112                                        "v6.0.11": True
5113                                    }
5114                                },
5115                                {
5116                                    "value": "low",
5117                                    "revisions": {
5118                                        "v6.0.0": True,
5119                                        "v7.0.0": True,
5120                                        "v6.0.5": True,
5121                                        "v6.4.4": True,
5122                                        "v6.4.0": True,
5123                                        "v6.4.1": True,
5124                                        "v6.2.0": True,
5125                                        "v6.2.3": True,
5126                                        "v6.2.5": True,
5127                                        "v6.2.7": True,
5128                                        "v6.0.11": True
5129                                    }
5130                                }
5131                            ],
5132                            "revisions": {
5133                                "v6.0.0": True,
5134                                "v7.0.0": True,
5135                                "v6.0.5": True,
5136                                "v6.4.4": True,
5137                                "v6.4.0": True,
5138                                "v6.4.1": True,
5139                                "v6.2.0": True,
5140                                "v6.2.3": True,
5141                                "v6.2.5": True,
5142                                "v6.2.7": True,
5143                                "v6.0.11": True
5144                            }
5145                        }
5146                    },
5147                    "revisions": {
5148                        "v6.0.0": True,
5149                        "v7.0.0": True,
5150                        "v6.0.5": True,
5151                        "v6.4.4": True,
5152                        "v6.4.0": True,
5153                        "v6.4.1": True,
5154                        "v6.2.0": True,
5155                        "v6.2.3": True,
5156                        "v6.2.5": True,
5157                        "v6.2.7": True,
5158                        "v6.0.11": True
5159                    }
5160                },
5161                "line_length": {
5162                    "type": "dict",
5163                    "children": {
5164                        "status": {
5165                            "type": "string",
5166                            "options": [
5167                                {
5168                                    "value": "enable",
5169                                    "revisions": {
5170                                        "v6.0.0": True,
5171                                        "v7.0.0": True,
5172                                        "v6.0.5": True,
5173                                        "v6.4.4": True,
5174                                        "v6.4.0": True,
5175                                        "v6.4.1": True,
5176                                        "v6.2.0": True,
5177                                        "v6.2.3": True,
5178                                        "v6.2.5": True,
5179                                        "v6.2.7": True,
5180                                        "v6.0.11": True
5181                                    }
5182                                },
5183                                {
5184                                    "value": "disable",
5185                                    "revisions": {
5186                                        "v6.0.0": True,
5187                                        "v7.0.0": True,
5188                                        "v6.0.5": True,
5189                                        "v6.4.4": True,
5190                                        "v6.4.0": True,
5191                                        "v6.4.1": True,
5192                                        "v6.2.0": True,
5193                                        "v6.2.3": True,
5194                                        "v6.2.5": True,
5195                                        "v6.2.7": True,
5196                                        "v6.0.11": True
5197                                    }
5198                                }
5199                            ],
5200                            "revisions": {
5201                                "v6.0.0": True,
5202                                "v7.0.0": True,
5203                                "v6.0.5": True,
5204                                "v6.4.4": True,
5205                                "v6.4.0": True,
5206                                "v6.4.1": True,
5207                                "v6.2.0": True,
5208                                "v6.2.3": True,
5209                                "v6.2.5": True,
5210                                "v6.2.7": True,
5211                                "v6.0.11": True
5212                            }
5213                        },
5214                        "action": {
5215                            "type": "string",
5216                            "options": [
5217                                {
5218                                    "value": "allow",
5219                                    "revisions": {
5220                                        "v6.0.0": True,
5221                                        "v7.0.0": True,
5222                                        "v6.0.5": True,
5223                                        "v6.4.4": True,
5224                                        "v6.4.0": True,
5225                                        "v6.4.1": True,
5226                                        "v6.2.0": True,
5227                                        "v6.2.3": True,
5228                                        "v6.2.5": True,
5229                                        "v6.2.7": True,
5230                                        "v6.0.11": True
5231                                    }
5232                                },
5233                                {
5234                                    "value": "block",
5235                                    "revisions": {
5236                                        "v6.0.0": True,
5237                                        "v7.0.0": True,
5238                                        "v6.0.5": True,
5239                                        "v6.4.4": True,
5240                                        "v6.4.0": True,
5241                                        "v6.4.1": True,
5242                                        "v6.2.0": True,
5243                                        "v6.2.3": True,
5244                                        "v6.2.5": True,
5245                                        "v6.2.7": True,
5246                                        "v6.0.11": True
5247                                    }
5248                                }
5249                            ],
5250                            "revisions": {
5251                                "v6.0.0": True,
5252                                "v7.0.0": True,
5253                                "v6.0.5": True,
5254                                "v6.4.4": True,
5255                                "v6.4.0": True,
5256                                "v6.4.1": True,
5257                                "v6.2.0": True,
5258                                "v6.2.3": True,
5259                                "v6.2.5": True,
5260                                "v6.2.7": True,
5261                                "v6.0.11": True
5262                            }
5263                        },
5264                        "length": {
5265                            "type": "integer",
5266                            "revisions": {
5267                                "v6.0.0": True,
5268                                "v7.0.0": True,
5269                                "v6.0.5": True,
5270                                "v6.4.4": True,
5271                                "v6.4.0": True,
5272                                "v6.4.1": True,
5273                                "v6.2.0": True,
5274                                "v6.2.3": True,
5275                                "v6.2.5": True,
5276                                "v6.2.7": True,
5277                                "v6.0.11": True
5278                            }
5279                        },
5280                        "log": {
5281                            "type": "string",
5282                            "options": [
5283                                {
5284                                    "value": "enable",
5285                                    "revisions": {
5286                                        "v6.0.0": True,
5287                                        "v7.0.0": True,
5288                                        "v6.0.5": True,
5289                                        "v6.4.4": True,
5290                                        "v6.4.0": True,
5291                                        "v6.4.1": True,
5292                                        "v6.2.0": True,
5293                                        "v6.2.3": True,
5294                                        "v6.2.5": True,
5295                                        "v6.2.7": True,
5296                                        "v6.0.11": True
5297                                    }
5298                                },
5299                                {
5300                                    "value": "disable",
5301                                    "revisions": {
5302                                        "v6.0.0": True,
5303                                        "v7.0.0": True,
5304                                        "v6.0.5": True,
5305                                        "v6.4.4": True,
5306                                        "v6.4.0": True,
5307                                        "v6.4.1": True,
5308                                        "v6.2.0": True,
5309                                        "v6.2.3": True,
5310                                        "v6.2.5": True,
5311                                        "v6.2.7": True,
5312                                        "v6.0.11": True
5313                                    }
5314                                }
5315                            ],
5316                            "revisions": {
5317                                "v6.0.0": True,
5318                                "v7.0.0": True,
5319                                "v6.0.5": True,
5320                                "v6.4.4": True,
5321                                "v6.4.0": True,
5322                                "v6.4.1": True,
5323                                "v6.2.0": True,
5324                                "v6.2.3": True,
5325                                "v6.2.5": True,
5326                                "v6.2.7": True,
5327                                "v6.0.11": True
5328                            }
5329                        },
5330                        "severity": {
5331                            "type": "string",
5332                            "options": [
5333                                {
5334                                    "value": "high",
5335                                    "revisions": {
5336                                        "v6.0.0": True,
5337                                        "v7.0.0": True,
5338                                        "v6.0.5": True,
5339                                        "v6.4.4": True,
5340                                        "v6.4.0": True,
5341                                        "v6.4.1": True,
5342                                        "v6.2.0": True,
5343                                        "v6.2.3": True,
5344                                        "v6.2.5": True,
5345                                        "v6.2.7": True,
5346                                        "v6.0.11": True
5347                                    }
5348                                },
5349                                {
5350                                    "value": "medium",
5351                                    "revisions": {
5352                                        "v6.0.0": True,
5353                                        "v7.0.0": True,
5354                                        "v6.0.5": True,
5355                                        "v6.4.4": True,
5356                                        "v6.4.0": True,
5357                                        "v6.4.1": True,
5358                                        "v6.2.0": True,
5359                                        "v6.2.3": True,
5360                                        "v6.2.5": True,
5361                                        "v6.2.7": True,
5362                                        "v6.0.11": True
5363                                    }
5364                                },
5365                                {
5366                                    "value": "low",
5367                                    "revisions": {
5368                                        "v6.0.0": True,
5369                                        "v7.0.0": True,
5370                                        "v6.0.5": True,
5371                                        "v6.4.4": True,
5372                                        "v6.4.0": True,
5373                                        "v6.4.1": True,
5374                                        "v6.2.0": True,
5375                                        "v6.2.3": True,
5376                                        "v6.2.5": True,
5377                                        "v6.2.7": True,
5378                                        "v6.0.11": True
5379                                    }
5380                                }
5381                            ],
5382                            "revisions": {
5383                                "v6.0.0": True,
5384                                "v7.0.0": True,
5385                                "v6.0.5": True,
5386                                "v6.4.4": True,
5387                                "v6.4.0": True,
5388                                "v6.4.1": True,
5389                                "v6.2.0": True,
5390                                "v6.2.3": True,
5391                                "v6.2.5": True,
5392                                "v6.2.7": True,
5393                                "v6.0.11": True
5394                            }
5395                        }
5396                    },
5397                    "revisions": {
5398                        "v6.0.0": True,
5399                        "v7.0.0": True,
5400                        "v6.0.5": True,
5401                        "v6.4.4": True,
5402                        "v6.4.0": True,
5403                        "v6.4.1": True,
5404                        "v6.2.0": True,
5405                        "v6.2.3": True,
5406                        "v6.2.5": True,
5407                        "v6.2.7": True,
5408                        "v6.0.11": True
5409                    }
5410                }
5411            },
5412            "revisions": {
5413                "v6.0.0": True,
5414                "v7.0.0": True,
5415                "v6.0.5": True,
5416                "v6.4.4": True,
5417                "v6.4.0": True,
5418                "v6.4.1": True,
5419                "v6.2.0": True,
5420                "v6.2.3": True,
5421                "v6.2.5": True,
5422                "v6.2.7": True,
5423                "v6.0.11": True
5424            }
5425        },
5426        "extended_log": {
5427            "type": "string",
5428            "options": [
5429                {
5430                    "value": "enable",
5431                    "revisions": {
5432                        "v6.0.0": True,
5433                        "v7.0.0": True,
5434                        "v6.0.5": True,
5435                        "v6.4.4": True,
5436                        "v6.4.0": True,
5437                        "v6.4.1": True,
5438                        "v6.2.0": True,
5439                        "v6.2.3": True,
5440                        "v6.2.5": True,
5441                        "v6.2.7": True,
5442                        "v6.0.11": True
5443                    }
5444                },
5445                {
5446                    "value": "disable",
5447                    "revisions": {
5448                        "v6.0.0": True,
5449                        "v7.0.0": True,
5450                        "v6.0.5": True,
5451                        "v6.4.4": True,
5452                        "v6.4.0": True,
5453                        "v6.4.1": True,
5454                        "v6.2.0": True,
5455                        "v6.2.3": True,
5456                        "v6.2.5": True,
5457                        "v6.2.7": True,
5458                        "v6.0.11": True
5459                    }
5460                }
5461            ],
5462            "revisions": {
5463                "v6.0.0": True,
5464                "v7.0.0": True,
5465                "v6.0.5": True,
5466                "v6.4.4": True,
5467                "v6.4.0": True,
5468                "v6.4.1": True,
5469                "v6.2.0": True,
5470                "v6.2.3": True,
5471                "v6.2.5": True,
5472                "v6.2.7": True,
5473                "v6.0.11": True
5474            }
5475        },
5476        "url_access": {
5477            "type": "list",
5478            "children": {
5479                "severity": {
5480                    "type": "string",
5481                    "options": [
5482                        {
5483                            "value": "high",
5484                            "revisions": {
5485                                "v6.0.0": True,
5486                                "v7.0.0": True,
5487                                "v6.0.5": True,
5488                                "v6.4.4": True,
5489                                "v6.4.0": True,
5490                                "v6.4.1": True,
5491                                "v6.2.0": True,
5492                                "v6.2.3": True,
5493                                "v6.2.5": True,
5494                                "v6.2.7": True,
5495                                "v6.0.11": True
5496                            }
5497                        },
5498                        {
5499                            "value": "medium",
5500                            "revisions": {
5501                                "v6.0.0": True,
5502                                "v7.0.0": True,
5503                                "v6.0.5": True,
5504                                "v6.4.4": True,
5505                                "v6.4.0": True,
5506                                "v6.4.1": True,
5507                                "v6.2.0": True,
5508                                "v6.2.3": True,
5509                                "v6.2.5": True,
5510                                "v6.2.7": True,
5511                                "v6.0.11": True
5512                            }
5513                        },
5514                        {
5515                            "value": "low",
5516                            "revisions": {
5517                                "v6.0.0": True,
5518                                "v7.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": True,
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                "access_pattern": {
5546                    "type": "list",
5547                    "children": {
5548                        "srcaddr": {
5549                            "type": "string",
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                        "pattern": {
5565                            "type": "string",
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                        "id": {
5581                            "type": "integer",
5582                            "revisions": {
5583                                "v6.0.0": True,
5584                                "v7.0.0": True,
5585                                "v6.0.5": True,
5586                                "v6.4.4": True,
5587                                "v6.4.0": True,
5588                                "v6.4.1": True,
5589                                "v6.2.0": True,
5590                                "v6.2.3": True,
5591                                "v6.2.5": True,
5592                                "v6.2.7": True,
5593                                "v6.0.11": True
5594                            }
5595                        },
5596                        "negate": {
5597                            "type": "string",
5598                            "options": [
5599                                {
5600                                    "value": "enable",
5601                                    "revisions": {
5602                                        "v6.0.0": True,
5603                                        "v7.0.0": True,
5604                                        "v6.0.5": True,
5605                                        "v6.4.4": True,
5606                                        "v6.4.0": True,
5607                                        "v6.4.1": True,
5608                                        "v6.2.0": True,
5609                                        "v6.2.3": True,
5610                                        "v6.2.5": True,
5611                                        "v6.2.7": True,
5612                                        "v6.0.11": True
5613                                    }
5614                                },
5615                                {
5616                                    "value": "disable",
5617                                    "revisions": {
5618                                        "v6.0.0": True,
5619                                        "v7.0.0": True,
5620                                        "v6.0.5": True,
5621                                        "v6.4.4": True,
5622                                        "v6.4.0": True,
5623                                        "v6.4.1": True,
5624                                        "v6.2.0": True,
5625                                        "v6.2.3": True,
5626                                        "v6.2.5": True,
5627                                        "v6.2.7": True,
5628                                        "v6.0.11": True
5629                                    }
5630                                }
5631                            ],
5632                            "revisions": {
5633                                "v6.0.0": True,
5634                                "v7.0.0": True,
5635                                "v6.0.5": True,
5636                                "v6.4.4": True,
5637                                "v6.4.0": True,
5638                                "v6.4.1": True,
5639                                "v6.2.0": True,
5640                                "v6.2.3": True,
5641                                "v6.2.5": True,
5642                                "v6.2.7": True,
5643                                "v6.0.11": True
5644                            }
5645                        },
5646                        "regex": {
5647                            "type": "string",
5648                            "options": [
5649                                {
5650                                    "value": "enable",
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": "disable",
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                            "revisions": {
5683                                "v6.0.0": True,
5684                                "v7.0.0": True,
5685                                "v6.0.5": True,
5686                                "v6.4.4": True,
5687                                "v6.4.0": True,
5688                                "v6.4.1": True,
5689                                "v6.2.0": True,
5690                                "v6.2.3": True,
5691                                "v6.2.5": True,
5692                                "v6.2.7": True,
5693                                "v6.0.11": True
5694                            }
5695                        }
5696                    },
5697                    "revisions": {
5698                        "v6.0.0": True,
5699                        "v7.0.0": True,
5700                        "v6.0.5": True,
5701                        "v6.4.4": True,
5702                        "v6.4.0": True,
5703                        "v6.4.1": True,
5704                        "v6.2.0": True,
5705                        "v6.2.3": True,
5706                        "v6.2.5": True,
5707                        "v6.2.7": True,
5708                        "v6.0.11": True
5709                    }
5710                },
5711                "address": {
5712                    "type": "string",
5713                    "revisions": {
5714                        "v6.0.0": True,
5715                        "v7.0.0": True,
5716                        "v6.0.5": True,
5717                        "v6.4.4": True,
5718                        "v6.4.0": True,
5719                        "v6.4.1": True,
5720                        "v6.2.0": True,
5721                        "v6.2.3": True,
5722                        "v6.2.5": True,
5723                        "v6.2.7": True,
5724                        "v6.0.11": True
5725                    }
5726                },
5727                "action": {
5728                    "type": "string",
5729                    "options": [
5730                        {
5731                            "value": "bypass",
5732                            "revisions": {
5733                                "v6.0.0": True,
5734                                "v7.0.0": True,
5735                                "v6.0.5": True,
5736                                "v6.4.4": True,
5737                                "v6.4.0": True,
5738                                "v6.4.1": True,
5739                                "v6.2.0": True,
5740                                "v6.2.3": True,
5741                                "v6.2.5": True,
5742                                "v6.2.7": True,
5743                                "v6.0.11": True
5744                            }
5745                        },
5746                        {
5747                            "value": "permit",
5748                            "revisions": {
5749                                "v6.0.0": True,
5750                                "v7.0.0": True,
5751                                "v6.0.5": True,
5752                                "v6.4.4": True,
5753                                "v6.4.0": True,
5754                                "v6.4.1": True,
5755                                "v6.2.0": True,
5756                                "v6.2.3": True,
5757                                "v6.2.5": True,
5758                                "v6.2.7": True,
5759                                "v6.0.11": True
5760                            }
5761                        },
5762                        {
5763                            "value": "block",
5764                            "revisions": {
5765                                "v6.0.0": True,
5766                                "v7.0.0": True,
5767                                "v6.0.5": True,
5768                                "v6.4.4": True,
5769                                "v6.4.0": True,
5770                                "v6.4.1": True,
5771                                "v6.2.0": True,
5772                                "v6.2.3": True,
5773                                "v6.2.5": True,
5774                                "v6.2.7": True,
5775                                "v6.0.11": True
5776                            }
5777                        }
5778                    ],
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                "id": {
5794                    "type": "integer",
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                "log": {
5810                    "type": "string",
5811                    "options": [
5812                        {
5813                            "value": "enable",
5814                            "revisions": {
5815                                "v6.0.0": True,
5816                                "v7.0.0": True,
5817                                "v6.0.5": True,
5818                                "v6.4.4": True,
5819                                "v6.4.0": True,
5820                                "v6.4.1": True,
5821                                "v6.2.0": True,
5822                                "v6.2.3": True,
5823                                "v6.2.5": True,
5824                                "v6.2.7": True,
5825                                "v6.0.11": True
5826                            }
5827                        },
5828                        {
5829                            "value": "disable",
5830                            "revisions": {
5831                                "v6.0.0": True,
5832                                "v7.0.0": True,
5833                                "v6.0.5": True,
5834                                "v6.4.4": True,
5835                                "v6.4.0": True,
5836                                "v6.4.1": True,
5837                                "v6.2.0": True,
5838                                "v6.2.3": True,
5839                                "v6.2.5": True,
5840                                "v6.2.7": True,
5841                                "v6.0.11": True
5842                            }
5843                        }
5844                    ],
5845                    "revisions": {
5846                        "v6.0.0": True,
5847                        "v7.0.0": True,
5848                        "v6.0.5": True,
5849                        "v6.4.4": True,
5850                        "v6.4.0": True,
5851                        "v6.4.1": True,
5852                        "v6.2.0": True,
5853                        "v6.2.3": True,
5854                        "v6.2.5": True,
5855                        "v6.2.7": True,
5856                        "v6.0.11": True
5857                    }
5858                }
5859            },
5860            "revisions": {
5861                "v6.0.0": True,
5862                "v7.0.0": True,
5863                "v6.0.5": True,
5864                "v6.4.4": True,
5865                "v6.4.0": True,
5866                "v6.4.1": True,
5867                "v6.2.0": True,
5868                "v6.2.3": True,
5869                "v6.2.5": True,
5870                "v6.2.7": True,
5871                "v6.0.11": True
5872            }
5873        },
5874        "external": {
5875            "type": "string",
5876            "options": [
5877                {
5878                    "value": "disable",
5879                    "revisions": {
5880                        "v6.0.0": True,
5881                        "v7.0.0": True,
5882                        "v6.0.5": True,
5883                        "v6.4.4": True,
5884                        "v6.4.0": True,
5885                        "v6.4.1": True,
5886                        "v6.2.0": True,
5887                        "v6.2.3": True,
5888                        "v6.2.5": True,
5889                        "v6.2.7": True,
5890                        "v6.0.11": True
5891                    }
5892                },
5893                {
5894                    "value": "enable",
5895                    "revisions": {
5896                        "v6.0.0": True,
5897                        "v7.0.0": True,
5898                        "v6.0.5": True,
5899                        "v6.4.4": True,
5900                        "v6.4.0": True,
5901                        "v6.4.1": True,
5902                        "v6.2.0": True,
5903                        "v6.2.3": True,
5904                        "v6.2.5": True,
5905                        "v6.2.7": True,
5906                        "v6.0.11": True
5907                    }
5908                }
5909            ],
5910            "revisions": {
5911                "v6.0.0": True,
5912                "v7.0.0": True,
5913                "v6.0.5": True,
5914                "v6.4.4": True,
5915                "v6.4.0": True,
5916                "v6.4.1": True,
5917                "v6.2.0": True,
5918                "v6.2.3": True,
5919                "v6.2.5": True,
5920                "v6.2.7": True,
5921                "v6.0.11": True
5922            }
5923        },
5924        "signature": {
5925            "type": "dict",
5926            "children": {
5927                "main_class": {
5928                    "type": "list",
5929                    "children": {
5930                        "status": {
5931                            "type": "string",
5932                            "options": [
5933                                {
5934                                    "value": "enable",
5935                                    "revisions": {
5936                                        "v6.0.0": True,
5937                                        "v7.0.0": True,
5938                                        "v6.0.5": True,
5939                                        "v6.4.4": True,
5940                                        "v6.4.0": True,
5941                                        "v6.4.1": True,
5942                                        "v6.2.0": True,
5943                                        "v6.2.3": True,
5944                                        "v6.2.5": True,
5945                                        "v6.2.7": True,
5946                                        "v6.0.11": True
5947                                    }
5948                                },
5949                                {
5950                                    "value": "disable",
5951                                    "revisions": {
5952                                        "v6.0.0": True,
5953                                        "v7.0.0": True,
5954                                        "v6.0.5": True,
5955                                        "v6.4.4": True,
5956                                        "v6.4.0": True,
5957                                        "v6.4.1": True,
5958                                        "v6.2.0": True,
5959                                        "v6.2.3": True,
5960                                        "v6.2.5": True,
5961                                        "v6.2.7": True,
5962                                        "v6.0.11": True
5963                                    }
5964                                }
5965                            ],
5966                            "revisions": {
5967                                "v6.0.0": True,
5968                                "v7.0.0": True,
5969                                "v6.0.5": True,
5970                                "v6.4.4": True,
5971                                "v6.4.0": True,
5972                                "v6.4.1": True,
5973                                "v6.2.0": True,
5974                                "v6.2.3": True,
5975                                "v6.2.5": True,
5976                                "v6.2.7": True,
5977                                "v6.0.11": True
5978                            }
5979                        },
5980                        "action": {
5981                            "type": "string",
5982                            "options": [
5983                                {
5984                                    "value": "allow",
5985                                    "revisions": {
5986                                        "v6.0.0": True,
5987                                        "v7.0.0": True,
5988                                        "v6.0.5": True,
5989                                        "v6.4.4": True,
5990                                        "v6.4.0": True,
5991                                        "v6.4.1": True,
5992                                        "v6.2.0": True,
5993                                        "v6.2.3": True,
5994                                        "v6.2.5": True,
5995                                        "v6.2.7": True,
5996                                        "v6.0.11": True
5997                                    }
5998                                },
5999                                {
6000                                    "value": "block",
6001                                    "revisions": {
6002                                        "v6.0.0": True,
6003                                        "v7.0.0": True,
6004                                        "v6.0.5": True,
6005                                        "v6.4.4": True,
6006                                        "v6.4.0": True,
6007                                        "v6.4.1": True,
6008                                        "v6.2.0": True,
6009                                        "v6.2.3": True,
6010                                        "v6.2.5": True,
6011                                        "v6.2.7": True,
6012                                        "v6.0.11": True
6013                                    }
6014                                },
6015                                {
6016                                    "value": "erase",
6017                                    "revisions": {
6018                                        "v6.0.0": True,
6019                                        "v7.0.0": True,
6020                                        "v6.0.5": True,
6021                                        "v6.4.4": True,
6022                                        "v6.4.0": True,
6023                                        "v6.4.1": True,
6024                                        "v6.2.0": True,
6025                                        "v6.2.3": True,
6026                                        "v6.2.5": True,
6027                                        "v6.2.7": True,
6028                                        "v6.0.11": True
6029                                    }
6030                                }
6031                            ],
6032                            "revisions": {
6033                                "v6.0.0": True,
6034                                "v7.0.0": True,
6035                                "v6.0.5": True,
6036                                "v6.4.4": True,
6037                                "v6.4.0": True,
6038                                "v6.4.1": True,
6039                                "v6.2.0": True,
6040                                "v6.2.3": True,
6041                                "v6.2.5": True,
6042                                "v6.2.7": True,
6043                                "v6.0.11": True
6044                            }
6045                        },
6046                        "log": {
6047                            "type": "string",
6048                            "options": [
6049                                {
6050                                    "value": "enable",
6051                                    "revisions": {
6052                                        "v6.0.0": True,
6053                                        "v7.0.0": True,
6054                                        "v6.0.5": True,
6055                                        "v6.4.4": True,
6056                                        "v6.4.0": True,
6057                                        "v6.4.1": True,
6058                                        "v6.2.0": True,
6059                                        "v6.2.3": True,
6060                                        "v6.2.5": True,
6061                                        "v6.2.7": True,
6062                                        "v6.0.11": True
6063                                    }
6064                                },
6065                                {
6066                                    "value": "disable",
6067                                    "revisions": {
6068                                        "v6.0.0": True,
6069                                        "v7.0.0": True,
6070                                        "v6.0.5": True,
6071                                        "v6.4.4": True,
6072                                        "v6.4.0": True,
6073                                        "v6.4.1": True,
6074                                        "v6.2.0": True,
6075                                        "v6.2.3": True,
6076                                        "v6.2.5": True,
6077                                        "v6.2.7": True,
6078                                        "v6.0.11": True
6079                                    }
6080                                }
6081                            ],
6082                            "revisions": {
6083                                "v6.0.0": True,
6084                                "v7.0.0": True,
6085                                "v6.0.5": True,
6086                                "v6.4.4": True,
6087                                "v6.4.0": True,
6088                                "v6.4.1": True,
6089                                "v6.2.0": True,
6090                                "v6.2.3": True,
6091                                "v6.2.5": True,
6092                                "v6.2.7": True,
6093                                "v6.0.11": True
6094                            }
6095                        },
6096                        "severity": {
6097                            "type": "string",
6098                            "options": [
6099                                {
6100                                    "value": "high",
6101                                    "revisions": {
6102                                        "v6.0.0": True,
6103                                        "v7.0.0": True,
6104                                        "v6.0.5": True,
6105                                        "v6.4.4": True,
6106                                        "v6.4.0": True,
6107                                        "v6.4.1": True,
6108                                        "v6.2.0": True,
6109                                        "v6.2.3": True,
6110                                        "v6.2.5": True,
6111                                        "v6.2.7": True,
6112                                        "v6.0.11": True
6113                                    }
6114                                },
6115                                {
6116                                    "value": "medium",
6117                                    "revisions": {
6118                                        "v6.0.0": True,
6119                                        "v7.0.0": True,
6120                                        "v6.0.5": True,
6121                                        "v6.4.4": True,
6122                                        "v6.4.0": True,
6123                                        "v6.4.1": True,
6124                                        "v6.2.0": True,
6125                                        "v6.2.3": True,
6126                                        "v6.2.5": True,
6127                                        "v6.2.7": True,
6128                                        "v6.0.11": True
6129                                    }
6130                                },
6131                                {
6132                                    "value": "low",
6133                                    "revisions": {
6134                                        "v6.0.0": True,
6135                                        "v7.0.0": True,
6136                                        "v6.0.5": True,
6137                                        "v6.4.4": True,
6138                                        "v6.4.0": True,
6139                                        "v6.4.1": True,
6140                                        "v6.2.0": True,
6141                                        "v6.2.3": True,
6142                                        "v6.2.5": True,
6143                                        "v6.2.7": True,
6144                                        "v6.0.11": True
6145                                    }
6146                                }
6147                            ],
6148                            "revisions": {
6149                                "v6.0.0": True,
6150                                "v7.0.0": True,
6151                                "v6.0.5": True,
6152                                "v6.4.4": True,
6153                                "v6.4.0": True,
6154                                "v6.4.1": True,
6155                                "v6.2.0": True,
6156                                "v6.2.3": True,
6157                                "v6.2.5": True,
6158                                "v6.2.7": True,
6159                                "v6.0.11": True
6160                            }
6161                        },
6162                        "id": {
6163                            "type": "integer",
6164                            "revisions": {
6165                                "v6.0.0": True,
6166                                "v7.0.0": True,
6167                                "v6.0.5": True,
6168                                "v6.4.4": True,
6169                                "v6.4.0": True,
6170                                "v6.4.1": True,
6171                                "v6.2.0": True,
6172                                "v6.2.3": True,
6173                                "v6.2.5": True,
6174                                "v6.2.7": True,
6175                                "v6.0.11": True
6176                            }
6177                        }
6178                    },
6179                    "revisions": {
6180                        "v6.0.0": True,
6181                        "v7.0.0": True,
6182                        "v6.0.5": True,
6183                        "v6.4.4": True,
6184                        "v6.4.0": True,
6185                        "v6.4.1": True,
6186                        "v6.2.0": True,
6187                        "v6.2.3": True,
6188                        "v6.2.5": True,
6189                        "v6.2.7": True,
6190                        "v6.0.11": True
6191                    }
6192                },
6193                "disabled_sub_class": {
6194                    "type": "list",
6195                    "children": {
6196                        "id": {
6197                            "type": "integer",
6198                            "revisions": {
6199                                "v6.0.0": True,
6200                                "v7.0.0": True,
6201                                "v6.0.5": True,
6202                                "v6.4.4": True,
6203                                "v6.4.0": True,
6204                                "v6.4.1": True,
6205                                "v6.2.0": True,
6206                                "v6.2.3": True,
6207                                "v6.2.5": True,
6208                                "v6.2.7": True,
6209                                "v6.0.11": True
6210                            }
6211                        }
6212                    },
6213                    "revisions": {
6214                        "v6.0.0": True,
6215                        "v7.0.0": True,
6216                        "v6.0.5": True,
6217                        "v6.4.4": True,
6218                        "v6.4.0": True,
6219                        "v6.4.1": True,
6220                        "v6.2.0": True,
6221                        "v6.2.3": True,
6222                        "v6.2.5": True,
6223                        "v6.2.7": True,
6224                        "v6.0.11": True
6225                    }
6226                },
6227                "custom_signature": {
6228                    "type": "list",
6229                    "children": {
6230                        "status": {
6231                            "type": "string",
6232                            "options": [
6233                                {
6234                                    "value": "enable",
6235                                    "revisions": {
6236                                        "v6.0.0": True,
6237                                        "v7.0.0": True,
6238                                        "v6.0.5": True,
6239                                        "v6.4.4": True,
6240                                        "v6.4.0": True,
6241                                        "v6.4.1": True,
6242                                        "v6.2.0": True,
6243                                        "v6.2.3": True,
6244                                        "v6.2.5": True,
6245                                        "v6.2.7": True,
6246                                        "v6.0.11": True
6247                                    }
6248                                },
6249                                {
6250                                    "value": "disable",
6251                                    "revisions": {
6252                                        "v6.0.0": True,
6253                                        "v7.0.0": True,
6254                                        "v6.0.5": True,
6255                                        "v6.4.4": True,
6256                                        "v6.4.0": True,
6257                                        "v6.4.1": True,
6258                                        "v6.2.0": True,
6259                                        "v6.2.3": True,
6260                                        "v6.2.5": True,
6261                                        "v6.2.7": True,
6262                                        "v6.0.11": True
6263                                    }
6264                                }
6265                            ],
6266                            "revisions": {
6267                                "v6.0.0": True,
6268                                "v7.0.0": True,
6269                                "v6.0.5": True,
6270                                "v6.4.4": True,
6271                                "v6.4.0": True,
6272                                "v6.4.1": True,
6273                                "v6.2.0": True,
6274                                "v6.2.3": True,
6275                                "v6.2.5": True,
6276                                "v6.2.7": True,
6277                                "v6.0.11": True
6278                            }
6279                        },
6280                        "direction": {
6281                            "type": "string",
6282                            "options": [
6283                                {
6284                                    "value": "request",
6285                                    "revisions": {
6286                                        "v6.0.0": True,
6287                                        "v7.0.0": True,
6288                                        "v6.0.5": True,
6289                                        "v6.4.4": True,
6290                                        "v6.4.0": True,
6291                                        "v6.4.1": True,
6292                                        "v6.2.0": True,
6293                                        "v6.2.3": True,
6294                                        "v6.2.5": True,
6295                                        "v6.2.7": True,
6296                                        "v6.0.11": True
6297                                    }
6298                                },
6299                                {
6300                                    "value": "response",
6301                                    "revisions": {
6302                                        "v6.0.0": True,
6303                                        "v7.0.0": True,
6304                                        "v6.0.5": True,
6305                                        "v6.4.4": True,
6306                                        "v6.4.0": True,
6307                                        "v6.4.1": True,
6308                                        "v6.2.0": True,
6309                                        "v6.2.3": True,
6310                                        "v6.2.5": True,
6311                                        "v6.2.7": True,
6312                                        "v6.0.11": True
6313                                    }
6314                                }
6315                            ],
6316                            "revisions": {
6317                                "v6.0.0": True,
6318                                "v7.0.0": True,
6319                                "v6.0.5": True,
6320                                "v6.4.4": True,
6321                                "v6.4.0": True,
6322                                "v6.4.1": True,
6323                                "v6.2.0": True,
6324                                "v6.2.3": True,
6325                                "v6.2.5": True,
6326                                "v6.2.7": True,
6327                                "v6.0.11": True
6328                            }
6329                        },
6330                        "log": {
6331                            "type": "string",
6332                            "options": [
6333                                {
6334                                    "value": "enable",
6335                                    "revisions": {
6336                                        "v6.0.0": True,
6337                                        "v7.0.0": True,
6338                                        "v6.0.5": True,
6339                                        "v6.4.4": True,
6340                                        "v6.4.0": True,
6341                                        "v6.4.1": True,
6342                                        "v6.2.0": True,
6343                                        "v6.2.3": True,
6344                                        "v6.2.5": True,
6345                                        "v6.2.7": True,
6346                                        "v6.0.11": True
6347                                    }
6348                                },
6349                                {
6350                                    "value": "disable",
6351                                    "revisions": {
6352                                        "v6.0.0": True,
6353                                        "v7.0.0": True,
6354                                        "v6.0.5": True,
6355                                        "v6.4.4": True,
6356                                        "v6.4.0": True,
6357                                        "v6.4.1": True,
6358                                        "v6.2.0": True,
6359                                        "v6.2.3": True,
6360                                        "v6.2.5": True,
6361                                        "v6.2.7": True,
6362                                        "v6.0.11": True
6363                                    }
6364                                }
6365                            ],
6366                            "revisions": {
6367                                "v6.0.0": True,
6368                                "v7.0.0": True,
6369                                "v6.0.5": True,
6370                                "v6.4.4": True,
6371                                "v6.4.0": True,
6372                                "v6.4.1": True,
6373                                "v6.2.0": True,
6374                                "v6.2.3": True,
6375                                "v6.2.5": True,
6376                                "v6.2.7": True,
6377                                "v6.0.11": True
6378                            }
6379                        },
6380                        "pattern": {
6381                            "type": "string",
6382                            "revisions": {
6383                                "v6.0.0": True,
6384                                "v7.0.0": True,
6385                                "v6.0.5": True,
6386                                "v6.4.4": True,
6387                                "v6.4.0": True,
6388                                "v6.4.1": True,
6389                                "v6.2.0": True,
6390                                "v6.2.3": True,
6391                                "v6.2.5": True,
6392                                "v6.2.7": True,
6393                                "v6.0.11": True
6394                            }
6395                        },
6396                        "name": {
6397                            "type": "string",
6398                            "revisions": {
6399                                "v6.0.0": True,
6400                                "v7.0.0": True,
6401                                "v6.0.5": True,
6402                                "v6.4.4": True,
6403                                "v6.4.0": True,
6404                                "v6.4.1": True,
6405                                "v6.2.0": True,
6406                                "v6.2.3": True,
6407                                "v6.2.5": True,
6408                                "v6.2.7": True,
6409                                "v6.0.11": True
6410                            }
6411                        },
6412                        "case_sensitivity": {
6413                            "type": "string",
6414                            "options": [
6415                                {
6416                                    "value": "disable",
6417                                    "revisions": {
6418                                        "v6.0.0": True,
6419                                        "v7.0.0": True,
6420                                        "v6.0.5": True,
6421                                        "v6.4.4": True,
6422                                        "v6.4.0": True,
6423                                        "v6.4.1": True,
6424                                        "v6.2.0": True,
6425                                        "v6.2.3": True,
6426                                        "v6.2.5": True,
6427                                        "v6.2.7": True,
6428                                        "v6.0.11": True
6429                                    }
6430                                },
6431                                {
6432                                    "value": "enable",
6433                                    "revisions": {
6434                                        "v6.0.0": True,
6435                                        "v7.0.0": True,
6436                                        "v6.0.5": True,
6437                                        "v6.4.4": True,
6438                                        "v6.4.0": True,
6439                                        "v6.4.1": True,
6440                                        "v6.2.0": True,
6441                                        "v6.2.3": True,
6442                                        "v6.2.5": True,
6443                                        "v6.2.7": True,
6444                                        "v6.0.11": True
6445                                    }
6446                                }
6447                            ],
6448                            "revisions": {
6449                                "v6.0.0": True,
6450                                "v7.0.0": True,
6451                                "v6.0.5": True,
6452                                "v6.4.4": True,
6453                                "v6.4.0": True,
6454                                "v6.4.1": True,
6455                                "v6.2.0": True,
6456                                "v6.2.3": True,
6457                                "v6.2.5": True,
6458                                "v6.2.7": True,
6459                                "v6.0.11": True
6460                            }
6461                        },
6462                        "target": {
6463                            "multiple_values": True,
6464                            "type": "list",
6465                            "options": [
6466                                {
6467                                    "value": "arg",
6468                                    "revisions": {
6469                                        "v6.0.0": True,
6470                                        "v7.0.0": True,
6471                                        "v6.0.5": True,
6472                                        "v6.4.4": True,
6473                                        "v6.4.0": True,
6474                                        "v6.4.1": True,
6475                                        "v6.2.0": True,
6476                                        "v6.2.3": True,
6477                                        "v6.2.5": True,
6478                                        "v6.2.7": True,
6479                                        "v6.0.11": True
6480                                    }
6481                                },
6482                                {
6483                                    "value": "arg-name",
6484                                    "revisions": {
6485                                        "v6.0.0": True,
6486                                        "v7.0.0": True,
6487                                        "v6.0.5": True,
6488                                        "v6.4.4": True,
6489                                        "v6.4.0": True,
6490                                        "v6.4.1": True,
6491                                        "v6.2.0": True,
6492                                        "v6.2.3": True,
6493                                        "v6.2.5": True,
6494                                        "v6.2.7": True,
6495                                        "v6.0.11": True
6496                                    }
6497                                },
6498                                {
6499                                    "value": "req-body",
6500                                    "revisions": {
6501                                        "v6.0.0": True,
6502                                        "v7.0.0": True,
6503                                        "v6.0.5": True,
6504                                        "v6.4.4": True,
6505                                        "v6.4.0": True,
6506                                        "v6.4.1": True,
6507                                        "v6.2.0": True,
6508                                        "v6.2.3": True,
6509                                        "v6.2.5": True,
6510                                        "v6.2.7": True,
6511                                        "v6.0.11": True
6512                                    }
6513                                },
6514                                {
6515                                    "value": "req-cookie",
6516                                    "revisions": {
6517                                        "v6.0.0": True,
6518                                        "v7.0.0": True,
6519                                        "v6.0.5": True,
6520                                        "v6.4.4": True,
6521                                        "v6.4.0": True,
6522                                        "v6.4.1": True,
6523                                        "v6.2.0": True,
6524                                        "v6.2.3": True,
6525                                        "v6.2.5": True,
6526                                        "v6.2.7": True,
6527                                        "v6.0.11": True
6528                                    }
6529                                },
6530                                {
6531                                    "value": "req-cookie-name",
6532                                    "revisions": {
6533                                        "v6.0.0": True,
6534                                        "v7.0.0": True,
6535                                        "v6.0.5": True,
6536                                        "v6.4.4": True,
6537                                        "v6.4.0": True,
6538                                        "v6.4.1": True,
6539                                        "v6.2.0": True,
6540                                        "v6.2.3": True,
6541                                        "v6.2.5": True,
6542                                        "v6.2.7": True,
6543                                        "v6.0.11": True
6544                                    }
6545                                },
6546                                {
6547                                    "value": "req-filename",
6548                                    "revisions": {
6549                                        "v6.0.0": True,
6550                                        "v7.0.0": True,
6551                                        "v6.0.5": True,
6552                                        "v6.4.4": True,
6553                                        "v6.4.0": True,
6554                                        "v6.4.1": True,
6555                                        "v6.2.0": True,
6556                                        "v6.2.3": True,
6557                                        "v6.2.5": True,
6558                                        "v6.2.7": True,
6559                                        "v6.0.11": True
6560                                    }
6561                                },
6562                                {
6563                                    "value": "req-header",
6564                                    "revisions": {
6565                                        "v6.0.0": True,
6566                                        "v7.0.0": True,
6567                                        "v6.0.5": True,
6568                                        "v6.4.4": True,
6569                                        "v6.4.0": True,
6570                                        "v6.4.1": True,
6571                                        "v6.2.0": True,
6572                                        "v6.2.3": True,
6573                                        "v6.2.5": True,
6574                                        "v6.2.7": True,
6575                                        "v6.0.11": True
6576                                    }
6577                                },
6578                                {
6579                                    "value": "req-header-name",
6580                                    "revisions": {
6581                                        "v6.0.0": True,
6582                                        "v7.0.0": True,
6583                                        "v6.0.5": True,
6584                                        "v6.4.4": True,
6585                                        "v6.4.0": True,
6586                                        "v6.4.1": True,
6587                                        "v6.2.0": True,
6588                                        "v6.2.3": True,
6589                                        "v6.2.5": True,
6590                                        "v6.2.7": True,
6591                                        "v6.0.11": True
6592                                    }
6593                                },
6594                                {
6595                                    "value": "req-raw-uri",
6596                                    "revisions": {
6597                                        "v6.0.0": True,
6598                                        "v7.0.0": True,
6599                                        "v6.0.5": True,
6600                                        "v6.4.4": True,
6601                                        "v6.4.0": True,
6602                                        "v6.4.1": True,
6603                                        "v6.2.0": True,
6604                                        "v6.2.3": True,
6605                                        "v6.2.5": True,
6606                                        "v6.2.7": True,
6607                                        "v6.0.11": True
6608                                    }
6609                                },
6610                                {
6611                                    "value": "req-uri",
6612                                    "revisions": {
6613                                        "v6.0.0": True,
6614                                        "v7.0.0": True,
6615                                        "v6.0.5": True,
6616                                        "v6.4.4": True,
6617                                        "v6.4.0": True,
6618                                        "v6.4.1": True,
6619                                        "v6.2.0": True,
6620                                        "v6.2.3": True,
6621                                        "v6.2.5": True,
6622                                        "v6.2.7": True,
6623                                        "v6.0.11": True
6624                                    }
6625                                },
6626                                {
6627                                    "value": "resp-body",
6628                                    "revisions": {
6629                                        "v6.0.0": True,
6630                                        "v7.0.0": True,
6631                                        "v6.0.5": True,
6632                                        "v6.4.4": True,
6633                                        "v6.4.0": True,
6634                                        "v6.4.1": True,
6635                                        "v6.2.0": True,
6636                                        "v6.2.3": True,
6637                                        "v6.2.5": True,
6638                                        "v6.2.7": True,
6639                                        "v6.0.11": True
6640                                    }
6641                                },
6642                                {
6643                                    "value": "resp-hdr",
6644                                    "revisions": {
6645                                        "v6.0.0": True,
6646                                        "v7.0.0": True,
6647                                        "v6.0.5": True,
6648                                        "v6.4.4": True,
6649                                        "v6.4.0": True,
6650                                        "v6.4.1": True,
6651                                        "v6.2.0": True,
6652                                        "v6.2.3": True,
6653                                        "v6.2.5": True,
6654                                        "v6.2.7": True,
6655                                        "v6.0.11": True
6656                                    }
6657                                },
6658                                {
6659                                    "value": "resp-status",
6660                                    "revisions": {
6661                                        "v6.0.0": True,
6662                                        "v7.0.0": True,
6663                                        "v6.0.5": True,
6664                                        "v6.4.4": True,
6665                                        "v6.4.0": True,
6666                                        "v6.4.1": True,
6667                                        "v6.2.0": True,
6668                                        "v6.2.3": True,
6669                                        "v6.2.5": True,
6670                                        "v6.2.7": True,
6671                                        "v6.0.11": True
6672                                    }
6673                                }
6674                            ],
6675                            "revisions": {
6676                                "v6.0.0": True,
6677                                "v7.0.0": True,
6678                                "v6.0.5": True,
6679                                "v6.4.4": True,
6680                                "v6.4.0": True,
6681                                "v6.4.1": True,
6682                                "v6.2.0": True,
6683                                "v6.2.3": True,
6684                                "v6.2.5": True,
6685                                "v6.2.7": True,
6686                                "v6.0.11": True
6687                            }
6688                        },
6689                        "action": {
6690                            "type": "string",
6691                            "options": [
6692                                {
6693                                    "value": "allow",
6694                                    "revisions": {
6695                                        "v6.0.0": True,
6696                                        "v7.0.0": True,
6697                                        "v6.0.5": True,
6698                                        "v6.4.4": True,
6699                                        "v6.4.0": True,
6700                                        "v6.4.1": True,
6701                                        "v6.2.0": True,
6702                                        "v6.2.3": True,
6703                                        "v6.2.5": True,
6704                                        "v6.2.7": True,
6705                                        "v6.0.11": True
6706                                    }
6707                                },
6708                                {
6709                                    "value": "block",
6710                                    "revisions": {
6711                                        "v6.0.0": True,
6712                                        "v7.0.0": True,
6713                                        "v6.0.5": True,
6714                                        "v6.4.4": True,
6715                                        "v6.4.0": True,
6716                                        "v6.4.1": True,
6717                                        "v6.2.0": True,
6718                                        "v6.2.3": True,
6719                                        "v6.2.5": True,
6720                                        "v6.2.7": True,
6721                                        "v6.0.11": True
6722                                    }
6723                                },
6724                                {
6725                                    "value": "erase",
6726                                    "revisions": {
6727                                        "v6.0.0": True,
6728                                        "v7.0.0": True,
6729                                        "v6.0.5": True,
6730                                        "v6.4.4": True,
6731                                        "v6.4.0": True,
6732                                        "v6.4.1": True,
6733                                        "v6.2.0": True,
6734                                        "v6.2.3": True,
6735                                        "v6.2.5": True,
6736                                        "v6.2.7": True,
6737                                        "v6.0.11": True
6738                                    }
6739                                }
6740                            ],
6741                            "revisions": {
6742                                "v6.0.0": True,
6743                                "v7.0.0": True,
6744                                "v6.0.5": True,
6745                                "v6.4.4": True,
6746                                "v6.4.0": True,
6747                                "v6.4.1": True,
6748                                "v6.2.0": True,
6749                                "v6.2.3": True,
6750                                "v6.2.5": True,
6751                                "v6.2.7": True,
6752                                "v6.0.11": True
6753                            }
6754                        },
6755                        "severity": {
6756                            "type": "string",
6757                            "options": [
6758                                {
6759                                    "value": "high",
6760                                    "revisions": {
6761                                        "v6.0.0": True,
6762                                        "v7.0.0": True,
6763                                        "v6.0.5": True,
6764                                        "v6.4.4": True,
6765                                        "v6.4.0": True,
6766                                        "v6.4.1": True,
6767                                        "v6.2.0": True,
6768                                        "v6.2.3": True,
6769                                        "v6.2.5": True,
6770                                        "v6.2.7": True,
6771                                        "v6.0.11": True
6772                                    }
6773                                },
6774                                {
6775                                    "value": "medium",
6776                                    "revisions": {
6777                                        "v6.0.0": True,
6778                                        "v7.0.0": True,
6779                                        "v6.0.5": True,
6780                                        "v6.4.4": True,
6781                                        "v6.4.0": True,
6782                                        "v6.4.1": True,
6783                                        "v6.2.0": True,
6784                                        "v6.2.3": True,
6785                                        "v6.2.5": True,
6786                                        "v6.2.7": True,
6787                                        "v6.0.11": True
6788                                    }
6789                                },
6790                                {
6791                                    "value": "low",
6792                                    "revisions": {
6793                                        "v6.0.0": True,
6794                                        "v7.0.0": True,
6795                                        "v6.0.5": True,
6796                                        "v6.4.4": True,
6797                                        "v6.4.0": True,
6798                                        "v6.4.1": True,
6799                                        "v6.2.0": True,
6800                                        "v6.2.3": True,
6801                                        "v6.2.5": True,
6802                                        "v6.2.7": True,
6803                                        "v6.0.11": True
6804                                    }
6805                                }
6806                            ],
6807                            "revisions": {
6808                                "v6.0.0": True,
6809                                "v7.0.0": True,
6810                                "v6.0.5": True,
6811                                "v6.4.4": True,
6812                                "v6.4.0": True,
6813                                "v6.4.1": True,
6814                                "v6.2.0": True,
6815                                "v6.2.3": True,
6816                                "v6.2.5": True,
6817                                "v6.2.7": True,
6818                                "v6.0.11": True
6819                            }
6820                        }
6821                    },
6822                    "revisions": {
6823                        "v6.0.0": True,
6824                        "v7.0.0": True,
6825                        "v6.0.5": True,
6826                        "v6.4.4": True,
6827                        "v6.4.0": True,
6828                        "v6.4.1": True,
6829                        "v6.2.0": True,
6830                        "v6.2.3": True,
6831                        "v6.2.5": True,
6832                        "v6.2.7": True,
6833                        "v6.0.11": True
6834                    }
6835                },
6836                "disabled_signature": {
6837                    "type": "list",
6838                    "children": {
6839                        "id": {
6840                            "type": "integer",
6841                            "revisions": {
6842                                "v6.0.0": True,
6843                                "v7.0.0": True,
6844                                "v6.0.5": True,
6845                                "v6.4.4": True,
6846                                "v6.4.0": True,
6847                                "v6.4.1": True,
6848                                "v6.2.0": True,
6849                                "v6.2.3": True,
6850                                "v6.2.5": True,
6851                                "v6.2.7": True,
6852                                "v6.0.11": True
6853                            }
6854                        }
6855                    },
6856                    "revisions": {
6857                        "v6.0.0": True,
6858                        "v7.0.0": True,
6859                        "v6.0.5": True,
6860                        "v6.4.4": True,
6861                        "v6.4.0": True,
6862                        "v6.4.1": True,
6863                        "v6.2.0": True,
6864                        "v6.2.3": True,
6865                        "v6.2.5": True,
6866                        "v6.2.7": True,
6867                        "v6.0.11": True
6868                    }
6869                },
6870                "credit_card_detection_threshold": {
6871                    "type": "integer",
6872                    "revisions": {
6873                        "v6.0.0": True,
6874                        "v7.0.0": True,
6875                        "v6.0.5": True,
6876                        "v6.4.4": True,
6877                        "v6.4.0": True,
6878                        "v6.4.1": True,
6879                        "v6.2.0": True,
6880                        "v6.2.3": True,
6881                        "v6.2.5": True,
6882                        "v6.2.7": True,
6883                        "v6.0.11": True
6884                    }
6885                }
6886            },
6887            "revisions": {
6888                "v6.0.0": True,
6889                "v7.0.0": True,
6890                "v6.0.5": True,
6891                "v6.4.4": True,
6892                "v6.4.0": True,
6893                "v6.4.1": True,
6894                "v6.2.0": True,
6895                "v6.2.3": True,
6896                "v6.2.5": True,
6897                "v6.2.7": True,
6898                "v6.0.11": True
6899            }
6900        },
6901        "method": {
6902            "type": "dict",
6903            "children": {
6904                "status": {
6905                    "type": "string",
6906                    "options": [
6907                        {
6908                            "value": "enable",
6909                            "revisions": {
6910                                "v6.0.0": True,
6911                                "v7.0.0": True,
6912                                "v6.0.5": True,
6913                                "v6.4.4": True,
6914                                "v6.4.0": True,
6915                                "v6.4.1": True,
6916                                "v6.2.0": True,
6917                                "v6.2.3": True,
6918                                "v6.2.5": True,
6919                                "v6.2.7": True,
6920                                "v6.0.11": True
6921                            }
6922                        },
6923                        {
6924                            "value": "disable",
6925                            "revisions": {
6926                                "v6.0.0": True,
6927                                "v7.0.0": True,
6928                                "v6.0.5": True,
6929                                "v6.4.4": True,
6930                                "v6.4.0": True,
6931                                "v6.4.1": True,
6932                                "v6.2.0": True,
6933                                "v6.2.3": True,
6934                                "v6.2.5": True,
6935                                "v6.2.7": True,
6936                                "v6.0.11": True
6937                            }
6938                        }
6939                    ],
6940                    "revisions": {
6941                        "v6.0.0": True,
6942                        "v7.0.0": True,
6943                        "v6.0.5": True,
6944                        "v6.4.4": True,
6945                        "v6.4.0": True,
6946                        "v6.4.1": True,
6947                        "v6.2.0": True,
6948                        "v6.2.3": True,
6949                        "v6.2.5": True,
6950                        "v6.2.7": True,
6951                        "v6.0.11": True
6952                    }
6953                },
6954                "method_policy": {
6955                    "type": "list",
6956                    "children": {
6957                        "regex": {
6958                            "type": "string",
6959                            "options": [
6960                                {
6961                                    "value": "enable",
6962                                    "revisions": {
6963                                        "v6.0.0": True,
6964                                        "v7.0.0": True,
6965                                        "v6.0.5": True,
6966                                        "v6.4.4": True,
6967                                        "v6.4.0": True,
6968                                        "v6.4.1": True,
6969                                        "v6.2.0": True,
6970                                        "v6.2.3": True,
6971                                        "v6.2.5": True,
6972                                        "v6.2.7": True,
6973                                        "v6.0.11": True
6974                                    }
6975                                },
6976                                {
6977                                    "value": "disable",
6978                                    "revisions": {
6979                                        "v6.0.0": True,
6980                                        "v7.0.0": True,
6981                                        "v6.0.5": True,
6982                                        "v6.4.4": True,
6983                                        "v6.4.0": True,
6984                                        "v6.4.1": True,
6985                                        "v6.2.0": True,
6986                                        "v6.2.3": True,
6987                                        "v6.2.5": True,
6988                                        "v6.2.7": True,
6989                                        "v6.0.11": True
6990                                    }
6991                                }
6992                            ],
6993                            "revisions": {
6994                                "v6.0.0": True,
6995                                "v7.0.0": True,
6996                                "v6.0.5": True,
6997                                "v6.4.4": True,
6998                                "v6.4.0": True,
6999                                "v6.4.1": True,
7000                                "v6.2.0": True,
7001                                "v6.2.3": True,
7002                                "v6.2.5": True,
7003                                "v6.2.7": True,
7004                                "v6.0.11": True
7005                            }
7006                        },
7007                        "pattern": {
7008                            "type": "string",
7009                            "revisions": {
7010                                "v6.0.0": True,
7011                                "v7.0.0": True,
7012                                "v6.0.5": True,
7013                                "v6.4.4": True,
7014                                "v6.4.0": True,
7015                                "v6.4.1": True,
7016                                "v6.2.0": True,
7017                                "v6.2.3": True,
7018                                "v6.2.5": True,
7019                                "v6.2.7": True,
7020                                "v6.0.11": True
7021                            }
7022                        },
7023                        "allowed_methods": {
7024                            "multiple_values": True,
7025                            "type": "list",
7026                            "options": [
7027                                {
7028                                    "value": "get",
7029                                    "revisions": {
7030                                        "v6.0.0": True,
7031                                        "v7.0.0": True,
7032                                        "v6.0.5": True,
7033                                        "v6.4.4": True,
7034                                        "v6.4.0": True,
7035                                        "v6.4.1": True,
7036                                        "v6.2.0": True,
7037                                        "v6.2.3": True,
7038                                        "v6.2.5": True,
7039                                        "v6.2.7": True,
7040                                        "v6.0.11": True
7041                                    }
7042                                },
7043                                {
7044                                    "value": "post",
7045                                    "revisions": {
7046                                        "v6.0.0": True,
7047                                        "v7.0.0": True,
7048                                        "v6.0.5": True,
7049                                        "v6.4.4": True,
7050                                        "v6.4.0": True,
7051                                        "v6.4.1": True,
7052                                        "v6.2.0": True,
7053                                        "v6.2.3": True,
7054                                        "v6.2.5": True,
7055                                        "v6.2.7": True,
7056                                        "v6.0.11": True
7057                                    }
7058                                },
7059                                {
7060                                    "value": "put",
7061                                    "revisions": {
7062                                        "v6.0.0": True,
7063                                        "v7.0.0": True,
7064                                        "v6.0.5": True,
7065                                        "v6.4.4": True,
7066                                        "v6.4.0": True,
7067                                        "v6.4.1": True,
7068                                        "v6.2.0": True,
7069                                        "v6.2.3": True,
7070                                        "v6.2.5": True,
7071                                        "v6.2.7": True,
7072                                        "v6.0.11": True
7073                                    }
7074                                },
7075                                {
7076                                    "value": "head",
7077                                    "revisions": {
7078                                        "v6.0.0": True,
7079                                        "v7.0.0": True,
7080                                        "v6.0.5": True,
7081                                        "v6.4.4": True,
7082                                        "v6.4.0": True,
7083                                        "v6.4.1": True,
7084                                        "v6.2.0": True,
7085                                        "v6.2.3": True,
7086                                        "v6.2.5": True,
7087                                        "v6.2.7": True,
7088                                        "v6.0.11": True
7089                                    }
7090                                },
7091                                {
7092                                    "value": "connect",
7093                                    "revisions": {
7094                                        "v6.0.0": True,
7095                                        "v7.0.0": True,
7096                                        "v6.0.5": True,
7097                                        "v6.4.4": True,
7098                                        "v6.4.0": True,
7099                                        "v6.4.1": True,
7100                                        "v6.2.0": True,
7101                                        "v6.2.3": True,
7102                                        "v6.2.5": True,
7103                                        "v6.2.7": True,
7104                                        "v6.0.11": True
7105                                    }
7106                                },
7107                                {
7108                                    "value": "trace",
7109                                    "revisions": {
7110                                        "v6.0.0": True,
7111                                        "v7.0.0": True,
7112                                        "v6.0.5": True,
7113                                        "v6.4.4": True,
7114                                        "v6.4.0": True,
7115                                        "v6.4.1": True,
7116                                        "v6.2.0": True,
7117                                        "v6.2.3": True,
7118                                        "v6.2.5": True,
7119                                        "v6.2.7": True,
7120                                        "v6.0.11": True
7121                                    }
7122                                },
7123                                {
7124                                    "value": "options",
7125                                    "revisions": {
7126                                        "v6.0.0": True,
7127                                        "v7.0.0": True,
7128                                        "v6.0.5": True,
7129                                        "v6.4.4": True,
7130                                        "v6.4.0": True,
7131                                        "v6.4.1": True,
7132                                        "v6.2.0": True,
7133                                        "v6.2.3": True,
7134                                        "v6.2.5": True,
7135                                        "v6.2.7": True,
7136                                        "v6.0.11": True
7137                                    }
7138                                },
7139                                {
7140                                    "value": "delete",
7141                                    "revisions": {
7142                                        "v6.0.0": True,
7143                                        "v7.0.0": True,
7144                                        "v6.0.5": True,
7145                                        "v6.4.4": True,
7146                                        "v6.4.0": True,
7147                                        "v6.4.1": True,
7148                                        "v6.2.0": True,
7149                                        "v6.2.3": True,
7150                                        "v6.2.5": True,
7151                                        "v6.2.7": True,
7152                                        "v6.0.11": True
7153                                    }
7154                                },
7155                                {
7156                                    "value": "others",
7157                                    "revisions": {
7158                                        "v6.0.0": True,
7159                                        "v7.0.0": True,
7160                                        "v6.0.5": True,
7161                                        "v6.4.4": True,
7162                                        "v6.4.0": True,
7163                                        "v6.4.1": True,
7164                                        "v6.2.0": True,
7165                                        "v6.2.3": True,
7166                                        "v6.2.5": True,
7167                                        "v6.2.7": True,
7168                                        "v6.0.11": True
7169                                    }
7170                                }
7171                            ],
7172                            "revisions": {
7173                                "v6.0.0": True,
7174                                "v7.0.0": True,
7175                                "v6.0.5": True,
7176                                "v6.4.4": True,
7177                                "v6.4.0": True,
7178                                "v6.4.1": True,
7179                                "v6.2.0": True,
7180                                "v6.2.3": True,
7181                                "v6.2.5": True,
7182                                "v6.2.7": True,
7183                                "v6.0.11": True
7184                            }
7185                        },
7186                        "id": {
7187                            "type": "integer",
7188                            "revisions": {
7189                                "v6.0.0": True,
7190                                "v7.0.0": True,
7191                                "v6.0.5": True,
7192                                "v6.4.4": True,
7193                                "v6.4.0": True,
7194                                "v6.4.1": True,
7195                                "v6.2.0": True,
7196                                "v6.2.3": True,
7197                                "v6.2.5": True,
7198                                "v6.2.7": True,
7199                                "v6.0.11": True
7200                            }
7201                        },
7202                        "address": {
7203                            "type": "string",
7204                            "revisions": {
7205                                "v6.0.0": True,
7206                                "v7.0.0": True,
7207                                "v6.0.5": True,
7208                                "v6.4.4": True,
7209                                "v6.4.0": True,
7210                                "v6.4.1": True,
7211                                "v6.2.0": True,
7212                                "v6.2.3": True,
7213                                "v6.2.5": True,
7214                                "v6.2.7": True,
7215                                "v6.0.11": True
7216                            }
7217                        }
7218                    },
7219                    "revisions": {
7220                        "v6.0.0": True,
7221                        "v7.0.0": True,
7222                        "v6.0.5": True,
7223                        "v6.4.4": True,
7224                        "v6.4.0": True,
7225                        "v6.4.1": True,
7226                        "v6.2.0": True,
7227                        "v6.2.3": True,
7228                        "v6.2.5": True,
7229                        "v6.2.7": True,
7230                        "v6.0.11": True
7231                    }
7232                },
7233                "default_allowed_methods": {
7234                    "multiple_values": True,
7235                    "type": "list",
7236                    "options": [
7237                        {
7238                            "value": "get",
7239                            "revisions": {
7240                                "v6.0.0": True,
7241                                "v7.0.0": True,
7242                                "v6.0.5": True,
7243                                "v6.4.4": True,
7244                                "v6.4.0": True,
7245                                "v6.4.1": True,
7246                                "v6.2.0": True,
7247                                "v6.2.3": True,
7248                                "v6.2.5": True,
7249                                "v6.2.7": True,
7250                                "v6.0.11": True
7251                            }
7252                        },
7253                        {
7254                            "value": "post",
7255                            "revisions": {
7256                                "v6.0.0": True,
7257                                "v7.0.0": True,
7258                                "v6.0.5": True,
7259                                "v6.4.4": True,
7260                                "v6.4.0": True,
7261                                "v6.4.1": True,
7262                                "v6.2.0": True,
7263                                "v6.2.3": True,
7264                                "v6.2.5": True,
7265                                "v6.2.7": True,
7266                                "v6.0.11": True
7267                            }
7268                        },
7269                        {
7270                            "value": "put",
7271                            "revisions": {
7272                                "v6.0.0": True,
7273                                "v7.0.0": True,
7274                                "v6.0.5": True,
7275                                "v6.4.4": True,
7276                                "v6.4.0": True,
7277                                "v6.4.1": True,
7278                                "v6.2.0": True,
7279                                "v6.2.3": True,
7280                                "v6.2.5": True,
7281                                "v6.2.7": True,
7282                                "v6.0.11": True
7283                            }
7284                        },
7285                        {
7286                            "value": "head",
7287                            "revisions": {
7288                                "v6.0.0": True,
7289                                "v7.0.0": True,
7290                                "v6.0.5": True,
7291                                "v6.4.4": True,
7292                                "v6.4.0": True,
7293                                "v6.4.1": True,
7294                                "v6.2.0": True,
7295                                "v6.2.3": True,
7296                                "v6.2.5": True,
7297                                "v6.2.7": True,
7298                                "v6.0.11": True
7299                            }
7300                        },
7301                        {
7302                            "value": "connect",
7303                            "revisions": {
7304                                "v6.0.0": True,
7305                                "v7.0.0": True,
7306                                "v6.0.5": True,
7307                                "v6.4.4": True,
7308                                "v6.4.0": True,
7309                                "v6.4.1": True,
7310                                "v6.2.0": True,
7311                                "v6.2.3": True,
7312                                "v6.2.5": True,
7313                                "v6.2.7": True,
7314                                "v6.0.11": True
7315                            }
7316                        },
7317                        {
7318                            "value": "trace",
7319                            "revisions": {
7320                                "v6.0.0": True,
7321                                "v7.0.0": True,
7322                                "v6.0.5": True,
7323                                "v6.4.4": True,
7324                                "v6.4.0": True,
7325                                "v6.4.1": True,
7326                                "v6.2.0": True,
7327                                "v6.2.3": True,
7328                                "v6.2.5": True,
7329                                "v6.2.7": True,
7330                                "v6.0.11": True
7331                            }
7332                        },
7333                        {
7334                            "value": "options",
7335                            "revisions": {
7336                                "v6.0.0": True,
7337                                "v7.0.0": True,
7338                                "v6.0.5": True,
7339                                "v6.4.4": True,
7340                                "v6.4.0": True,
7341                                "v6.4.1": True,
7342                                "v6.2.0": True,
7343                                "v6.2.3": True,
7344                                "v6.2.5": True,
7345                                "v6.2.7": True,
7346                                "v6.0.11": True
7347                            }
7348                        },
7349                        {
7350                            "value": "delete",
7351                            "revisions": {
7352                                "v6.0.0": True,
7353                                "v7.0.0": True,
7354                                "v6.0.5": True,
7355                                "v6.4.4": True,
7356                                "v6.4.0": True,
7357                                "v6.4.1": True,
7358                                "v6.2.0": True,
7359                                "v6.2.3": True,
7360                                "v6.2.5": True,
7361                                "v6.2.7": True,
7362                                "v6.0.11": True
7363                            }
7364                        },
7365                        {
7366                            "value": "others",
7367                            "revisions": {
7368                                "v6.0.0": True,
7369                                "v7.0.0": True,
7370                                "v6.0.5": True,
7371                                "v6.4.4": True,
7372                                "v6.4.0": True,
7373                                "v6.4.1": True,
7374                                "v6.2.0": True,
7375                                "v6.2.3": True,
7376                                "v6.2.5": True,
7377                                "v6.2.7": True,
7378                                "v6.0.11": True
7379                            }
7380                        }
7381                    ],
7382                    "revisions": {
7383                        "v6.0.0": True,
7384                        "v7.0.0": True,
7385                        "v6.0.5": True,
7386                        "v6.4.4": True,
7387                        "v6.4.0": True,
7388                        "v6.4.1": True,
7389                        "v6.2.0": True,
7390                        "v6.2.3": True,
7391                        "v6.2.5": True,
7392                        "v6.2.7": True,
7393                        "v6.0.11": True
7394                    }
7395                },
7396                "severity": {
7397                    "type": "string",
7398                    "options": [
7399                        {
7400                            "value": "high",
7401                            "revisions": {
7402                                "v6.0.0": True,
7403                                "v7.0.0": True,
7404                                "v6.0.5": True,
7405                                "v6.4.4": True,
7406                                "v6.4.0": True,
7407                                "v6.4.1": True,
7408                                "v6.2.0": True,
7409                                "v6.2.3": True,
7410                                "v6.2.5": True,
7411                                "v6.2.7": True,
7412                                "v6.0.11": True
7413                            }
7414                        },
7415                        {
7416                            "value": "medium",
7417                            "revisions": {
7418                                "v6.0.0": True,
7419                                "v7.0.0": True,
7420                                "v6.0.5": True,
7421                                "v6.4.4": True,
7422                                "v6.4.0": True,
7423                                "v6.4.1": True,
7424                                "v6.2.0": True,
7425                                "v6.2.3": True,
7426                                "v6.2.5": True,
7427                                "v6.2.7": True,
7428                                "v6.0.11": True
7429                            }
7430                        },
7431                        {
7432                            "value": "low",
7433                            "revisions": {
7434                                "v6.0.0": True,
7435                                "v7.0.0": True,
7436                                "v6.0.5": True,
7437                                "v6.4.4": True,
7438                                "v6.4.0": True,
7439                                "v6.4.1": True,
7440                                "v6.2.0": True,
7441                                "v6.2.3": True,
7442                                "v6.2.5": True,
7443                                "v6.2.7": True,
7444                                "v6.0.11": True
7445                            }
7446                        }
7447                    ],
7448                    "revisions": {
7449                        "v6.0.0": True,
7450                        "v7.0.0": True,
7451                        "v6.0.5": True,
7452                        "v6.4.4": True,
7453                        "v6.4.0": True,
7454                        "v6.4.1": True,
7455                        "v6.2.0": True,
7456                        "v6.2.3": True,
7457                        "v6.2.5": True,
7458                        "v6.2.7": True,
7459                        "v6.0.11": True
7460                    }
7461                },
7462                "log": {
7463                    "type": "string",
7464                    "options": [
7465                        {
7466                            "value": "enable",
7467                            "revisions": {
7468                                "v6.0.0": True,
7469                                "v7.0.0": True,
7470                                "v6.0.5": True,
7471                                "v6.4.4": True,
7472                                "v6.4.0": True,
7473                                "v6.4.1": True,
7474                                "v6.2.0": True,
7475                                "v6.2.3": True,
7476                                "v6.2.5": True,
7477                                "v6.2.7": True,
7478                                "v6.0.11": True
7479                            }
7480                        },
7481                        {
7482                            "value": "disable",
7483                            "revisions": {
7484                                "v6.0.0": True,
7485                                "v7.0.0": True,
7486                                "v6.0.5": True,
7487                                "v6.4.4": True,
7488                                "v6.4.0": True,
7489                                "v6.4.1": True,
7490                                "v6.2.0": True,
7491                                "v6.2.3": True,
7492                                "v6.2.5": True,
7493                                "v6.2.7": True,
7494                                "v6.0.11": True
7495                            }
7496                        }
7497                    ],
7498                    "revisions": {
7499                        "v6.0.0": True,
7500                        "v7.0.0": True,
7501                        "v6.0.5": True,
7502                        "v6.4.4": True,
7503                        "v6.4.0": True,
7504                        "v6.4.1": True,
7505                        "v6.2.0": True,
7506                        "v6.2.3": True,
7507                        "v6.2.5": True,
7508                        "v6.2.7": True,
7509                        "v6.0.11": True
7510                    }
7511                }
7512            },
7513            "revisions": {
7514                "v6.0.0": True,
7515                "v7.0.0": True,
7516                "v6.0.5": True,
7517                "v6.4.4": True,
7518                "v6.4.0": True,
7519                "v6.4.1": True,
7520                "v6.2.0": True,
7521                "v6.2.3": True,
7522                "v6.2.5": True,
7523                "v6.2.7": True,
7524                "v6.0.11": True
7525            }
7526        },
7527        "address_list": {
7528            "type": "dict",
7529            "children": {
7530                "status": {
7531                    "type": "string",
7532                    "options": [
7533                        {
7534                            "value": "enable",
7535                            "revisions": {
7536                                "v6.0.0": True,
7537                                "v7.0.0": True,
7538                                "v6.0.5": True,
7539                                "v6.4.4": True,
7540                                "v6.4.0": True,
7541                                "v6.4.1": True,
7542                                "v6.2.0": True,
7543                                "v6.2.3": True,
7544                                "v6.2.5": True,
7545                                "v6.2.7": True,
7546                                "v6.0.11": True
7547                            }
7548                        },
7549                        {
7550                            "value": "disable",
7551                            "revisions": {
7552                                "v6.0.0": True,
7553                                "v7.0.0": True,
7554                                "v6.0.5": True,
7555                                "v6.4.4": True,
7556                                "v6.4.0": True,
7557                                "v6.4.1": True,
7558                                "v6.2.0": True,
7559                                "v6.2.3": True,
7560                                "v6.2.5": True,
7561                                "v6.2.7": True,
7562                                "v6.0.11": True
7563                            }
7564                        }
7565                    ],
7566                    "revisions": {
7567                        "v6.0.0": True,
7568                        "v7.0.0": True,
7569                        "v6.0.5": True,
7570                        "v6.4.4": True,
7571                        "v6.4.0": True,
7572                        "v6.4.1": True,
7573                        "v6.2.0": True,
7574                        "v6.2.3": True,
7575                        "v6.2.5": True,
7576                        "v6.2.7": True,
7577                        "v6.0.11": True
7578                    }
7579                },
7580                "blocked_log": {
7581                    "type": "string",
7582                    "options": [
7583                        {
7584                            "value": "enable",
7585                            "revisions": {
7586                                "v6.0.0": True,
7587                                "v7.0.0": True,
7588                                "v6.0.5": True,
7589                                "v6.4.4": True,
7590                                "v6.4.0": True,
7591                                "v6.4.1": True,
7592                                "v6.2.0": True,
7593                                "v6.2.3": True,
7594                                "v6.2.5": True,
7595                                "v6.2.7": True,
7596                                "v6.0.11": True
7597                            }
7598                        },
7599                        {
7600                            "value": "disable",
7601                            "revisions": {
7602                                "v6.0.0": True,
7603                                "v7.0.0": True,
7604                                "v6.0.5": True,
7605                                "v6.4.4": True,
7606                                "v6.4.0": True,
7607                                "v6.4.1": True,
7608                                "v6.2.0": True,
7609                                "v6.2.3": True,
7610                                "v6.2.5": True,
7611                                "v6.2.7": True,
7612                                "v6.0.11": True
7613                            }
7614                        }
7615                    ],
7616                    "revisions": {
7617                        "v6.0.0": True,
7618                        "v7.0.0": True,
7619                        "v6.0.5": True,
7620                        "v6.4.4": True,
7621                        "v6.4.0": True,
7622                        "v6.4.1": True,
7623                        "v6.2.0": True,
7624                        "v6.2.3": True,
7625                        "v6.2.5": True,
7626                        "v6.2.7": True,
7627                        "v6.0.11": True
7628                    }
7629                },
7630                "trusted_address": {
7631                    "type": "list",
7632                    "children": {
7633                        "name": {
7634                            "type": "string",
7635                            "revisions": {
7636                                "v6.0.0": True,
7637                                "v7.0.0": True,
7638                                "v6.0.5": True,
7639                                "v6.4.4": True,
7640                                "v6.4.0": True,
7641                                "v6.4.1": True,
7642                                "v6.2.0": True,
7643                                "v6.2.3": True,
7644                                "v6.2.5": True,
7645                                "v6.2.7": True,
7646                                "v6.0.11": True
7647                            }
7648                        }
7649                    },
7650                    "revisions": {
7651                        "v6.0.0": True,
7652                        "v7.0.0": True,
7653                        "v6.0.5": True,
7654                        "v6.4.4": True,
7655                        "v6.4.0": True,
7656                        "v6.4.1": True,
7657                        "v6.2.0": True,
7658                        "v6.2.3": True,
7659                        "v6.2.5": True,
7660                        "v6.2.7": True,
7661                        "v6.0.11": True
7662                    }
7663                },
7664                "severity": {
7665                    "type": "string",
7666                    "options": [
7667                        {
7668                            "value": "high",
7669                            "revisions": {
7670                                "v6.0.0": True,
7671                                "v7.0.0": True,
7672                                "v6.0.5": True,
7673                                "v6.4.4": True,
7674                                "v6.4.0": True,
7675                                "v6.4.1": True,
7676                                "v6.2.0": True,
7677                                "v6.2.3": True,
7678                                "v6.2.5": True,
7679                                "v6.2.7": True,
7680                                "v6.0.11": True
7681                            }
7682                        },
7683                        {
7684                            "value": "medium",
7685                            "revisions": {
7686                                "v6.0.0": True,
7687                                "v7.0.0": True,
7688                                "v6.0.5": True,
7689                                "v6.4.4": True,
7690                                "v6.4.0": True,
7691                                "v6.4.1": True,
7692                                "v6.2.0": True,
7693                                "v6.2.3": True,
7694                                "v6.2.5": True,
7695                                "v6.2.7": True,
7696                                "v6.0.11": True
7697                            }
7698                        },
7699                        {
7700                            "value": "low",
7701                            "revisions": {
7702                                "v6.0.0": True,
7703                                "v7.0.0": True,
7704                                "v6.0.5": True,
7705                                "v6.4.4": True,
7706                                "v6.4.0": True,
7707                                "v6.4.1": True,
7708                                "v6.2.0": True,
7709                                "v6.2.3": True,
7710                                "v6.2.5": True,
7711                                "v6.2.7": True,
7712                                "v6.0.11": True
7713                            }
7714                        }
7715                    ],
7716                    "revisions": {
7717                        "v6.0.0": True,
7718                        "v7.0.0": True,
7719                        "v6.0.5": True,
7720                        "v6.4.4": True,
7721                        "v6.4.0": True,
7722                        "v6.4.1": True,
7723                        "v6.2.0": True,
7724                        "v6.2.3": True,
7725                        "v6.2.5": True,
7726                        "v6.2.7": True,
7727                        "v6.0.11": True
7728                    }
7729                },
7730                "blocked_address": {
7731                    "type": "list",
7732                    "children": {
7733                        "name": {
7734                            "type": "string",
7735                            "revisions": {
7736                                "v6.0.0": True,
7737                                "v7.0.0": True,
7738                                "v6.0.5": True,
7739                                "v6.4.4": True,
7740                                "v6.4.0": True,
7741                                "v6.4.1": True,
7742                                "v6.2.0": True,
7743                                "v6.2.3": True,
7744                                "v6.2.5": True,
7745                                "v6.2.7": True,
7746                                "v6.0.11": True
7747                            }
7748                        }
7749                    },
7750                    "revisions": {
7751                        "v6.0.0": True,
7752                        "v7.0.0": True,
7753                        "v6.0.5": True,
7754                        "v6.4.4": True,
7755                        "v6.4.0": True,
7756                        "v6.4.1": True,
7757                        "v6.2.0": True,
7758                        "v6.2.3": True,
7759                        "v6.2.5": True,
7760                        "v6.2.7": True,
7761                        "v6.0.11": True
7762                    }
7763                }
7764            },
7765            "revisions": {
7766                "v6.0.0": True,
7767                "v7.0.0": True,
7768                "v6.0.5": True,
7769                "v6.4.4": True,
7770                "v6.4.0": True,
7771                "v6.4.1": True,
7772                "v6.2.0": True,
7773                "v6.2.3": True,
7774                "v6.2.5": True,
7775                "v6.2.7": True,
7776                "v6.0.11": True
7777            }
7778        }
7779    },
7780    "revisions": {
7781        "v6.0.0": True,
7782        "v7.0.0": True,
7783        "v6.0.5": True,
7784        "v6.4.4": True,
7785        "v6.4.0": True,
7786        "v6.4.1": True,
7787        "v6.2.0": True,
7788        "v6.2.3": True,
7789        "v6.2.5": True,
7790        "v6.2.7": True,
7791        "v6.0.11": True
7792    }
7793}
7794
7795
7796def main():
7797    module_spec = schema_to_module_spec(versioned_schema)
7798    mkeyname = 'name'
7799    fields = {
7800        "access_token": {"required": False, "type": "str", "no_log": True},
7801        "enable_log": {"required": False, "type": bool},
7802        "vdom": {"required": False, "type": "str", "default": "root"},
7803        "state": {"required": True, "type": "str",
7804                  "choices": ["present", "absent"]},
7805        "waf_profile": {
7806            "required": False, "type": "dict", "default": None,
7807            "options": {
7808            }
7809        }
7810    }
7811    for attribute_name in module_spec['options']:
7812        fields["waf_profile"]['options'][attribute_name] = module_spec['options'][attribute_name]
7813        if mkeyname and mkeyname == attribute_name:
7814            fields["waf_profile"]['options'][attribute_name]['required'] = True
7815
7816    check_legacy_fortiosapi()
7817    module = AnsibleModule(argument_spec=fields,
7818                           supports_check_mode=True)
7819
7820    versions_check_result = None
7821    if module._socket_path:
7822        connection = Connection(module._socket_path)
7823        if 'access_token' in module.params:
7824            connection.set_option('access_token', module.params['access_token'])
7825
7826        if 'enable_log' in module.params:
7827            connection.set_option('enable_log', module.params['enable_log'])
7828        else:
7829            connection.set_option('enable_log', False)
7830        fos = FortiOSHandler(connection, module, mkeyname)
7831        versions_check_result = check_schema_versioning(fos, versioned_schema, "waf_profile")
7832
7833        is_error, has_changed, result = fortios_waf(module.params, fos, module.check_mode)
7834
7835    else:
7836        module.fail_json(**FAIL_SOCKET_MSG)
7837
7838    if versions_check_result and versions_check_result['matched'] is False:
7839        module.warn("Ansible has detected version mismatch between FortOS system and your playbook, see more details by specifying option -vvv")
7840
7841    if not is_error:
7842        if versions_check_result and versions_check_result['matched'] is False:
7843            module.exit_json(changed=has_changed, version_check_warning=versions_check_result, meta=result)
7844        else:
7845            module.exit_json(changed=has_changed, meta=result)
7846    else:
7847        if versions_check_result and versions_check_result['matched'] is False:
7848            module.fail_json(msg="Error in repo", version_check_warning=versions_check_result, meta=result)
7849        else:
7850            module.fail_json(msg="Error in repo", meta=result)
7851
7852
7853if __name__ == '__main__':
7854    main()
7855