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_router_isis
27short_description: Configure IS-IS 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 router feature and isis 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    router_isis:
68        description:
69            - Configure IS-IS.
70        default: null
71        type: dict
72        suboptions:
73            adjacency_check:
74                description:
75                    - Enable/disable adjacency check.
76                type: str
77                choices:
78                    - enable
79                    - disable
80            adjacency_check6:
81                description:
82                    - Enable/disable IPv6 adjacency check.
83                type: str
84                choices:
85                    - enable
86                    - disable
87            adv_passive_only:
88                description:
89                    - Enable/disable IS-IS advertisement of passive interfaces only.
90                type: str
91                choices:
92                    - enable
93                    - disable
94            adv_passive_only6:
95                description:
96                    - Enable/disable IPv6 IS-IS advertisement of passive interfaces only.
97                type: str
98                choices:
99                    - enable
100                    - disable
101            auth_keychain_l1:
102                description:
103                    - Authentication key-chain for level 1 PDUs. Source router.key-chain.name.
104                type: str
105            auth_keychain_l2:
106                description:
107                    - Authentication key-chain for level 2 PDUs. Source router.key-chain.name.
108                type: str
109            auth_mode_l1:
110                description:
111                    - Level 1 authentication mode.
112                type: str
113                choices:
114                    - password
115                    - md5
116            auth_mode_l2:
117                description:
118                    - Level 2 authentication mode.
119                type: str
120                choices:
121                    - password
122                    - md5
123            auth_password_l1:
124                description:
125                    - Authentication password for level 1 PDUs.
126                type: str
127            auth_password_l2:
128                description:
129                    - Authentication password for level 2 PDUs.
130                type: str
131            auth_sendonly_l1:
132                description:
133                    - Enable/disable level 1 authentication send-only.
134                type: str
135                choices:
136                    - enable
137                    - disable
138            auth_sendonly_l2:
139                description:
140                    - Enable/disable level 2 authentication send-only.
141                type: str
142                choices:
143                    - enable
144                    - disable
145            default_originate:
146                description:
147                    - Enable/disable distribution of default route information.
148                type: str
149                choices:
150                    - enable
151                    - disable
152            default_originate6:
153                description:
154                    - Enable/disable distribution of default IPv6 route information.
155                type: str
156                choices:
157                    - enable
158                    - disable
159            dynamic_hostname:
160                description:
161                    - Enable/disable dynamic hostname.
162                type: str
163                choices:
164                    - enable
165                    - disable
166            ignore_lsp_errors:
167                description:
168                    - Enable/disable ignoring of LSP errors with bad checksums.
169                type: str
170                choices:
171                    - enable
172                    - disable
173            is_type:
174                description:
175                    - IS type.
176                type: str
177                choices:
178                    - level-1-2
179                    - level-1
180                    - level-2-only
181            isis_interface:
182                description:
183                    - IS-IS interface configuration.
184                type: list
185                suboptions:
186                    auth_keychain_l1:
187                        description:
188                            - Authentication key-chain for level 1 PDUs. Source router.key-chain.name.
189                        type: str
190                    auth_keychain_l2:
191                        description:
192                            - Authentication key-chain for level 2 PDUs. Source router.key-chain.name.
193                        type: str
194                    auth_mode_l1:
195                        description:
196                            - Level 1 authentication mode.
197                        type: str
198                        choices:
199                            - md5
200                            - password
201                    auth_mode_l2:
202                        description:
203                            - Level 2 authentication mode.
204                        type: str
205                        choices:
206                            - md5
207                            - password
208                    auth_password_l1:
209                        description:
210                            - Authentication password for level 1 PDUs.
211                        type: str
212                    auth_password_l2:
213                        description:
214                            - Authentication password for level 2 PDUs.
215                        type: str
216                    auth_send_only_l1:
217                        description:
218                            - Enable/disable authentication send-only for level 1 PDUs.
219                        type: str
220                        choices:
221                            - enable
222                            - disable
223                    auth_send_only_l2:
224                        description:
225                            - Enable/disable authentication send-only for level 2 PDUs.
226                        type: str
227                        choices:
228                            - enable
229                            - disable
230                    circuit_type:
231                        description:
232                            - IS-IS interface"s circuit type
233                        type: str
234                        choices:
235                            - level-1-2
236                            - level-1
237                            - level-2
238                    csnp_interval_l1:
239                        description:
240                            - Level 1 CSNP interval.
241                        type: int
242                    csnp_interval_l2:
243                        description:
244                            - Level 2 CSNP interval.
245                        type: int
246                    hello_interval_l1:
247                        description:
248                            - Level 1 hello interval.
249                        type: int
250                    hello_interval_l2:
251                        description:
252                            - Level 2 hello interval.
253                        type: int
254                    hello_multiplier_l1:
255                        description:
256                            - Level 1 multiplier for Hello holding time.
257                        type: int
258                    hello_multiplier_l2:
259                        description:
260                            - Level 2 multiplier for Hello holding time.
261                        type: int
262                    hello_padding:
263                        description:
264                            - Enable/disable padding to IS-IS hello packets.
265                        type: str
266                        choices:
267                            - enable
268                            - disable
269                    lsp_interval:
270                        description:
271                            - LSP transmission interval (milliseconds).
272                        type: int
273                    lsp_retransmit_interval:
274                        description:
275                            - LSP retransmission interval (sec).
276                        type: int
277                    mesh_group:
278                        description:
279                            - Enable/disable IS-IS mesh group.
280                        type: str
281                        choices:
282                            - enable
283                            - disable
284                    mesh_group_id:
285                        description:
286                            - 'Mesh group ID <0-4294967295>, 0: mesh-group blocked.'
287                        type: int
288                    metric_l1:
289                        description:
290                            - Level 1 metric for interface.
291                        type: int
292                    metric_l2:
293                        description:
294                            - Level 2 metric for interface.
295                        type: int
296                    name:
297                        description:
298                            - IS-IS interface name. Source system.interface.name.
299                        required: true
300                        type: str
301                    network_type:
302                        description:
303                            - IS-IS interface"s network type
304                        type: str
305                        choices:
306                            - broadcast
307                            - point-to-point
308                            - loopback
309                    priority_l1:
310                        description:
311                            - Level 1 priority.
312                        type: int
313                    priority_l2:
314                        description:
315                            - Level 2 priority.
316                        type: int
317                    status:
318                        description:
319                            - Enable/disable interface for IS-IS.
320                        type: str
321                        choices:
322                            - enable
323                            - disable
324                    status6:
325                        description:
326                            - Enable/disable IPv6 interface for IS-IS.
327                        type: str
328                        choices:
329                            - enable
330                            - disable
331                    wide_metric_l1:
332                        description:
333                            - Level 1 wide metric for interface.
334                        type: int
335                    wide_metric_l2:
336                        description:
337                            - Level 2 wide metric for interface.
338                        type: int
339            isis_net:
340                description:
341                    - IS-IS net configuration.
342                type: list
343                suboptions:
344                    id:
345                        description:
346                            - isis-net ID.
347                        required: true
348                        type: int
349                    net:
350                        description:
351                            - IS-IS net xx.xxxx. ... .xxxx.xx.
352                        type: str
353            lsp_gen_interval_l1:
354                description:
355                    - Minimum interval for level 1 LSP regenerating.
356                type: int
357            lsp_gen_interval_l2:
358                description:
359                    - Minimum interval for level 2 LSP regenerating.
360                type: int
361            lsp_refresh_interval:
362                description:
363                    - LSP refresh time in seconds.
364                type: int
365            max_lsp_lifetime:
366                description:
367                    - Maximum LSP lifetime in seconds.
368                type: int
369            metric_style:
370                description:
371                    - Use old-style (ISO 10589) or new-style packet formats
372                type: str
373                choices:
374                    - narrow
375                    - wide
376                    - transition
377                    - narrow-transition
378                    - narrow-transition-l1
379                    - narrow-transition-l2
380                    - wide-l1
381                    - wide-l2
382                    - wide-transition
383                    - wide-transition-l1
384                    - wide-transition-l2
385                    - transition-l1
386                    - transition-l2
387            overload_bit:
388                description:
389                    - Enable/disable signal other routers not to use us in SPF.
390                type: str
391                choices:
392                    - enable
393                    - disable
394            overload_bit_on_startup:
395                description:
396                    - Overload-bit only temporarily after reboot.
397                type: int
398            overload_bit_suppress:
399                description:
400                    - Suppress overload-bit for the specific prefixes.
401                type: list
402                choices:
403                    - external
404                    - interlevel
405            redistribute:
406                description:
407                    - IS-IS redistribute protocols.
408                type: list
409                suboptions:
410                    level:
411                        description:
412                            - Level.
413                        type: str
414                        choices:
415                            - level-1-2
416                            - level-1
417                            - level-2
418                    metric:
419                        description:
420                            - Metric.
421                        type: int
422                    metric_type:
423                        description:
424                            - Metric type.
425                        type: str
426                        choices:
427                            - external
428                            - internal
429                    protocol:
430                        description:
431                            - Protocol name.
432                        required: true
433                        type: str
434                    routemap:
435                        description:
436                            - Route map name. Source router.route-map.name.
437                        type: str
438                    status:
439                        description:
440                            - Status.
441                        type: str
442                        choices:
443                            - enable
444                            - disable
445            redistribute_l1:
446                description:
447                    - Enable/disable redistribution of level 1 routes into level 2.
448                type: str
449                choices:
450                    - enable
451                    - disable
452            redistribute_l1_list:
453                description:
454                    - Access-list for route redistribution from l1 to l2. Source router.access-list.name.
455                type: str
456            redistribute_l2:
457                description:
458                    - Enable/disable redistribution of level 2 routes into level 1.
459                type: str
460                choices:
461                    - enable
462                    - disable
463            redistribute_l2_list:
464                description:
465                    - Access-list for route redistribution from l2 to l1. Source router.access-list.name.
466                type: str
467            redistribute6:
468                description:
469                    - IS-IS IPv6 redistribution for routing protocols.
470                type: list
471                suboptions:
472                    level:
473                        description:
474                            - Level.
475                        type: str
476                        choices:
477                            - level-1-2
478                            - level-1
479                            - level-2
480                    metric:
481                        description:
482                            - Metric.
483                        type: int
484                    metric_type:
485                        description:
486                            - Metric type.
487                        type: str
488                        choices:
489                            - external
490                            - internal
491                    protocol:
492                        description:
493                            - Protocol name.
494                        required: true
495                        type: str
496                    routemap:
497                        description:
498                            - Route map name. Source router.route-map.name.
499                        type: str
500                    status:
501                        description:
502                            - Enable/disable redistribution.
503                        type: str
504                        choices:
505                            - enable
506                            - disable
507            redistribute6_l1:
508                description:
509                    - Enable/disable redistribution of level 1 IPv6 routes into level 2.
510                type: str
511                choices:
512                    - enable
513                    - disable
514            redistribute6_l1_list:
515                description:
516                    - Access-list for IPv6 route redistribution from l1 to l2. Source router.access-list6.name.
517                type: str
518            redistribute6_l2:
519                description:
520                    - Enable/disable redistribution of level 2 IPv6 routes into level 1.
521                type: str
522                choices:
523                    - enable
524                    - disable
525            redistribute6_l2_list:
526                description:
527                    - Access-list for IPv6 route redistribution from l2 to l1. Source router.access-list6.name.
528                type: str
529            spf_interval_exp_l1:
530                description:
531                    - Level 1 SPF calculation delay.
532                type: str
533            spf_interval_exp_l2:
534                description:
535                    - Level 2 SPF calculation delay.
536                type: str
537            summary_address:
538                description:
539                    - IS-IS summary addresses.
540                type: list
541                suboptions:
542                    id:
543                        description:
544                            - Summary address entry ID.
545                        required: true
546                        type: int
547                    level:
548                        description:
549                            - Level.
550                        type: str
551                        choices:
552                            - level-1-2
553                            - level-1
554                            - level-2
555                    prefix:
556                        description:
557                            - Prefix.
558                        type: str
559            summary_address6:
560                description:
561                    - IS-IS IPv6 summary address.
562                type: list
563                suboptions:
564                    id:
565                        description:
566                            - Prefix entry ID.
567                        required: true
568                        type: int
569                    level:
570                        description:
571                            - Level.
572                        type: str
573                        choices:
574                            - level-1-2
575                            - level-1
576                            - level-2
577                    prefix6:
578                        description:
579                            - IPv6 prefix.
580                        type: str
581'''
582
583EXAMPLES = '''
584- hosts: fortigates
585  collections:
586    - fortinet.fortios
587  connection: httpapi
588  vars:
589   vdom: "root"
590   ansible_httpapi_use_ssl: yes
591   ansible_httpapi_validate_certs: no
592   ansible_httpapi_port: 443
593  tasks:
594  - name: Configure IS-IS.
595    fortios_router_isis:
596      vdom:  "{{ vdom }}"
597      router_isis:
598        adjacency_check: "enable"
599        adjacency_check6: "enable"
600        adv_passive_only: "enable"
601        adv_passive_only6: "enable"
602        auth_keychain_l1: "<your_own_value> (source router.key-chain.name)"
603        auth_keychain_l2: "<your_own_value> (source router.key-chain.name)"
604        auth_mode_l1: "password"
605        auth_mode_l2: "password"
606        auth_password_l1: "<your_own_value>"
607        auth_password_l2: "<your_own_value>"
608        auth_sendonly_l1: "enable"
609        auth_sendonly_l2: "enable"
610        default_originate: "enable"
611        default_originate6: "enable"
612        dynamic_hostname: "enable"
613        ignore_lsp_errors: "enable"
614        is_type: "level-1-2"
615        isis_interface:
616         -
617            auth_keychain_l1: "<your_own_value> (source router.key-chain.name)"
618            auth_keychain_l2: "<your_own_value> (source router.key-chain.name)"
619            auth_mode_l1: "md5"
620            auth_mode_l2: "md5"
621            auth_password_l1: "<your_own_value>"
622            auth_password_l2: "<your_own_value>"
623            auth_send_only_l1: "enable"
624            auth_send_only_l2: "enable"
625            circuit_type: "level-1-2"
626            csnp_interval_l1: "30"
627            csnp_interval_l2: "31"
628            hello_interval_l1: "32"
629            hello_interval_l2: "33"
630            hello_multiplier_l1: "34"
631            hello_multiplier_l2: "35"
632            hello_padding: "enable"
633            lsp_interval: "37"
634            lsp_retransmit_interval: "38"
635            mesh_group: "enable"
636            mesh_group_id: "40"
637            metric_l1: "41"
638            metric_l2: "42"
639            name: "default_name_43 (source system.interface.name)"
640            network_type: "broadcast"
641            priority_l1: "45"
642            priority_l2: "46"
643            status: "enable"
644            status6: "enable"
645            wide_metric_l1: "49"
646            wide_metric_l2: "50"
647        isis_net:
648         -
649            id:  "52"
650            net: "<your_own_value>"
651        lsp_gen_interval_l1: "54"
652        lsp_gen_interval_l2: "55"
653        lsp_refresh_interval: "56"
654        max_lsp_lifetime: "57"
655        metric_style: "narrow"
656        overload_bit: "enable"
657        overload_bit_on_startup: "60"
658        overload_bit_suppress: "external"
659        redistribute:
660         -
661            level: "level-1-2"
662            metric: "64"
663            metric_type: "external"
664            protocol: "<your_own_value>"
665            routemap: "<your_own_value> (source router.route-map.name)"
666            status: "enable"
667        redistribute_l1: "enable"
668        redistribute_l1_list: "<your_own_value> (source router.access-list.name)"
669        redistribute_l2: "enable"
670        redistribute_l2_list: "<your_own_value> (source router.access-list.name)"
671        redistribute6:
672         -
673            level: "level-1-2"
674            metric: "75"
675            metric_type: "external"
676            protocol: "<your_own_value>"
677            routemap: "<your_own_value> (source router.route-map.name)"
678            status: "enable"
679        redistribute6_l1: "enable"
680        redistribute6_l1_list: "<your_own_value> (source router.access-list6.name)"
681        redistribute6_l2: "enable"
682        redistribute6_l2_list: "<your_own_value> (source router.access-list6.name)"
683        spf_interval_exp_l1: "<your_own_value>"
684        spf_interval_exp_l2: "<your_own_value>"
685        summary_address:
686         -
687            id:  "87"
688            level: "level-1-2"
689            prefix: "<your_own_value>"
690        summary_address6:
691         -
692            id:  "91"
693            level: "level-1-2"
694            prefix6: "<your_own_value>"
695
696'''
697
698RETURN = '''
699build:
700  description: Build number of the fortigate image
701  returned: always
702  type: str
703  sample: '1547'
704http_method:
705  description: Last method used to provision the content into FortiGate
706  returned: always
707  type: str
708  sample: 'PUT'
709http_status:
710  description: Last result given by FortiGate on last operation applied
711  returned: always
712  type: str
713  sample: "200"
714mkey:
715  description: Master key (id) used in the last call to FortiGate
716  returned: success
717  type: str
718  sample: "id"
719name:
720  description: Name of the table used to fulfill the request
721  returned: always
722  type: str
723  sample: "urlfilter"
724path:
725  description: Path of the table used to fulfill the request
726  returned: always
727  type: str
728  sample: "webfilter"
729revision:
730  description: Internal revision number
731  returned: always
732  type: str
733  sample: "17.0.2.10658"
734serial:
735  description: Serial number of the unit
736  returned: always
737  type: str
738  sample: "FGVMEVYYQT3AB5352"
739status:
740  description: Indication of the operation's result
741  returned: always
742  type: str
743  sample: "success"
744vdom:
745  description: Virtual domain used
746  returned: always
747  type: str
748  sample: "root"
749version:
750  description: Version of the FortiGate
751  returned: always
752  type: str
753  sample: "v5.6.3"
754
755'''
756from ansible.module_utils.basic import AnsibleModule
757from ansible.module_utils.connection import Connection
758from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import FortiOSHandler
759from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import check_legacy_fortiosapi
760from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import schema_to_module_spec
761from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import check_schema_versioning
762from ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.common import FAIL_SOCKET_MSG
763from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.comparison import is_same_comparison
764from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.comparison import serialize
765
766
767def filter_router_isis_data(json):
768    option_list = ['adjacency_check', 'adjacency_check6', 'adv_passive_only',
769                   'adv_passive_only6', 'auth_keychain_l1', 'auth_keychain_l2',
770                   'auth_mode_l1', 'auth_mode_l2', 'auth_password_l1',
771                   'auth_password_l2', 'auth_sendonly_l1', 'auth_sendonly_l2',
772                   'default_originate', 'default_originate6', 'dynamic_hostname',
773                   'ignore_lsp_errors', 'is_type', 'isis_interface',
774                   'isis_net', 'lsp_gen_interval_l1', 'lsp_gen_interval_l2',
775                   'lsp_refresh_interval', 'max_lsp_lifetime', 'metric_style',
776                   'overload_bit', 'overload_bit_on_startup', 'overload_bit_suppress',
777                   'redistribute', 'redistribute_l1', 'redistribute_l1_list',
778                   'redistribute_l2', 'redistribute_l2_list', 'redistribute6',
779                   'redistribute6_l1', 'redistribute6_l1_list', 'redistribute6_l2',
780                   'redistribute6_l2_list', 'spf_interval_exp_l1', 'spf_interval_exp_l2',
781                   'summary_address', 'summary_address6']
782    dictionary = {}
783
784    for attribute in option_list:
785        if attribute in json and json[attribute] is not None:
786            dictionary[attribute] = json[attribute]
787
788    return dictionary
789
790
791def flatten_single_path(data, path, index):
792    if not data or index == len(path) or path[index] not in data or not data[path[index]]:
793        return
794
795    if index == len(path) - 1:
796        data[path[index]] = ' '.join(str(elem) for elem in data[path[index]])
797    elif isinstance(data[path[index]], list):
798        for value in data[path[index]]:
799            flatten_single_path(value, path, index + 1)
800    else:
801        flatten_single_path(data[path[index]], path, index + 1)
802
803
804def flatten_multilists_attributes(data):
805    multilist_attrs = [[u'overload_bit_suppress']]
806
807    for attr in multilist_attrs:
808        flatten_single_path(data, attr, 0)
809
810    return data
811
812
813def underscore_to_hyphen(data):
814    if isinstance(data, list):
815        for i, elem in enumerate(data):
816            data[i] = underscore_to_hyphen(elem)
817    elif isinstance(data, dict):
818        new_data = {}
819        for k, v in data.items():
820            new_data[k.replace('_', '-')] = underscore_to_hyphen(v)
821        data = new_data
822
823    return data
824
825
826def router_isis(data, fos):
827    vdom = data['vdom']
828    router_isis_data = data['router_isis']
829    router_isis_data = flatten_multilists_attributes(router_isis_data)
830    filtered_data = underscore_to_hyphen(filter_router_isis_data(router_isis_data))
831
832    return fos.set('router',
833                   'isis',
834                   data=filtered_data,
835                   vdom=vdom)
836
837
838def is_successful_status(status):
839    return status['status'] == "success" or \
840        status['http_method'] == "DELETE" and status['http_status'] == 404
841
842
843def fortios_router(data, fos):
844
845    if data['router_isis']:
846        resp = router_isis(data, fos)
847    else:
848        fos._module.fail_json(msg='missing task body: %s' % ('router_isis'))
849
850    return not is_successful_status(resp), \
851        resp['status'] == "success" and \
852        (resp['revision_changed'] if 'revision_changed' in resp else True), \
853        resp
854
855
856versioned_schema = {
857    "type": "dict",
858    "children": {
859        "auth_mode_l2": {
860            "type": "string",
861            "options": [
862                {
863                    "value": "password",
864                    "revisions": {
865                        "v6.0.0": True,
866                        "v7.0.0": True,
867                        "v6.0.5": True,
868                        "v6.4.4": True,
869                        "v6.4.0": True,
870                        "v6.4.1": True,
871                        "v6.2.0": True,
872                        "v6.2.3": True,
873                        "v6.2.5": True,
874                        "v6.2.7": True,
875                        "v6.0.11": True
876                    }
877                },
878                {
879                    "value": "md5",
880                    "revisions": {
881                        "v6.0.0": True,
882                        "v7.0.0": True,
883                        "v6.0.5": True,
884                        "v6.4.4": True,
885                        "v6.4.0": True,
886                        "v6.4.1": True,
887                        "v6.2.0": True,
888                        "v6.2.3": True,
889                        "v6.2.5": True,
890                        "v6.2.7": True,
891                        "v6.0.11": True
892                    }
893                }
894            ],
895            "revisions": {
896                "v6.0.0": True,
897                "v7.0.0": True,
898                "v6.0.5": True,
899                "v6.4.4": True,
900                "v6.4.0": True,
901                "v6.4.1": True,
902                "v6.2.0": True,
903                "v6.2.3": True,
904                "v6.2.5": True,
905                "v6.2.7": True,
906                "v6.0.11": True
907            }
908        },
909        "auth_mode_l1": {
910            "type": "string",
911            "options": [
912                {
913                    "value": "password",
914                    "revisions": {
915                        "v6.0.0": True,
916                        "v7.0.0": True,
917                        "v6.0.5": True,
918                        "v6.4.4": True,
919                        "v6.4.0": True,
920                        "v6.4.1": True,
921                        "v6.2.0": True,
922                        "v6.2.3": True,
923                        "v6.2.5": True,
924                        "v6.2.7": True,
925                        "v6.0.11": True
926                    }
927                },
928                {
929                    "value": "md5",
930                    "revisions": {
931                        "v6.0.0": True,
932                        "v7.0.0": True,
933                        "v6.0.5": True,
934                        "v6.4.4": True,
935                        "v6.4.0": True,
936                        "v6.4.1": True,
937                        "v6.2.0": True,
938                        "v6.2.3": True,
939                        "v6.2.5": True,
940                        "v6.2.7": True,
941                        "v6.0.11": True
942                    }
943                }
944            ],
945            "revisions": {
946                "v6.0.0": True,
947                "v7.0.0": True,
948                "v6.0.5": True,
949                "v6.4.4": True,
950                "v6.4.0": True,
951                "v6.4.1": True,
952                "v6.2.0": True,
953                "v6.2.3": True,
954                "v6.2.5": True,
955                "v6.2.7": True,
956                "v6.0.11": True
957            }
958        },
959        "default_originate": {
960            "type": "string",
961            "options": [
962                {
963                    "value": "enable",
964                    "revisions": {
965                        "v6.0.0": True,
966                        "v7.0.0": True,
967                        "v6.0.5": True,
968                        "v6.4.4": True,
969                        "v6.4.0": True,
970                        "v6.4.1": True,
971                        "v6.2.0": True,
972                        "v6.2.3": True,
973                        "v6.2.5": True,
974                        "v6.2.7": True,
975                        "v6.0.11": True
976                    }
977                },
978                {
979                    "value": "disable",
980                    "revisions": {
981                        "v6.0.0": True,
982                        "v7.0.0": True,
983                        "v6.0.5": True,
984                        "v6.4.4": True,
985                        "v6.4.0": True,
986                        "v6.4.1": True,
987                        "v6.2.0": True,
988                        "v6.2.3": True,
989                        "v6.2.5": True,
990                        "v6.2.7": True,
991                        "v6.0.11": True
992                    }
993                }
994            ],
995            "revisions": {
996                "v6.0.0": True,
997                "v7.0.0": True,
998                "v6.0.5": True,
999                "v6.4.4": True,
1000                "v6.4.0": True,
1001                "v6.4.1": True,
1002                "v6.2.0": True,
1003                "v6.2.3": True,
1004                "v6.2.5": True,
1005                "v6.2.7": True,
1006                "v6.0.11": True
1007            }
1008        },
1009        "metric_style": {
1010            "type": "string",
1011            "options": [
1012                {
1013                    "value": "narrow",
1014                    "revisions": {
1015                        "v6.0.0": True,
1016                        "v7.0.0": True,
1017                        "v6.0.5": True,
1018                        "v6.4.4": True,
1019                        "v6.4.0": True,
1020                        "v6.4.1": True,
1021                        "v6.2.0": True,
1022                        "v6.2.3": True,
1023                        "v6.2.5": True,
1024                        "v6.2.7": True,
1025                        "v6.0.11": True
1026                    }
1027                },
1028                {
1029                    "value": "wide",
1030                    "revisions": {
1031                        "v6.0.0": True,
1032                        "v7.0.0": True,
1033                        "v6.0.5": True,
1034                        "v6.4.4": True,
1035                        "v6.4.0": True,
1036                        "v6.4.1": True,
1037                        "v6.2.0": True,
1038                        "v6.2.3": True,
1039                        "v6.2.5": True,
1040                        "v6.2.7": True,
1041                        "v6.0.11": True
1042                    }
1043                },
1044                {
1045                    "value": "transition",
1046                    "revisions": {
1047                        "v6.0.0": True,
1048                        "v7.0.0": True,
1049                        "v6.0.5": True,
1050                        "v6.4.4": True,
1051                        "v6.4.0": True,
1052                        "v6.4.1": True,
1053                        "v6.2.0": True,
1054                        "v6.2.3": True,
1055                        "v6.2.5": True,
1056                        "v6.2.7": True,
1057                        "v6.0.11": True
1058                    }
1059                },
1060                {
1061                    "value": "narrow-transition",
1062                    "revisions": {
1063                        "v6.0.0": True,
1064                        "v7.0.0": True,
1065                        "v6.0.5": True,
1066                        "v6.4.4": True,
1067                        "v6.4.0": True,
1068                        "v6.4.1": True,
1069                        "v6.2.0": True,
1070                        "v6.2.3": True,
1071                        "v6.2.5": True,
1072                        "v6.2.7": True,
1073                        "v6.0.11": True
1074                    }
1075                },
1076                {
1077                    "value": "narrow-transition-l1",
1078                    "revisions": {
1079                        "v6.0.0": True,
1080                        "v7.0.0": True,
1081                        "v6.0.5": True,
1082                        "v6.4.4": True,
1083                        "v6.4.0": True,
1084                        "v6.4.1": True,
1085                        "v6.2.0": True,
1086                        "v6.2.3": True,
1087                        "v6.2.5": True,
1088                        "v6.2.7": True,
1089                        "v6.0.11": True
1090                    }
1091                },
1092                {
1093                    "value": "narrow-transition-l2",
1094                    "revisions": {
1095                        "v6.0.0": True,
1096                        "v7.0.0": True,
1097                        "v6.0.5": True,
1098                        "v6.4.4": True,
1099                        "v6.4.0": True,
1100                        "v6.4.1": True,
1101                        "v6.2.0": True,
1102                        "v6.2.3": True,
1103                        "v6.2.5": True,
1104                        "v6.2.7": True,
1105                        "v6.0.11": True
1106                    }
1107                },
1108                {
1109                    "value": "wide-l1",
1110                    "revisions": {
1111                        "v6.0.0": True,
1112                        "v7.0.0": True,
1113                        "v6.0.5": True,
1114                        "v6.4.4": True,
1115                        "v6.4.0": True,
1116                        "v6.4.1": True,
1117                        "v6.2.0": True,
1118                        "v6.2.3": True,
1119                        "v6.2.5": True,
1120                        "v6.2.7": True,
1121                        "v6.0.11": True
1122                    }
1123                },
1124                {
1125                    "value": "wide-l2",
1126                    "revisions": {
1127                        "v6.0.0": True,
1128                        "v7.0.0": True,
1129                        "v6.0.5": True,
1130                        "v6.4.4": True,
1131                        "v6.4.0": True,
1132                        "v6.4.1": True,
1133                        "v6.2.0": True,
1134                        "v6.2.3": True,
1135                        "v6.2.5": True,
1136                        "v6.2.7": True,
1137                        "v6.0.11": True
1138                    }
1139                },
1140                {
1141                    "value": "wide-transition",
1142                    "revisions": {
1143                        "v6.0.0": True,
1144                        "v7.0.0": True,
1145                        "v6.0.5": True,
1146                        "v6.4.4": True,
1147                        "v6.4.0": True,
1148                        "v6.4.1": True,
1149                        "v6.2.0": True,
1150                        "v6.2.3": True,
1151                        "v6.2.5": True,
1152                        "v6.2.7": True,
1153                        "v6.0.11": True
1154                    }
1155                },
1156                {
1157                    "value": "wide-transition-l1",
1158                    "revisions": {
1159                        "v6.0.0": True,
1160                        "v7.0.0": True,
1161                        "v6.0.5": True,
1162                        "v6.4.4": True,
1163                        "v6.4.0": True,
1164                        "v6.4.1": True,
1165                        "v6.2.0": True,
1166                        "v6.2.3": True,
1167                        "v6.2.5": True,
1168                        "v6.2.7": True,
1169                        "v6.0.11": True
1170                    }
1171                },
1172                {
1173                    "value": "wide-transition-l2",
1174                    "revisions": {
1175                        "v6.0.0": True,
1176                        "v7.0.0": True,
1177                        "v6.0.5": True,
1178                        "v6.4.4": True,
1179                        "v6.4.0": True,
1180                        "v6.4.1": True,
1181                        "v6.2.0": True,
1182                        "v6.2.3": True,
1183                        "v6.2.5": True,
1184                        "v6.2.7": True,
1185                        "v6.0.11": True
1186                    }
1187                },
1188                {
1189                    "value": "transition-l1",
1190                    "revisions": {
1191                        "v6.0.0": True,
1192                        "v7.0.0": True,
1193                        "v6.0.5": True,
1194                        "v6.4.4": True,
1195                        "v6.4.0": True,
1196                        "v6.4.1": True,
1197                        "v6.2.0": True,
1198                        "v6.2.3": True,
1199                        "v6.2.5": True,
1200                        "v6.2.7": True,
1201                        "v6.0.11": True
1202                    }
1203                },
1204                {
1205                    "value": "transition-l2",
1206                    "revisions": {
1207                        "v6.0.0": True,
1208                        "v7.0.0": True,
1209                        "v6.0.5": True,
1210                        "v6.4.4": True,
1211                        "v6.4.0": True,
1212                        "v6.4.1": True,
1213                        "v6.2.0": True,
1214                        "v6.2.3": True,
1215                        "v6.2.5": True,
1216                        "v6.2.7": True,
1217                        "v6.0.11": True
1218                    }
1219                }
1220            ],
1221            "revisions": {
1222                "v6.0.0": True,
1223                "v7.0.0": True,
1224                "v6.0.5": True,
1225                "v6.4.4": True,
1226                "v6.4.0": True,
1227                "v6.4.1": True,
1228                "v6.2.0": True,
1229                "v6.2.3": True,
1230                "v6.2.5": True,
1231                "v6.2.7": True,
1232                "v6.0.11": True
1233            }
1234        },
1235        "lsp_gen_interval_l2": {
1236            "type": "integer",
1237            "revisions": {
1238                "v6.0.0": True,
1239                "v7.0.0": True,
1240                "v6.0.5": True,
1241                "v6.4.4": True,
1242                "v6.4.0": True,
1243                "v6.4.1": True,
1244                "v6.2.0": True,
1245                "v6.2.3": True,
1246                "v6.2.5": True,
1247                "v6.2.7": True,
1248                "v6.0.11": True
1249            }
1250        },
1251        "auth_sendonly_l1": {
1252            "type": "string",
1253            "options": [
1254                {
1255                    "value": "enable",
1256                    "revisions": {
1257                        "v6.0.0": True,
1258                        "v7.0.0": True,
1259                        "v6.0.5": True,
1260                        "v6.4.4": True,
1261                        "v6.4.0": True,
1262                        "v6.4.1": True,
1263                        "v6.2.0": True,
1264                        "v6.2.3": True,
1265                        "v6.2.5": True,
1266                        "v6.2.7": True,
1267                        "v6.0.11": True
1268                    }
1269                },
1270                {
1271                    "value": "disable",
1272                    "revisions": {
1273                        "v6.0.0": True,
1274                        "v7.0.0": True,
1275                        "v6.0.5": True,
1276                        "v6.4.4": True,
1277                        "v6.4.0": True,
1278                        "v6.4.1": True,
1279                        "v6.2.0": True,
1280                        "v6.2.3": True,
1281                        "v6.2.5": True,
1282                        "v6.2.7": True,
1283                        "v6.0.11": True
1284                    }
1285                }
1286            ],
1287            "revisions": {
1288                "v6.0.0": True,
1289                "v7.0.0": True,
1290                "v6.0.5": True,
1291                "v6.4.4": True,
1292                "v6.4.0": True,
1293                "v6.4.1": True,
1294                "v6.2.0": True,
1295                "v6.2.3": True,
1296                "v6.2.5": True,
1297                "v6.2.7": True,
1298                "v6.0.11": True
1299            }
1300        },
1301        "auth_password_l1": {
1302            "type": "string",
1303            "revisions": {
1304                "v6.0.0": True,
1305                "v7.0.0": True,
1306                "v6.0.5": True,
1307                "v6.4.4": True,
1308                "v6.4.0": True,
1309                "v6.4.1": True,
1310                "v6.2.0": True,
1311                "v6.2.3": True,
1312                "v6.2.5": True,
1313                "v6.2.7": True,
1314                "v6.0.11": True
1315            }
1316        },
1317        "auth_password_l2": {
1318            "type": "string",
1319            "revisions": {
1320                "v6.0.0": True,
1321                "v7.0.0": True,
1322                "v6.0.5": True,
1323                "v6.4.4": True,
1324                "v6.4.0": True,
1325                "v6.4.1": True,
1326                "v6.2.0": True,
1327                "v6.2.3": True,
1328                "v6.2.5": True,
1329                "v6.2.7": True,
1330                "v6.0.11": True
1331            }
1332        },
1333        "default_originate6": {
1334            "type": "string",
1335            "options": [
1336                {
1337                    "value": "enable",
1338                    "revisions": {
1339                        "v6.0.0": True,
1340                        "v7.0.0": True,
1341                        "v6.0.5": True,
1342                        "v6.4.4": True,
1343                        "v6.4.0": True,
1344                        "v6.4.1": True,
1345                        "v6.2.0": True,
1346                        "v6.2.3": True,
1347                        "v6.2.5": True,
1348                        "v6.2.7": True,
1349                        "v6.0.11": True
1350                    }
1351                },
1352                {
1353                    "value": "disable",
1354                    "revisions": {
1355                        "v6.0.0": True,
1356                        "v7.0.0": True,
1357                        "v6.0.5": True,
1358                        "v6.4.4": True,
1359                        "v6.4.0": True,
1360                        "v6.4.1": True,
1361                        "v6.2.0": True,
1362                        "v6.2.3": True,
1363                        "v6.2.5": True,
1364                        "v6.2.7": True,
1365                        "v6.0.11": True
1366                    }
1367                }
1368            ],
1369            "revisions": {
1370                "v6.0.0": True,
1371                "v7.0.0": True,
1372                "v6.0.5": True,
1373                "v6.4.4": True,
1374                "v6.4.0": True,
1375                "v6.4.1": True,
1376                "v6.2.0": True,
1377                "v6.2.3": True,
1378                "v6.2.5": True,
1379                "v6.2.7": True,
1380                "v6.0.11": True
1381            }
1382        },
1383        "auth_sendonly_l2": {
1384            "type": "string",
1385            "options": [
1386                {
1387                    "value": "enable",
1388                    "revisions": {
1389                        "v6.0.0": True,
1390                        "v7.0.0": True,
1391                        "v6.0.5": True,
1392                        "v6.4.4": True,
1393                        "v6.4.0": True,
1394                        "v6.4.1": True,
1395                        "v6.2.0": True,
1396                        "v6.2.3": True,
1397                        "v6.2.5": True,
1398                        "v6.2.7": True,
1399                        "v6.0.11": True
1400                    }
1401                },
1402                {
1403                    "value": "disable",
1404                    "revisions": {
1405                        "v6.0.0": True,
1406                        "v7.0.0": True,
1407                        "v6.0.5": True,
1408                        "v6.4.4": True,
1409                        "v6.4.0": True,
1410                        "v6.4.1": True,
1411                        "v6.2.0": True,
1412                        "v6.2.3": True,
1413                        "v6.2.5": True,
1414                        "v6.2.7": True,
1415                        "v6.0.11": True
1416                    }
1417                }
1418            ],
1419            "revisions": {
1420                "v6.0.0": True,
1421                "v7.0.0": True,
1422                "v6.0.5": True,
1423                "v6.4.4": True,
1424                "v6.4.0": True,
1425                "v6.4.1": True,
1426                "v6.2.0": True,
1427                "v6.2.3": True,
1428                "v6.2.5": True,
1429                "v6.2.7": True,
1430                "v6.0.11": True
1431            }
1432        },
1433        "overload_bit_suppress": {
1434            "multiple_values": True,
1435            "type": "list",
1436            "options": [
1437                {
1438                    "value": "external",
1439                    "revisions": {
1440                        "v6.0.0": True,
1441                        "v7.0.0": True,
1442                        "v6.0.5": True,
1443                        "v6.4.4": True,
1444                        "v6.4.0": True,
1445                        "v6.4.1": True,
1446                        "v6.2.0": True,
1447                        "v6.2.3": True,
1448                        "v6.2.5": True,
1449                        "v6.2.7": True,
1450                        "v6.0.11": True
1451                    }
1452                },
1453                {
1454                    "value": "interlevel",
1455                    "revisions": {
1456                        "v6.0.0": True,
1457                        "v7.0.0": True,
1458                        "v6.0.5": True,
1459                        "v6.4.4": True,
1460                        "v6.4.0": True,
1461                        "v6.4.1": True,
1462                        "v6.2.0": True,
1463                        "v6.2.3": True,
1464                        "v6.2.5": True,
1465                        "v6.2.7": True,
1466                        "v6.0.11": True
1467                    }
1468                }
1469            ],
1470            "revisions": {
1471                "v6.0.0": True,
1472                "v7.0.0": True,
1473                "v6.0.5": True,
1474                "v6.4.4": True,
1475                "v6.4.0": True,
1476                "v6.4.1": True,
1477                "v6.2.0": True,
1478                "v6.2.3": True,
1479                "v6.2.5": True,
1480                "v6.2.7": True,
1481                "v6.0.11": True
1482            }
1483        },
1484        "max_lsp_lifetime": {
1485            "type": "integer",
1486            "revisions": {
1487                "v6.0.0": True,
1488                "v7.0.0": True,
1489                "v6.0.5": True,
1490                "v6.4.4": True,
1491                "v6.4.0": True,
1492                "v6.4.1": True,
1493                "v6.2.0": True,
1494                "v6.2.3": True,
1495                "v6.2.5": True,
1496                "v6.2.7": True,
1497                "v6.0.11": True
1498            }
1499        },
1500        "overload_bit": {
1501            "type": "string",
1502            "options": [
1503                {
1504                    "value": "enable",
1505                    "revisions": {
1506                        "v6.0.0": True,
1507                        "v7.0.0": True,
1508                        "v6.0.5": True,
1509                        "v6.4.4": True,
1510                        "v6.4.0": True,
1511                        "v6.4.1": True,
1512                        "v6.2.0": True,
1513                        "v6.2.3": True,
1514                        "v6.2.5": True,
1515                        "v6.2.7": True,
1516                        "v6.0.11": True
1517                    }
1518                },
1519                {
1520                    "value": "disable",
1521                    "revisions": {
1522                        "v6.0.0": True,
1523                        "v7.0.0": True,
1524                        "v6.0.5": True,
1525                        "v6.4.4": True,
1526                        "v6.4.0": True,
1527                        "v6.4.1": True,
1528                        "v6.2.0": True,
1529                        "v6.2.3": True,
1530                        "v6.2.5": True,
1531                        "v6.2.7": True,
1532                        "v6.0.11": True
1533                    }
1534                }
1535            ],
1536            "revisions": {
1537                "v6.0.0": True,
1538                "v7.0.0": True,
1539                "v6.0.5": True,
1540                "v6.4.4": True,
1541                "v6.4.0": True,
1542                "v6.4.1": True,
1543                "v6.2.0": True,
1544                "v6.2.3": True,
1545                "v6.2.5": True,
1546                "v6.2.7": True,
1547                "v6.0.11": True
1548            }
1549        },
1550        "adv_passive_only6": {
1551            "type": "string",
1552            "options": [
1553                {
1554                    "value": "enable",
1555                    "revisions": {
1556                        "v6.0.0": True,
1557                        "v7.0.0": True,
1558                        "v6.0.5": True,
1559                        "v6.4.4": True,
1560                        "v6.4.0": True,
1561                        "v6.4.1": True,
1562                        "v6.2.0": True,
1563                        "v6.2.3": True,
1564                        "v6.2.5": True,
1565                        "v6.2.7": True,
1566                        "v6.0.11": True
1567                    }
1568                },
1569                {
1570                    "value": "disable",
1571                    "revisions": {
1572                        "v6.0.0": True,
1573                        "v7.0.0": True,
1574                        "v6.0.5": True,
1575                        "v6.4.4": True,
1576                        "v6.4.0": True,
1577                        "v6.4.1": True,
1578                        "v6.2.0": True,
1579                        "v6.2.3": True,
1580                        "v6.2.5": True,
1581                        "v6.2.7": True,
1582                        "v6.0.11": True
1583                    }
1584                }
1585            ],
1586            "revisions": {
1587                "v6.0.0": True,
1588                "v7.0.0": True,
1589                "v6.0.5": True,
1590                "v6.4.4": True,
1591                "v6.4.0": True,
1592                "v6.4.1": True,
1593                "v6.2.0": True,
1594                "v6.2.3": True,
1595                "v6.2.5": True,
1596                "v6.2.7": True,
1597                "v6.0.11": True
1598            }
1599        },
1600        "adjacency_check": {
1601            "type": "string",
1602            "options": [
1603                {
1604                    "value": "enable",
1605                    "revisions": {
1606                        "v6.0.0": True,
1607                        "v7.0.0": True,
1608                        "v6.0.5": True,
1609                        "v6.4.4": True,
1610                        "v6.4.0": True,
1611                        "v6.4.1": True,
1612                        "v6.2.0": True,
1613                        "v6.2.3": True,
1614                        "v6.2.5": True,
1615                        "v6.2.7": True,
1616                        "v6.0.11": True
1617                    }
1618                },
1619                {
1620                    "value": "disable",
1621                    "revisions": {
1622                        "v6.0.0": True,
1623                        "v7.0.0": True,
1624                        "v6.0.5": True,
1625                        "v6.4.4": True,
1626                        "v6.4.0": True,
1627                        "v6.4.1": True,
1628                        "v6.2.0": True,
1629                        "v6.2.3": True,
1630                        "v6.2.5": True,
1631                        "v6.2.7": True,
1632                        "v6.0.11": True
1633                    }
1634                }
1635            ],
1636            "revisions": {
1637                "v6.0.0": True,
1638                "v7.0.0": True,
1639                "v6.0.5": True,
1640                "v6.4.4": True,
1641                "v6.4.0": True,
1642                "v6.4.1": True,
1643                "v6.2.0": True,
1644                "v6.2.3": True,
1645                "v6.2.5": True,
1646                "v6.2.7": True,
1647                "v6.0.11": True
1648            }
1649        },
1650        "dynamic_hostname": {
1651            "type": "string",
1652            "options": [
1653                {
1654                    "value": "enable",
1655                    "revisions": {
1656                        "v6.0.0": True,
1657                        "v7.0.0": True,
1658                        "v6.0.5": True,
1659                        "v6.4.4": True,
1660                        "v6.4.0": True,
1661                        "v6.4.1": True,
1662                        "v6.2.0": True,
1663                        "v6.2.3": True,
1664                        "v6.2.5": True,
1665                        "v6.2.7": True,
1666                        "v6.0.11": True
1667                    }
1668                },
1669                {
1670                    "value": "disable",
1671                    "revisions": {
1672                        "v6.0.0": True,
1673                        "v7.0.0": True,
1674                        "v6.0.5": True,
1675                        "v6.4.4": True,
1676                        "v6.4.0": True,
1677                        "v6.4.1": True,
1678                        "v6.2.0": True,
1679                        "v6.2.3": True,
1680                        "v6.2.5": True,
1681                        "v6.2.7": True,
1682                        "v6.0.11": True
1683                    }
1684                }
1685            ],
1686            "revisions": {
1687                "v6.0.0": True,
1688                "v7.0.0": True,
1689                "v6.0.5": True,
1690                "v6.4.4": True,
1691                "v6.4.0": True,
1692                "v6.4.1": True,
1693                "v6.2.0": True,
1694                "v6.2.3": True,
1695                "v6.2.5": True,
1696                "v6.2.7": True,
1697                "v6.0.11": True
1698            }
1699        },
1700        "lsp_refresh_interval": {
1701            "type": "integer",
1702            "revisions": {
1703                "v6.0.0": True,
1704                "v7.0.0": True,
1705                "v6.0.5": True,
1706                "v6.4.4": True,
1707                "v6.4.0": True,
1708                "v6.4.1": True,
1709                "v6.2.0": True,
1710                "v6.2.3": True,
1711                "v6.2.5": True,
1712                "v6.2.7": True,
1713                "v6.0.11": True
1714            }
1715        },
1716        "redistribute6_l2_list": {
1717            "type": "string",
1718            "revisions": {
1719                "v6.0.0": True,
1720                "v7.0.0": True,
1721                "v6.0.5": True,
1722                "v6.4.4": True,
1723                "v6.4.0": True,
1724                "v6.4.1": True,
1725                "v6.2.0": True,
1726                "v6.2.3": True,
1727                "v6.2.5": True,
1728                "v6.2.7": True,
1729                "v6.0.11": True
1730            }
1731        },
1732        "adv_passive_only": {
1733            "type": "string",
1734            "options": [
1735                {
1736                    "value": "enable",
1737                    "revisions": {
1738                        "v6.0.0": True,
1739                        "v7.0.0": True,
1740                        "v6.0.5": True,
1741                        "v6.4.4": True,
1742                        "v6.4.0": True,
1743                        "v6.4.1": True,
1744                        "v6.2.0": True,
1745                        "v6.2.3": True,
1746                        "v6.2.5": True,
1747                        "v6.2.7": True,
1748                        "v6.0.11": True
1749                    }
1750                },
1751                {
1752                    "value": "disable",
1753                    "revisions": {
1754                        "v6.0.0": True,
1755                        "v7.0.0": True,
1756                        "v6.0.5": True,
1757                        "v6.4.4": True,
1758                        "v6.4.0": True,
1759                        "v6.4.1": True,
1760                        "v6.2.0": True,
1761                        "v6.2.3": True,
1762                        "v6.2.5": True,
1763                        "v6.2.7": True,
1764                        "v6.0.11": True
1765                    }
1766                }
1767            ],
1768            "revisions": {
1769                "v6.0.0": True,
1770                "v7.0.0": True,
1771                "v6.0.5": True,
1772                "v6.4.4": True,
1773                "v6.4.0": True,
1774                "v6.4.1": True,
1775                "v6.2.0": True,
1776                "v6.2.3": True,
1777                "v6.2.5": True,
1778                "v6.2.7": True,
1779                "v6.0.11": True
1780            }
1781        },
1782        "isis_interface": {
1783            "type": "list",
1784            "children": {
1785                "auth_mode_l2": {
1786                    "type": "string",
1787                    "options": [
1788                        {
1789                            "value": "md5",
1790                            "revisions": {
1791                                "v6.0.0": True,
1792                                "v7.0.0": True,
1793                                "v6.0.5": True,
1794                                "v6.4.4": True,
1795                                "v6.4.0": True,
1796                                "v6.4.1": True,
1797                                "v6.2.0": True,
1798                                "v6.2.3": True,
1799                                "v6.2.5": True,
1800                                "v6.2.7": True,
1801                                "v6.0.11": True
1802                            }
1803                        },
1804                        {
1805                            "value": "password",
1806                            "revisions": {
1807                                "v6.0.0": True,
1808                                "v7.0.0": True,
1809                                "v6.0.5": True,
1810                                "v6.4.4": True,
1811                                "v6.4.0": True,
1812                                "v6.4.1": True,
1813                                "v6.2.0": True,
1814                                "v6.2.3": True,
1815                                "v6.2.5": True,
1816                                "v6.2.7": True,
1817                                "v6.0.11": True
1818                            }
1819                        }
1820                    ],
1821                    "revisions": {
1822                        "v6.0.0": True,
1823                        "v7.0.0": True,
1824                        "v6.0.5": True,
1825                        "v6.4.4": True,
1826                        "v6.4.0": True,
1827                        "v6.4.1": True,
1828                        "v6.2.0": True,
1829                        "v6.2.3": True,
1830                        "v6.2.5": True,
1831                        "v6.2.7": True,
1832                        "v6.0.11": True
1833                    }
1834                },
1835                "auth_mode_l1": {
1836                    "type": "string",
1837                    "options": [
1838                        {
1839                            "value": "md5",
1840                            "revisions": {
1841                                "v6.0.0": True,
1842                                "v7.0.0": True,
1843                                "v6.0.5": True,
1844                                "v6.4.4": True,
1845                                "v6.4.0": True,
1846                                "v6.4.1": True,
1847                                "v6.2.0": True,
1848                                "v6.2.3": True,
1849                                "v6.2.5": True,
1850                                "v6.2.7": True,
1851                                "v6.0.11": True
1852                            }
1853                        },
1854                        {
1855                            "value": "password",
1856                            "revisions": {
1857                                "v6.0.0": True,
1858                                "v7.0.0": True,
1859                                "v6.0.5": True,
1860                                "v6.4.4": True,
1861                                "v6.4.0": True,
1862                                "v6.4.1": True,
1863                                "v6.2.0": True,
1864                                "v6.2.3": True,
1865                                "v6.2.5": True,
1866                                "v6.2.7": True,
1867                                "v6.0.11": True
1868                            }
1869                        }
1870                    ],
1871                    "revisions": {
1872                        "v6.0.0": True,
1873                        "v7.0.0": True,
1874                        "v6.0.5": True,
1875                        "v6.4.4": True,
1876                        "v6.4.0": True,
1877                        "v6.4.1": True,
1878                        "v6.2.0": True,
1879                        "v6.2.3": True,
1880                        "v6.2.5": True,
1881                        "v6.2.7": True,
1882                        "v6.0.11": True
1883                    }
1884                },
1885                "lsp_retransmit_interval": {
1886                    "type": "integer",
1887                    "revisions": {
1888                        "v6.0.0": True,
1889                        "v7.0.0": True,
1890                        "v6.0.5": True,
1891                        "v6.4.4": True,
1892                        "v6.4.0": True,
1893                        "v6.4.1": True,
1894                        "v6.2.0": True,
1895                        "v6.2.3": True,
1896                        "v6.2.5": True,
1897                        "v6.2.7": True,
1898                        "v6.0.11": True
1899                    }
1900                },
1901                "lsp_interval": {
1902                    "type": "integer",
1903                    "revisions": {
1904                        "v6.0.0": True,
1905                        "v7.0.0": True,
1906                        "v6.0.5": True,
1907                        "v6.4.4": True,
1908                        "v6.4.0": True,
1909                        "v6.4.1": True,
1910                        "v6.2.0": True,
1911                        "v6.2.3": True,
1912                        "v6.2.5": True,
1913                        "v6.2.7": True,
1914                        "v6.0.11": True
1915                    }
1916                },
1917                "mesh_group_id": {
1918                    "type": "integer",
1919                    "revisions": {
1920                        "v6.0.0": True,
1921                        "v7.0.0": True,
1922                        "v6.0.5": True,
1923                        "v6.4.4": True,
1924                        "v6.4.0": True,
1925                        "v6.4.1": True,
1926                        "v6.2.0": True,
1927                        "v6.2.3": True,
1928                        "v6.2.5": True,
1929                        "v6.2.7": True,
1930                        "v6.0.11": True
1931                    }
1932                },
1933                "auth_password_l2": {
1934                    "type": "string",
1935                    "revisions": {
1936                        "v6.0.0": True,
1937                        "v7.0.0": True,
1938                        "v6.0.5": True,
1939                        "v6.4.4": True,
1940                        "v6.4.0": True,
1941                        "v6.4.1": True,
1942                        "v6.2.0": True,
1943                        "v6.2.3": True,
1944                        "v6.2.5": True,
1945                        "v6.2.7": True,
1946                        "v6.0.11": True
1947                    }
1948                },
1949                "priority_l1": {
1950                    "type": "integer",
1951                    "revisions": {
1952                        "v6.0.0": True,
1953                        "v7.0.0": True,
1954                        "v6.0.5": True,
1955                        "v6.4.4": True,
1956                        "v6.4.0": True,
1957                        "v6.4.1": True,
1958                        "v6.2.0": True,
1959                        "v6.2.3": True,
1960                        "v6.2.5": True,
1961                        "v6.2.7": True,
1962                        "v6.0.11": True
1963                    }
1964                },
1965                "priority_l2": {
1966                    "type": "integer",
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                "auth_send_only_l1": {
1982                    "type": "string",
1983                    "options": [
1984                        {
1985                            "value": "enable",
1986                            "revisions": {
1987                                "v6.0.0": True,
1988                                "v7.0.0": True,
1989                                "v6.0.5": True,
1990                                "v6.4.4": True,
1991                                "v6.4.0": True,
1992                                "v6.4.1": True,
1993                                "v6.2.0": True,
1994                                "v6.2.3": True,
1995                                "v6.2.5": True,
1996                                "v6.2.7": True,
1997                                "v6.0.11": True
1998                            }
1999                        },
2000                        {
2001                            "value": "disable",
2002                            "revisions": {
2003                                "v6.0.0": True,
2004                                "v7.0.0": True,
2005                                "v6.0.5": True,
2006                                "v6.4.4": True,
2007                                "v6.4.0": True,
2008                                "v6.4.1": True,
2009                                "v6.2.0": True,
2010                                "v6.2.3": True,
2011                                "v6.2.5": True,
2012                                "v6.2.7": True,
2013                                "v6.0.11": True
2014                            }
2015                        }
2016                    ],
2017                    "revisions": {
2018                        "v6.0.0": True,
2019                        "v7.0.0": True,
2020                        "v6.0.5": True,
2021                        "v6.4.4": True,
2022                        "v6.4.0": True,
2023                        "v6.4.1": True,
2024                        "v6.2.0": True,
2025                        "v6.2.3": True,
2026                        "v6.2.5": True,
2027                        "v6.2.7": True,
2028                        "v6.0.11": True
2029                    }
2030                },
2031                "wide_metric_l1": {
2032                    "type": "integer",
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                "wide_metric_l2": {
2048                    "type": "integer",
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                "status": {
2064                    "type": "string",
2065                    "options": [
2066                        {
2067                            "value": "enable",
2068                            "revisions": {
2069                                "v6.0.0": True,
2070                                "v7.0.0": True,
2071                                "v6.0.5": True,
2072                                "v6.4.4": True,
2073                                "v6.4.0": True,
2074                                "v6.4.1": True,
2075                                "v6.2.0": True,
2076                                "v6.2.3": True,
2077                                "v6.2.5": True,
2078                                "v6.2.7": True,
2079                                "v6.0.11": True
2080                            }
2081                        },
2082                        {
2083                            "value": "disable",
2084                            "revisions": {
2085                                "v6.0.0": True,
2086                                "v7.0.0": True,
2087                                "v6.0.5": True,
2088                                "v6.4.4": True,
2089                                "v6.4.0": True,
2090                                "v6.4.1": True,
2091                                "v6.2.0": True,
2092                                "v6.2.3": True,
2093                                "v6.2.5": True,
2094                                "v6.2.7": True,
2095                                "v6.0.11": True
2096                            }
2097                        }
2098                    ],
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                "mesh_group": {
2114                    "type": "string",
2115                    "options": [
2116                        {
2117                            "value": "enable",
2118                            "revisions": {
2119                                "v6.0.0": True,
2120                                "v7.0.0": True,
2121                                "v6.0.5": True,
2122                                "v6.4.4": True,
2123                                "v6.4.0": True,
2124                                "v6.4.1": True,
2125                                "v6.2.0": True,
2126                                "v6.2.3": True,
2127                                "v6.2.5": True,
2128                                "v6.2.7": True,
2129                                "v6.0.11": True
2130                            }
2131                        },
2132                        {
2133                            "value": "disable",
2134                            "revisions": {
2135                                "v6.0.0": True,
2136                                "v7.0.0": True,
2137                                "v6.0.5": True,
2138                                "v6.4.4": True,
2139                                "v6.4.0": True,
2140                                "v6.4.1": True,
2141                                "v6.2.0": True,
2142                                "v6.2.3": True,
2143                                "v6.2.5": True,
2144                                "v6.2.7": True,
2145                                "v6.0.11": True
2146                            }
2147                        }
2148                    ],
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                "hello_padding": {
2164                    "type": "string",
2165                    "options": [
2166                        {
2167                            "value": "enable",
2168                            "revisions": {
2169                                "v6.0.0": True,
2170                                "v7.0.0": True,
2171                                "v6.0.5": True,
2172                                "v6.4.4": True,
2173                                "v6.4.0": True,
2174                                "v6.4.1": True,
2175                                "v6.2.0": True,
2176                                "v6.2.3": True,
2177                                "v6.2.5": True,
2178                                "v6.2.7": True,
2179                                "v6.0.11": True
2180                            }
2181                        },
2182                        {
2183                            "value": "disable",
2184                            "revisions": {
2185                                "v6.0.0": True,
2186                                "v7.0.0": True,
2187                                "v6.0.5": True,
2188                                "v6.4.4": True,
2189                                "v6.4.0": True,
2190                                "v6.4.1": True,
2191                                "v6.2.0": True,
2192                                "v6.2.3": True,
2193                                "v6.2.5": True,
2194                                "v6.2.7": True,
2195                                "v6.0.11": True
2196                            }
2197                        }
2198                    ],
2199                    "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                "auth_send_only_l2": {
2214                    "type": "string",
2215                    "options": [
2216                        {
2217                            "value": "enable",
2218                            "revisions": {
2219                                "v6.0.0": True,
2220                                "v7.0.0": True,
2221                                "v6.0.5": True,
2222                                "v6.4.4": True,
2223                                "v6.4.0": True,
2224                                "v6.4.1": True,
2225                                "v6.2.0": True,
2226                                "v6.2.3": True,
2227                                "v6.2.5": True,
2228                                "v6.2.7": True,
2229                                "v6.0.11": True
2230                            }
2231                        },
2232                        {
2233                            "value": "disable",
2234                            "revisions": {
2235                                "v6.0.0": True,
2236                                "v7.0.0": True,
2237                                "v6.0.5": True,
2238                                "v6.4.4": True,
2239                                "v6.4.0": True,
2240                                "v6.4.1": True,
2241                                "v6.2.0": True,
2242                                "v6.2.3": True,
2243                                "v6.2.5": True,
2244                                "v6.2.7": True,
2245                                "v6.0.11": True
2246                            }
2247                        }
2248                    ],
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                "csnp_interval_l1": {
2264                    "type": "integer",
2265                    "revisions": {
2266                        "v6.0.0": True,
2267                        "v7.0.0": True,
2268                        "v6.0.5": True,
2269                        "v6.4.4": True,
2270                        "v6.4.0": True,
2271                        "v6.4.1": True,
2272                        "v6.2.0": True,
2273                        "v6.2.3": True,
2274                        "v6.2.5": True,
2275                        "v6.2.7": True,
2276                        "v6.0.11": True
2277                    }
2278                },
2279                "hello_multiplier_l2": {
2280                    "type": "integer",
2281                    "revisions": {
2282                        "v6.0.0": True,
2283                        "v7.0.0": True,
2284                        "v6.0.5": True,
2285                        "v6.4.4": True,
2286                        "v6.4.0": True,
2287                        "v6.4.1": True,
2288                        "v6.2.0": True,
2289                        "v6.2.3": True,
2290                        "v6.2.5": True,
2291                        "v6.2.7": True,
2292                        "v6.0.11": True
2293                    }
2294                },
2295                "hello_multiplier_l1": {
2296                    "type": "integer",
2297                    "revisions": {
2298                        "v6.0.0": True,
2299                        "v7.0.0": True,
2300                        "v6.0.5": True,
2301                        "v6.4.4": True,
2302                        "v6.4.0": True,
2303                        "v6.4.1": True,
2304                        "v6.2.0": True,
2305                        "v6.2.3": True,
2306                        "v6.2.5": True,
2307                        "v6.2.7": True,
2308                        "v6.0.11": True
2309                    }
2310                },
2311                "hello_interval_l2": {
2312                    "type": "integer",
2313                    "revisions": {
2314                        "v6.0.0": True,
2315                        "v7.0.0": True,
2316                        "v6.0.5": True,
2317                        "v6.4.4": True,
2318                        "v6.4.0": True,
2319                        "v6.4.1": True,
2320                        "v6.2.0": True,
2321                        "v6.2.3": True,
2322                        "v6.2.5": True,
2323                        "v6.2.7": True,
2324                        "v6.0.11": True
2325                    }
2326                },
2327                "hello_interval_l1": {
2328                    "type": "integer",
2329                    "revisions": {
2330                        "v6.0.0": True,
2331                        "v7.0.0": True,
2332                        "v6.0.5": True,
2333                        "v6.4.4": True,
2334                        "v6.4.0": True,
2335                        "v6.4.1": True,
2336                        "v6.2.0": True,
2337                        "v6.2.3": True,
2338                        "v6.2.5": True,
2339                        "v6.2.7": True,
2340                        "v6.0.11": True
2341                    }
2342                },
2343                "auth_password_l1": {
2344                    "type": "string",
2345                    "revisions": {
2346                        "v6.0.0": True,
2347                        "v7.0.0": True,
2348                        "v6.0.5": True,
2349                        "v6.4.4": True,
2350                        "v6.4.0": True,
2351                        "v6.4.1": True,
2352                        "v6.2.0": True,
2353                        "v6.2.3": True,
2354                        "v6.2.5": True,
2355                        "v6.2.7": True,
2356                        "v6.0.11": True
2357                    }
2358                },
2359                "status6": {
2360                    "type": "string",
2361                    "options": [
2362                        {
2363                            "value": "enable",
2364                            "revisions": {
2365                                "v6.0.0": True,
2366                                "v7.0.0": True,
2367                                "v6.0.5": True,
2368                                "v6.4.4": True,
2369                                "v6.4.0": True,
2370                                "v6.4.1": True,
2371                                "v6.2.0": True,
2372                                "v6.2.3": True,
2373                                "v6.2.5": True,
2374                                "v6.2.7": True,
2375                                "v6.0.11": True
2376                            }
2377                        },
2378                        {
2379                            "value": "disable",
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                    ],
2395                    "revisions": {
2396                        "v6.0.0": True,
2397                        "v7.0.0": True,
2398                        "v6.0.5": True,
2399                        "v6.4.4": True,
2400                        "v6.4.0": True,
2401                        "v6.4.1": True,
2402                        "v6.2.0": True,
2403                        "v6.2.3": True,
2404                        "v6.2.5": True,
2405                        "v6.2.7": True,
2406                        "v6.0.11": True
2407                    }
2408                },
2409                "name": {
2410                    "type": "string",
2411                    "revisions": {
2412                        "v6.0.0": True,
2413                        "v7.0.0": True,
2414                        "v6.0.5": True,
2415                        "v6.4.4": True,
2416                        "v6.4.0": True,
2417                        "v6.4.1": True,
2418                        "v6.2.0": True,
2419                        "v6.2.3": True,
2420                        "v6.2.5": True,
2421                        "v6.2.7": True,
2422                        "v6.0.11": True
2423                    }
2424                },
2425                "csnp_interval_l2": {
2426                    "type": "integer",
2427                    "revisions": {
2428                        "v6.0.0": True,
2429                        "v7.0.0": True,
2430                        "v6.0.5": True,
2431                        "v6.4.4": True,
2432                        "v6.4.0": True,
2433                        "v6.4.1": True,
2434                        "v6.2.0": True,
2435                        "v6.2.3": True,
2436                        "v6.2.5": True,
2437                        "v6.2.7": True,
2438                        "v6.0.11": True
2439                    }
2440                },
2441                "circuit_type": {
2442                    "type": "string",
2443                    "options": [
2444                        {
2445                            "value": "level-1-2",
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                            "value": "level-1",
2462                            "revisions": {
2463                                "v6.0.0": True,
2464                                "v7.0.0": True,
2465                                "v6.0.5": True,
2466                                "v6.4.4": True,
2467                                "v6.4.0": True,
2468                                "v6.4.1": True,
2469                                "v6.2.0": True,
2470                                "v6.2.3": True,
2471                                "v6.2.5": True,
2472                                "v6.2.7": True,
2473                                "v6.0.11": True
2474                            }
2475                        },
2476                        {
2477                            "value": "level-2",
2478                            "revisions": {
2479                                "v6.0.0": True,
2480                                "v7.0.0": True,
2481                                "v6.0.5": True,
2482                                "v6.4.4": True,
2483                                "v6.4.0": True,
2484                                "v6.4.1": True,
2485                                "v6.2.0": True,
2486                                "v6.2.3": True,
2487                                "v6.2.5": True,
2488                                "v6.2.7": True,
2489                                "v6.0.11": True
2490                            }
2491                        }
2492                    ],
2493                    "revisions": {
2494                        "v6.0.0": True,
2495                        "v7.0.0": True,
2496                        "v6.0.5": True,
2497                        "v6.4.4": True,
2498                        "v6.4.0": True,
2499                        "v6.4.1": True,
2500                        "v6.2.0": True,
2501                        "v6.2.3": True,
2502                        "v6.2.5": True,
2503                        "v6.2.7": True,
2504                        "v6.0.11": True
2505                    }
2506                },
2507                "metric_l2": {
2508                    "type": "integer",
2509                    "revisions": {
2510                        "v6.0.0": True,
2511                        "v7.0.0": True,
2512                        "v6.0.5": True,
2513                        "v6.4.4": True,
2514                        "v6.4.0": True,
2515                        "v6.4.1": True,
2516                        "v6.2.0": True,
2517                        "v6.2.3": True,
2518                        "v6.2.5": True,
2519                        "v6.2.7": True,
2520                        "v6.0.11": True
2521                    }
2522                },
2523                "auth_keychain_l1": {
2524                    "type": "string",
2525                    "revisions": {
2526                        "v6.0.0": True,
2527                        "v7.0.0": True,
2528                        "v6.0.5": True,
2529                        "v6.4.4": True,
2530                        "v6.4.0": True,
2531                        "v6.4.1": True,
2532                        "v6.2.0": True,
2533                        "v6.2.3": True,
2534                        "v6.2.5": True,
2535                        "v6.2.7": True,
2536                        "v6.0.11": True
2537                    }
2538                },
2539                "auth_keychain_l2": {
2540                    "type": "string",
2541                    "revisions": {
2542                        "v6.0.0": True,
2543                        "v7.0.0": True,
2544                        "v6.0.5": True,
2545                        "v6.4.4": True,
2546                        "v6.4.0": True,
2547                        "v6.4.1": True,
2548                        "v6.2.0": True,
2549                        "v6.2.3": True,
2550                        "v6.2.5": True,
2551                        "v6.2.7": True,
2552                        "v6.0.11": True
2553                    }
2554                },
2555                "metric_l1": {
2556                    "type": "integer",
2557                    "revisions": {
2558                        "v6.0.0": True,
2559                        "v7.0.0": True,
2560                        "v6.0.5": True,
2561                        "v6.4.4": True,
2562                        "v6.4.0": True,
2563                        "v6.4.1": True,
2564                        "v6.2.0": True,
2565                        "v6.2.3": True,
2566                        "v6.2.5": True,
2567                        "v6.2.7": True,
2568                        "v6.0.11": True
2569                    }
2570                },
2571                "network_type": {
2572                    "type": "string",
2573                    "options": [
2574                        {
2575                            "value": "broadcast",
2576                            "revisions": {
2577                                "v6.0.0": True,
2578                                "v7.0.0": True,
2579                                "v6.0.5": True,
2580                                "v6.4.4": True,
2581                                "v6.4.0": True,
2582                                "v6.4.1": True,
2583                                "v6.2.0": True,
2584                                "v6.2.3": True,
2585                                "v6.2.5": True,
2586                                "v6.2.7": True,
2587                                "v6.0.11": True
2588                            }
2589                        },
2590                        {
2591                            "value": "point-to-point",
2592                            "revisions": {
2593                                "v6.0.0": True,
2594                                "v7.0.0": True,
2595                                "v6.0.5": True,
2596                                "v6.4.4": True,
2597                                "v6.4.0": True,
2598                                "v6.4.1": True,
2599                                "v6.2.0": True,
2600                                "v6.2.3": True,
2601                                "v6.2.5": True,
2602                                "v6.2.7": True,
2603                                "v6.0.11": True
2604                            }
2605                        },
2606                        {
2607                            "value": "loopback",
2608                            "revisions": {
2609                                "v6.0.0": True,
2610                                "v7.0.0": True,
2611                                "v6.0.5": True,
2612                                "v6.4.4": True,
2613                                "v6.4.0": True,
2614                                "v6.4.1": True,
2615                                "v6.2.0": True,
2616                                "v6.2.3": True,
2617                                "v6.2.5": True,
2618                                "v6.2.7": True,
2619                                "v6.0.11": True
2620                            }
2621                        }
2622                    ],
2623                    "revisions": {
2624                        "v6.0.0": True,
2625                        "v7.0.0": True,
2626                        "v6.0.5": True,
2627                        "v6.4.4": True,
2628                        "v6.4.0": True,
2629                        "v6.4.1": True,
2630                        "v6.2.0": True,
2631                        "v6.2.3": True,
2632                        "v6.2.5": True,
2633                        "v6.2.7": True,
2634                        "v6.0.11": True
2635                    }
2636                }
2637            },
2638            "revisions": {
2639                "v6.0.0": True,
2640                "v7.0.0": True,
2641                "v6.0.5": True,
2642                "v6.4.4": True,
2643                "v6.4.0": True,
2644                "v6.4.1": True,
2645                "v6.2.0": True,
2646                "v6.2.3": True,
2647                "v6.2.5": True,
2648                "v6.2.7": True,
2649                "v6.0.11": True
2650            }
2651        },
2652        "redistribute_l2": {
2653            "type": "string",
2654            "options": [
2655                {
2656                    "value": "enable",
2657                    "revisions": {
2658                        "v6.0.0": True,
2659                        "v7.0.0": True,
2660                        "v6.0.5": True,
2661                        "v6.4.4": True,
2662                        "v6.4.0": True,
2663                        "v6.4.1": True,
2664                        "v6.2.0": True,
2665                        "v6.2.3": True,
2666                        "v6.2.5": True,
2667                        "v6.2.7": True,
2668                        "v6.0.11": True
2669                    }
2670                },
2671                {
2672                    "value": "disable",
2673                    "revisions": {
2674                        "v6.0.0": True,
2675                        "v7.0.0": True,
2676                        "v6.0.5": True,
2677                        "v6.4.4": True,
2678                        "v6.4.0": True,
2679                        "v6.4.1": True,
2680                        "v6.2.0": True,
2681                        "v6.2.3": True,
2682                        "v6.2.5": True,
2683                        "v6.2.7": True,
2684                        "v6.0.11": True
2685                    }
2686                }
2687            ],
2688            "revisions": {
2689                "v6.0.0": True,
2690                "v7.0.0": True,
2691                "v6.0.5": True,
2692                "v6.4.4": True,
2693                "v6.4.0": True,
2694                "v6.4.1": True,
2695                "v6.2.0": True,
2696                "v6.2.3": True,
2697                "v6.2.5": True,
2698                "v6.2.7": True,
2699                "v6.0.11": True
2700            }
2701        },
2702        "redistribute_l1": {
2703            "type": "string",
2704            "options": [
2705                {
2706                    "value": "enable",
2707                    "revisions": {
2708                        "v6.0.0": True,
2709                        "v7.0.0": True,
2710                        "v6.0.5": True,
2711                        "v6.4.4": True,
2712                        "v6.4.0": True,
2713                        "v6.4.1": True,
2714                        "v6.2.0": True,
2715                        "v6.2.3": True,
2716                        "v6.2.5": True,
2717                        "v6.2.7": True,
2718                        "v6.0.11": True
2719                    }
2720                },
2721                {
2722                    "value": "disable",
2723                    "revisions": {
2724                        "v6.0.0": True,
2725                        "v7.0.0": True,
2726                        "v6.0.5": True,
2727                        "v6.4.4": True,
2728                        "v6.4.0": True,
2729                        "v6.4.1": True,
2730                        "v6.2.0": True,
2731                        "v6.2.3": True,
2732                        "v6.2.5": True,
2733                        "v6.2.7": True,
2734                        "v6.0.11": True
2735                    }
2736                }
2737            ],
2738            "revisions": {
2739                "v6.0.0": True,
2740                "v7.0.0": True,
2741                "v6.0.5": True,
2742                "v6.4.4": True,
2743                "v6.4.0": True,
2744                "v6.4.1": True,
2745                "v6.2.0": True,
2746                "v6.2.3": True,
2747                "v6.2.5": True,
2748                "v6.2.7": True,
2749                "v6.0.11": True
2750            }
2751        },
2752        "summary_address": {
2753            "type": "list",
2754            "children": {
2755                "prefix": {
2756                    "type": "string",
2757                    "revisions": {
2758                        "v6.0.0": True,
2759                        "v7.0.0": True,
2760                        "v6.0.5": True,
2761                        "v6.4.4": True,
2762                        "v6.4.0": True,
2763                        "v6.4.1": True,
2764                        "v6.2.0": True,
2765                        "v6.2.3": True,
2766                        "v6.2.5": True,
2767                        "v6.2.7": True,
2768                        "v6.0.11": True
2769                    }
2770                },
2771                "id": {
2772                    "type": "integer",
2773                    "revisions": {
2774                        "v6.0.0": True,
2775                        "v7.0.0": True,
2776                        "v6.0.5": True,
2777                        "v6.4.4": True,
2778                        "v6.4.0": True,
2779                        "v6.4.1": True,
2780                        "v6.2.0": True,
2781                        "v6.2.3": True,
2782                        "v6.2.5": True,
2783                        "v6.2.7": True,
2784                        "v6.0.11": True
2785                    }
2786                },
2787                "level": {
2788                    "type": "string",
2789                    "options": [
2790                        {
2791                            "value": "level-1-2",
2792                            "revisions": {
2793                                "v6.0.0": True,
2794                                "v7.0.0": True,
2795                                "v6.0.5": True,
2796                                "v6.4.4": True,
2797                                "v6.4.0": True,
2798                                "v6.4.1": True,
2799                                "v6.2.0": True,
2800                                "v6.2.3": True,
2801                                "v6.2.5": True,
2802                                "v6.2.7": True,
2803                                "v6.0.11": True
2804                            }
2805                        },
2806                        {
2807                            "value": "level-1",
2808                            "revisions": {
2809                                "v6.0.0": True,
2810                                "v7.0.0": True,
2811                                "v6.0.5": True,
2812                                "v6.4.4": True,
2813                                "v6.4.0": True,
2814                                "v6.4.1": True,
2815                                "v6.2.0": True,
2816                                "v6.2.3": True,
2817                                "v6.2.5": True,
2818                                "v6.2.7": True,
2819                                "v6.0.11": True
2820                            }
2821                        },
2822                        {
2823                            "value": "level-2",
2824                            "revisions": {
2825                                "v6.0.0": True,
2826                                "v7.0.0": True,
2827                                "v6.0.5": True,
2828                                "v6.4.4": True,
2829                                "v6.4.0": True,
2830                                "v6.4.1": True,
2831                                "v6.2.0": True,
2832                                "v6.2.3": True,
2833                                "v6.2.5": True,
2834                                "v6.2.7": True,
2835                                "v6.0.11": True
2836                            }
2837                        }
2838                    ],
2839                    "revisions": {
2840                        "v6.0.0": True,
2841                        "v7.0.0": True,
2842                        "v6.0.5": True,
2843                        "v6.4.4": True,
2844                        "v6.4.0": True,
2845                        "v6.4.1": True,
2846                        "v6.2.0": True,
2847                        "v6.2.3": True,
2848                        "v6.2.5": True,
2849                        "v6.2.7": True,
2850                        "v6.0.11": True
2851                    }
2852                }
2853            },
2854            "revisions": {
2855                "v6.0.0": True,
2856                "v7.0.0": True,
2857                "v6.0.5": True,
2858                "v6.4.4": True,
2859                "v6.4.0": True,
2860                "v6.4.1": True,
2861                "v6.2.0": True,
2862                "v6.2.3": True,
2863                "v6.2.5": True,
2864                "v6.2.7": True,
2865                "v6.0.11": True
2866            }
2867        },
2868        "overload_bit_on_startup": {
2869            "type": "integer",
2870            "revisions": {
2871                "v6.0.0": True,
2872                "v7.0.0": True,
2873                "v6.0.5": True,
2874                "v6.4.4": True,
2875                "v6.4.0": True,
2876                "v6.4.1": True,
2877                "v6.2.0": True,
2878                "v6.2.3": True,
2879                "v6.2.5": True,
2880                "v6.2.7": True,
2881                "v6.0.11": True
2882            }
2883        },
2884        "is_type": {
2885            "type": "string",
2886            "options": [
2887                {
2888                    "value": "level-1-2",
2889                    "revisions": {
2890                        "v6.0.0": True,
2891                        "v7.0.0": True,
2892                        "v6.0.5": True,
2893                        "v6.4.4": True,
2894                        "v6.4.0": True,
2895                        "v6.4.1": True,
2896                        "v6.2.0": True,
2897                        "v6.2.3": True,
2898                        "v6.2.5": True,
2899                        "v6.2.7": True,
2900                        "v6.0.11": True
2901                    }
2902                },
2903                {
2904                    "value": "level-1",
2905                    "revisions": {
2906                        "v6.0.0": True,
2907                        "v7.0.0": True,
2908                        "v6.0.5": True,
2909                        "v6.4.4": True,
2910                        "v6.4.0": True,
2911                        "v6.4.1": True,
2912                        "v6.2.0": True,
2913                        "v6.2.3": True,
2914                        "v6.2.5": True,
2915                        "v6.2.7": True,
2916                        "v6.0.11": True
2917                    }
2918                },
2919                {
2920                    "value": "level-2-only",
2921                    "revisions": {
2922                        "v6.0.0": True,
2923                        "v7.0.0": True,
2924                        "v6.0.5": True,
2925                        "v6.4.4": True,
2926                        "v6.4.0": True,
2927                        "v6.4.1": True,
2928                        "v6.2.0": True,
2929                        "v6.2.3": True,
2930                        "v6.2.5": True,
2931                        "v6.2.7": True,
2932                        "v6.0.11": True
2933                    }
2934                }
2935            ],
2936            "revisions": {
2937                "v6.0.0": True,
2938                "v7.0.0": True,
2939                "v6.0.5": True,
2940                "v6.4.4": True,
2941                "v6.4.0": True,
2942                "v6.4.1": True,
2943                "v6.2.0": True,
2944                "v6.2.3": True,
2945                "v6.2.5": True,
2946                "v6.2.7": True,
2947                "v6.0.11": True
2948            }
2949        },
2950        "adjacency_check6": {
2951            "type": "string",
2952            "options": [
2953                {
2954                    "value": "enable",
2955                    "revisions": {
2956                        "v6.0.0": True,
2957                        "v7.0.0": True,
2958                        "v6.0.5": True,
2959                        "v6.4.4": True,
2960                        "v6.4.0": True,
2961                        "v6.4.1": True,
2962                        "v6.2.0": True,
2963                        "v6.2.3": True,
2964                        "v6.2.5": True,
2965                        "v6.2.7": True,
2966                        "v6.0.11": True
2967                    }
2968                },
2969                {
2970                    "value": "disable",
2971                    "revisions": {
2972                        "v6.0.0": True,
2973                        "v7.0.0": True,
2974                        "v6.0.5": True,
2975                        "v6.4.4": True,
2976                        "v6.4.0": True,
2977                        "v6.4.1": True,
2978                        "v6.2.0": True,
2979                        "v6.2.3": True,
2980                        "v6.2.5": True,
2981                        "v6.2.7": True,
2982                        "v6.0.11": True
2983                    }
2984                }
2985            ],
2986            "revisions": {
2987                "v6.0.0": True,
2988                "v7.0.0": True,
2989                "v6.0.5": True,
2990                "v6.4.4": True,
2991                "v6.4.0": True,
2992                "v6.4.1": True,
2993                "v6.2.0": True,
2994                "v6.2.3": True,
2995                "v6.2.5": True,
2996                "v6.2.7": True,
2997                "v6.0.11": True
2998            }
2999        },
3000        "summary_address6": {
3001            "type": "list",
3002            "children": {
3003                "level": {
3004                    "type": "string",
3005                    "options": [
3006                        {
3007                            "value": "level-1-2",
3008                            "revisions": {
3009                                "v6.0.0": True,
3010                                "v7.0.0": True,
3011                                "v6.0.5": True,
3012                                "v6.4.4": True,
3013                                "v6.4.0": True,
3014                                "v6.4.1": True,
3015                                "v6.2.0": True,
3016                                "v6.2.3": True,
3017                                "v6.2.5": True,
3018                                "v6.2.7": True,
3019                                "v6.0.11": True
3020                            }
3021                        },
3022                        {
3023                            "value": "level-1",
3024                            "revisions": {
3025                                "v6.0.0": True,
3026                                "v7.0.0": True,
3027                                "v6.0.5": True,
3028                                "v6.4.4": True,
3029                                "v6.4.0": True,
3030                                "v6.4.1": True,
3031                                "v6.2.0": True,
3032                                "v6.2.3": True,
3033                                "v6.2.5": True,
3034                                "v6.2.7": True,
3035                                "v6.0.11": True
3036                            }
3037                        },
3038                        {
3039                            "value": "level-2",
3040                            "revisions": {
3041                                "v6.0.0": True,
3042                                "v7.0.0": True,
3043                                "v6.0.5": True,
3044                                "v6.4.4": True,
3045                                "v6.4.0": True,
3046                                "v6.4.1": True,
3047                                "v6.2.0": True,
3048                                "v6.2.3": True,
3049                                "v6.2.5": True,
3050                                "v6.2.7": True,
3051                                "v6.0.11": True
3052                            }
3053                        }
3054                    ],
3055                    "revisions": {
3056                        "v6.0.0": True,
3057                        "v7.0.0": True,
3058                        "v6.0.5": True,
3059                        "v6.4.4": True,
3060                        "v6.4.0": True,
3061                        "v6.4.1": True,
3062                        "v6.2.0": True,
3063                        "v6.2.3": True,
3064                        "v6.2.5": True,
3065                        "v6.2.7": True,
3066                        "v6.0.11": True
3067                    }
3068                },
3069                "prefix6": {
3070                    "type": "string",
3071                    "revisions": {
3072                        "v6.0.0": True,
3073                        "v7.0.0": True,
3074                        "v6.0.5": True,
3075                        "v6.4.4": True,
3076                        "v6.4.0": True,
3077                        "v6.4.1": True,
3078                        "v6.2.0": True,
3079                        "v6.2.3": True,
3080                        "v6.2.5": True,
3081                        "v6.2.7": True,
3082                        "v6.0.11": True
3083                    }
3084                },
3085                "id": {
3086                    "type": "integer",
3087                    "revisions": {
3088                        "v6.0.0": True,
3089                        "v7.0.0": True,
3090                        "v6.0.5": True,
3091                        "v6.4.4": True,
3092                        "v6.4.0": True,
3093                        "v6.4.1": True,
3094                        "v6.2.0": True,
3095                        "v6.2.3": True,
3096                        "v6.2.5": True,
3097                        "v6.2.7": True,
3098                        "v6.0.11": True
3099                    }
3100                }
3101            },
3102            "revisions": {
3103                "v6.0.0": True,
3104                "v7.0.0": True,
3105                "v6.0.5": True,
3106                "v6.4.4": True,
3107                "v6.4.0": True,
3108                "v6.4.1": True,
3109                "v6.2.0": True,
3110                "v6.2.3": True,
3111                "v6.2.5": True,
3112                "v6.2.7": True,
3113                "v6.0.11": True
3114            }
3115        },
3116        "redistribute": {
3117            "type": "list",
3118            "children": {
3119                "status": {
3120                    "type": "string",
3121                    "options": [
3122                        {
3123                            "value": "enable",
3124                            "revisions": {
3125                                "v6.0.0": True,
3126                                "v7.0.0": True,
3127                                "v6.0.5": True,
3128                                "v6.4.4": True,
3129                                "v6.4.0": True,
3130                                "v6.4.1": True,
3131                                "v6.2.0": True,
3132                                "v6.2.3": True,
3133                                "v6.2.5": True,
3134                                "v6.2.7": True,
3135                                "v6.0.11": True
3136                            }
3137                        },
3138                        {
3139                            "value": "disable",
3140                            "revisions": {
3141                                "v6.0.0": True,
3142                                "v7.0.0": True,
3143                                "v6.0.5": True,
3144                                "v6.4.4": True,
3145                                "v6.4.0": True,
3146                                "v6.4.1": True,
3147                                "v6.2.0": True,
3148                                "v6.2.3": True,
3149                                "v6.2.5": True,
3150                                "v6.2.7": True,
3151                                "v6.0.11": True
3152                            }
3153                        }
3154                    ],
3155                    "revisions": {
3156                        "v6.0.0": True,
3157                        "v7.0.0": True,
3158                        "v6.0.5": True,
3159                        "v6.4.4": True,
3160                        "v6.4.0": True,
3161                        "v6.4.1": True,
3162                        "v6.2.0": True,
3163                        "v6.2.3": True,
3164                        "v6.2.5": True,
3165                        "v6.2.7": True,
3166                        "v6.0.11": True
3167                    }
3168                },
3169                "protocol": {
3170                    "type": "string",
3171                    "revisions": {
3172                        "v6.0.0": True,
3173                        "v7.0.0": True,
3174                        "v6.0.5": True,
3175                        "v6.4.4": True,
3176                        "v6.4.0": True,
3177                        "v6.4.1": True,
3178                        "v6.2.0": True,
3179                        "v6.2.3": True,
3180                        "v6.2.5": True,
3181                        "v6.2.7": True,
3182                        "v6.0.11": True
3183                    }
3184                },
3185                "level": {
3186                    "type": "string",
3187                    "options": [
3188                        {
3189                            "value": "level-1-2",
3190                            "revisions": {
3191                                "v6.0.0": True,
3192                                "v7.0.0": True,
3193                                "v6.0.5": True,
3194                                "v6.4.4": True,
3195                                "v6.4.0": True,
3196                                "v6.4.1": True,
3197                                "v6.2.0": True,
3198                                "v6.2.3": True,
3199                                "v6.2.5": True,
3200                                "v6.2.7": True,
3201                                "v6.0.11": True
3202                            }
3203                        },
3204                        {
3205                            "value": "level-1",
3206                            "revisions": {
3207                                "v6.0.0": True,
3208                                "v7.0.0": True,
3209                                "v6.0.5": True,
3210                                "v6.4.4": True,
3211                                "v6.4.0": True,
3212                                "v6.4.1": True,
3213                                "v6.2.0": True,
3214                                "v6.2.3": True,
3215                                "v6.2.5": True,
3216                                "v6.2.7": True,
3217                                "v6.0.11": True
3218                            }
3219                        },
3220                        {
3221                            "value": "level-2",
3222                            "revisions": {
3223                                "v6.0.0": True,
3224                                "v7.0.0": True,
3225                                "v6.0.5": True,
3226                                "v6.4.4": True,
3227                                "v6.4.0": True,
3228                                "v6.4.1": True,
3229                                "v6.2.0": True,
3230                                "v6.2.3": True,
3231                                "v6.2.5": True,
3232                                "v6.2.7": True,
3233                                "v6.0.11": True
3234                            }
3235                        }
3236                    ],
3237                    "revisions": {
3238                        "v6.0.0": True,
3239                        "v7.0.0": True,
3240                        "v6.0.5": True,
3241                        "v6.4.4": True,
3242                        "v6.4.0": True,
3243                        "v6.4.1": True,
3244                        "v6.2.0": True,
3245                        "v6.2.3": True,
3246                        "v6.2.5": True,
3247                        "v6.2.7": True,
3248                        "v6.0.11": True
3249                    }
3250                },
3251                "metric": {
3252                    "type": "integer",
3253                    "revisions": {
3254                        "v6.0.0": True,
3255                        "v7.0.0": True,
3256                        "v6.0.5": True,
3257                        "v6.4.4": True,
3258                        "v6.4.0": True,
3259                        "v6.4.1": True,
3260                        "v6.2.0": True,
3261                        "v6.2.3": True,
3262                        "v6.2.5": True,
3263                        "v6.2.7": True,
3264                        "v6.0.11": True
3265                    }
3266                },
3267                "metric_type": {
3268                    "type": "string",
3269                    "options": [
3270                        {
3271                            "value": "external",
3272                            "revisions": {
3273                                "v6.0.0": True,
3274                                "v7.0.0": True,
3275                                "v6.0.5": True,
3276                                "v6.4.4": True,
3277                                "v6.4.0": True,
3278                                "v6.4.1": True,
3279                                "v6.2.0": True,
3280                                "v6.2.3": True,
3281                                "v6.2.5": True,
3282                                "v6.2.7": True,
3283                                "v6.0.11": True
3284                            }
3285                        },
3286                        {
3287                            "value": "internal",
3288                            "revisions": {
3289                                "v6.0.0": True,
3290                                "v7.0.0": True,
3291                                "v6.0.5": True,
3292                                "v6.4.4": True,
3293                                "v6.4.0": True,
3294                                "v6.4.1": True,
3295                                "v6.2.0": True,
3296                                "v6.2.3": True,
3297                                "v6.2.5": True,
3298                                "v6.2.7": True,
3299                                "v6.0.11": True
3300                            }
3301                        }
3302                    ],
3303                    "revisions": {
3304                        "v6.0.0": True,
3305                        "v7.0.0": True,
3306                        "v6.0.5": True,
3307                        "v6.4.4": True,
3308                        "v6.4.0": True,
3309                        "v6.4.1": True,
3310                        "v6.2.0": True,
3311                        "v6.2.3": True,
3312                        "v6.2.5": True,
3313                        "v6.2.7": True,
3314                        "v6.0.11": True
3315                    }
3316                },
3317                "routemap": {
3318                    "type": "string",
3319                    "revisions": {
3320                        "v6.0.0": True,
3321                        "v7.0.0": True,
3322                        "v6.0.5": True,
3323                        "v6.4.4": True,
3324                        "v6.4.0": True,
3325                        "v6.4.1": True,
3326                        "v6.2.0": True,
3327                        "v6.2.3": True,
3328                        "v6.2.5": True,
3329                        "v6.2.7": True,
3330                        "v6.0.11": True
3331                    }
3332                }
3333            },
3334            "revisions": {
3335                "v6.0.0": True,
3336                "v7.0.0": True,
3337                "v6.0.5": True,
3338                "v6.4.4": True,
3339                "v6.4.0": True,
3340                "v6.4.1": True,
3341                "v6.2.0": True,
3342                "v6.2.3": True,
3343                "v6.2.5": True,
3344                "v6.2.7": True,
3345                "v6.0.11": True
3346            }
3347        },
3348        "redistribute6_l2": {
3349            "type": "string",
3350            "options": [
3351                {
3352                    "value": "enable",
3353                    "revisions": {
3354                        "v6.0.0": True,
3355                        "v7.0.0": True,
3356                        "v6.0.5": True,
3357                        "v6.4.4": True,
3358                        "v6.4.0": True,
3359                        "v6.4.1": True,
3360                        "v6.2.0": True,
3361                        "v6.2.3": True,
3362                        "v6.2.5": True,
3363                        "v6.2.7": True,
3364                        "v6.0.11": True
3365                    }
3366                },
3367                {
3368                    "value": "disable",
3369                    "revisions": {
3370                        "v6.0.0": True,
3371                        "v7.0.0": True,
3372                        "v6.0.5": True,
3373                        "v6.4.4": True,
3374                        "v6.4.0": True,
3375                        "v6.4.1": True,
3376                        "v6.2.0": True,
3377                        "v6.2.3": True,
3378                        "v6.2.5": True,
3379                        "v6.2.7": True,
3380                        "v6.0.11": True
3381                    }
3382                }
3383            ],
3384            "revisions": {
3385                "v6.0.0": True,
3386                "v7.0.0": True,
3387                "v6.0.5": True,
3388                "v6.4.4": True,
3389                "v6.4.0": True,
3390                "v6.4.1": True,
3391                "v6.2.0": True,
3392                "v6.2.3": True,
3393                "v6.2.5": True,
3394                "v6.2.7": True,
3395                "v6.0.11": True
3396            }
3397        },
3398        "redistribute6_l1": {
3399            "type": "string",
3400            "options": [
3401                {
3402                    "value": "enable",
3403                    "revisions": {
3404                        "v6.0.0": True,
3405                        "v7.0.0": True,
3406                        "v6.0.5": True,
3407                        "v6.4.4": True,
3408                        "v6.4.0": True,
3409                        "v6.4.1": True,
3410                        "v6.2.0": True,
3411                        "v6.2.3": True,
3412                        "v6.2.5": True,
3413                        "v6.2.7": True,
3414                        "v6.0.11": True
3415                    }
3416                },
3417                {
3418                    "value": "disable",
3419                    "revisions": {
3420                        "v6.0.0": True,
3421                        "v7.0.0": True,
3422                        "v6.0.5": True,
3423                        "v6.4.4": True,
3424                        "v6.4.0": True,
3425                        "v6.4.1": True,
3426                        "v6.2.0": True,
3427                        "v6.2.3": True,
3428                        "v6.2.5": True,
3429                        "v6.2.7": True,
3430                        "v6.0.11": True
3431                    }
3432                }
3433            ],
3434            "revisions": {
3435                "v6.0.0": True,
3436                "v7.0.0": True,
3437                "v6.0.5": True,
3438                "v6.4.4": True,
3439                "v6.4.0": True,
3440                "v6.4.1": True,
3441                "v6.2.0": True,
3442                "v6.2.3": True,
3443                "v6.2.5": True,
3444                "v6.2.7": True,
3445                "v6.0.11": True
3446            }
3447        },
3448        "isis_net": {
3449            "type": "list",
3450            "children": {
3451                "net": {
3452                    "type": "string",
3453                    "revisions": {
3454                        "v6.0.0": True,
3455                        "v7.0.0": True,
3456                        "v6.0.5": True,
3457                        "v6.4.4": True,
3458                        "v6.4.0": True,
3459                        "v6.4.1": True,
3460                        "v6.2.0": True,
3461                        "v6.2.3": True,
3462                        "v6.2.5": True,
3463                        "v6.2.7": True,
3464                        "v6.0.11": True
3465                    }
3466                },
3467                "id": {
3468                    "type": "integer",
3469                    "revisions": {
3470                        "v6.0.0": True,
3471                        "v7.0.0": True,
3472                        "v6.0.5": True,
3473                        "v6.4.4": True,
3474                        "v6.4.0": True,
3475                        "v6.4.1": True,
3476                        "v6.2.0": True,
3477                        "v6.2.3": True,
3478                        "v6.2.5": True,
3479                        "v6.2.7": True,
3480                        "v6.0.11": True
3481                    }
3482                }
3483            },
3484            "revisions": {
3485                "v6.0.0": True,
3486                "v7.0.0": True,
3487                "v6.0.5": True,
3488                "v6.4.4": True,
3489                "v6.4.0": True,
3490                "v6.4.1": True,
3491                "v6.2.0": True,
3492                "v6.2.3": True,
3493                "v6.2.5": True,
3494                "v6.2.7": True,
3495                "v6.0.11": True
3496            }
3497        },
3498        "spf_interval_exp_l1": {
3499            "type": "string",
3500            "revisions": {
3501                "v6.0.0": True,
3502                "v7.0.0": True,
3503                "v6.0.5": True,
3504                "v6.4.4": True,
3505                "v6.4.0": True,
3506                "v6.4.1": True,
3507                "v6.2.0": True,
3508                "v6.2.3": True,
3509                "v6.2.5": True,
3510                "v6.2.7": True,
3511                "v6.0.11": True
3512            }
3513        },
3514        "auth_keychain_l1": {
3515            "type": "string",
3516            "revisions": {
3517                "v6.0.0": True,
3518                "v7.0.0": True,
3519                "v6.0.5": True,
3520                "v6.4.4": True,
3521                "v6.4.0": True,
3522                "v6.4.1": True,
3523                "v6.2.0": True,
3524                "v6.2.3": True,
3525                "v6.2.5": True,
3526                "v6.2.7": True,
3527                "v6.0.11": True
3528            }
3529        },
3530        "auth_keychain_l2": {
3531            "type": "string",
3532            "revisions": {
3533                "v6.0.0": True,
3534                "v7.0.0": True,
3535                "v6.0.5": True,
3536                "v6.4.4": True,
3537                "v6.4.0": True,
3538                "v6.4.1": True,
3539                "v6.2.0": True,
3540                "v6.2.3": True,
3541                "v6.2.5": True,
3542                "v6.2.7": True,
3543                "v6.0.11": True
3544            }
3545        },
3546        "spf_interval_exp_l2": {
3547            "type": "string",
3548            "revisions": {
3549                "v6.0.0": True,
3550                "v7.0.0": True,
3551                "v6.0.5": True,
3552                "v6.4.4": True,
3553                "v6.4.0": True,
3554                "v6.4.1": True,
3555                "v6.2.0": True,
3556                "v6.2.3": True,
3557                "v6.2.5": True,
3558                "v6.2.7": True,
3559                "v6.0.11": True
3560            }
3561        },
3562        "redistribute6_l1_list": {
3563            "type": "string",
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        "redistribute6": {
3579            "type": "list",
3580            "children": {
3581                "status": {
3582                    "type": "string",
3583                    "options": [
3584                        {
3585                            "value": "enable",
3586                            "revisions": {
3587                                "v6.0.0": True,
3588                                "v7.0.0": True,
3589                                "v6.0.5": True,
3590                                "v6.4.4": True,
3591                                "v6.4.0": True,
3592                                "v6.4.1": True,
3593                                "v6.2.0": True,
3594                                "v6.2.3": True,
3595                                "v6.2.5": True,
3596                                "v6.2.7": True,
3597                                "v6.0.11": True
3598                            }
3599                        },
3600                        {
3601                            "value": "disable",
3602                            "revisions": {
3603                                "v6.0.0": True,
3604                                "v7.0.0": True,
3605                                "v6.0.5": True,
3606                                "v6.4.4": True,
3607                                "v6.4.0": True,
3608                                "v6.4.1": True,
3609                                "v6.2.0": True,
3610                                "v6.2.3": True,
3611                                "v6.2.5": True,
3612                                "v6.2.7": True,
3613                                "v6.0.11": True
3614                            }
3615                        }
3616                    ],
3617                    "revisions": {
3618                        "v6.0.0": True,
3619                        "v7.0.0": True,
3620                        "v6.0.5": True,
3621                        "v6.4.4": True,
3622                        "v6.4.0": True,
3623                        "v6.4.1": True,
3624                        "v6.2.0": True,
3625                        "v6.2.3": True,
3626                        "v6.2.5": True,
3627                        "v6.2.7": True,
3628                        "v6.0.11": True
3629                    }
3630                },
3631                "protocol": {
3632                    "type": "string",
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                "level": {
3648                    "type": "string",
3649                    "options": [
3650                        {
3651                            "value": "level-1-2",
3652                            "revisions": {
3653                                "v6.0.0": True,
3654                                "v7.0.0": True,
3655                                "v6.0.5": True,
3656                                "v6.4.4": True,
3657                                "v6.4.0": True,
3658                                "v6.4.1": True,
3659                                "v6.2.0": True,
3660                                "v6.2.3": True,
3661                                "v6.2.5": True,
3662                                "v6.2.7": True,
3663                                "v6.0.11": True
3664                            }
3665                        },
3666                        {
3667                            "value": "level-1",
3668                            "revisions": {
3669                                "v6.0.0": True,
3670                                "v7.0.0": True,
3671                                "v6.0.5": True,
3672                                "v6.4.4": True,
3673                                "v6.4.0": True,
3674                                "v6.4.1": True,
3675                                "v6.2.0": True,
3676                                "v6.2.3": True,
3677                                "v6.2.5": True,
3678                                "v6.2.7": True,
3679                                "v6.0.11": True
3680                            }
3681                        },
3682                        {
3683                            "value": "level-2",
3684                            "revisions": {
3685                                "v6.0.0": True,
3686                                "v7.0.0": True,
3687                                "v6.0.5": True,
3688                                "v6.4.4": True,
3689                                "v6.4.0": True,
3690                                "v6.4.1": True,
3691                                "v6.2.0": True,
3692                                "v6.2.3": True,
3693                                "v6.2.5": True,
3694                                "v6.2.7": True,
3695                                "v6.0.11": True
3696                            }
3697                        }
3698                    ],
3699                    "revisions": {
3700                        "v6.0.0": True,
3701                        "v7.0.0": True,
3702                        "v6.0.5": True,
3703                        "v6.4.4": True,
3704                        "v6.4.0": True,
3705                        "v6.4.1": True,
3706                        "v6.2.0": True,
3707                        "v6.2.3": True,
3708                        "v6.2.5": True,
3709                        "v6.2.7": True,
3710                        "v6.0.11": True
3711                    }
3712                },
3713                "metric": {
3714                    "type": "integer",
3715                    "revisions": {
3716                        "v6.0.0": True,
3717                        "v7.0.0": True,
3718                        "v6.0.5": True,
3719                        "v6.4.4": True,
3720                        "v6.4.0": True,
3721                        "v6.4.1": True,
3722                        "v6.2.0": True,
3723                        "v6.2.3": True,
3724                        "v6.2.5": True,
3725                        "v6.2.7": True,
3726                        "v6.0.11": True
3727                    }
3728                },
3729                "metric_type": {
3730                    "type": "string",
3731                    "options": [
3732                        {
3733                            "value": "external",
3734                            "revisions": {
3735                                "v6.0.0": True,
3736                                "v7.0.0": True,
3737                                "v6.0.5": True,
3738                                "v6.4.4": True,
3739                                "v6.4.0": True,
3740                                "v6.4.1": True,
3741                                "v6.2.0": True,
3742                                "v6.2.3": True,
3743                                "v6.2.5": True,
3744                                "v6.2.7": True,
3745                                "v6.0.11": True
3746                            }
3747                        },
3748                        {
3749                            "value": "internal",
3750                            "revisions": {
3751                                "v6.0.0": True,
3752                                "v7.0.0": True,
3753                                "v6.0.5": True,
3754                                "v6.4.4": True,
3755                                "v6.4.0": True,
3756                                "v6.4.1": True,
3757                                "v6.2.0": True,
3758                                "v6.2.3": True,
3759                                "v6.2.5": True,
3760                                "v6.2.7": True,
3761                                "v6.0.11": True
3762                            }
3763                        }
3764                    ],
3765                    "revisions": {
3766                        "v6.0.0": True,
3767                        "v7.0.0": True,
3768                        "v6.0.5": True,
3769                        "v6.4.4": True,
3770                        "v6.4.0": True,
3771                        "v6.4.1": True,
3772                        "v6.2.0": True,
3773                        "v6.2.3": True,
3774                        "v6.2.5": True,
3775                        "v6.2.7": True,
3776                        "v6.0.11": True
3777                    }
3778                },
3779                "routemap": {
3780                    "type": "string",
3781                    "revisions": {
3782                        "v6.0.0": True,
3783                        "v7.0.0": True,
3784                        "v6.0.5": True,
3785                        "v6.4.4": True,
3786                        "v6.4.0": True,
3787                        "v6.4.1": True,
3788                        "v6.2.0": True,
3789                        "v6.2.3": True,
3790                        "v6.2.5": True,
3791                        "v6.2.7": True,
3792                        "v6.0.11": True
3793                    }
3794                }
3795            },
3796            "revisions": {
3797                "v6.0.0": True,
3798                "v7.0.0": True,
3799                "v6.0.5": True,
3800                "v6.4.4": True,
3801                "v6.4.0": True,
3802                "v6.4.1": True,
3803                "v6.2.0": True,
3804                "v6.2.3": True,
3805                "v6.2.5": True,
3806                "v6.2.7": True,
3807                "v6.0.11": True
3808            }
3809        },
3810        "ignore_lsp_errors": {
3811            "type": "string",
3812            "options": [
3813                {
3814                    "value": "enable",
3815                    "revisions": {
3816                        "v6.0.0": True,
3817                        "v7.0.0": True,
3818                        "v6.0.5": True,
3819                        "v6.4.4": True,
3820                        "v6.4.0": True,
3821                        "v6.4.1": True,
3822                        "v6.2.0": True,
3823                        "v6.2.3": True,
3824                        "v6.2.5": True,
3825                        "v6.2.7": True,
3826                        "v6.0.11": True
3827                    }
3828                },
3829                {
3830                    "value": "disable",
3831                    "revisions": {
3832                        "v6.0.0": True,
3833                        "v7.0.0": True,
3834                        "v6.0.5": True,
3835                        "v6.4.4": True,
3836                        "v6.4.0": True,
3837                        "v6.4.1": True,
3838                        "v6.2.0": True,
3839                        "v6.2.3": True,
3840                        "v6.2.5": True,
3841                        "v6.2.7": True,
3842                        "v6.0.11": True
3843                    }
3844                }
3845            ],
3846            "revisions": {
3847                "v6.0.0": True,
3848                "v7.0.0": True,
3849                "v6.0.5": True,
3850                "v6.4.4": True,
3851                "v6.4.0": True,
3852                "v6.4.1": True,
3853                "v6.2.0": True,
3854                "v6.2.3": True,
3855                "v6.2.5": True,
3856                "v6.2.7": True,
3857                "v6.0.11": True
3858            }
3859        },
3860        "lsp_gen_interval_l1": {
3861            "type": "integer",
3862            "revisions": {
3863                "v6.0.0": True,
3864                "v7.0.0": True,
3865                "v6.0.5": True,
3866                "v6.4.4": True,
3867                "v6.4.0": True,
3868                "v6.4.1": True,
3869                "v6.2.0": True,
3870                "v6.2.3": True,
3871                "v6.2.5": True,
3872                "v6.2.7": True,
3873                "v6.0.11": True
3874            }
3875        },
3876        "redistribute_l2_list": {
3877            "type": "string",
3878            "revisions": {
3879                "v6.0.0": True,
3880                "v7.0.0": True,
3881                "v6.0.5": True,
3882                "v6.4.4": True,
3883                "v6.4.0": True,
3884                "v6.4.1": True,
3885                "v6.2.0": True,
3886                "v6.2.3": True,
3887                "v6.2.5": True,
3888                "v6.2.7": True,
3889                "v6.0.11": True
3890            }
3891        },
3892        "redistribute_l1_list": {
3893            "type": "string",
3894            "revisions": {
3895                "v6.0.0": True,
3896                "v7.0.0": True,
3897                "v6.0.5": True,
3898                "v6.4.4": True,
3899                "v6.4.0": True,
3900                "v6.4.1": True,
3901                "v6.2.0": True,
3902                "v6.2.3": True,
3903                "v6.2.5": True,
3904                "v6.2.7": True,
3905                "v6.0.11": True
3906            }
3907        }
3908    },
3909    "revisions": {
3910        "v6.0.0": True,
3911        "v7.0.0": True,
3912        "v6.0.5": True,
3913        "v6.4.4": True,
3914        "v6.4.0": True,
3915        "v6.4.1": True,
3916        "v6.2.0": True,
3917        "v6.2.3": True,
3918        "v6.2.5": True,
3919        "v6.2.7": True,
3920        "v6.0.11": True
3921    }
3922}
3923
3924
3925def main():
3926    module_spec = schema_to_module_spec(versioned_schema)
3927    mkeyname = None
3928    fields = {
3929        "access_token": {"required": False, "type": "str", "no_log": True},
3930        "enable_log": {"required": False, "type": bool},
3931        "vdom": {"required": False, "type": "str", "default": "root"},
3932        "router_isis": {
3933            "required": False, "type": "dict", "default": None,
3934            "options": {
3935            }
3936        }
3937    }
3938    for attribute_name in module_spec['options']:
3939        fields["router_isis"]['options'][attribute_name] = module_spec['options'][attribute_name]
3940        if mkeyname and mkeyname == attribute_name:
3941            fields["router_isis"]['options'][attribute_name]['required'] = True
3942
3943    check_legacy_fortiosapi()
3944    module = AnsibleModule(argument_spec=fields,
3945                           supports_check_mode=False)
3946
3947    versions_check_result = None
3948    if module._socket_path:
3949        connection = Connection(module._socket_path)
3950        if 'access_token' in module.params:
3951            connection.set_option('access_token', module.params['access_token'])
3952
3953        if 'enable_log' in module.params:
3954            connection.set_option('enable_log', module.params['enable_log'])
3955        else:
3956            connection.set_option('enable_log', False)
3957        fos = FortiOSHandler(connection, module, mkeyname)
3958        versions_check_result = check_schema_versioning(fos, versioned_schema, "router_isis")
3959
3960        is_error, has_changed, result = fortios_router(module.params, fos)
3961
3962    else:
3963        module.fail_json(**FAIL_SOCKET_MSG)
3964
3965    if versions_check_result and versions_check_result['matched'] is False:
3966        module.warn("Ansible has detected version mismatch between FortOS system and your playbook, see more details by specifying option -vvv")
3967
3968    if not is_error:
3969        if versions_check_result and versions_check_result['matched'] is False:
3970            module.exit_json(changed=has_changed, version_check_warning=versions_check_result, meta=result)
3971        else:
3972            module.exit_json(changed=has_changed, meta=result)
3973    else:
3974        if versions_check_result and versions_check_result['matched'] is False:
3975            module.fail_json(msg="Error in repo", version_check_warning=versions_check_result, meta=result)
3976        else:
3977            module.fail_json(msg="Error in repo", meta=result)
3978
3979
3980if __name__ == '__main__':
3981    main()
3982