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_vpn_ipsec_phase2_interface 27short_description: Configure VPN autokey tunnel 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 vpn_ipsec feature and phase2_interface category. 31 Examples include all parameters and values need to be adjusted to datasources before usage. 32 Tested with FOS v6.0.0 33version_added: "2.10" 34author: 35 - Link Zheng (@chillancezen) 36 - Jie Xue (@JieX19) 37 - Hongbin Lu (@fgtdev-hblu) 38 - Frank Shen (@frankshen01) 39 - Miguel Angel Munoz (@mamunozgonzalez) 40 - Nicolas Thomas (@thomnico) 41notes: 42 - Legacy fortiosapi has been deprecated, httpapi is the preferred way to run playbooks 43 44requirements: 45 - ansible>=2.9.0 46options: 47 access_token: 48 description: 49 - Token-based authentication. 50 Generated from GUI of Fortigate. 51 type: str 52 required: false 53 enable_log: 54 description: 55 - Enable/Disable logging for task. 56 type: bool 57 required: false 58 default: false 59 vdom: 60 description: 61 - Virtual domain, among those defined previously. A vdom is a 62 virtual instance of the FortiGate that can be configured and 63 used as a different unit. 64 type: str 65 default: root 66 67 state: 68 description: 69 - Indicates whether to create or remove the object. 70 type: str 71 required: true 72 choices: 73 - present 74 - absent 75 vpn_ipsec_phase2_interface: 76 description: 77 - Configure VPN autokey tunnel. 78 default: null 79 type: dict 80 suboptions: 81 add_route: 82 description: 83 - Enable/disable automatic route addition. 84 type: str 85 choices: 86 - phase1 87 - enable 88 - disable 89 auto_discovery_forwarder: 90 description: 91 - Enable/disable forwarding short-cut messages. 92 type: str 93 choices: 94 - phase1 95 - enable 96 - disable 97 auto_discovery_sender: 98 description: 99 - Enable/disable sending short-cut messages. 100 type: str 101 choices: 102 - phase1 103 - enable 104 - disable 105 auto_negotiate: 106 description: 107 - Enable/disable IPsec SA auto-negotiation. 108 type: str 109 choices: 110 - enable 111 - disable 112 comments: 113 description: 114 - Comment. 115 type: str 116 dhcp_ipsec: 117 description: 118 - Enable/disable DHCP-IPsec. 119 type: str 120 choices: 121 - enable 122 - disable 123 dhgrp: 124 description: 125 - Phase2 DH group. 126 type: list 127 choices: 128 - 1 129 - 2 130 - 5 131 - 14 132 - 15 133 - 16 134 - 17 135 - 18 136 - 19 137 - 20 138 - 21 139 - 27 140 - 28 141 - 29 142 - 30 143 - 31 144 - 32 145 diffserv: 146 description: 147 - Enable/disable applying DSCP value to the IPsec tunnel outer IP header. 148 type: str 149 choices: 150 - enable 151 - disable 152 diffservcode: 153 description: 154 - DSCP value to be applied to the IPsec tunnel outer IP header. 155 type: str 156 dst_addr_type: 157 description: 158 - Remote proxy ID type. 159 type: str 160 choices: 161 - subnet 162 - range 163 - ip 164 - name 165 - subnet6 166 - range6 167 - ip6 168 - name6 169 dst_end_ip: 170 description: 171 - Remote proxy ID IPv4 end. 172 type: str 173 dst_end_ip6: 174 description: 175 - Remote proxy ID IPv6 end. 176 type: str 177 dst_name: 178 description: 179 - Remote proxy ID name. Source firewall.address.name firewall.addrgrp.name. 180 type: str 181 dst_name6: 182 description: 183 - Remote proxy ID name. Source firewall.address6.name firewall.addrgrp6.name. 184 type: str 185 dst_port: 186 description: 187 - Quick mode destination port (1 - 65535 or 0 for all). 188 type: int 189 dst_start_ip: 190 description: 191 - Remote proxy ID IPv4 start. 192 type: str 193 dst_start_ip6: 194 description: 195 - Remote proxy ID IPv6 start. 196 type: str 197 dst_subnet: 198 description: 199 - Remote proxy ID IPv4 subnet. 200 type: str 201 dst_subnet6: 202 description: 203 - Remote proxy ID IPv6 subnet. 204 type: str 205 encapsulation: 206 description: 207 - ESP encapsulation mode. 208 type: str 209 choices: 210 - tunnel-mode 211 - transport-mode 212 initiator_ts_narrow: 213 description: 214 - Enable/disable traffic selector narrowing for IKEv2 initiator. 215 type: str 216 choices: 217 - enable 218 - disable 219 ipv4_df: 220 description: 221 - Enable/disable setting and resetting of IPv4 "Don"t Fragment" bit. 222 type: str 223 choices: 224 - enable 225 - disable 226 keepalive: 227 description: 228 - Enable/disable keep alive. 229 type: str 230 choices: 231 - enable 232 - disable 233 keylife_type: 234 description: 235 - Keylife type. 236 type: str 237 choices: 238 - seconds 239 - kbs 240 - both 241 keylifekbs: 242 description: 243 - Phase2 key life in number of bytes of traffic (5120 - 4294967295). 244 type: int 245 keylifeseconds: 246 description: 247 - Phase2 key life in time in seconds (120 - 172800). 248 type: int 249 l2tp: 250 description: 251 - Enable/disable L2TP over IPsec. 252 type: str 253 choices: 254 - enable 255 - disable 256 name: 257 description: 258 - IPsec tunnel name. 259 required: true 260 type: str 261 pfs: 262 description: 263 - Enable/disable PFS feature. 264 type: str 265 choices: 266 - enable 267 - disable 268 phase1name: 269 description: 270 - Phase 1 determines the options required for phase 2. Source vpn.ipsec.phase1-interface.name. 271 type: str 272 proposal: 273 description: 274 - Phase2 proposal. 275 type: list 276 choices: 277 - null-md5 278 - null-sha1 279 - null-sha256 280 - null-sha384 281 - null-sha512 282 - des-null 283 - des-md5 284 - des-sha1 285 - des-sha256 286 - des-sha384 287 - des-sha512 288 - 3des-null 289 - 3des-md5 290 - 3des-sha1 291 - 3des-sha256 292 - 3des-sha384 293 - 3des-sha512 294 - aes128-null 295 - aes128-md5 296 - aes128-sha1 297 - aes128-sha256 298 - aes128-sha384 299 - aes128-sha512 300 - aes128gcm 301 - aes192-null 302 - aes192-md5 303 - aes192-sha1 304 - aes192-sha256 305 - aes192-sha384 306 - aes192-sha512 307 - aes256-null 308 - aes256-md5 309 - aes256-sha1 310 - aes256-sha256 311 - aes256-sha384 312 - aes256-sha512 313 - aes256gcm 314 - chacha20poly1305 315 - aria128-null 316 - aria128-md5 317 - aria128-sha1 318 - aria128-sha256 319 - aria128-sha384 320 - aria128-sha512 321 - aria192-null 322 - aria192-md5 323 - aria192-sha1 324 - aria192-sha256 325 - aria192-sha384 326 - aria192-sha512 327 - aria256-null 328 - aria256-md5 329 - aria256-sha1 330 - aria256-sha256 331 - aria256-sha384 332 - aria256-sha512 333 - seed-null 334 - seed-md5 335 - seed-sha1 336 - seed-sha256 337 - seed-sha384 338 - seed-sha512 339 protocol: 340 description: 341 - Quick mode protocol selector (1 - 255 or 0 for all). 342 type: int 343 replay: 344 description: 345 - Enable/disable replay detection. 346 type: str 347 choices: 348 - enable 349 - disable 350 route_overlap: 351 description: 352 - Action for overlapping routes. 353 type: str 354 choices: 355 - use-old 356 - use-new 357 - allow 358 single_source: 359 description: 360 - Enable/disable single source IP restriction. 361 type: str 362 choices: 363 - enable 364 - disable 365 src_addr_type: 366 description: 367 - Local proxy ID type. 368 type: str 369 choices: 370 - subnet 371 - range 372 - ip 373 - name 374 - subnet6 375 - range6 376 - ip6 377 - name6 378 src_end_ip: 379 description: 380 - Local proxy ID end. 381 type: str 382 src_end_ip6: 383 description: 384 - Local proxy ID IPv6 end. 385 type: str 386 src_name: 387 description: 388 - Local proxy ID name. Source firewall.address.name firewall.addrgrp.name. 389 type: str 390 src_name6: 391 description: 392 - Local proxy ID name. Source firewall.address6.name firewall.addrgrp6.name. 393 type: str 394 src_port: 395 description: 396 - Quick mode source port (1 - 65535 or 0 for all). 397 type: int 398 src_start_ip: 399 description: 400 - Local proxy ID start. 401 type: str 402 src_start_ip6: 403 description: 404 - Local proxy ID IPv6 start. 405 type: str 406 src_subnet: 407 description: 408 - Local proxy ID subnet. 409 type: str 410 src_subnet6: 411 description: 412 - Local proxy ID IPv6 subnet. 413 type: str 414''' 415 416EXAMPLES = ''' 417- hosts: fortigates 418 collections: 419 - fortinet.fortios 420 connection: httpapi 421 vars: 422 vdom: "root" 423 ansible_httpapi_use_ssl: yes 424 ansible_httpapi_validate_certs: no 425 ansible_httpapi_port: 443 426 tasks: 427 - name: Configure VPN autokey tunnel. 428 fortios_vpn_ipsec_phase2_interface: 429 vdom: "{{ vdom }}" 430 state: "present" 431 access_token: "<your_own_value>" 432 vpn_ipsec_phase2_interface: 433 add_route: "phase1" 434 auto_discovery_forwarder: "phase1" 435 auto_discovery_sender: "phase1" 436 auto_negotiate: "enable" 437 comments: "<your_own_value>" 438 dhcp_ipsec: "enable" 439 dhgrp: "1" 440 diffserv: "enable" 441 diffservcode: "<your_own_value>" 442 dst_addr_type: "subnet" 443 dst_end_ip: "<your_own_value>" 444 dst_end_ip6: "<your_own_value>" 445 dst_name: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)" 446 dst_name6: "<your_own_value> (source firewall.address6.name firewall.addrgrp6.name)" 447 dst_port: "17" 448 dst_start_ip: "<your_own_value>" 449 dst_start_ip6: "<your_own_value>" 450 dst_subnet: "<your_own_value>" 451 dst_subnet6: "<your_own_value>" 452 encapsulation: "tunnel-mode" 453 initiator_ts_narrow: "enable" 454 ipv4_df: "enable" 455 keepalive: "enable" 456 keylife_type: "seconds" 457 keylifekbs: "27" 458 keylifeseconds: "28" 459 l2tp: "enable" 460 name: "default_name_30" 461 pfs: "enable" 462 phase1name: "<your_own_value> (source vpn.ipsec.phase1-interface.name)" 463 proposal: "null-md5" 464 protocol: "34" 465 replay: "enable" 466 route_overlap: "use-old" 467 single_source: "enable" 468 src_addr_type: "subnet" 469 src_end_ip: "<your_own_value>" 470 src_end_ip6: "<your_own_value>" 471 src_name: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)" 472 src_name6: "<your_own_value> (source firewall.address6.name firewall.addrgrp6.name)" 473 src_port: "43" 474 src_start_ip: "<your_own_value>" 475 src_start_ip6: "<your_own_value>" 476 src_subnet: "<your_own_value>" 477 src_subnet6: "<your_own_value>" 478 479''' 480 481RETURN = ''' 482build: 483 description: Build number of the fortigate image 484 returned: always 485 type: str 486 sample: '1547' 487http_method: 488 description: Last method used to provision the content into FortiGate 489 returned: always 490 type: str 491 sample: 'PUT' 492http_status: 493 description: Last result given by FortiGate on last operation applied 494 returned: always 495 type: str 496 sample: "200" 497mkey: 498 description: Master key (id) used in the last call to FortiGate 499 returned: success 500 type: str 501 sample: "id" 502name: 503 description: Name of the table used to fulfill the request 504 returned: always 505 type: str 506 sample: "urlfilter" 507path: 508 description: Path of the table used to fulfill the request 509 returned: always 510 type: str 511 sample: "webfilter" 512revision: 513 description: Internal revision number 514 returned: always 515 type: str 516 sample: "17.0.2.10658" 517serial: 518 description: Serial number of the unit 519 returned: always 520 type: str 521 sample: "FGVMEVYYQT3AB5352" 522status: 523 description: Indication of the operation's result 524 returned: always 525 type: str 526 sample: "success" 527vdom: 528 description: Virtual domain used 529 returned: always 530 type: str 531 sample: "root" 532version: 533 description: Version of the FortiGate 534 returned: always 535 type: str 536 sample: "v5.6.3" 537 538''' 539from ansible.module_utils.basic import AnsibleModule 540from ansible.module_utils.connection import Connection 541from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import FortiOSHandler 542from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import check_legacy_fortiosapi 543from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import schema_to_module_spec 544from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.fortios import check_schema_versioning 545from ansible_collections.fortinet.fortios.plugins.module_utils.fortimanager.common import FAIL_SOCKET_MSG 546from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.comparison import is_same_comparison 547from ansible_collections.fortinet.fortios.plugins.module_utils.fortios.comparison import serialize 548 549 550def filter_vpn_ipsec_phase2_interface_data(json): 551 option_list = ['add_route', 'auto_discovery_forwarder', 'auto_discovery_sender', 552 'auto_negotiate', 'comments', 'dhcp_ipsec', 553 'dhgrp', 'diffserv', 'diffservcode', 554 'dst_addr_type', 'dst_end_ip', 'dst_end_ip6', 555 'dst_name', 'dst_name6', 'dst_port', 556 'dst_start_ip', 'dst_start_ip6', 'dst_subnet', 557 'dst_subnet6', 'encapsulation', 'initiator_ts_narrow', 558 'ipv4_df', 'keepalive', 'keylife_type', 559 'keylifekbs', 'keylifeseconds', 'l2tp', 560 'name', 'pfs', 'phase1name', 561 'proposal', 'protocol', 'replay', 562 'route_overlap', 'single_source', 'src_addr_type', 563 'src_end_ip', 'src_end_ip6', 'src_name', 564 'src_name6', 'src_port', 'src_start_ip', 565 'src_start_ip6', 'src_subnet', 'src_subnet6'] 566 dictionary = {} 567 568 for attribute in option_list: 569 if attribute in json and json[attribute] is not None: 570 dictionary[attribute] = json[attribute] 571 572 return dictionary 573 574 575def flatten_single_path(data, path, index): 576 if not data or index == len(path) or path[index] not in data or not data[path[index]]: 577 return 578 579 if index == len(path) - 1: 580 data[path[index]] = ' '.join(str(elem) for elem in data[path[index]]) 581 elif isinstance(data[path[index]], list): 582 for value in data[path[index]]: 583 flatten_single_path(value, path, index + 1) 584 else: 585 flatten_single_path(data[path[index]], path, index + 1) 586 587 588def flatten_multilists_attributes(data): 589 multilist_attrs = [[u'dhgrp'], [u'proposal']] 590 591 for attr in multilist_attrs: 592 flatten_single_path(data, attr, 0) 593 594 return data 595 596 597def underscore_to_hyphen(data): 598 if isinstance(data, list): 599 for i, elem in enumerate(data): 600 data[i] = underscore_to_hyphen(elem) 601 elif isinstance(data, dict): 602 new_data = {} 603 for k, v in data.items(): 604 new_data[k.replace('_', '-')] = underscore_to_hyphen(v) 605 data = new_data 606 607 return data 608 609 610def vpn_ipsec_phase2_interface(data, fos, check_mode=False): 611 612 vdom = data['vdom'] 613 614 state = data['state'] 615 616 vpn_ipsec_phase2_interface_data = data['vpn_ipsec_phase2_interface'] 617 vpn_ipsec_phase2_interface_data = flatten_multilists_attributes(vpn_ipsec_phase2_interface_data) 618 filtered_data = underscore_to_hyphen(filter_vpn_ipsec_phase2_interface_data(vpn_ipsec_phase2_interface_data)) 619 620 # check_mode starts from here 621 if check_mode: 622 mkey = fos.get_mkey('system', 'interface', filtered_data, vdom=vdom) 623 current_data = fos.get('system', 'interface', vdom=vdom, mkey=mkey) 624 is_existed = current_data and current_data.get('http_status') == 200 \ 625 and isinstance(current_data.get('results'), list) \ 626 and len(current_data['results']) > 0 627 628 # 2. if it exists and the state is 'present' then compare current settings with desired 629 if state == 'present' or state is True: 630 if mkey is None: 631 return False, True, filtered_data 632 633 # if mkey exists then compare each other 634 # record exits and they're matched or not 635 if is_existed: 636 is_same = is_same_comparison( 637 serialize(current_data['results'][0]), serialize(filtered_data)) 638 return False, not is_same, filtered_data 639 640 # record does not exist 641 return False, True, filtered_data 642 643 if state == 'absent': 644 if mkey is None: 645 return False, False, filtered_data 646 647 if is_existed: 648 return False, True, filtered_data 649 return False, False, filtered_data 650 651 return True, False, {'reason: ': 'Must provide state parameter'} 652 653 if state == "present" or state is True: 654 return fos.set('vpn.ipsec', 655 'phase2-interface', 656 data=filtered_data, 657 vdom=vdom) 658 659 elif state == "absent": 660 return fos.delete('vpn.ipsec', 661 'phase2-interface', 662 mkey=filtered_data['name'], 663 vdom=vdom) 664 else: 665 fos._module.fail_json(msg='state must be present or absent!') 666 667 668def is_successful_status(status): 669 return status['status'] == "success" or \ 670 status['http_method'] == "DELETE" and status['http_status'] == 404 671 672 673def fortios_vpn_ipsec(data, fos, check_mode): 674 675 if data['vpn_ipsec_phase2_interface']: 676 resp = vpn_ipsec_phase2_interface(data, fos, check_mode) 677 else: 678 fos._module.fail_json(msg='missing task body: %s' % ('vpn_ipsec_phase2_interface')) 679 if check_mode: 680 return resp 681 return not is_successful_status(resp), \ 682 resp['status'] == "success" and \ 683 (resp['revision_changed'] if 'revision_changed' in resp else True), \ 684 resp 685 686 687versioned_schema = { 688 "type": "list", 689 "children": { 690 "protocol": { 691 "type": "integer", 692 "revisions": { 693 "v6.0.0": True, 694 "v7.0.0": True, 695 "v6.0.5": True, 696 "v6.4.4": True, 697 "v6.4.0": True, 698 "v6.4.1": True, 699 "v6.2.0": True, 700 "v6.2.3": True, 701 "v6.2.5": True, 702 "v6.2.7": True, 703 "v6.0.11": True 704 } 705 }, 706 "diffserv": { 707 "type": "string", 708 "options": [ 709 { 710 "value": "enable", 711 "revisions": { 712 "v6.4.4": True, 713 "v7.0.0": True 714 } 715 }, 716 { 717 "value": "disable", 718 "revisions": { 719 "v6.4.4": True, 720 "v7.0.0": True 721 } 722 } 723 ], 724 "revisions": { 725 "v6.4.4": True, 726 "v7.0.0": True 727 } 728 }, 729 "add_route": { 730 "type": "string", 731 "options": [ 732 { 733 "value": "phase1", 734 "revisions": { 735 "v6.0.0": True, 736 "v7.0.0": True, 737 "v6.0.5": True, 738 "v6.4.4": True, 739 "v6.4.0": True, 740 "v6.4.1": True, 741 "v6.2.0": True, 742 "v6.2.3": True, 743 "v6.2.5": True, 744 "v6.2.7": True, 745 "v6.0.11": True 746 } 747 }, 748 { 749 "value": "enable", 750 "revisions": { 751 "v6.0.0": True, 752 "v7.0.0": True, 753 "v6.0.5": True, 754 "v6.4.4": True, 755 "v6.4.0": True, 756 "v6.4.1": True, 757 "v6.2.0": True, 758 "v6.2.3": True, 759 "v6.2.5": True, 760 "v6.2.7": True, 761 "v6.0.11": True 762 } 763 }, 764 { 765 "value": "disable", 766 "revisions": { 767 "v6.0.0": True, 768 "v7.0.0": True, 769 "v6.0.5": True, 770 "v6.4.4": True, 771 "v6.4.0": True, 772 "v6.4.1": True, 773 "v6.2.0": True, 774 "v6.2.3": True, 775 "v6.2.5": True, 776 "v6.2.7": True, 777 "v6.0.11": True 778 } 779 } 780 ], 781 "revisions": { 782 "v6.0.0": True, 783 "v7.0.0": True, 784 "v6.0.5": True, 785 "v6.4.4": True, 786 "v6.4.0": True, 787 "v6.4.1": True, 788 "v6.2.0": True, 789 "v6.2.3": True, 790 "v6.2.5": True, 791 "v6.2.7": True, 792 "v6.0.11": True 793 } 794 }, 795 "diffservcode": { 796 "type": "string", 797 "revisions": { 798 "v6.4.4": True, 799 "v7.0.0": True 800 } 801 }, 802 "dst_name": { 803 "type": "string", 804 "revisions": { 805 "v6.0.0": True, 806 "v7.0.0": True, 807 "v6.0.5": True, 808 "v6.4.4": True, 809 "v6.4.0": True, 810 "v6.4.1": True, 811 "v6.2.0": True, 812 "v6.2.3": True, 813 "v6.2.5": True, 814 "v6.2.7": True, 815 "v6.0.11": True 816 } 817 }, 818 "keylifekbs": { 819 "type": "integer", 820 "revisions": { 821 "v6.0.0": True, 822 "v7.0.0": True, 823 "v6.0.5": True, 824 "v6.4.4": True, 825 "v6.4.0": True, 826 "v6.4.1": True, 827 "v6.2.0": True, 828 "v6.2.3": True, 829 "v6.2.5": True, 830 "v6.2.7": True, 831 "v6.0.11": True 832 } 833 }, 834 "replay": { 835 "type": "string", 836 "options": [ 837 { 838 "value": "enable", 839 "revisions": { 840 "v6.0.0": True, 841 "v7.0.0": True, 842 "v6.0.5": True, 843 "v6.4.4": True, 844 "v6.4.0": True, 845 "v6.4.1": True, 846 "v6.2.0": True, 847 "v6.2.3": True, 848 "v6.2.5": True, 849 "v6.2.7": True, 850 "v6.0.11": True 851 } 852 }, 853 { 854 "value": "disable", 855 "revisions": { 856 "v6.0.0": True, 857 "v7.0.0": True, 858 "v6.0.5": True, 859 "v6.4.4": True, 860 "v6.4.0": True, 861 "v6.4.1": True, 862 "v6.2.0": True, 863 "v6.2.3": True, 864 "v6.2.5": True, 865 "v6.2.7": True, 866 "v6.0.11": True 867 } 868 } 869 ], 870 "revisions": { 871 "v6.0.0": True, 872 "v7.0.0": True, 873 "v6.0.5": True, 874 "v6.4.4": True, 875 "v6.4.0": True, 876 "v6.4.1": True, 877 "v6.2.0": True, 878 "v6.2.3": True, 879 "v6.2.5": True, 880 "v6.2.7": True, 881 "v6.0.11": True 882 } 883 }, 884 "comments": { 885 "type": "string", 886 "revisions": { 887 "v6.0.0": True, 888 "v7.0.0": True, 889 "v6.0.5": True, 890 "v6.4.4": True, 891 "v6.4.0": True, 892 "v6.4.1": True, 893 "v6.2.0": True, 894 "v6.2.3": True, 895 "v6.2.5": True, 896 "v6.2.7": True, 897 "v6.0.11": True 898 } 899 }, 900 "keepalive": { 901 "type": "string", 902 "options": [ 903 { 904 "value": "enable", 905 "revisions": { 906 "v6.0.0": True, 907 "v7.0.0": True, 908 "v6.0.5": True, 909 "v6.4.4": True, 910 "v6.4.0": True, 911 "v6.4.1": True, 912 "v6.2.0": True, 913 "v6.2.3": True, 914 "v6.2.5": True, 915 "v6.2.7": True, 916 "v6.0.11": True 917 } 918 }, 919 { 920 "value": "disable", 921 "revisions": { 922 "v6.0.0": True, 923 "v7.0.0": True, 924 "v6.0.5": True, 925 "v6.4.4": True, 926 "v6.4.0": True, 927 "v6.4.1": True, 928 "v6.2.0": True, 929 "v6.2.3": True, 930 "v6.2.5": True, 931 "v6.2.7": True, 932 "v6.0.11": True 933 } 934 } 935 ], 936 "revisions": { 937 "v6.0.0": True, 938 "v7.0.0": True, 939 "v6.0.5": True, 940 "v6.4.4": True, 941 "v6.4.0": True, 942 "v6.4.1": True, 943 "v6.2.0": True, 944 "v6.2.3": True, 945 "v6.2.5": True, 946 "v6.2.7": True, 947 "v6.0.11": True 948 } 949 }, 950 "ipv4_df": { 951 "type": "string", 952 "options": [ 953 { 954 "value": "enable", 955 "revisions": { 956 "v7.0.0": True, 957 "v6.4.4": True, 958 "v6.4.0": True, 959 "v6.4.1": True, 960 "v6.2.0": True, 961 "v6.2.3": True, 962 "v6.2.5": True, 963 "v6.2.7": True 964 } 965 }, 966 { 967 "value": "disable", 968 "revisions": { 969 "v7.0.0": True, 970 "v6.4.4": True, 971 "v6.4.0": True, 972 "v6.4.1": True, 973 "v6.2.0": True, 974 "v6.2.3": True, 975 "v6.2.5": True, 976 "v6.2.7": True 977 } 978 } 979 ], 980 "revisions": { 981 "v7.0.0": True, 982 "v6.4.4": True, 983 "v6.4.0": True, 984 "v6.4.1": True, 985 "v6.2.0": True, 986 "v6.2.3": True, 987 "v6.2.5": True, 988 "v6.2.7": True 989 } 990 }, 991 "auto_discovery_sender": { 992 "type": "string", 993 "options": [ 994 { 995 "value": "phase1", 996 "revisions": { 997 "v6.0.0": True, 998 "v7.0.0": True, 999 "v6.0.5": True, 1000 "v6.4.4": True, 1001 "v6.4.0": True, 1002 "v6.4.1": True, 1003 "v6.2.0": True, 1004 "v6.2.3": True, 1005 "v6.2.5": True, 1006 "v6.2.7": True, 1007 "v6.0.11": True 1008 } 1009 }, 1010 { 1011 "value": "enable", 1012 "revisions": { 1013 "v6.0.0": True, 1014 "v7.0.0": True, 1015 "v6.0.5": True, 1016 "v6.4.4": True, 1017 "v6.4.0": True, 1018 "v6.4.1": True, 1019 "v6.2.0": True, 1020 "v6.2.3": True, 1021 "v6.2.5": True, 1022 "v6.2.7": True, 1023 "v6.0.11": True 1024 } 1025 }, 1026 { 1027 "value": "disable", 1028 "revisions": { 1029 "v6.0.0": True, 1030 "v7.0.0": True, 1031 "v6.0.5": True, 1032 "v6.4.4": True, 1033 "v6.4.0": True, 1034 "v6.4.1": True, 1035 "v6.2.0": True, 1036 "v6.2.3": True, 1037 "v6.2.5": True, 1038 "v6.2.7": True, 1039 "v6.0.11": True 1040 } 1041 } 1042 ], 1043 "revisions": { 1044 "v6.0.0": True, 1045 "v7.0.0": True, 1046 "v6.0.5": True, 1047 "v6.4.4": True, 1048 "v6.4.0": True, 1049 "v6.4.1": True, 1050 "v6.2.0": True, 1051 "v6.2.3": True, 1052 "v6.2.5": True, 1053 "v6.2.7": True, 1054 "v6.0.11": True 1055 } 1056 }, 1057 "src_port": { 1058 "type": "integer", 1059 "revisions": { 1060 "v6.0.0": True, 1061 "v7.0.0": True, 1062 "v6.0.5": True, 1063 "v6.4.4": True, 1064 "v6.4.0": True, 1065 "v6.4.1": True, 1066 "v6.2.0": True, 1067 "v6.2.3": True, 1068 "v6.2.5": True, 1069 "v6.2.7": True, 1070 "v6.0.11": True 1071 } 1072 }, 1073 "dst_subnet": { 1074 "type": "string", 1075 "revisions": { 1076 "v6.0.0": True, 1077 "v7.0.0": True, 1078 "v6.0.5": True, 1079 "v6.4.4": True, 1080 "v6.4.0": True, 1081 "v6.4.1": True, 1082 "v6.2.0": True, 1083 "v6.2.3": True, 1084 "v6.2.5": True, 1085 "v6.2.7": True, 1086 "v6.0.11": True 1087 } 1088 }, 1089 "dhgrp": { 1090 "multiple_values": True, 1091 "type": "list", 1092 "options": [ 1093 { 1094 "value": "1", 1095 "revisions": { 1096 "v6.0.0": True, 1097 "v7.0.0": True, 1098 "v6.0.5": True, 1099 "v6.4.4": True, 1100 "v6.4.0": True, 1101 "v6.4.1": True, 1102 "v6.2.0": True, 1103 "v6.2.3": True, 1104 "v6.2.5": True, 1105 "v6.2.7": True, 1106 "v6.0.11": True 1107 } 1108 }, 1109 { 1110 "value": "2", 1111 "revisions": { 1112 "v6.0.0": True, 1113 "v7.0.0": True, 1114 "v6.0.5": True, 1115 "v6.4.4": True, 1116 "v6.4.0": True, 1117 "v6.4.1": True, 1118 "v6.2.0": True, 1119 "v6.2.3": True, 1120 "v6.2.5": True, 1121 "v6.2.7": True, 1122 "v6.0.11": True 1123 } 1124 }, 1125 { 1126 "value": "5", 1127 "revisions": { 1128 "v6.0.0": True, 1129 "v7.0.0": True, 1130 "v6.0.5": True, 1131 "v6.4.4": True, 1132 "v6.4.0": True, 1133 "v6.4.1": True, 1134 "v6.2.0": True, 1135 "v6.2.3": True, 1136 "v6.2.5": True, 1137 "v6.2.7": True, 1138 "v6.0.11": True 1139 } 1140 }, 1141 { 1142 "value": "14", 1143 "revisions": { 1144 "v6.0.0": True, 1145 "v7.0.0": True, 1146 "v6.0.5": True, 1147 "v6.4.4": True, 1148 "v6.4.0": True, 1149 "v6.4.1": True, 1150 "v6.2.0": True, 1151 "v6.2.3": True, 1152 "v6.2.5": True, 1153 "v6.2.7": True, 1154 "v6.0.11": True 1155 } 1156 }, 1157 { 1158 "value": "15", 1159 "revisions": { 1160 "v6.0.0": True, 1161 "v7.0.0": True, 1162 "v6.0.5": True, 1163 "v6.4.4": True, 1164 "v6.4.0": True, 1165 "v6.4.1": True, 1166 "v6.2.0": True, 1167 "v6.2.3": True, 1168 "v6.2.5": True, 1169 "v6.2.7": True, 1170 "v6.0.11": True 1171 } 1172 }, 1173 { 1174 "value": "16", 1175 "revisions": { 1176 "v6.0.0": True, 1177 "v7.0.0": True, 1178 "v6.0.5": True, 1179 "v6.4.4": True, 1180 "v6.4.0": True, 1181 "v6.4.1": True, 1182 "v6.2.0": True, 1183 "v6.2.3": True, 1184 "v6.2.5": True, 1185 "v6.2.7": True, 1186 "v6.0.11": True 1187 } 1188 }, 1189 { 1190 "value": "17", 1191 "revisions": { 1192 "v6.0.0": True, 1193 "v7.0.0": True, 1194 "v6.0.5": True, 1195 "v6.4.4": True, 1196 "v6.4.0": True, 1197 "v6.4.1": True, 1198 "v6.2.0": True, 1199 "v6.2.3": True, 1200 "v6.2.5": True, 1201 "v6.2.7": True, 1202 "v6.0.11": True 1203 } 1204 }, 1205 { 1206 "value": "18", 1207 "revisions": { 1208 "v6.0.0": True, 1209 "v7.0.0": True, 1210 "v6.0.5": True, 1211 "v6.4.4": True, 1212 "v6.4.0": True, 1213 "v6.4.1": True, 1214 "v6.2.0": True, 1215 "v6.2.3": True, 1216 "v6.2.5": True, 1217 "v6.2.7": True, 1218 "v6.0.11": True 1219 } 1220 }, 1221 { 1222 "value": "19", 1223 "revisions": { 1224 "v6.0.0": True, 1225 "v7.0.0": True, 1226 "v6.0.5": True, 1227 "v6.4.4": True, 1228 "v6.4.0": True, 1229 "v6.4.1": True, 1230 "v6.2.0": True, 1231 "v6.2.3": True, 1232 "v6.2.5": True, 1233 "v6.2.7": True, 1234 "v6.0.11": True 1235 } 1236 }, 1237 { 1238 "value": "20", 1239 "revisions": { 1240 "v6.0.0": True, 1241 "v7.0.0": True, 1242 "v6.0.5": True, 1243 "v6.4.4": True, 1244 "v6.4.0": True, 1245 "v6.4.1": True, 1246 "v6.2.0": True, 1247 "v6.2.3": True, 1248 "v6.2.5": True, 1249 "v6.2.7": True, 1250 "v6.0.11": True 1251 } 1252 }, 1253 { 1254 "value": "21", 1255 "revisions": { 1256 "v6.0.0": True, 1257 "v7.0.0": True, 1258 "v6.0.5": True, 1259 "v6.4.4": True, 1260 "v6.4.0": True, 1261 "v6.4.1": True, 1262 "v6.2.0": True, 1263 "v6.2.3": True, 1264 "v6.2.5": True, 1265 "v6.2.7": True, 1266 "v6.0.11": True 1267 } 1268 }, 1269 { 1270 "value": "27", 1271 "revisions": { 1272 "v6.0.0": True, 1273 "v7.0.0": True, 1274 "v6.0.5": True, 1275 "v6.4.4": True, 1276 "v6.4.0": True, 1277 "v6.4.1": True, 1278 "v6.2.0": True, 1279 "v6.2.3": True, 1280 "v6.2.5": True, 1281 "v6.2.7": True, 1282 "v6.0.11": True 1283 } 1284 }, 1285 { 1286 "value": "28", 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 { 1302 "value": "29", 1303 "revisions": { 1304 "v6.0.0": True, 1305 "v7.0.0": True, 1306 "v6.0.5": True, 1307 "v6.4.4": True, 1308 "v6.4.0": True, 1309 "v6.4.1": True, 1310 "v6.2.0": True, 1311 "v6.2.3": True, 1312 "v6.2.5": True, 1313 "v6.2.7": True, 1314 "v6.0.11": True 1315 } 1316 }, 1317 { 1318 "value": "30", 1319 "revisions": { 1320 "v6.0.0": True, 1321 "v7.0.0": True, 1322 "v6.0.5": True, 1323 "v6.4.4": True, 1324 "v6.4.0": True, 1325 "v6.4.1": True, 1326 "v6.2.0": True, 1327 "v6.2.3": True, 1328 "v6.2.5": True, 1329 "v6.2.7": True, 1330 "v6.0.11": True 1331 } 1332 }, 1333 { 1334 "value": "31", 1335 "revisions": { 1336 "v6.0.0": True, 1337 "v7.0.0": True, 1338 "v6.0.5": True, 1339 "v6.4.4": True, 1340 "v6.4.0": True, 1341 "v6.4.1": True, 1342 "v6.2.0": True, 1343 "v6.2.3": True, 1344 "v6.2.5": True, 1345 "v6.2.7": True, 1346 "v6.0.11": True 1347 } 1348 }, 1349 { 1350 "value": "32", 1351 "revisions": { 1352 "v7.0.0": True, 1353 "v6.4.4": True, 1354 "v6.4.0": True, 1355 "v6.4.1": True, 1356 "v6.2.0": True, 1357 "v6.2.3": True, 1358 "v6.2.5": True, 1359 "v6.2.7": True 1360 } 1361 } 1362 ], 1363 "revisions": { 1364 "v6.0.0": True, 1365 "v7.0.0": True, 1366 "v6.0.5": True, 1367 "v6.4.4": True, 1368 "v6.4.0": True, 1369 "v6.4.1": True, 1370 "v6.2.0": True, 1371 "v6.2.3": True, 1372 "v6.2.5": True, 1373 "v6.2.7": True, 1374 "v6.0.11": True 1375 } 1376 }, 1377 "src_end_ip": { 1378 "type": "string", 1379 "revisions": { 1380 "v6.0.0": True, 1381 "v7.0.0": True, 1382 "v6.0.5": True, 1383 "v6.4.4": True, 1384 "v6.4.0": True, 1385 "v6.4.1": True, 1386 "v6.2.0": True, 1387 "v6.2.3": True, 1388 "v6.2.5": True, 1389 "v6.2.7": True, 1390 "v6.0.11": True 1391 } 1392 }, 1393 "keylifeseconds": { 1394 "type": "integer", 1395 "revisions": { 1396 "v6.0.0": True, 1397 "v7.0.0": True, 1398 "v6.0.5": True, 1399 "v6.4.4": True, 1400 "v6.4.0": True, 1401 "v6.4.1": True, 1402 "v6.2.0": True, 1403 "v6.2.3": True, 1404 "v6.2.5": True, 1405 "v6.2.7": True, 1406 "v6.0.11": True 1407 } 1408 }, 1409 "single_source": { 1410 "type": "string", 1411 "options": [ 1412 { 1413 "value": "enable", 1414 "revisions": { 1415 "v6.0.0": True, 1416 "v7.0.0": True, 1417 "v6.0.5": True, 1418 "v6.4.4": True, 1419 "v6.4.0": True, 1420 "v6.4.1": True, 1421 "v6.2.0": True, 1422 "v6.2.3": True, 1423 "v6.2.5": True, 1424 "v6.2.7": True, 1425 "v6.0.11": True 1426 } 1427 }, 1428 { 1429 "value": "disable", 1430 "revisions": { 1431 "v6.0.0": True, 1432 "v7.0.0": True, 1433 "v6.0.5": True, 1434 "v6.4.4": True, 1435 "v6.4.0": True, 1436 "v6.4.1": True, 1437 "v6.2.0": True, 1438 "v6.2.3": True, 1439 "v6.2.5": True, 1440 "v6.2.7": True, 1441 "v6.0.11": True 1442 } 1443 } 1444 ], 1445 "revisions": { 1446 "v6.0.0": True, 1447 "v7.0.0": True, 1448 "v6.0.5": True, 1449 "v6.4.4": True, 1450 "v6.4.0": True, 1451 "v6.4.1": True, 1452 "v6.2.0": True, 1453 "v6.2.3": True, 1454 "v6.2.5": True, 1455 "v6.2.7": True, 1456 "v6.0.11": True 1457 } 1458 }, 1459 "auto_negotiate": { 1460 "type": "string", 1461 "options": [ 1462 { 1463 "value": "enable", 1464 "revisions": { 1465 "v6.0.0": True, 1466 "v7.0.0": True, 1467 "v6.0.5": True, 1468 "v6.4.4": True, 1469 "v6.4.0": True, 1470 "v6.4.1": True, 1471 "v6.2.0": True, 1472 "v6.2.3": True, 1473 "v6.2.5": True, 1474 "v6.2.7": True, 1475 "v6.0.11": True 1476 } 1477 }, 1478 { 1479 "value": "disable", 1480 "revisions": { 1481 "v6.0.0": True, 1482 "v7.0.0": True, 1483 "v6.0.5": True, 1484 "v6.4.4": True, 1485 "v6.4.0": True, 1486 "v6.4.1": True, 1487 "v6.2.0": True, 1488 "v6.2.3": True, 1489 "v6.2.5": True, 1490 "v6.2.7": True, 1491 "v6.0.11": True 1492 } 1493 } 1494 ], 1495 "revisions": { 1496 "v6.0.0": True, 1497 "v7.0.0": True, 1498 "v6.0.5": True, 1499 "v6.4.4": True, 1500 "v6.4.0": True, 1501 "v6.4.1": True, 1502 "v6.2.0": True, 1503 "v6.2.3": True, 1504 "v6.2.5": True, 1505 "v6.2.7": True, 1506 "v6.0.11": True 1507 } 1508 }, 1509 "l2tp": { 1510 "type": "string", 1511 "options": [ 1512 { 1513 "value": "enable", 1514 "revisions": { 1515 "v6.0.0": True, 1516 "v7.0.0": True, 1517 "v6.0.5": True, 1518 "v6.4.4": True, 1519 "v6.4.0": True, 1520 "v6.4.1": True, 1521 "v6.2.0": True, 1522 "v6.2.3": True, 1523 "v6.2.5": True, 1524 "v6.2.7": True, 1525 "v6.0.11": True 1526 } 1527 }, 1528 { 1529 "value": "disable", 1530 "revisions": { 1531 "v6.0.0": True, 1532 "v7.0.0": True, 1533 "v6.0.5": True, 1534 "v6.4.4": True, 1535 "v6.4.0": True, 1536 "v6.4.1": True, 1537 "v6.2.0": True, 1538 "v6.2.3": True, 1539 "v6.2.5": True, 1540 "v6.2.7": True, 1541 "v6.0.11": True 1542 } 1543 } 1544 ], 1545 "revisions": { 1546 "v6.0.0": True, 1547 "v7.0.0": True, 1548 "v6.0.5": True, 1549 "v6.4.4": True, 1550 "v6.4.0": True, 1551 "v6.4.1": True, 1552 "v6.2.0": True, 1553 "v6.2.3": True, 1554 "v6.2.5": True, 1555 "v6.2.7": True, 1556 "v6.0.11": True 1557 } 1558 }, 1559 "dst_name6": { 1560 "type": "string", 1561 "revisions": { 1562 "v6.0.0": True, 1563 "v7.0.0": True, 1564 "v6.0.5": True, 1565 "v6.4.4": True, 1566 "v6.4.0": True, 1567 "v6.4.1": True, 1568 "v6.2.0": True, 1569 "v6.2.3": True, 1570 "v6.2.5": True, 1571 "v6.2.7": True, 1572 "v6.0.11": True 1573 } 1574 }, 1575 "phase1name": { 1576 "type": "string", 1577 "revisions": { 1578 "v6.0.0": True, 1579 "v7.0.0": True, 1580 "v6.0.5": True, 1581 "v6.4.4": True, 1582 "v6.4.0": True, 1583 "v6.4.1": True, 1584 "v6.2.0": True, 1585 "v6.2.3": True, 1586 "v6.2.5": True, 1587 "v6.2.7": True, 1588 "v6.0.11": True 1589 } 1590 }, 1591 "proposal": { 1592 "multiple_values": True, 1593 "type": "list", 1594 "options": [ 1595 { 1596 "value": "null-md5", 1597 "revisions": { 1598 "v6.0.0": True, 1599 "v7.0.0": True, 1600 "v6.0.5": True, 1601 "v6.4.4": True, 1602 "v6.4.0": True, 1603 "v6.4.1": True, 1604 "v6.2.0": True, 1605 "v6.2.3": True, 1606 "v6.2.5": True, 1607 "v6.2.7": True, 1608 "v6.0.11": True 1609 } 1610 }, 1611 { 1612 "value": "null-sha1", 1613 "revisions": { 1614 "v6.0.0": True, 1615 "v7.0.0": True, 1616 "v6.0.5": True, 1617 "v6.4.4": True, 1618 "v6.4.0": True, 1619 "v6.4.1": True, 1620 "v6.2.0": True, 1621 "v6.2.3": True, 1622 "v6.2.5": True, 1623 "v6.2.7": True, 1624 "v6.0.11": True 1625 } 1626 }, 1627 { 1628 "value": "null-sha256", 1629 "revisions": { 1630 "v6.0.0": True, 1631 "v7.0.0": True, 1632 "v6.0.5": True, 1633 "v6.4.4": True, 1634 "v6.4.0": True, 1635 "v6.4.1": True, 1636 "v6.2.0": True, 1637 "v6.2.3": True, 1638 "v6.2.5": True, 1639 "v6.2.7": True, 1640 "v6.0.11": True 1641 } 1642 }, 1643 { 1644 "value": "null-sha384", 1645 "revisions": { 1646 "v6.0.0": True, 1647 "v7.0.0": True, 1648 "v6.0.5": True, 1649 "v6.4.4": True, 1650 "v6.4.0": True, 1651 "v6.4.1": True, 1652 "v6.2.0": True, 1653 "v6.2.3": True, 1654 "v6.2.5": True, 1655 "v6.2.7": True, 1656 "v6.0.11": True 1657 } 1658 }, 1659 { 1660 "value": "null-sha512", 1661 "revisions": { 1662 "v6.0.0": True, 1663 "v7.0.0": True, 1664 "v6.0.5": True, 1665 "v6.4.4": True, 1666 "v6.4.0": True, 1667 "v6.4.1": True, 1668 "v6.2.0": True, 1669 "v6.2.3": True, 1670 "v6.2.5": True, 1671 "v6.2.7": True, 1672 "v6.0.11": True 1673 } 1674 }, 1675 { 1676 "value": "des-null", 1677 "revisions": { 1678 "v6.0.0": True, 1679 "v7.0.0": True, 1680 "v6.0.5": True, 1681 "v6.4.4": True, 1682 "v6.4.0": True, 1683 "v6.4.1": True, 1684 "v6.2.0": True, 1685 "v6.2.3": True, 1686 "v6.2.5": True, 1687 "v6.2.7": True, 1688 "v6.0.11": True 1689 } 1690 }, 1691 { 1692 "value": "des-md5", 1693 "revisions": { 1694 "v6.0.0": True, 1695 "v7.0.0": True, 1696 "v6.0.5": True, 1697 "v6.4.4": True, 1698 "v6.4.0": True, 1699 "v6.4.1": True, 1700 "v6.2.0": True, 1701 "v6.2.3": True, 1702 "v6.2.5": True, 1703 "v6.2.7": True, 1704 "v6.0.11": True 1705 } 1706 }, 1707 { 1708 "value": "des-sha1", 1709 "revisions": { 1710 "v6.0.0": True, 1711 "v7.0.0": True, 1712 "v6.0.5": True, 1713 "v6.4.4": True, 1714 "v6.4.0": True, 1715 "v6.4.1": True, 1716 "v6.2.0": True, 1717 "v6.2.3": True, 1718 "v6.2.5": True, 1719 "v6.2.7": True, 1720 "v6.0.11": True 1721 } 1722 }, 1723 { 1724 "value": "des-sha256", 1725 "revisions": { 1726 "v6.0.0": True, 1727 "v7.0.0": True, 1728 "v6.0.5": True, 1729 "v6.4.4": True, 1730 "v6.4.0": True, 1731 "v6.4.1": True, 1732 "v6.2.0": True, 1733 "v6.2.3": True, 1734 "v6.2.5": True, 1735 "v6.2.7": True, 1736 "v6.0.11": True 1737 } 1738 }, 1739 { 1740 "value": "des-sha384", 1741 "revisions": { 1742 "v6.0.0": True, 1743 "v7.0.0": True, 1744 "v6.0.5": True, 1745 "v6.4.4": True, 1746 "v6.4.0": True, 1747 "v6.4.1": True, 1748 "v6.2.0": True, 1749 "v6.2.3": True, 1750 "v6.2.5": True, 1751 "v6.2.7": True, 1752 "v6.0.11": True 1753 } 1754 }, 1755 { 1756 "value": "des-sha512", 1757 "revisions": { 1758 "v6.0.0": True, 1759 "v7.0.0": True, 1760 "v6.0.5": True, 1761 "v6.4.4": True, 1762 "v6.4.0": True, 1763 "v6.4.1": True, 1764 "v6.2.0": True, 1765 "v6.2.3": True, 1766 "v6.2.5": True, 1767 "v6.2.7": True, 1768 "v6.0.11": True 1769 } 1770 }, 1771 { 1772 "value": "3des-null", 1773 "revisions": { 1774 "v6.0.0": True, 1775 "v7.0.0": True, 1776 "v6.0.5": True, 1777 "v6.4.4": True, 1778 "v6.4.0": True, 1779 "v6.4.1": True, 1780 "v6.2.0": True, 1781 "v6.2.3": True, 1782 "v6.2.5": True, 1783 "v6.2.7": True, 1784 "v6.0.11": True 1785 } 1786 }, 1787 { 1788 "value": "3des-md5", 1789 "revisions": { 1790 "v6.0.0": True, 1791 "v7.0.0": True, 1792 "v6.0.5": True, 1793 "v6.4.4": True, 1794 "v6.4.0": True, 1795 "v6.4.1": True, 1796 "v6.2.0": True, 1797 "v6.2.3": True, 1798 "v6.2.5": True, 1799 "v6.2.7": True, 1800 "v6.0.11": True 1801 } 1802 }, 1803 { 1804 "value": "3des-sha1", 1805 "revisions": { 1806 "v6.0.0": True, 1807 "v7.0.0": True, 1808 "v6.0.5": True, 1809 "v6.4.4": True, 1810 "v6.4.0": True, 1811 "v6.4.1": True, 1812 "v6.2.0": True, 1813 "v6.2.3": True, 1814 "v6.2.5": True, 1815 "v6.2.7": True, 1816 "v6.0.11": True 1817 } 1818 }, 1819 { 1820 "value": "3des-sha256", 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 { 1836 "value": "3des-sha384", 1837 "revisions": { 1838 "v6.0.0": True, 1839 "v7.0.0": True, 1840 "v6.0.5": True, 1841 "v6.4.4": True, 1842 "v6.4.0": True, 1843 "v6.4.1": True, 1844 "v6.2.0": True, 1845 "v6.2.3": True, 1846 "v6.2.5": True, 1847 "v6.2.7": True, 1848 "v6.0.11": True 1849 } 1850 }, 1851 { 1852 "value": "3des-sha512", 1853 "revisions": { 1854 "v6.0.0": True, 1855 "v7.0.0": True, 1856 "v6.0.5": True, 1857 "v6.4.4": True, 1858 "v6.4.0": True, 1859 "v6.4.1": True, 1860 "v6.2.0": True, 1861 "v6.2.3": True, 1862 "v6.2.5": True, 1863 "v6.2.7": True, 1864 "v6.0.11": True 1865 } 1866 }, 1867 { 1868 "value": "aes128-null", 1869 "revisions": { 1870 "v6.0.0": True, 1871 "v7.0.0": True, 1872 "v6.0.5": True, 1873 "v6.4.4": True, 1874 "v6.4.0": True, 1875 "v6.4.1": True, 1876 "v6.2.0": True, 1877 "v6.2.3": True, 1878 "v6.2.5": True, 1879 "v6.2.7": True, 1880 "v6.0.11": True 1881 } 1882 }, 1883 { 1884 "value": "aes128-md5", 1885 "revisions": { 1886 "v6.0.0": True, 1887 "v7.0.0": True, 1888 "v6.0.5": True, 1889 "v6.4.4": True, 1890 "v6.4.0": True, 1891 "v6.4.1": True, 1892 "v6.2.0": True, 1893 "v6.2.3": True, 1894 "v6.2.5": True, 1895 "v6.2.7": True, 1896 "v6.0.11": True 1897 } 1898 }, 1899 { 1900 "value": "aes128-sha1", 1901 "revisions": { 1902 "v6.0.0": True, 1903 "v7.0.0": True, 1904 "v6.0.5": True, 1905 "v6.4.4": True, 1906 "v6.4.0": True, 1907 "v6.4.1": True, 1908 "v6.2.0": True, 1909 "v6.2.3": True, 1910 "v6.2.5": True, 1911 "v6.2.7": True, 1912 "v6.0.11": True 1913 } 1914 }, 1915 { 1916 "value": "aes128-sha256", 1917 "revisions": { 1918 "v6.0.0": True, 1919 "v7.0.0": True, 1920 "v6.0.5": True, 1921 "v6.4.4": True, 1922 "v6.4.0": True, 1923 "v6.4.1": True, 1924 "v6.2.0": True, 1925 "v6.2.3": True, 1926 "v6.2.5": True, 1927 "v6.2.7": True, 1928 "v6.0.11": True 1929 } 1930 }, 1931 { 1932 "value": "aes128-sha384", 1933 "revisions": { 1934 "v6.0.0": True, 1935 "v7.0.0": True, 1936 "v6.0.5": True, 1937 "v6.4.4": True, 1938 "v6.4.0": True, 1939 "v6.4.1": True, 1940 "v6.2.0": True, 1941 "v6.2.3": True, 1942 "v6.2.5": True, 1943 "v6.2.7": True, 1944 "v6.0.11": True 1945 } 1946 }, 1947 { 1948 "value": "aes128-sha512", 1949 "revisions": { 1950 "v6.0.0": True, 1951 "v7.0.0": True, 1952 "v6.0.5": True, 1953 "v6.4.4": True, 1954 "v6.4.0": True, 1955 "v6.4.1": True, 1956 "v6.2.0": True, 1957 "v6.2.3": True, 1958 "v6.2.5": True, 1959 "v6.2.7": True, 1960 "v6.0.11": True 1961 } 1962 }, 1963 { 1964 "value": "aes128gcm", 1965 "revisions": { 1966 "v6.0.0": True, 1967 "v7.0.0": True, 1968 "v6.0.5": True, 1969 "v6.4.4": True, 1970 "v6.4.0": True, 1971 "v6.4.1": True, 1972 "v6.2.0": True, 1973 "v6.2.3": True, 1974 "v6.2.5": True, 1975 "v6.2.7": True, 1976 "v6.0.11": True 1977 } 1978 }, 1979 { 1980 "value": "aes192-null", 1981 "revisions": { 1982 "v6.0.0": True, 1983 "v7.0.0": True, 1984 "v6.0.5": True, 1985 "v6.4.4": True, 1986 "v6.4.0": True, 1987 "v6.4.1": True, 1988 "v6.2.0": True, 1989 "v6.2.3": True, 1990 "v6.2.5": True, 1991 "v6.2.7": True, 1992 "v6.0.11": True 1993 } 1994 }, 1995 { 1996 "value": "aes192-md5", 1997 "revisions": { 1998 "v6.0.0": True, 1999 "v7.0.0": True, 2000 "v6.0.5": True, 2001 "v6.4.4": True, 2002 "v6.4.0": True, 2003 "v6.4.1": True, 2004 "v6.2.0": True, 2005 "v6.2.3": True, 2006 "v6.2.5": True, 2007 "v6.2.7": True, 2008 "v6.0.11": True 2009 } 2010 }, 2011 { 2012 "value": "aes192-sha1", 2013 "revisions": { 2014 "v6.0.0": True, 2015 "v7.0.0": True, 2016 "v6.0.5": True, 2017 "v6.4.4": True, 2018 "v6.4.0": True, 2019 "v6.4.1": True, 2020 "v6.2.0": True, 2021 "v6.2.3": True, 2022 "v6.2.5": True, 2023 "v6.2.7": True, 2024 "v6.0.11": True 2025 } 2026 }, 2027 { 2028 "value": "aes192-sha256", 2029 "revisions": { 2030 "v6.0.0": True, 2031 "v7.0.0": True, 2032 "v6.0.5": True, 2033 "v6.4.4": True, 2034 "v6.4.0": True, 2035 "v6.4.1": True, 2036 "v6.2.0": True, 2037 "v6.2.3": True, 2038 "v6.2.5": True, 2039 "v6.2.7": True, 2040 "v6.0.11": True 2041 } 2042 }, 2043 { 2044 "value": "aes192-sha384", 2045 "revisions": { 2046 "v6.0.0": True, 2047 "v7.0.0": True, 2048 "v6.0.5": True, 2049 "v6.4.4": True, 2050 "v6.4.0": True, 2051 "v6.4.1": True, 2052 "v6.2.0": True, 2053 "v6.2.3": True, 2054 "v6.2.5": True, 2055 "v6.2.7": True, 2056 "v6.0.11": True 2057 } 2058 }, 2059 { 2060 "value": "aes192-sha512", 2061 "revisions": { 2062 "v6.0.0": True, 2063 "v7.0.0": True, 2064 "v6.0.5": True, 2065 "v6.4.4": True, 2066 "v6.4.0": True, 2067 "v6.4.1": True, 2068 "v6.2.0": True, 2069 "v6.2.3": True, 2070 "v6.2.5": True, 2071 "v6.2.7": True, 2072 "v6.0.11": True 2073 } 2074 }, 2075 { 2076 "value": "aes256-null", 2077 "revisions": { 2078 "v6.0.0": True, 2079 "v7.0.0": True, 2080 "v6.0.5": True, 2081 "v6.4.4": True, 2082 "v6.4.0": True, 2083 "v6.4.1": True, 2084 "v6.2.0": True, 2085 "v6.2.3": True, 2086 "v6.2.5": True, 2087 "v6.2.7": True, 2088 "v6.0.11": True 2089 } 2090 }, 2091 { 2092 "value": "aes256-md5", 2093 "revisions": { 2094 "v6.0.0": True, 2095 "v7.0.0": True, 2096 "v6.0.5": True, 2097 "v6.4.4": True, 2098 "v6.4.0": True, 2099 "v6.4.1": True, 2100 "v6.2.0": True, 2101 "v6.2.3": True, 2102 "v6.2.5": True, 2103 "v6.2.7": True, 2104 "v6.0.11": True 2105 } 2106 }, 2107 { 2108 "value": "aes256-sha1", 2109 "revisions": { 2110 "v6.0.0": True, 2111 "v7.0.0": True, 2112 "v6.0.5": True, 2113 "v6.4.4": True, 2114 "v6.4.0": True, 2115 "v6.4.1": True, 2116 "v6.2.0": True, 2117 "v6.2.3": True, 2118 "v6.2.5": True, 2119 "v6.2.7": True, 2120 "v6.0.11": True 2121 } 2122 }, 2123 { 2124 "value": "aes256-sha256", 2125 "revisions": { 2126 "v6.0.0": True, 2127 "v7.0.0": True, 2128 "v6.0.5": True, 2129 "v6.4.4": True, 2130 "v6.4.0": True, 2131 "v6.4.1": True, 2132 "v6.2.0": True, 2133 "v6.2.3": True, 2134 "v6.2.5": True, 2135 "v6.2.7": True, 2136 "v6.0.11": True 2137 } 2138 }, 2139 { 2140 "value": "aes256-sha384", 2141 "revisions": { 2142 "v6.0.0": True, 2143 "v7.0.0": True, 2144 "v6.0.5": True, 2145 "v6.4.4": True, 2146 "v6.4.0": True, 2147 "v6.4.1": True, 2148 "v6.2.0": True, 2149 "v6.2.3": True, 2150 "v6.2.5": True, 2151 "v6.2.7": True, 2152 "v6.0.11": True 2153 } 2154 }, 2155 { 2156 "value": "aes256-sha512", 2157 "revisions": { 2158 "v6.0.0": True, 2159 "v7.0.0": True, 2160 "v6.0.5": True, 2161 "v6.4.4": True, 2162 "v6.4.0": True, 2163 "v6.4.1": True, 2164 "v6.2.0": True, 2165 "v6.2.3": True, 2166 "v6.2.5": True, 2167 "v6.2.7": True, 2168 "v6.0.11": True 2169 } 2170 }, 2171 { 2172 "value": "aes256gcm", 2173 "revisions": { 2174 "v6.0.0": True, 2175 "v7.0.0": True, 2176 "v6.0.5": True, 2177 "v6.4.4": True, 2178 "v6.4.0": True, 2179 "v6.4.1": True, 2180 "v6.2.0": True, 2181 "v6.2.3": True, 2182 "v6.2.5": True, 2183 "v6.2.7": True, 2184 "v6.0.11": True 2185 } 2186 }, 2187 { 2188 "value": "chacha20poly1305", 2189 "revisions": { 2190 "v6.0.0": True, 2191 "v7.0.0": True, 2192 "v6.0.5": True, 2193 "v6.4.4": True, 2194 "v6.4.0": True, 2195 "v6.4.1": True, 2196 "v6.2.0": True, 2197 "v6.2.3": True, 2198 "v6.2.5": True, 2199 "v6.2.7": True, 2200 "v6.0.11": True 2201 } 2202 }, 2203 { 2204 "value": "aria128-null", 2205 "revisions": { 2206 "v6.0.0": True, 2207 "v7.0.0": True, 2208 "v6.0.5": True, 2209 "v6.4.4": True, 2210 "v6.4.0": True, 2211 "v6.4.1": True, 2212 "v6.2.0": True, 2213 "v6.2.3": True, 2214 "v6.2.5": True, 2215 "v6.2.7": True, 2216 "v6.0.11": True 2217 } 2218 }, 2219 { 2220 "value": "aria128-md5", 2221 "revisions": { 2222 "v6.0.0": True, 2223 "v7.0.0": True, 2224 "v6.0.5": True, 2225 "v6.4.4": True, 2226 "v6.4.0": True, 2227 "v6.4.1": True, 2228 "v6.2.0": True, 2229 "v6.2.3": True, 2230 "v6.2.5": True, 2231 "v6.2.7": True, 2232 "v6.0.11": True 2233 } 2234 }, 2235 { 2236 "value": "aria128-sha1", 2237 "revisions": { 2238 "v6.0.0": True, 2239 "v7.0.0": True, 2240 "v6.0.5": True, 2241 "v6.4.4": True, 2242 "v6.4.0": True, 2243 "v6.4.1": True, 2244 "v6.2.0": True, 2245 "v6.2.3": True, 2246 "v6.2.5": True, 2247 "v6.2.7": True, 2248 "v6.0.11": True 2249 } 2250 }, 2251 { 2252 "value": "aria128-sha256", 2253 "revisions": { 2254 "v6.0.0": True, 2255 "v7.0.0": True, 2256 "v6.0.5": True, 2257 "v6.4.4": True, 2258 "v6.4.0": True, 2259 "v6.4.1": True, 2260 "v6.2.0": True, 2261 "v6.2.3": True, 2262 "v6.2.5": True, 2263 "v6.2.7": True, 2264 "v6.0.11": True 2265 } 2266 }, 2267 { 2268 "value": "aria128-sha384", 2269 "revisions": { 2270 "v6.0.0": True, 2271 "v7.0.0": True, 2272 "v6.0.5": True, 2273 "v6.4.4": True, 2274 "v6.4.0": True, 2275 "v6.4.1": True, 2276 "v6.2.0": True, 2277 "v6.2.3": True, 2278 "v6.2.5": True, 2279 "v6.2.7": True, 2280 "v6.0.11": True 2281 } 2282 }, 2283 { 2284 "value": "aria128-sha512", 2285 "revisions": { 2286 "v6.0.0": True, 2287 "v7.0.0": True, 2288 "v6.0.5": True, 2289 "v6.4.4": True, 2290 "v6.4.0": True, 2291 "v6.4.1": True, 2292 "v6.2.0": True, 2293 "v6.2.3": True, 2294 "v6.2.5": True, 2295 "v6.2.7": True, 2296 "v6.0.11": True 2297 } 2298 }, 2299 { 2300 "value": "aria192-null", 2301 "revisions": { 2302 "v6.0.0": True, 2303 "v7.0.0": True, 2304 "v6.0.5": True, 2305 "v6.4.4": True, 2306 "v6.4.0": True, 2307 "v6.4.1": True, 2308 "v6.2.0": True, 2309 "v6.2.3": True, 2310 "v6.2.5": True, 2311 "v6.2.7": True, 2312 "v6.0.11": True 2313 } 2314 }, 2315 { 2316 "value": "aria192-md5", 2317 "revisions": { 2318 "v6.0.0": True, 2319 "v7.0.0": True, 2320 "v6.0.5": True, 2321 "v6.4.4": True, 2322 "v6.4.0": True, 2323 "v6.4.1": True, 2324 "v6.2.0": True, 2325 "v6.2.3": True, 2326 "v6.2.5": True, 2327 "v6.2.7": True, 2328 "v6.0.11": True 2329 } 2330 }, 2331 { 2332 "value": "aria192-sha1", 2333 "revisions": { 2334 "v6.0.0": True, 2335 "v7.0.0": True, 2336 "v6.0.5": True, 2337 "v6.4.4": True, 2338 "v6.4.0": True, 2339 "v6.4.1": True, 2340 "v6.2.0": True, 2341 "v6.2.3": True, 2342 "v6.2.5": True, 2343 "v6.2.7": True, 2344 "v6.0.11": True 2345 } 2346 }, 2347 { 2348 "value": "aria192-sha256", 2349 "revisions": { 2350 "v6.0.0": True, 2351 "v7.0.0": True, 2352 "v6.0.5": True, 2353 "v6.4.4": True, 2354 "v6.4.0": True, 2355 "v6.4.1": True, 2356 "v6.2.0": True, 2357 "v6.2.3": True, 2358 "v6.2.5": True, 2359 "v6.2.7": True, 2360 "v6.0.11": True 2361 } 2362 }, 2363 { 2364 "value": "aria192-sha384", 2365 "revisions": { 2366 "v6.0.0": True, 2367 "v7.0.0": True, 2368 "v6.0.5": True, 2369 "v6.4.4": True, 2370 "v6.4.0": True, 2371 "v6.4.1": True, 2372 "v6.2.0": True, 2373 "v6.2.3": True, 2374 "v6.2.5": True, 2375 "v6.2.7": True, 2376 "v6.0.11": True 2377 } 2378 }, 2379 { 2380 "value": "aria192-sha512", 2381 "revisions": { 2382 "v6.0.0": True, 2383 "v7.0.0": True, 2384 "v6.0.5": True, 2385 "v6.4.4": True, 2386 "v6.4.0": True, 2387 "v6.4.1": True, 2388 "v6.2.0": True, 2389 "v6.2.3": True, 2390 "v6.2.5": True, 2391 "v6.2.7": True, 2392 "v6.0.11": True 2393 } 2394 }, 2395 { 2396 "value": "aria256-null", 2397 "revisions": { 2398 "v6.0.0": True, 2399 "v7.0.0": True, 2400 "v6.0.5": True, 2401 "v6.4.4": True, 2402 "v6.4.0": True, 2403 "v6.4.1": True, 2404 "v6.2.0": True, 2405 "v6.2.3": True, 2406 "v6.2.5": True, 2407 "v6.2.7": True, 2408 "v6.0.11": True 2409 } 2410 }, 2411 { 2412 "value": "aria256-md5", 2413 "revisions": { 2414 "v6.0.0": True, 2415 "v7.0.0": True, 2416 "v6.0.5": True, 2417 "v6.4.4": True, 2418 "v6.4.0": True, 2419 "v6.4.1": True, 2420 "v6.2.0": True, 2421 "v6.2.3": True, 2422 "v6.2.5": True, 2423 "v6.2.7": True, 2424 "v6.0.11": True 2425 } 2426 }, 2427 { 2428 "value": "aria256-sha1", 2429 "revisions": { 2430 "v6.0.0": True, 2431 "v7.0.0": True, 2432 "v6.0.5": True, 2433 "v6.4.4": True, 2434 "v6.4.0": True, 2435 "v6.4.1": True, 2436 "v6.2.0": True, 2437 "v6.2.3": True, 2438 "v6.2.5": True, 2439 "v6.2.7": True, 2440 "v6.0.11": True 2441 } 2442 }, 2443 { 2444 "value": "aria256-sha256", 2445 "revisions": { 2446 "v6.0.0": True, 2447 "v7.0.0": True, 2448 "v6.0.5": True, 2449 "v6.4.4": True, 2450 "v6.4.0": True, 2451 "v6.4.1": True, 2452 "v6.2.0": True, 2453 "v6.2.3": True, 2454 "v6.2.5": True, 2455 "v6.2.7": True, 2456 "v6.0.11": True 2457 } 2458 }, 2459 { 2460 "value": "aria256-sha384", 2461 "revisions": { 2462 "v6.0.0": True, 2463 "v7.0.0": True, 2464 "v6.0.5": True, 2465 "v6.4.4": True, 2466 "v6.4.0": True, 2467 "v6.4.1": True, 2468 "v6.2.0": True, 2469 "v6.2.3": True, 2470 "v6.2.5": True, 2471 "v6.2.7": True, 2472 "v6.0.11": True 2473 } 2474 }, 2475 { 2476 "value": "aria256-sha512", 2477 "revisions": { 2478 "v6.0.0": True, 2479 "v7.0.0": True, 2480 "v6.0.5": True, 2481 "v6.4.4": True, 2482 "v6.4.0": True, 2483 "v6.4.1": True, 2484 "v6.2.0": True, 2485 "v6.2.3": True, 2486 "v6.2.5": True, 2487 "v6.2.7": True, 2488 "v6.0.11": True 2489 } 2490 }, 2491 { 2492 "value": "seed-null", 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 { 2508 "value": "seed-md5", 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 { 2524 "value": "seed-sha1", 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 { 2540 "value": "seed-sha256", 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 { 2556 "value": "seed-sha384", 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 { 2572 "value": "seed-sha512", 2573 "revisions": { 2574 "v6.0.0": True, 2575 "v7.0.0": True, 2576 "v6.0.5": True, 2577 "v6.4.4": True, 2578 "v6.4.0": True, 2579 "v6.4.1": True, 2580 "v6.2.0": True, 2581 "v6.2.3": True, 2582 "v6.2.5": True, 2583 "v6.2.7": True, 2584 "v6.0.11": True 2585 } 2586 } 2587 ], 2588 "revisions": { 2589 "v6.0.0": True, 2590 "v7.0.0": True, 2591 "v6.0.5": True, 2592 "v6.4.4": True, 2593 "v6.4.0": True, 2594 "v6.4.1": True, 2595 "v6.2.0": True, 2596 "v6.2.3": True, 2597 "v6.2.5": True, 2598 "v6.2.7": True, 2599 "v6.0.11": True 2600 } 2601 }, 2602 "src_addr_type": { 2603 "type": "string", 2604 "options": [ 2605 { 2606 "value": "subnet", 2607 "revisions": { 2608 "v6.0.0": True, 2609 "v7.0.0": True, 2610 "v6.0.5": True, 2611 "v6.4.4": True, 2612 "v6.4.0": True, 2613 "v6.4.1": True, 2614 "v6.2.0": True, 2615 "v6.2.3": True, 2616 "v6.2.5": True, 2617 "v6.2.7": True, 2618 "v6.0.11": True 2619 } 2620 }, 2621 { 2622 "value": "range", 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 "value": "ip", 2639 "revisions": { 2640 "v6.0.0": True, 2641 "v7.0.0": True, 2642 "v6.0.5": True, 2643 "v6.4.4": True, 2644 "v6.4.0": True, 2645 "v6.4.1": True, 2646 "v6.2.0": True, 2647 "v6.2.3": True, 2648 "v6.2.5": True, 2649 "v6.2.7": True, 2650 "v6.0.11": True 2651 } 2652 }, 2653 { 2654 "value": "name", 2655 "revisions": { 2656 "v6.0.0": True, 2657 "v7.0.0": True, 2658 "v6.0.5": True, 2659 "v6.4.4": True, 2660 "v6.4.0": True, 2661 "v6.4.1": True, 2662 "v6.2.0": True, 2663 "v6.2.3": True, 2664 "v6.2.5": True, 2665 "v6.2.7": True, 2666 "v6.0.11": True 2667 } 2668 }, 2669 { 2670 "value": "subnet6", 2671 "revisions": { 2672 "v6.0.0": True, 2673 "v7.0.0": True, 2674 "v6.0.5": True, 2675 "v6.4.4": True, 2676 "v6.4.0": True, 2677 "v6.4.1": True, 2678 "v6.2.0": True, 2679 "v6.2.3": True, 2680 "v6.2.5": True, 2681 "v6.2.7": True, 2682 "v6.0.11": True 2683 } 2684 }, 2685 { 2686 "value": "range6", 2687 "revisions": { 2688 "v6.0.0": True, 2689 "v7.0.0": True, 2690 "v6.0.5": True, 2691 "v6.4.4": True, 2692 "v6.4.0": True, 2693 "v6.4.1": True, 2694 "v6.2.0": True, 2695 "v6.2.3": True, 2696 "v6.2.5": True, 2697 "v6.2.7": True, 2698 "v6.0.11": True 2699 } 2700 }, 2701 { 2702 "value": "ip6", 2703 "revisions": { 2704 "v6.0.0": True, 2705 "v7.0.0": True, 2706 "v6.0.5": True, 2707 "v6.4.4": True, 2708 "v6.4.0": True, 2709 "v6.4.1": True, 2710 "v6.2.0": True, 2711 "v6.2.3": True, 2712 "v6.2.5": True, 2713 "v6.2.7": True, 2714 "v6.0.11": True 2715 } 2716 }, 2717 { 2718 "value": "name6", 2719 "revisions": { 2720 "v6.0.0": True, 2721 "v7.0.0": True, 2722 "v6.0.5": True, 2723 "v6.4.4": True, 2724 "v6.4.0": True, 2725 "v6.4.1": True, 2726 "v6.2.0": True, 2727 "v6.2.3": True, 2728 "v6.2.5": True, 2729 "v6.2.7": True, 2730 "v6.0.11": True 2731 } 2732 } 2733 ], 2734 "revisions": { 2735 "v6.0.0": True, 2736 "v7.0.0": True, 2737 "v6.0.5": True, 2738 "v6.4.4": True, 2739 "v6.4.0": True, 2740 "v6.4.1": True, 2741 "v6.2.0": True, 2742 "v6.2.3": True, 2743 "v6.2.5": True, 2744 "v6.2.7": True, 2745 "v6.0.11": True 2746 } 2747 }, 2748 "dst_port": { 2749 "type": "integer", 2750 "revisions": { 2751 "v6.0.0": True, 2752 "v7.0.0": True, 2753 "v6.0.5": True, 2754 "v6.4.4": True, 2755 "v6.4.0": True, 2756 "v6.4.1": True, 2757 "v6.2.0": True, 2758 "v6.2.3": True, 2759 "v6.2.5": True, 2760 "v6.2.7": True, 2761 "v6.0.11": True 2762 } 2763 }, 2764 "dhcp_ipsec": { 2765 "type": "string", 2766 "options": [ 2767 { 2768 "value": "enable", 2769 "revisions": { 2770 "v6.0.0": True, 2771 "v7.0.0": True, 2772 "v6.0.5": True, 2773 "v6.4.4": True, 2774 "v6.4.0": True, 2775 "v6.4.1": True, 2776 "v6.2.0": True, 2777 "v6.2.3": True, 2778 "v6.2.5": True, 2779 "v6.2.7": True, 2780 "v6.0.11": True 2781 } 2782 }, 2783 { 2784 "value": "disable", 2785 "revisions": { 2786 "v6.0.0": True, 2787 "v7.0.0": True, 2788 "v6.0.5": True, 2789 "v6.4.4": True, 2790 "v6.4.0": True, 2791 "v6.4.1": True, 2792 "v6.2.0": True, 2793 "v6.2.3": True, 2794 "v6.2.5": True, 2795 "v6.2.7": True, 2796 "v6.0.11": True 2797 } 2798 } 2799 ], 2800 "revisions": { 2801 "v6.0.0": True, 2802 "v7.0.0": True, 2803 "v6.0.5": True, 2804 "v6.4.4": True, 2805 "v6.4.0": True, 2806 "v6.4.1": True, 2807 "v6.2.0": True, 2808 "v6.2.3": True, 2809 "v6.2.5": True, 2810 "v6.2.7": True, 2811 "v6.0.11": True 2812 } 2813 }, 2814 "dst_subnet6": { 2815 "type": "string", 2816 "revisions": { 2817 "v6.0.0": True, 2818 "v7.0.0": True, 2819 "v6.0.5": True, 2820 "v6.4.4": True, 2821 "v6.4.0": True, 2822 "v6.4.1": True, 2823 "v6.2.0": True, 2824 "v6.2.3": True, 2825 "v6.2.5": True, 2826 "v6.2.7": True, 2827 "v6.0.11": True 2828 } 2829 }, 2830 "src_name6": { 2831 "type": "string", 2832 "revisions": { 2833 "v6.0.0": True, 2834 "v7.0.0": True, 2835 "v6.0.5": True, 2836 "v6.4.4": True, 2837 "v6.4.0": True, 2838 "v6.4.1": True, 2839 "v6.2.0": True, 2840 "v6.2.3": True, 2841 "v6.2.5": True, 2842 "v6.2.7": True, 2843 "v6.0.11": True 2844 } 2845 }, 2846 "src_name": { 2847 "type": "string", 2848 "revisions": { 2849 "v6.0.0": True, 2850 "v7.0.0": True, 2851 "v6.0.5": True, 2852 "v6.4.4": True, 2853 "v6.4.0": True, 2854 "v6.4.1": True, 2855 "v6.2.0": True, 2856 "v6.2.3": True, 2857 "v6.2.5": True, 2858 "v6.2.7": True, 2859 "v6.0.11": True 2860 } 2861 }, 2862 "src_end_ip6": { 2863 "type": "string", 2864 "revisions": { 2865 "v6.0.0": True, 2866 "v7.0.0": True, 2867 "v6.0.5": True, 2868 "v6.4.4": True, 2869 "v6.4.0": True, 2870 "v6.4.1": True, 2871 "v6.2.0": True, 2872 "v6.2.3": True, 2873 "v6.2.5": True, 2874 "v6.2.7": True, 2875 "v6.0.11": True 2876 } 2877 }, 2878 "pfs": { 2879 "type": "string", 2880 "options": [ 2881 { 2882 "value": "enable", 2883 "revisions": { 2884 "v6.0.0": True, 2885 "v7.0.0": True, 2886 "v6.0.5": True, 2887 "v6.4.4": True, 2888 "v6.4.0": True, 2889 "v6.4.1": True, 2890 "v6.2.0": True, 2891 "v6.2.3": True, 2892 "v6.2.5": True, 2893 "v6.2.7": True, 2894 "v6.0.11": True 2895 } 2896 }, 2897 { 2898 "value": "disable", 2899 "revisions": { 2900 "v6.0.0": True, 2901 "v7.0.0": True, 2902 "v6.0.5": True, 2903 "v6.4.4": True, 2904 "v6.4.0": True, 2905 "v6.4.1": True, 2906 "v6.2.0": True, 2907 "v6.2.3": True, 2908 "v6.2.5": True, 2909 "v6.2.7": True, 2910 "v6.0.11": True 2911 } 2912 } 2913 ], 2914 "revisions": { 2915 "v6.0.0": True, 2916 "v7.0.0": True, 2917 "v6.0.5": True, 2918 "v6.4.4": True, 2919 "v6.4.0": True, 2920 "v6.4.1": True, 2921 "v6.2.0": True, 2922 "v6.2.3": True, 2923 "v6.2.5": True, 2924 "v6.2.7": True, 2925 "v6.0.11": True 2926 } 2927 }, 2928 "dst_end_ip": { 2929 "type": "string", 2930 "revisions": { 2931 "v6.0.0": True, 2932 "v7.0.0": True, 2933 "v6.0.5": True, 2934 "v6.4.4": True, 2935 "v6.4.0": True, 2936 "v6.4.1": True, 2937 "v6.2.0": True, 2938 "v6.2.3": True, 2939 "v6.2.5": True, 2940 "v6.2.7": True, 2941 "v6.0.11": True 2942 } 2943 }, 2944 "src_start_ip6": { 2945 "type": "string", 2946 "revisions": { 2947 "v6.0.0": True, 2948 "v7.0.0": True, 2949 "v6.0.5": True, 2950 "v6.4.4": True, 2951 "v6.4.0": True, 2952 "v6.4.1": True, 2953 "v6.2.0": True, 2954 "v6.2.3": True, 2955 "v6.2.5": True, 2956 "v6.2.7": True, 2957 "v6.0.11": True 2958 } 2959 }, 2960 "encapsulation": { 2961 "type": "string", 2962 "options": [ 2963 { 2964 "value": "tunnel-mode", 2965 "revisions": { 2966 "v6.0.0": True, 2967 "v7.0.0": True, 2968 "v6.0.5": True, 2969 "v6.4.4": True, 2970 "v6.4.0": True, 2971 "v6.4.1": True, 2972 "v6.2.0": True, 2973 "v6.2.3": True, 2974 "v6.2.5": True, 2975 "v6.2.7": True, 2976 "v6.0.11": True 2977 } 2978 }, 2979 { 2980 "value": "transport-mode", 2981 "revisions": { 2982 "v6.0.0": True, 2983 "v7.0.0": True, 2984 "v6.0.5": True, 2985 "v6.4.4": True, 2986 "v6.4.0": True, 2987 "v6.4.1": True, 2988 "v6.2.0": True, 2989 "v6.2.3": True, 2990 "v6.2.5": True, 2991 "v6.2.7": True, 2992 "v6.0.11": True 2993 } 2994 } 2995 ], 2996 "revisions": { 2997 "v6.0.0": True, 2998 "v7.0.0": True, 2999 "v6.0.5": True, 3000 "v6.4.4": True, 3001 "v6.4.0": True, 3002 "v6.4.1": True, 3003 "v6.2.0": True, 3004 "v6.2.3": True, 3005 "v6.2.5": True, 3006 "v6.2.7": True, 3007 "v6.0.11": True 3008 } 3009 }, 3010 "initiator_ts_narrow": { 3011 "type": "string", 3012 "options": [ 3013 { 3014 "value": "enable", 3015 "revisions": { 3016 "v6.4.4": True, 3017 "v7.0.0": True 3018 } 3019 }, 3020 { 3021 "value": "disable", 3022 "revisions": { 3023 "v6.4.4": True, 3024 "v7.0.0": True 3025 } 3026 } 3027 ], 3028 "revisions": { 3029 "v6.4.4": True, 3030 "v7.0.0": True 3031 } 3032 }, 3033 "src_subnet6": { 3034 "type": "string", 3035 "revisions": { 3036 "v6.0.0": True, 3037 "v7.0.0": True, 3038 "v6.0.5": True, 3039 "v6.4.4": True, 3040 "v6.4.0": True, 3041 "v6.4.1": True, 3042 "v6.2.0": True, 3043 "v6.2.3": True, 3044 "v6.2.5": True, 3045 "v6.2.7": True, 3046 "v6.0.11": True 3047 } 3048 }, 3049 "dst_start_ip": { 3050 "type": "string", 3051 "revisions": { 3052 "v6.0.0": True, 3053 "v7.0.0": True, 3054 "v6.0.5": True, 3055 "v6.4.4": True, 3056 "v6.4.0": True, 3057 "v6.4.1": True, 3058 "v6.2.0": True, 3059 "v6.2.3": True, 3060 "v6.2.5": True, 3061 "v6.2.7": True, 3062 "v6.0.11": True 3063 } 3064 }, 3065 "name": { 3066 "type": "string", 3067 "revisions": { 3068 "v6.0.0": True, 3069 "v7.0.0": True, 3070 "v6.0.5": True, 3071 "v6.4.4": True, 3072 "v6.4.0": True, 3073 "v6.4.1": True, 3074 "v6.2.0": True, 3075 "v6.2.3": True, 3076 "v6.2.5": True, 3077 "v6.2.7": True, 3078 "v6.0.11": True 3079 } 3080 }, 3081 "keylife_type": { 3082 "type": "string", 3083 "options": [ 3084 { 3085 "value": "seconds", 3086 "revisions": { 3087 "v6.0.0": True, 3088 "v7.0.0": True, 3089 "v6.0.5": True, 3090 "v6.4.4": True, 3091 "v6.4.0": True, 3092 "v6.4.1": True, 3093 "v6.2.0": True, 3094 "v6.2.3": True, 3095 "v6.2.5": True, 3096 "v6.2.7": True, 3097 "v6.0.11": True 3098 } 3099 }, 3100 { 3101 "value": "kbs", 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 { 3117 "value": "both", 3118 "revisions": { 3119 "v6.0.0": True, 3120 "v7.0.0": True, 3121 "v6.0.5": True, 3122 "v6.4.4": True, 3123 "v6.4.0": True, 3124 "v6.4.1": True, 3125 "v6.2.0": True, 3126 "v6.2.3": True, 3127 "v6.2.5": True, 3128 "v6.2.7": True, 3129 "v6.0.11": True 3130 } 3131 } 3132 ], 3133 "revisions": { 3134 "v6.0.0": True, 3135 "v7.0.0": True, 3136 "v6.0.5": True, 3137 "v6.4.4": True, 3138 "v6.4.0": True, 3139 "v6.4.1": True, 3140 "v6.2.0": True, 3141 "v6.2.3": True, 3142 "v6.2.5": True, 3143 "v6.2.7": True, 3144 "v6.0.11": True 3145 } 3146 }, 3147 "auto_discovery_forwarder": { 3148 "type": "string", 3149 "options": [ 3150 { 3151 "value": "phase1", 3152 "revisions": { 3153 "v6.0.0": True, 3154 "v7.0.0": True, 3155 "v6.0.5": True, 3156 "v6.4.4": True, 3157 "v6.4.0": True, 3158 "v6.4.1": True, 3159 "v6.2.0": True, 3160 "v6.2.3": True, 3161 "v6.2.5": True, 3162 "v6.2.7": True, 3163 "v6.0.11": True 3164 } 3165 }, 3166 { 3167 "value": "enable", 3168 "revisions": { 3169 "v6.0.0": True, 3170 "v7.0.0": True, 3171 "v6.0.5": True, 3172 "v6.4.4": True, 3173 "v6.4.0": True, 3174 "v6.4.1": True, 3175 "v6.2.0": True, 3176 "v6.2.3": True, 3177 "v6.2.5": True, 3178 "v6.2.7": True, 3179 "v6.0.11": True 3180 } 3181 }, 3182 { 3183 "value": "disable", 3184 "revisions": { 3185 "v6.0.0": True, 3186 "v7.0.0": True, 3187 "v6.0.5": True, 3188 "v6.4.4": True, 3189 "v6.4.0": True, 3190 "v6.4.1": True, 3191 "v6.2.0": True, 3192 "v6.2.3": True, 3193 "v6.2.5": True, 3194 "v6.2.7": True, 3195 "v6.0.11": True 3196 } 3197 } 3198 ], 3199 "revisions": { 3200 "v6.0.0": True, 3201 "v7.0.0": True, 3202 "v6.0.5": True, 3203 "v6.4.4": True, 3204 "v6.4.0": True, 3205 "v6.4.1": True, 3206 "v6.2.0": True, 3207 "v6.2.3": True, 3208 "v6.2.5": True, 3209 "v6.2.7": True, 3210 "v6.0.11": True 3211 } 3212 }, 3213 "src_start_ip": { 3214 "type": "string", 3215 "revisions": { 3216 "v6.0.0": True, 3217 "v7.0.0": True, 3218 "v6.0.5": True, 3219 "v6.4.4": True, 3220 "v6.4.0": True, 3221 "v6.4.1": True, 3222 "v6.2.0": True, 3223 "v6.2.3": True, 3224 "v6.2.5": True, 3225 "v6.2.7": True, 3226 "v6.0.11": True 3227 } 3228 }, 3229 "dst_addr_type": { 3230 "type": "string", 3231 "options": [ 3232 { 3233 "value": "subnet", 3234 "revisions": { 3235 "v6.0.0": True, 3236 "v7.0.0": True, 3237 "v6.0.5": True, 3238 "v6.4.4": True, 3239 "v6.4.0": True, 3240 "v6.4.1": True, 3241 "v6.2.0": True, 3242 "v6.2.3": True, 3243 "v6.2.5": True, 3244 "v6.2.7": True, 3245 "v6.0.11": True 3246 } 3247 }, 3248 { 3249 "value": "range", 3250 "revisions": { 3251 "v6.0.0": True, 3252 "v7.0.0": True, 3253 "v6.0.5": True, 3254 "v6.4.4": True, 3255 "v6.4.0": True, 3256 "v6.4.1": True, 3257 "v6.2.0": True, 3258 "v6.2.3": True, 3259 "v6.2.5": True, 3260 "v6.2.7": True, 3261 "v6.0.11": True 3262 } 3263 }, 3264 { 3265 "value": "ip", 3266 "revisions": { 3267 "v6.0.0": True, 3268 "v7.0.0": True, 3269 "v6.0.5": True, 3270 "v6.4.4": True, 3271 "v6.4.0": True, 3272 "v6.4.1": True, 3273 "v6.2.0": True, 3274 "v6.2.3": True, 3275 "v6.2.5": True, 3276 "v6.2.7": True, 3277 "v6.0.11": True 3278 } 3279 }, 3280 { 3281 "value": "name", 3282 "revisions": { 3283 "v6.0.0": True, 3284 "v7.0.0": True, 3285 "v6.0.5": True, 3286 "v6.4.4": True, 3287 "v6.4.0": True, 3288 "v6.4.1": True, 3289 "v6.2.0": True, 3290 "v6.2.3": True, 3291 "v6.2.5": True, 3292 "v6.2.7": True, 3293 "v6.0.11": True 3294 } 3295 }, 3296 { 3297 "value": "subnet6", 3298 "revisions": { 3299 "v6.0.0": True, 3300 "v7.0.0": True, 3301 "v6.0.5": True, 3302 "v6.4.4": True, 3303 "v6.4.0": True, 3304 "v6.4.1": True, 3305 "v6.2.0": True, 3306 "v6.2.3": True, 3307 "v6.2.5": True, 3308 "v6.2.7": True, 3309 "v6.0.11": True 3310 } 3311 }, 3312 { 3313 "value": "range6", 3314 "revisions": { 3315 "v6.0.0": True, 3316 "v7.0.0": True, 3317 "v6.0.5": True, 3318 "v6.4.4": True, 3319 "v6.4.0": True, 3320 "v6.4.1": True, 3321 "v6.2.0": True, 3322 "v6.2.3": True, 3323 "v6.2.5": True, 3324 "v6.2.7": True, 3325 "v6.0.11": True 3326 } 3327 }, 3328 { 3329 "value": "ip6", 3330 "revisions": { 3331 "v6.0.0": True, 3332 "v7.0.0": True, 3333 "v6.0.5": True, 3334 "v6.4.4": True, 3335 "v6.4.0": True, 3336 "v6.4.1": True, 3337 "v6.2.0": True, 3338 "v6.2.3": True, 3339 "v6.2.5": True, 3340 "v6.2.7": True, 3341 "v6.0.11": True 3342 } 3343 }, 3344 { 3345 "value": "name6", 3346 "revisions": { 3347 "v6.0.0": True, 3348 "v7.0.0": True, 3349 "v6.0.5": True, 3350 "v6.4.4": True, 3351 "v6.4.0": True, 3352 "v6.4.1": True, 3353 "v6.2.0": True, 3354 "v6.2.3": True, 3355 "v6.2.5": True, 3356 "v6.2.7": True, 3357 "v6.0.11": True 3358 } 3359 } 3360 ], 3361 "revisions": { 3362 "v6.0.0": True, 3363 "v7.0.0": True, 3364 "v6.0.5": True, 3365 "v6.4.4": True, 3366 "v6.4.0": True, 3367 "v6.4.1": True, 3368 "v6.2.0": True, 3369 "v6.2.3": True, 3370 "v6.2.5": True, 3371 "v6.2.7": True, 3372 "v6.0.11": True 3373 } 3374 }, 3375 "dst_end_ip6": { 3376 "type": "string", 3377 "revisions": { 3378 "v6.0.0": True, 3379 "v7.0.0": True, 3380 "v6.0.5": True, 3381 "v6.4.4": True, 3382 "v6.4.0": True, 3383 "v6.4.1": True, 3384 "v6.2.0": True, 3385 "v6.2.3": True, 3386 "v6.2.5": True, 3387 "v6.2.7": True, 3388 "v6.0.11": True 3389 } 3390 }, 3391 "src_subnet": { 3392 "type": "string", 3393 "revisions": { 3394 "v6.0.0": True, 3395 "v7.0.0": True, 3396 "v6.0.5": True, 3397 "v6.4.4": True, 3398 "v6.4.0": True, 3399 "v6.4.1": True, 3400 "v6.2.0": True, 3401 "v6.2.3": True, 3402 "v6.2.5": True, 3403 "v6.2.7": True, 3404 "v6.0.11": True 3405 } 3406 }, 3407 "route_overlap": { 3408 "type": "string", 3409 "options": [ 3410 { 3411 "value": "use-old", 3412 "revisions": { 3413 "v6.0.0": True, 3414 "v7.0.0": True, 3415 "v6.0.5": True, 3416 "v6.4.4": True, 3417 "v6.4.0": True, 3418 "v6.4.1": True, 3419 "v6.2.0": True, 3420 "v6.2.3": True, 3421 "v6.2.5": True, 3422 "v6.2.7": True, 3423 "v6.0.11": True 3424 } 3425 }, 3426 { 3427 "value": "use-new", 3428 "revisions": { 3429 "v6.0.0": True, 3430 "v7.0.0": True, 3431 "v6.0.5": True, 3432 "v6.4.4": True, 3433 "v6.4.0": True, 3434 "v6.4.1": True, 3435 "v6.2.0": True, 3436 "v6.2.3": True, 3437 "v6.2.5": True, 3438 "v6.2.7": True, 3439 "v6.0.11": True 3440 } 3441 }, 3442 { 3443 "value": "allow", 3444 "revisions": { 3445 "v6.0.0": True, 3446 "v7.0.0": True, 3447 "v6.0.5": True, 3448 "v6.4.4": True, 3449 "v6.4.0": True, 3450 "v6.4.1": True, 3451 "v6.2.0": True, 3452 "v6.2.3": True, 3453 "v6.2.5": True, 3454 "v6.2.7": True, 3455 "v6.0.11": True 3456 } 3457 } 3458 ], 3459 "revisions": { 3460 "v6.0.0": True, 3461 "v7.0.0": True, 3462 "v6.0.5": True, 3463 "v6.4.4": True, 3464 "v6.4.0": True, 3465 "v6.4.1": True, 3466 "v6.2.0": True, 3467 "v6.2.3": True, 3468 "v6.2.5": True, 3469 "v6.2.7": True, 3470 "v6.0.11": True 3471 } 3472 }, 3473 "dst_start_ip6": { 3474 "type": "string", 3475 "revisions": { 3476 "v6.0.0": True, 3477 "v7.0.0": True, 3478 "v6.0.5": True, 3479 "v6.4.4": True, 3480 "v6.4.0": True, 3481 "v6.4.1": True, 3482 "v6.2.0": True, 3483 "v6.2.3": True, 3484 "v6.2.5": True, 3485 "v6.2.7": True, 3486 "v6.0.11": True 3487 } 3488 } 3489 }, 3490 "revisions": { 3491 "v6.0.0": True, 3492 "v7.0.0": True, 3493 "v6.0.5": True, 3494 "v6.4.4": True, 3495 "v6.4.0": True, 3496 "v6.4.1": True, 3497 "v6.2.0": True, 3498 "v6.2.3": True, 3499 "v6.2.5": True, 3500 "v6.2.7": True, 3501 "v6.0.11": True 3502 } 3503} 3504 3505 3506def main(): 3507 module_spec = schema_to_module_spec(versioned_schema) 3508 mkeyname = 'name' 3509 fields = { 3510 "access_token": {"required": False, "type": "str", "no_log": True}, 3511 "enable_log": {"required": False, "type": bool}, 3512 "vdom": {"required": False, "type": "str", "default": "root"}, 3513 "state": {"required": True, "type": "str", 3514 "choices": ["present", "absent"]}, 3515 "vpn_ipsec_phase2_interface": { 3516 "required": False, "type": "dict", "default": None, 3517 "options": { 3518 } 3519 } 3520 } 3521 for attribute_name in module_spec['options']: 3522 fields["vpn_ipsec_phase2_interface"]['options'][attribute_name] = module_spec['options'][attribute_name] 3523 if mkeyname and mkeyname == attribute_name: 3524 fields["vpn_ipsec_phase2_interface"]['options'][attribute_name]['required'] = True 3525 3526 check_legacy_fortiosapi() 3527 module = AnsibleModule(argument_spec=fields, 3528 supports_check_mode=True) 3529 3530 versions_check_result = None 3531 if module._socket_path: 3532 connection = Connection(module._socket_path) 3533 if 'access_token' in module.params: 3534 connection.set_option('access_token', module.params['access_token']) 3535 3536 if 'enable_log' in module.params: 3537 connection.set_option('enable_log', module.params['enable_log']) 3538 else: 3539 connection.set_option('enable_log', False) 3540 fos = FortiOSHandler(connection, module, mkeyname) 3541 versions_check_result = check_schema_versioning(fos, versioned_schema, "vpn_ipsec_phase2_interface") 3542 3543 is_error, has_changed, result = fortios_vpn_ipsec(module.params, fos, module.check_mode) 3544 3545 else: 3546 module.fail_json(**FAIL_SOCKET_MSG) 3547 3548 if versions_check_result and versions_check_result['matched'] is False: 3549 module.warn("Ansible has detected version mismatch between FortOS system and your playbook, see more details by specifying option -vvv") 3550 3551 if not is_error: 3552 if versions_check_result and versions_check_result['matched'] is False: 3553 module.exit_json(changed=has_changed, version_check_warning=versions_check_result, meta=result) 3554 else: 3555 module.exit_json(changed=has_changed, meta=result) 3556 else: 3557 if versions_check_result and versions_check_result['matched'] is False: 3558 module.fail_json(msg="Error in repo", version_check_warning=versions_check_result, meta=result) 3559 else: 3560 module.fail_json(msg="Error in repo", meta=result) 3561 3562 3563if __name__ == '__main__': 3564 main() 3565