catalystwan 0.41.2.dev9__py3-none-any.whl → 0.41.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- catalystwan/ENDPOINTS.md +611 -0
- catalystwan/__init__.py +2 -3
- catalystwan/api/administration.py +2 -13
- catalystwan/api/api_container.py +1 -4
- catalystwan/api/config_group_api.py +16 -41
- catalystwan/api/configuration_groups/parcel.py +30 -100
- catalystwan/api/configuration_groups/parcels/cellular_controller.py +33 -0
- catalystwan/api/feature_profile_api.py +237 -2016
- catalystwan/api/policy_api.py +116 -470
- catalystwan/api/template_api.py +44 -113
- catalystwan/api/templates/README.md +47 -61
- catalystwan/api/templates/cli_template.py +7 -17
- catalystwan/api/templates/device_template/device_template.py +32 -127
- catalystwan/api/templates/device_template/device_template_payload.json.j2 +19 -0
- catalystwan/api/templates/feature_template.py +3 -3
- catalystwan/api/templates/models/cisco_aaa_model.py +42 -289
- catalystwan/api/templates/models/cisco_banner_model.py +2 -11
- catalystwan/api/templates/models/cisco_bfd_model.py +36 -31
- catalystwan/api/templates/models/cisco_bgp_model.py +131 -382
- catalystwan/api/templates/models/cisco_logging_model.py +43 -80
- catalystwan/api/templates/models/cisco_ntp_model.py +15 -34
- catalystwan/api/templates/models/cisco_omp_model.py +60 -70
- catalystwan/api/templates/models/cisco_ospf.py +74 -143
- catalystwan/api/templates/models/cisco_ospfv3.py +95 -217
- catalystwan/api/templates/models/cisco_secure_internet_gateway.py +142 -304
- catalystwan/api/templates/models/cisco_snmp_model.py +52 -66
- catalystwan/api/templates/models/cisco_system.py +129 -238
- catalystwan/api/templates/models/cisco_vpn_interface_model.py +275 -632
- catalystwan/api/templates/models/cisco_vpn_model.py +270 -433
- catalystwan/api/templates/models/cli_template.py +2 -3
- catalystwan/api/templates/models/omp_vsmart_model.py +10 -46
- catalystwan/api/templates/models/security_vsmart_model.py +8 -11
- catalystwan/api/templates/models/supported.py +4 -10
- catalystwan/api/templates/models/system_vsmart_model.py +27 -164
- catalystwan/apigw_auth.py +2 -6
- catalystwan/dataclasses.py +53 -2
- catalystwan/endpoints/__init__.py +41 -41
- catalystwan/endpoints/certificate_management_device.py +0 -4
- catalystwan/endpoints/cluster_management.py +9 -30
- catalystwan/endpoints/configuration/feature_profile/sdwan/policy_object.py +12 -35
- catalystwan/endpoints/configuration/feature_profile/sdwan/system.py +11 -164
- catalystwan/endpoints/configuration/feature_profile/sdwan/transport.py +26 -144
- catalystwan/endpoints/configuration/policy/definition/access_control_list.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/access_control_list_ipv6.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/control.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/device_access.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/device_access_ipv6.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/hub_and_spoke.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/mesh.py +11 -2
- catalystwan/endpoints/configuration/policy/definition/qos_map.py +11 -2
- catalystwan/endpoints/configuration/policy/definition/rewrite.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/rule_set.py +11 -2
- catalystwan/endpoints/configuration/policy/definition/security_group.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/traffic_data.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/vpn_membership.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/zone_based_firewall.py +11 -6
- catalystwan/endpoints/configuration/policy/list/app.py +16 -3
- catalystwan/endpoints/configuration/policy/list/app_probe.py +15 -6
- catalystwan/endpoints/configuration/policy/list/as_path.py +16 -3
- catalystwan/endpoints/configuration/policy/list/class_map.py +16 -3
- catalystwan/endpoints/configuration/policy/list/color.py +16 -3
- catalystwan/endpoints/configuration/policy/list/community.py +16 -3
- catalystwan/endpoints/configuration/policy/list/data_ipv6_prefix.py +15 -6
- catalystwan/endpoints/configuration/policy/list/data_prefix.py +16 -3
- catalystwan/endpoints/configuration/policy/list/expanded_community.py +15 -6
- catalystwan/endpoints/configuration/policy/list/fqdn.py +16 -3
- catalystwan/endpoints/configuration/policy/list/geo_location.py +16 -3
- catalystwan/endpoints/configuration/policy/list/ips_signature.py +15 -6
- catalystwan/endpoints/configuration/policy/list/ipv6_prefix.py +16 -3
- catalystwan/endpoints/configuration/policy/list/local_app.py +16 -3
- catalystwan/endpoints/configuration/policy/list/local_domain.py +16 -3
- catalystwan/endpoints/configuration/policy/list/mirror.py +16 -3
- catalystwan/endpoints/configuration/policy/list/policer.py +16 -3
- catalystwan/endpoints/configuration/policy/list/port.py +16 -3
- catalystwan/endpoints/configuration/policy/list/preferred_color_group.py +15 -6
- catalystwan/endpoints/configuration/policy/list/prefix.py +16 -4
- catalystwan/endpoints/configuration/policy/list/protocol_name.py +15 -6
- catalystwan/endpoints/configuration/policy/list/region.py +10 -2
- catalystwan/endpoints/configuration/policy/list/site.py +16 -3
- catalystwan/endpoints/configuration/policy/list/sla.py +16 -3
- catalystwan/endpoints/configuration/policy/list/tloc.py +16 -3
- catalystwan/endpoints/configuration/policy/list/url_allow_list.py +16 -3
- catalystwan/endpoints/configuration/policy/list/url_block_list.py +16 -3
- catalystwan/endpoints/configuration/policy/list/vpn.py +16 -3
- catalystwan/endpoints/configuration/policy/list/zone.py +16 -3
- catalystwan/endpoints/configuration/policy/security_template.py +3 -2
- catalystwan/endpoints/configuration/software_actions.py +4 -2
- catalystwan/endpoints/configuration_dashboard_status.py +2 -2
- catalystwan/endpoints/configuration_device_template.py +1 -15
- catalystwan/endpoints/configuration_feature_profile.py +11 -8
- catalystwan/endpoints/configuration_group.py +5 -28
- catalystwan/endpoints/configuration_settings.py +1 -90
- catalystwan/endpoints/endpoints_container.py +18 -82
- catalystwan/endpoints/real_time_monitoring/reboot_history.py +3 -1
- catalystwan/endpoints/tenant_migration.py +0 -2
- catalystwan/exceptions.py +0 -24
- catalystwan/integration_tests/test_find_template_values.py +18 -7
- catalystwan/models/common.py +2 -1898
- catalystwan/models/configuration/common.py +0 -1
- catalystwan/models/configuration/config_migration.py +36 -0
- catalystwan/models/configuration/feature_profile/common.py +149 -634
- catalystwan/models/configuration/feature_profile/sdwan/management/vpn.py +26 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/__init__.py +60 -69
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py +20 -34
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py +6 -8
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/color_list.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/data_prefix.py +4 -13
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/expanded_community_list.py +7 -9
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/fowarding_class.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_data_prefix.py +9 -11
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_prefix_list.py +10 -25
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/{policer.py → policier.py} +10 -12
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefered_group_color.py +10 -29
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefix_list.py +8 -23
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/sla_class.py +31 -12
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/standard_community.py +10 -16
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/tloc_list.py +7 -8
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/application_list.py +6 -8
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/data_prefix.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/fqdn.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/geolocation_list.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ips_signature.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/local_domain.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/protocol_list.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/security_port.py +11 -21
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url.py +15 -36
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/zone.py +18 -14
- catalystwan/models/configuration/feature_profile/sdwan/service/acl.py +409 -0
- catalystwan/models/configuration/feature_profile/sdwan/service/appqoe.py +42 -77
- catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py +288 -0
- catalystwan/models/configuration/feature_profile/sdwan/service/dhcp_server.py +64 -107
- catalystwan/models/configuration/feature_profile/sdwan/service/eigrp.py +42 -39
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/common.py +88 -7
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py +156 -232
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/gre.py +108 -38
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/ipsec.py +84 -77
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/svi.py +56 -62
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/vpn.py +121 -112
- catalystwan/models/configuration/feature_profile/sdwan/service/multicast.py +57 -56
- catalystwan/models/configuration/feature_profile/sdwan/service/object_tracker.py +21 -15
- catalystwan/models/configuration/feature_profile/sdwan/{routing → service}/ospf.py +47 -55
- catalystwan/models/configuration/feature_profile/sdwan/{routing → service}/ospfv3.py +72 -74
- catalystwan/models/configuration/feature_profile/sdwan/service/route_policy.py +110 -358
- catalystwan/models/configuration/feature_profile/sdwan/service/service_insertion_attachment.py +25 -17
- catalystwan/models/configuration/feature_profile/sdwan/service/switchport.py +58 -50
- catalystwan/models/configuration/feature_profile/sdwan/service/tracker.py +21 -12
- catalystwan/models/configuration/feature_profile/sdwan/service/wireless_lan.py +31 -27
- catalystwan/models/configuration/feature_profile/sdwan/system/aaa.py +10 -58
- catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_controller.py +23 -26
- catalystwan/models/configuration/profile_type.py +6 -1
- catalystwan/models/policy/__init__.py +69 -282
- catalystwan/models/policy/centralized.py +29 -26
- catalystwan/models/policy/{definition → definitions}/access_control_list.py +17 -47
- catalystwan/models/policy/{definition → definitions}/access_control_list_ipv6.py +18 -42
- catalystwan/models/policy/{definition → definitions}/control.py +25 -48
- catalystwan/models/policy/{definition → definitions}/device_access.py +11 -22
- catalystwan/models/policy/{definition → definitions}/device_access_ipv6.py +11 -20
- catalystwan/models/policy/{definition → definitions}/hub_and_spoke.py +4 -18
- catalystwan/models/policy/{definition → definitions}/mesh.py +1 -13
- catalystwan/models/policy/{definition → definitions}/qos_map.py +32 -39
- catalystwan/models/policy/{definition → definitions}/rewrite.py +2 -12
- catalystwan/models/policy/{definition → definitions}/rule_set.py +48 -66
- catalystwan/models/policy/{definition → definitions}/security_group.py +14 -38
- catalystwan/models/policy/{definition → definitions}/traffic_data.py +61 -184
- catalystwan/models/policy/{definition → definitions}/vpn_membership.py +1 -13
- catalystwan/models/policy/{definition → definitions}/zone_based_firewall.py +32 -93
- catalystwan/models/policy/lists.py +330 -0
- catalystwan/models/policy/lists_entries.py +444 -0
- catalystwan/models/policy/localized.py +16 -34
- catalystwan/models/policy/policy.py +10 -14
- catalystwan/models/policy/policy_definition.py +173 -673
- catalystwan/models/policy/policy_list.py +27 -38
- catalystwan/models/policy/security.py +46 -145
- catalystwan/response.py +2 -6
- catalystwan/session.py +1 -1
- catalystwan/tests/templates/definitions/{cisco_vpn_basic.json → Basic_Cisco_VPN_Model.json} +2 -2
- catalystwan/tests/templates/definitions/complex_aaa.json +277 -0
- catalystwan/tests/templates/definitions/{cisco_vpn_complex.json → complex_cisco_vpn.json} +12 -27
- catalystwan/tests/templates/definitions/{cisco_aaa.json → iuo.json} +15 -44
- catalystwan/tests/templates/definitions/omp_1.json +11 -0
- catalystwan/tests/templates/definitions/{omp_vsmart_2.json → omp_2.json} +2 -16
- catalystwan/tests/templates/definitions/{omp_vsmart_3.json → omp_3.json} +2 -16
- catalystwan/tests/templates/models/__init__.py +13 -46
- catalystwan/tests/templates/models/cisco_aaa.py +48 -81
- catalystwan/tests/templates/models/cisco_banner.py +2 -2
- catalystwan/tests/templates/models/cisco_bfd.py +6 -4
- catalystwan/tests/templates/models/cisco_system.py +3 -108
- catalystwan/tests/templates/models/cisco_vpn.py +72 -42
- catalystwan/tests/templates/models/omp_vsmart.py +8 -28
- catalystwan/tests/templates/schemas/cedge_aaa.json +1 -1
- catalystwan/tests/templates/schemas/cisco_system.json +0 -242
- catalystwan/tests/templates/schemas/cisco_vpn.json +1 -53
- catalystwan/tests/templates/schemas/omp-vsmart.json +0 -20
- catalystwan/tests/templates/test_chose_model.py +10 -6
- catalystwan/tests/templates/test_deserialize_model.py +4 -4
- catalystwan/tests/templates/test_find_template_values.py +0 -229
- catalystwan/tests/templates/test_serialize_model.py +2 -1
- catalystwan/tests/test_cli_template.py +9 -8
- catalystwan/tests/test_endpoints.py +11 -42
- catalystwan/tests/test_templates.py +19 -16
- catalystwan/utils/feature_template/find_template_values.py +9 -22
- catalystwan/utils/timezone.py +422 -0
- catalystwan/workflows/tenant_migration.py +1 -1
- {catalystwan-0.41.2.dev9.dist-info → catalystwan-0.41.3.dist-info}/METADATA +1 -20
- catalystwan-0.41.3.dist-info/RECORD +353 -0
- catalystwan/api/builders/__init__.py +0 -14
- catalystwan/api/builders/feature_profiles/__init__.py +0 -0
- catalystwan/api/builders/feature_profiles/application_priority.py +0 -58
- catalystwan/api/builders/feature_profiles/builder_factory.py +0 -59
- catalystwan/api/builders/feature_profiles/cli.py +0 -76
- catalystwan/api/builders/feature_profiles/mixins.py +0 -44
- catalystwan/api/builders/feature_profiles/other.py +0 -79
- catalystwan/api/builders/feature_profiles/report.py +0 -155
- catalystwan/api/builders/feature_profiles/service.py +0 -248
- catalystwan/api/builders/feature_profiles/system.py +0 -80
- catalystwan/api/builders/feature_profiles/transport.py +0 -256
- catalystwan/api/builders/feature_profiles/uc_voice.py +0 -287
- catalystwan/api/templates/models/aaa_model.py +0 -387
- catalystwan/api/templates/models/vpn_vsmart_interface_model.py +0 -198
- catalystwan/api/templates/models/vpn_vsmart_model.py +0 -124
- catalystwan/endpoints/configuration/feature_profile/sdwan/application_priority.py +0 -107
- catalystwan/endpoints/configuration/feature_profile/sdwan/cli.py +0 -60
- catalystwan/endpoints/configuration/feature_profile/sdwan/dns_security.py +0 -83
- catalystwan/endpoints/configuration/feature_profile/sdwan/embedded_security.py +0 -88
- catalystwan/endpoints/configuration/feature_profile/sdwan/other.py +0 -62
- catalystwan/endpoints/configuration/feature_profile/sdwan/service.py +0 -154
- catalystwan/endpoints/configuration/feature_profile/sdwan/sig_security.py +0 -88
- catalystwan/endpoints/configuration/feature_profile/sdwan/topology.py +0 -93
- catalystwan/endpoints/configuration/feature_profile/sdwan/uc_voice.py +0 -77
- catalystwan/endpoints/configuration/network_hierarchy.py +0 -47
- catalystwan/endpoints/configuration/packages.py +0 -36
- catalystwan/endpoints/configuration/policy/abstractions.py +0 -49
- catalystwan/endpoints/configuration/policy/definition/aip.py +0 -52
- catalystwan/endpoints/configuration/policy/definition/amp.py +0 -52
- catalystwan/endpoints/configuration/policy/definition/app_route.py +0 -50
- catalystwan/endpoints/configuration/policy/definition/cflowd.py +0 -46
- catalystwan/endpoints/configuration/policy/definition/dial_peer.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/dns_security.py +0 -50
- catalystwan/endpoints/configuration/policy/definition/fxo_port.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/fxs_did_port.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/fxs_port.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/intrusion_prevention.py +0 -52
- catalystwan/endpoints/configuration/policy/definition/pri_isdn_port.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/route_policy.py +0 -50
- catalystwan/endpoints/configuration/policy/definition/srst_phone_profile.py +0 -59
- catalystwan/endpoints/configuration/policy/definition/ssl_decryption.py +0 -50
- catalystwan/endpoints/configuration/policy/definition/ssl_decryption_utd_profile.py +0 -52
- catalystwan/endpoints/configuration/policy/definition/url_filtering.py +0 -50
- catalystwan/endpoints/configuration/policy/definition/vpn_qos_map.py +0 -50
- catalystwan/endpoints/configuration/policy/list/extended_community.py +0 -52
- catalystwan/endpoints/configuration/policy/list/fax_protocol.py +0 -48
- catalystwan/endpoints/configuration/policy/list/identity.py +0 -48
- catalystwan/endpoints/configuration/policy/list/media_profile.py +0 -52
- catalystwan/endpoints/configuration/policy/list/modem_pass_through.py +0 -52
- catalystwan/endpoints/configuration/policy/list/scalable_group_tag.py +0 -52
- catalystwan/endpoints/configuration/policy/list/supervisory_disconnect.py +0 -52
- catalystwan/endpoints/configuration/policy/list/threat_grid_api_key.py +0 -52
- catalystwan/endpoints/configuration/policy/list/translation_profile.py +0 -52
- catalystwan/endpoints/configuration/policy/list/translation_rules.py +0 -52
- catalystwan/endpoints/configuration/policy/list/trunkgroup.py +0 -48
- catalystwan/endpoints/configuration/policy/list/umbrella_data.py +0 -52
- catalystwan/endpoints/configuration/policy/voice_template.py +0 -39
- catalystwan/endpoints/configuration/policy_group.py +0 -30
- catalystwan/endpoints/configuration/topology_group.py +0 -51
- catalystwan/endpoints/configuration_general_template.py +0 -31
- catalystwan/endpoints/configuration_template_master.py +0 -48
- catalystwan/integration_tests/base.py +0 -81
- catalystwan/integration_tests/feature_profile/sdwan/__init__.py +0 -0
- catalystwan/integration_tests/feature_profile/sdwan/policy/__init__.py +0 -0
- catalystwan/integration_tests/feature_profile/sdwan/policy/base.py +0 -33
- catalystwan/integration_tests/feature_profile/sdwan/policy/test_extended_community.py +0 -33
- catalystwan/integration_tests/feature_profile/sdwan/policy/test_security_app_list.py +0 -32
- catalystwan/integration_tests/feature_profile/sdwan/test_application_priority.py +0 -433
- catalystwan/integration_tests/feature_profile/sdwan/test_cli.py +0 -54
- catalystwan/integration_tests/feature_profile/sdwan/test_dns_security.py +0 -106
- catalystwan/integration_tests/feature_profile/sdwan/test_other.py +0 -49
- catalystwan/integration_tests/feature_profile/sdwan/test_service.py +0 -1078
- catalystwan/integration_tests/feature_profile/sdwan/test_sig_security.py +0 -322
- catalystwan/integration_tests/feature_profile/sdwan/test_ssl_decryption.py +0 -85
- catalystwan/integration_tests/feature_profile/sdwan/test_system.py +0 -368
- catalystwan/integration_tests/feature_profile/sdwan/test_tracker.py +0 -127
- catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +0 -1698
- catalystwan/integration_tests/feature_profile/sdwan/topology/test_topology.py +0 -93
- catalystwan/integration_tests/feature_profile/test_parcel.py +0 -54
- catalystwan/integration_tests/profile_builder/__init__.py +0 -0
- catalystwan/integration_tests/profile_builder/test_pb_service.py +0 -197
- catalystwan/integration_tests/profile_builder/test_pb_transport.py +0 -226
- catalystwan/integration_tests/profile_builder/test_pb_uc_voice.py +0 -277
- catalystwan/integration_tests/test_data/__init__.py +0 -117
- catalystwan/integration_tests/test_network_hierarchy.py +0 -82
- catalystwan/integration_tests/test_settings.py +0 -30
- catalystwan/models/configuration/feature_profile/parcel.py +0 -245
- catalystwan/models/configuration/feature_profile/sdwan/acl/__init__.py +0 -13
- catalystwan/models/configuration/feature_profile/sdwan/acl/ipv4acl.py +0 -298
- catalystwan/models/configuration/feature_profile/sdwan/acl/ipv6acl.py +0 -344
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/__init__.py +0 -218
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/cloud_probe.py +0 -61
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/policy_settings.py +0 -31
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/qos_policy.py +0 -102
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/traffic_policy.py +0 -1057
- catalystwan/models/configuration/feature_profile/sdwan/cli/__init__.py +0 -23
- catalystwan/models/configuration/feature_profile/sdwan/cli/config.py +0 -18
- catalystwan/models/configuration/feature_profile/sdwan/cli/full_config.py +0 -15
- catalystwan/models/configuration/feature_profile/sdwan/dns_security/__init__.py +0 -13
- catalystwan/models/configuration/feature_profile/sdwan/dns_security/dns.py +0 -110
- catalystwan/models/configuration/feature_profile/sdwan/embedded_security/__init__.py +0 -23
- catalystwan/models/configuration/feature_profile/sdwan/embedded_security/ngfirewall.py +0 -493
- catalystwan/models/configuration/feature_profile/sdwan/embedded_security/policy.py +0 -171
- catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py +0 -25
- catalystwan/models/configuration/feature_profile/sdwan/other/cybervision.py +0 -44
- catalystwan/models/configuration/feature_profile/sdwan/other/thousandeyes.py +0 -147
- catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py +0 -110
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/as_path.py +0 -22
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/extended_community.py +0 -34
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_network_object.py +0 -15
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_service_object.py +0 -254
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/mirror.py +0 -27
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/network_object_group.py +0 -15
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/object_group.py +0 -15
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/service_object_group.py +0 -21
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/aip.py +0 -64
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/amp.py +0 -79
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/identity.py +0 -30
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/intrusion_prevention.py +0 -58
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/object_group.py +0 -72
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/rule_set.py +0 -137
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/scalable_group_tag.py +0 -26
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption.py +0 -126
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption_profile.py +0 -165
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url_filtering.py +0 -148
- catalystwan/models/configuration/feature_profile/sdwan/routing/__init__.py +0 -26
- catalystwan/models/configuration/feature_profile/sdwan/routing/bgp.py +0 -609
- catalystwan/models/configuration/feature_profile/sdwan/service/__init__.py +0 -91
- catalystwan/models/configuration/feature_profile/sdwan/service/dual_router_ha.py +0 -26
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/multilink.py +0 -101
- catalystwan/models/configuration/feature_profile/sdwan/service/service_chain.py +0 -38
- catalystwan/models/configuration/feature_profile/sdwan/sig_security/__init__.py +0 -19
- catalystwan/models/configuration/feature_profile/sdwan/sig_security/sig_security.py +0 -379
- catalystwan/models/configuration/feature_profile/sdwan/system/__init__.py +0 -59
- catalystwan/models/configuration/feature_profile/sdwan/system/banner.py +0 -30
- catalystwan/models/configuration/feature_profile/sdwan/system/basic.py +0 -290
- catalystwan/models/configuration/feature_profile/sdwan/system/bfd.py +0 -69
- catalystwan/models/configuration/feature_profile/sdwan/system/device_access.py +0 -157
- catalystwan/models/configuration/feature_profile/sdwan/system/device_access_ipv6.py +0 -157
- catalystwan/models/configuration/feature_profile/sdwan/system/global_parcel.py +0 -163
- catalystwan/models/configuration/feature_profile/sdwan/system/logging_parcel.py +0 -162
- catalystwan/models/configuration/feature_profile/sdwan/system/mrf.py +0 -75
- catalystwan/models/configuration/feature_profile/sdwan/system/ntp.py +0 -103
- catalystwan/models/configuration/feature_profile/sdwan/system/omp.py +0 -120
- catalystwan/models/configuration/feature_profile/sdwan/system/security.py +0 -179
- catalystwan/models/configuration/feature_profile/sdwan/system/snmp.py +0 -173
- catalystwan/models/configuration/feature_profile/sdwan/topology/__init__.py +0 -29
- catalystwan/models/configuration/feature_profile/sdwan/topology/custom_control.py +0 -425
- catalystwan/models/configuration/feature_profile/sdwan/topology/hubspoke.py +0 -60
- catalystwan/models/configuration/feature_profile/sdwan/topology/mesh.py +0 -23
- catalystwan/models/configuration/feature_profile/sdwan/trackers/__init__.py +0 -36
- catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker.py +0 -96
- catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker_group.py +0 -63
- catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +0 -93
- catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_profile.py +0 -71
- catalystwan/models/configuration/feature_profile/sdwan/transport/gps.py +0 -37
- catalystwan/models/configuration/feature_profile/sdwan/transport/management/ethernet.py +0 -121
- catalystwan/models/configuration/feature_profile/sdwan/transport/t1e1controller.py +0 -124
- catalystwan/models/configuration/feature_profile/sdwan/transport/vpn.py +0 -285
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/cellular.py +0 -173
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ethernet.py +0 -389
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/gre.py +0 -46
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ipsec.py +0 -137
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/multilink.py +0 -219
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/protocol_over.py +0 -405
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/t1e1serial.py +0 -195
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/__init__.py +0 -62
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/analog_interface.py +0 -436
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/call_routing.py +0 -179
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/digital_interface.py +0 -380
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/dsp_farm.py +0 -193
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/media_profile.py +0 -17
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/server_group.py +0 -51
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/srst.py +0 -86
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/supervisory_disconnect.py +0 -69
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_profile.py +0 -42
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_rule.py +0 -31
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/trunk_group.py +0 -26
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_global.py +0 -57
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_tenant.py +0 -40
- catalystwan/models/configuration/network_hierarchy/__init__.py +0 -24
- catalystwan/models/configuration/network_hierarchy/cflowd.py +0 -128
- catalystwan/models/configuration/network_hierarchy/node.py +0 -88
- catalystwan/models/configuration/network_hierarchy/security_logging.py +0 -91
- catalystwan/models/configuration/packages.py +0 -57
- catalystwan/models/configuration/policy_group.py +0 -74
- catalystwan/models/configuration/topology_group.py +0 -52
- catalystwan/models/policy/definition/aip.py +0 -60
- catalystwan/models/policy/definition/amp.py +0 -65
- catalystwan/models/policy/definition/app_route.py +0 -246
- catalystwan/models/policy/definition/cflowd.py +0 -95
- catalystwan/models/policy/definition/dial_peer.py +0 -60
- catalystwan/models/policy/definition/dns_security.py +0 -130
- catalystwan/models/policy/definition/fxo_port.py +0 -63
- catalystwan/models/policy/definition/fxs_did_port.py +0 -58
- catalystwan/models/policy/definition/fxs_port.py +0 -56
- catalystwan/models/policy/definition/intrusion_prevention.py +0 -55
- catalystwan/models/policy/definition/pri_isdn_port.py +0 -48
- catalystwan/models/policy/definition/route_policy.py +0 -187
- catalystwan/models/policy/definition/srst_phone_profile.py +0 -37
- catalystwan/models/policy/definition/ssl_decryption.py +0 -209
- catalystwan/models/policy/definition/ssl_decryption_utd_profile.py +0 -88
- catalystwan/models/policy/definition/url_filtering.py +0 -70
- catalystwan/models/policy/definition/vpn_qos_map.py +0 -46
- catalystwan/models/policy/list/app.py +0 -44
- catalystwan/models/policy/list/app_probe.py +0 -42
- catalystwan/models/policy/list/as_path.py +0 -30
- catalystwan/models/policy/list/class_map.py +0 -30
- catalystwan/models/policy/list/color.py +0 -28
- catalystwan/models/policy/list/communities.py +0 -83
- catalystwan/models/policy/list/data_ipv6_prefix.py +0 -30
- catalystwan/models/policy/list/data_prefix.py +0 -30
- catalystwan/models/policy/list/fax_protocol.py +0 -45
- catalystwan/models/policy/list/fqdn.py +0 -24
- catalystwan/models/policy/list/geo_location.py +0 -33
- catalystwan/models/policy/list/identity.py +0 -29
- catalystwan/models/policy/list/ips_signature.py +0 -27
- catalystwan/models/policy/list/ipv6_prefix.py +0 -33
- catalystwan/models/policy/list/local_app.py +0 -45
- catalystwan/models/policy/list/local_domain.py +0 -36
- catalystwan/models/policy/list/media_profile.py +0 -44
- catalystwan/models/policy/list/mirror.py +0 -27
- catalystwan/models/policy/list/modem_pass_through.py +0 -27
- catalystwan/models/policy/list/policer.py +0 -39
- catalystwan/models/policy/list/port.py +0 -33
- catalystwan/models/policy/list/preferred_color_group.py +0 -82
- catalystwan/models/policy/list/prefix.py +0 -33
- catalystwan/models/policy/list/protocol_name.py +0 -26
- catalystwan/models/policy/list/region.py +0 -45
- catalystwan/models/policy/list/scalable_group_tag.py +0 -30
- catalystwan/models/policy/list/site.py +0 -34
- catalystwan/models/policy/list/sla.py +0 -77
- catalystwan/models/policy/list/supervisory_disconnect.py +0 -62
- catalystwan/models/policy/list/threat_grid_api_key.py +0 -32
- catalystwan/models/policy/list/tloc.py +0 -32
- catalystwan/models/policy/list/translation_profile.py +0 -32
- catalystwan/models/policy/list/translation_rules.py +0 -29
- catalystwan/models/policy/list/trunkgroup.py +0 -56
- catalystwan/models/policy/list/umbrella_data.py +0 -30
- catalystwan/models/policy/list/url.py +0 -39
- catalystwan/models/policy/list/vpn.py +0 -40
- catalystwan/models/policy/list/zone.py +0 -46
- catalystwan/models/policy/voice.py +0 -77
- catalystwan/models/settings.py +0 -41
- catalystwan/models/templates.py +0 -79
- catalystwan/tests/builders/test_report.py +0 -60
- catalystwan/tests/builders/uc_voice.py +0 -85
- catalystwan/tests/models/__init__.py +0 -0
- catalystwan/tests/models/configuration/feature_profile/sdwan/policy_object/security/test_url.py +0 -73
- catalystwan/tests/models/test_digital_interface.py +0 -56
- catalystwan/tests/templates/definitions/aaa_basic.json +0 -96
- catalystwan/tests/templates/definitions/aaa_complex.json +0 -464
- catalystwan/tests/templates/definitions/cisco_aaa_complex.json +0 -361
- catalystwan/tests/templates/definitions/cisco_logging_complex.json +0 -268
- catalystwan/tests/templates/definitions/cisco_ntp_complex.json +0 -143
- catalystwan/tests/templates/definitions/cisco_omp_complex.json +0 -175
- catalystwan/tests/templates/definitions/cisco_ospf_complex.json +0 -302
- catalystwan/tests/templates/definitions/cisco_sig.json +0 -405
- catalystwan/tests/templates/definitions/cisco_snmp_complex.json +0 -258
- catalystwan/tests/templates/definitions/cisco_system_complex.json +0 -502
- catalystwan/tests/templates/definitions/cisco_vpn_interface_complex.json +0 -821
- catalystwan/tests/templates/definitions/omp_vsmart_1.json +0 -26
- catalystwan/tests/templates/definitions/omp_vsmart_complex.json +0 -73
- catalystwan/tests/templates/definitions/security_vsmart_complex.json +0 -24
- catalystwan/tests/templates/definitions/system_vsmart_complex.json +0 -193
- catalystwan/tests/templates/definitions/vpn_vsmart_basic.json +0 -17
- catalystwan/tests/templates/definitions/vpn_vsmart_complex.json +0 -179
- catalystwan/tests/templates/definitions/vpn_vsmart_interface_basic.json +0 -42
- catalystwan/tests/templates/definitions/vpn_vsmart_interface_complex.json +0 -208
- catalystwan/tests/templates/models/aaa.py +0 -106
- catalystwan/tests/templates/models/cisco_logging.py +0 -65
- catalystwan/tests/templates/models/cisco_ntp.py +0 -17
- catalystwan/tests/templates/models/cisco_omp.py +0 -37
- catalystwan/tests/templates/models/cisco_ospf.py +0 -60
- catalystwan/tests/templates/models/cisco_secure_internet_gateway.py +0 -95
- catalystwan/tests/templates/models/cisco_snmp.py +0 -40
- catalystwan/tests/templates/models/cisco_vpn_interface.py +0 -200
- catalystwan/tests/templates/models/security_vsmart.py +0 -11
- catalystwan/tests/templates/models/system_vsmart.py +0 -37
- catalystwan/tests/templates/models/vpn_vsmart.py +0 -32
- catalystwan/tests/templates/models/vpn_vsmart_interface.py +0 -54
- catalystwan/tests/templates/schemas/aaa.json +0 -1096
- catalystwan/tests/templates/schemas/cisco_logging.json +0 -577
- catalystwan/tests/templates/schemas/cisco_ntp.json +0 -265
- catalystwan/tests/templates/schemas/cisco_omp.json +0 -479
- catalystwan/tests/templates/schemas/cisco_ospf.json +0 -908
- catalystwan/tests/templates/schemas/cisco_secure_internet_gateway.json +0 -1520
- catalystwan/tests/templates/schemas/cisco_snmp.json +0 -561
- catalystwan/tests/templates/schemas/cisco_vpn_interface.json +0 -3348
- catalystwan/tests/templates/schemas/security-vsmart.json +0 -58
- catalystwan/tests/templates/schemas/system-vsmart.json +0 -2585
- catalystwan/tests/templates/schemas/vpn-vsmart-interface.json +0 -859
- catalystwan/tests/templates/schemas/vpn-vsmart.json +0 -445
- catalystwan/tests/templates/test_find_template_values_2.py +0 -193
- catalystwan/tests/test_feature_profile_api.py +0 -282
- catalystwan/tests/test_models_common.py +0 -53
- catalystwan/utils/model.py +0 -48
- catalystwan/utils/persona.py +0 -5
- catalystwan/utils/type_check.py +0 -22
- catalystwan/workflows/backup_restore_device_templates.py +0 -467
- catalystwan-0.41.2.dev9.dist-info/RECORD +0 -641
- /catalystwan/tests/templates/definitions/{cisco_banner.json → banner_1.json} +0 -0
- {catalystwan-0.41.2.dev9.dist-info → catalystwan-0.41.3.dist-info}/LICENSE +0 -0
- {catalystwan-0.41.2.dev9.dist-info → catalystwan-0.41.3.dist-info}/WHEEL +0 -0
|
@@ -1,214 +1,152 @@
|
|
|
1
1
|
# Copyright 2023 Cisco Systems, Inc. and its affiliates
|
|
2
2
|
|
|
3
3
|
import ipaddress
|
|
4
|
+
from enum import Enum
|
|
4
5
|
from pathlib import Path
|
|
5
|
-
from typing import ClassVar, List,
|
|
6
|
+
from typing import ClassVar, List, Optional
|
|
6
7
|
|
|
7
8
|
from pydantic import ConfigDict, Field
|
|
8
9
|
|
|
9
10
|
from catalystwan.api.templates.bool_str import BoolStr
|
|
10
11
|
from catalystwan.api.templates.feature_template import FeatureTemplate, FeatureTemplateValidator
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
|
|
14
|
+
class MetricType(str, Enum):
|
|
15
|
+
TYPE1 = "type1"
|
|
16
|
+
TYPE2 = "type2"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class Protocol(str, Enum):
|
|
20
|
+
BGP = "bgp"
|
|
21
|
+
CONNECTED = "connected"
|
|
22
|
+
EIGRP = "eigrp"
|
|
23
|
+
ISIS = "isis"
|
|
24
|
+
LISP = "lisp"
|
|
25
|
+
NAT_ROUTE = "nat-route"
|
|
26
|
+
OMP = "omp"
|
|
27
|
+
STATIC = "static"
|
|
18
28
|
|
|
19
29
|
|
|
20
30
|
class Redistribute(FeatureTemplateValidator):
|
|
21
|
-
protocol: Protocol
|
|
22
|
-
route_policy: Optional[str] = Field(
|
|
23
|
-
|
|
24
|
-
json_schema_extra={"vmanage_key": "route-policy"},
|
|
25
|
-
description="The route policy to filter routes for redistribution",
|
|
26
|
-
)
|
|
27
|
-
dia: Optional[BoolStr] = Field(
|
|
28
|
-
default=True, description="Whether to include Direct Internet Access (DIA) routes in redistribution"
|
|
29
|
-
)
|
|
31
|
+
protocol: Protocol
|
|
32
|
+
route_policy: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "route-policy"})
|
|
33
|
+
dia: Optional[BoolStr] = True
|
|
30
34
|
model_config = ConfigDict(populate_by_name=True)
|
|
31
35
|
|
|
32
36
|
|
|
37
|
+
class AdType(str, Enum):
|
|
38
|
+
ON_STARTUP = "on-startup"
|
|
39
|
+
|
|
40
|
+
|
|
33
41
|
class RouterLsa(FeatureTemplateValidator):
|
|
34
|
-
ad_type: AdType = Field(
|
|
35
|
-
|
|
36
|
-
)
|
|
37
|
-
time: int = Field(description="Time configuration for the router LSA advertisement")
|
|
42
|
+
ad_type: AdType = Field(json_schema_extra={"vmanage_key": "ad-type"})
|
|
43
|
+
time: int
|
|
38
44
|
model_config = ConfigDict(populate_by_name=True)
|
|
39
45
|
|
|
40
46
|
|
|
47
|
+
class Translate(str, Enum):
|
|
48
|
+
ALWAYS = "always"
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class Network(str, Enum):
|
|
52
|
+
BROADCAST = "broadcast"
|
|
53
|
+
POINT_TO_POINT = "point-to-point"
|
|
54
|
+
NON_BROADCAST = "non-broadcast"
|
|
55
|
+
POINT_TO_MULTIPOINT = "point-to-multipoint"
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class Type(str, Enum):
|
|
59
|
+
MD5 = "md5"
|
|
60
|
+
SHA1 = "sha1"
|
|
61
|
+
|
|
62
|
+
|
|
41
63
|
class Interface(FeatureTemplateValidator):
|
|
42
|
-
name: str
|
|
43
|
-
hello_interval: Optional[int] = Field(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
json_schema_extra={"vmanage_key": "dead-interval"},
|
|
51
|
-
description="The interval after which a neighbor is declared down if no HELLO packets are received",
|
|
52
|
-
)
|
|
53
|
-
retransmit_interval: Optional[int] = Field(
|
|
54
|
-
default=5,
|
|
55
|
-
json_schema_extra={"vmanage_key": "retransmit-interval"},
|
|
56
|
-
description="The interval between LSA retransmissions",
|
|
57
|
-
)
|
|
58
|
-
cost: Optional[int] = Field(description="The cost metric for the interface")
|
|
59
|
-
network: Optional[Network] = Field(default="broadcast", description="The network type for the OSPF interface")
|
|
60
|
-
passive_interface: Optional[bool] = Field(
|
|
61
|
-
default=False,
|
|
62
|
-
json_schema_extra={"vmanage_key": "passive-interface"},
|
|
63
|
-
description="Whether the interface is passive (not sending OSPF packets)",
|
|
64
|
-
)
|
|
65
|
-
type: Type = Field(
|
|
66
|
-
json_schema_extra={"data_path": ["authentication"]},
|
|
67
|
-
description="The type of authentication for OSPF (MD5 or SHA1)",
|
|
68
|
-
)
|
|
64
|
+
name: str
|
|
65
|
+
hello_interval: Optional[int] = Field(10, json_schema_extra={"vmanage_key": "hello-interval"})
|
|
66
|
+
dead_interval: Optional[int] = Field(40, json_schema_extra={"vmanage_key": "dead-interval"})
|
|
67
|
+
retransmit_interval: Optional[int] = Field(5, json_schema_extra={"vmanage_key": "retransmit-interval"})
|
|
68
|
+
cost: Optional[int] = None
|
|
69
|
+
network: Optional[Network] = Network.BROADCAST
|
|
70
|
+
passive_interface: Optional[bool] = Field(False, json_schema_extra={"vmanage_key": "passive-interface"})
|
|
71
|
+
type: Type = Field(json_schema_extra={"data_path": ["authentication"]})
|
|
69
72
|
authentication_key: str = Field(
|
|
70
|
-
json_schema_extra={"vmanage_key": "authentication-key", "data_path": ["authentication"]}
|
|
71
|
-
description="The authentication key for OSPF",
|
|
72
|
-
)
|
|
73
|
-
spi: Optional[int] = Field(
|
|
74
|
-
default=None,
|
|
75
|
-
json_schema_extra={"data_path": ["authentication", "ipsec"]},
|
|
76
|
-
description="The Security Parameter Index for IPsec authentication",
|
|
73
|
+
json_schema_extra={"vmanage_key": "authentication-key", "data_path": ["authentication"]}
|
|
77
74
|
)
|
|
75
|
+
spi: Optional[int] = Field(default=None, json_schema_extra={"data_path": ["authentication", "ipsec"]})
|
|
78
76
|
model_config = ConfigDict(populate_by_name=True)
|
|
79
77
|
|
|
80
78
|
|
|
81
79
|
class Range(FeatureTemplateValidator):
|
|
82
|
-
address: ipaddress.IPv4Interface
|
|
83
|
-
cost: Optional[int] =
|
|
84
|
-
no_advertise: Optional[bool] = Field(
|
|
85
|
-
default=False,
|
|
86
|
-
json_schema_extra={"vmanage_key": "no-advertise"},
|
|
87
|
-
description="Whether to advertise this range or not",
|
|
88
|
-
)
|
|
80
|
+
address: ipaddress.IPv4Interface
|
|
81
|
+
cost: Optional[int] = None
|
|
82
|
+
no_advertise: Optional[bool] = Field(False, json_schema_extra={"vmanage_key": "no-advertise"})
|
|
89
83
|
model_config = ConfigDict(populate_by_name=True)
|
|
90
84
|
|
|
91
85
|
|
|
92
86
|
class Area(FeatureTemplateValidator):
|
|
93
|
-
a_num: int = Field(json_schema_extra={"vmanage_key": "a-num"}
|
|
87
|
+
a_num: int = Field(json_schema_extra={"vmanage_key": "a-num"})
|
|
94
88
|
stub: Optional[BoolStr] = Field(
|
|
95
|
-
default=None,
|
|
96
|
-
json_schema_extra={"vmanage_key": "no-summary", "data_path": ["stub"]},
|
|
97
|
-
description="Configuration for the stub area type with the option to suppress summary LSA",
|
|
89
|
+
default=None, json_schema_extra={"vmanage_key": "no-summary", "data_path": ["stub"]}
|
|
98
90
|
)
|
|
99
91
|
nssa: Optional[BoolStr] = Field(
|
|
100
|
-
default=None,
|
|
101
|
-
json_schema_extra={"vmanage_key": "no-summary", "data_path": ["nssa"]},
|
|
102
|
-
description="Configuration for the NSSA area type with the option to suppress summary LSA",
|
|
103
|
-
)
|
|
104
|
-
translate: Optional[Translate] = Field(
|
|
105
|
-
default=None,
|
|
106
|
-
json_schema_extra={"data_path": ["nssa"]},
|
|
107
|
-
description="Control for translating type 7 LSAs to type 5 LSAs in NSSA",
|
|
92
|
+
default=None, json_schema_extra={"vmanage_key": "no-summary", "data_path": ["nssa"]}
|
|
108
93
|
)
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
range: Optional[List[Range]] = Field(default=None, description="List of address ranges for the area")
|
|
94
|
+
translate: Optional[Translate] = Field(default=None, json_schema_extra={"data_path": ["nssa"]})
|
|
95
|
+
normal: Optional[BoolStr] = None
|
|
96
|
+
interface: Optional[List[Interface]] = None
|
|
97
|
+
range: Optional[List[Range]] = None
|
|
114
98
|
model_config = ConfigDict(populate_by_name=True)
|
|
115
99
|
|
|
116
100
|
|
|
117
101
|
class RedistributeV6(FeatureTemplateValidator):
|
|
118
|
-
protocol: Protocol
|
|
119
|
-
route_policy: Optional[str] = Field(
|
|
120
|
-
default=None,
|
|
121
|
-
json_schema_extra={"vmanage_key": "route-policy"},
|
|
122
|
-
description="The route policy to filter IPv6 routes for redistribution",
|
|
123
|
-
)
|
|
102
|
+
protocol: Protocol
|
|
103
|
+
route_policy: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "route-policy"})
|
|
124
104
|
model_config = ConfigDict(populate_by_name=True)
|
|
125
105
|
|
|
126
106
|
|
|
127
107
|
class InterfaceV6(FeatureTemplateValidator):
|
|
128
|
-
name: str
|
|
129
|
-
hello_interval: Optional[int] = Field(
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
json_schema_extra={"vmanage_key": "dead-interval"},
|
|
137
|
-
description="The interval after which a neighbor is declared down if no HELLO packets are received for IPv6",
|
|
138
|
-
)
|
|
139
|
-
retransmit_interval: Optional[int] = Field(
|
|
140
|
-
default=5,
|
|
141
|
-
json_schema_extra={"vmanage_key": "retransmit-interval"},
|
|
142
|
-
description="The interval between LSA retransmissions for IPv6",
|
|
143
|
-
)
|
|
144
|
-
cost: Optional[int] = Field(description="The cost metric for the IPv6 interface")
|
|
145
|
-
network: Optional[Network] = Field(default="broadcast", description="The network type for the OSPFv3 interface")
|
|
146
|
-
passive_interface: Optional[bool] = Field(
|
|
147
|
-
default=False,
|
|
148
|
-
json_schema_extra={"vmanage_key": "passive-interface"},
|
|
149
|
-
description="Whether the IPv6 interface is passive (not sending OSPF packets)",
|
|
150
|
-
)
|
|
151
|
-
type: Type = Field(
|
|
152
|
-
json_schema_extra={"data_path": ["authentication"]},
|
|
153
|
-
description="The type of authentication for OSPFv3 (MD5 or SHA1)",
|
|
154
|
-
)
|
|
108
|
+
name: str
|
|
109
|
+
hello_interval: Optional[int] = Field(10, json_schema_extra={"vmanage_key": "hello-interval"})
|
|
110
|
+
dead_interval: Optional[int] = Field(40, json_schema_extra={"vmanage_key": "dead-interval"})
|
|
111
|
+
retransmit_interval: Optional[int] = Field(5, json_schema_extra={"vmanage_key": "retransmit-interval"})
|
|
112
|
+
cost: Optional[int] = None
|
|
113
|
+
network: Optional[Network] = Network.BROADCAST
|
|
114
|
+
passive_interface: Optional[bool] = Field(False, json_schema_extra={"vmanage_key": "passive-interface"})
|
|
115
|
+
type: Type = Field(json_schema_extra={"data_path": ["authentication"]})
|
|
155
116
|
authentication_key: str = Field(
|
|
156
|
-
json_schema_extra={"vmanage_key": "authentication-key", "data_path": ["authentication"]}
|
|
157
|
-
description="The authentication key for OSPFv3",
|
|
158
|
-
)
|
|
159
|
-
spi: Optional[int] = Field(
|
|
160
|
-
default=None,
|
|
161
|
-
json_schema_extra={"data_path": ["authentication", "ipsec"]},
|
|
117
|
+
json_schema_extra={"vmanage_key": "authentication-key", "data_path": ["authentication"]}
|
|
162
118
|
)
|
|
119
|
+
spi: Optional[int] = Field(default=None, json_schema_extra={"data_path": ["authentication", "ipsec"]})
|
|
163
120
|
model_config = ConfigDict(populate_by_name=True)
|
|
164
121
|
|
|
165
122
|
|
|
166
123
|
class RangeV6(FeatureTemplateValidator):
|
|
167
|
-
address: ipaddress.IPv6Interface
|
|
168
|
-
cost: Optional[int] =
|
|
169
|
-
no_advertise: Optional[bool] = Field(
|
|
170
|
-
default=False,
|
|
171
|
-
json_schema_extra={"vmanage_key": "no-advertise"},
|
|
172
|
-
description="Whether to advertise this IPv6 range or not",
|
|
173
|
-
)
|
|
124
|
+
address: ipaddress.IPv6Interface
|
|
125
|
+
cost: Optional[int] = None
|
|
126
|
+
no_advertise: Optional[bool] = Field(False, json_schema_extra={"vmanage_key": "no-advertise"})
|
|
174
127
|
model_config = ConfigDict(populate_by_name=True)
|
|
175
128
|
|
|
176
129
|
|
|
177
130
|
class AreaV6(FeatureTemplateValidator):
|
|
178
|
-
a_num: int = Field(
|
|
179
|
-
json_schema_extra={"vmanage_key": "a-num"}, description="The IPv6 area number for OSPFv3 configuration"
|
|
180
|
-
)
|
|
131
|
+
a_num: int = Field(json_schema_extra={"vmanage_key": "a-num"})
|
|
181
132
|
stub: Optional[BoolStr] = Field(
|
|
182
|
-
default=None,
|
|
183
|
-
json_schema_extra={"vmanage_key": "no-summary", "data_path": ["stub"]},
|
|
184
|
-
description="Configuration for the IPv6 stub area type with the option to suppress summary LSA",
|
|
133
|
+
default=None, json_schema_extra={"vmanage_key": "no-summary", "data_path": ["stub"]}
|
|
185
134
|
)
|
|
186
135
|
nssa: Optional[BoolStr] = Field(
|
|
187
|
-
default=None,
|
|
188
|
-
json_schema_extra={"vmanage_key": "no-summary", "data_path": ["nssa"]},
|
|
189
|
-
description="Configuration for the IPv6 NSSA area type with the option to suppress summary LSA",
|
|
190
|
-
)
|
|
191
|
-
translate: Optional[Translate] = Field(
|
|
192
|
-
default=None,
|
|
193
|
-
json_schema_extra={"data_path": ["nssa"]},
|
|
194
|
-
description="Control for translating type 7 LSAs to type 5 LSAs in NSSA for IPv6",
|
|
136
|
+
default=None, json_schema_extra={"vmanage_key": "no-summary", "data_path": ["nssa"]}
|
|
195
137
|
)
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
range: Optional[List[RangeV6]] = Field(default=None, description="List of IPv6 address ranges for the OSPFv3 area")
|
|
138
|
+
translate: Optional[Translate] = Field(default=None, json_schema_extra={"data_path": ["nssa"]})
|
|
139
|
+
normal: Optional[BoolStr] = None
|
|
140
|
+
interface: Optional[List[InterfaceV6]] = None
|
|
141
|
+
range: Optional[List[RangeV6]] = None
|
|
201
142
|
model_config = ConfigDict(populate_by_name=True)
|
|
202
143
|
|
|
203
144
|
|
|
204
145
|
class CiscoOspfv3Model(FeatureTemplate):
|
|
205
146
|
model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
|
|
206
|
-
_docs_description: str = "Cisco OSPFv3 (Open Shortest Path First v3) configuration"
|
|
207
147
|
|
|
208
148
|
router_id_v4: Optional[ipaddress.IPv4Address] = Field(
|
|
209
|
-
default=None,
|
|
210
|
-
json_schema_extra={"vmanage_key": "router-id", "data_path": ["ospfv3", "address-family", "ipv4"]},
|
|
211
|
-
description="IPv4 address to be used as the router ID for the OSPFv3 process",
|
|
149
|
+
default=None, json_schema_extra={"vmanage_key": "router-id", "data_path": ["ospfv3", "address-family", "ipv4"]}
|
|
212
150
|
)
|
|
213
151
|
reference_bandwidth_v4: Optional[int] = Field(
|
|
214
152
|
100,
|
|
@@ -216,12 +154,10 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
216
154
|
"vmanage_key": "reference-bandwidth",
|
|
217
155
|
"data_path": ["ospfv3", "address-family", "ipv4", "auto-cost"],
|
|
218
156
|
},
|
|
219
|
-
description="Reference bandwidth in Mbps for calculating the OSPFv3 cost on IPv4 interfaces",
|
|
220
157
|
)
|
|
221
158
|
rfc1583_v4: Optional[BoolStr] = Field(
|
|
222
159
|
default=True,
|
|
223
160
|
json_schema_extra={"vmanage_key": "rfc1583", "data_path": ["ospfv3", "address-family", "ipv4", "compatible"]},
|
|
224
|
-
description="Compatibility flag for RFC 1583 to influence OSPFv3 route selection and preferences on IPv4",
|
|
225
161
|
)
|
|
226
162
|
originate_v4: Optional[BoolStr] = Field(
|
|
227
163
|
default=None,
|
|
@@ -229,7 +165,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
229
165
|
"vmanage_key": "originate",
|
|
230
166
|
"data_path": ["ospfv3", "address-family", "ipv4", "default-information"],
|
|
231
167
|
},
|
|
232
|
-
description="Flag to control the origination of default information/routes into the OSPFv3 domain for IPv4",
|
|
233
168
|
)
|
|
234
169
|
always_v4: Optional[BoolStr] = Field(
|
|
235
170
|
default=None,
|
|
@@ -237,10 +172,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
237
172
|
"vmanage_key": "always",
|
|
238
173
|
"data_path": ["ospfv3", "address-family", "ipv4", "default-information", "originate"],
|
|
239
174
|
},
|
|
240
|
-
description=(
|
|
241
|
-
"Flag indicating if the default route should always be advertised in OSPFv3 for IPv4, "
|
|
242
|
-
"irrespective of its presence in the routing table"
|
|
243
|
-
),
|
|
244
175
|
)
|
|
245
176
|
metric_v4: Optional[int] = Field(
|
|
246
177
|
default=None,
|
|
@@ -248,7 +179,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
248
179
|
"vmanage_key": "metric",
|
|
249
180
|
"data_path": ["ospfv3", "address-family", "ipv4", "default-information", "originate"],
|
|
250
181
|
},
|
|
251
|
-
description="The OSPFv3 metric value to use for the default route advertisement in IPv4",
|
|
252
182
|
)
|
|
253
183
|
metric_type_v4: Optional[MetricType] = Field(
|
|
254
184
|
default=None,
|
|
@@ -256,7 +186,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
256
186
|
"vmanage_key": "metric-type",
|
|
257
187
|
"data_path": ["ospfv3", "address-family", "ipv4", "default-information", "originate"],
|
|
258
188
|
},
|
|
259
|
-
description="The OSPFv3 metric type (E1 or E2) for the default route advertisement in IPv4",
|
|
260
189
|
)
|
|
261
190
|
external_v4: Optional[int] = Field(
|
|
262
191
|
110,
|
|
@@ -264,7 +193,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
264
193
|
"vmanage_key": "external",
|
|
265
194
|
"data_path": ["ospfv3", "address-family", "ipv4", "distance-ipv4", "ospf"],
|
|
266
195
|
},
|
|
267
|
-
description="Administrative distance for OSPFv3 external routes in IPv4",
|
|
268
196
|
)
|
|
269
197
|
inter_area_v4: Optional[int] = Field(
|
|
270
198
|
110,
|
|
@@ -272,7 +200,13 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
272
200
|
"vmanage_key": "inter-area",
|
|
273
201
|
"data_path": ["ospfv3", "address-family", "ipv4", "distance-ipv4", "ospf"],
|
|
274
202
|
},
|
|
275
|
-
|
|
203
|
+
)
|
|
204
|
+
intra_area_v4: Optional[int] = Field(
|
|
205
|
+
110,
|
|
206
|
+
json_schema_extra={
|
|
207
|
+
"vmanage_key": "intra-area",
|
|
208
|
+
"data_path": ["ospfv3", "address-family", "ipv4", "distance-ipv4", "ospf"],
|
|
209
|
+
},
|
|
276
210
|
)
|
|
277
211
|
delay_v4: Optional[int] = Field(
|
|
278
212
|
200,
|
|
@@ -280,10 +214,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
280
214
|
"vmanage_key": "delay",
|
|
281
215
|
"data_path": ["ospfv3", "address-family", "ipv4", "timers", "throttle", "spf"],
|
|
282
216
|
},
|
|
283
|
-
description=(
|
|
284
|
-
"Initial delay time in milliseconds before the OSPFv3 SPF algorithm starts "
|
|
285
|
-
"after a topology change for IPv4"
|
|
286
|
-
),
|
|
287
217
|
)
|
|
288
218
|
initial_hold_v4: Optional[int] = Field(
|
|
289
219
|
1000,
|
|
@@ -291,10 +221,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
291
221
|
"vmanage_key": "initial-hold",
|
|
292
222
|
"data_path": ["ospfv3", "address-family", "ipv4", "timers", "throttle", "spf"],
|
|
293
223
|
},
|
|
294
|
-
description=(
|
|
295
|
-
"Initial hold time in milliseconds for the OSPFv3 SPF algorithm to wait "
|
|
296
|
-
"between two successive SPF calculations for IPv4"
|
|
297
|
-
),
|
|
298
224
|
)
|
|
299
225
|
max_hold_v4: Optional[int] = Field(
|
|
300
226
|
10000,
|
|
@@ -302,10 +228,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
302
228
|
"vmanage_key": "max-hold",
|
|
303
229
|
"data_path": ["ospfv3", "address-family", "ipv4", "timers", "throttle", "spf"],
|
|
304
230
|
},
|
|
305
|
-
description=(
|
|
306
|
-
"Maximum hold time in milliseconds for the OSPFv3 SPF algorithm to wait "
|
|
307
|
-
"between two successive SPF calculations for IPv4"
|
|
308
|
-
),
|
|
309
231
|
)
|
|
310
232
|
distance_v4: Optional[int] = Field(
|
|
311
233
|
110,
|
|
@@ -313,22 +235,18 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
313
235
|
"vmanage_key": "distance",
|
|
314
236
|
"data_path": ["ospfv3", "address-family", "ipv4", "distance-ipv4"],
|
|
315
237
|
},
|
|
316
|
-
description="Administrative distance for OSPFv3 routes in IPv4",
|
|
317
238
|
)
|
|
318
239
|
name_v4: Optional[str] = Field(
|
|
319
240
|
default=None,
|
|
320
241
|
json_schema_extra={"vmanage_key": "name", "data_path": ["ospfv3", "address-family", "ipv4", "table-map"]},
|
|
321
|
-
description="Name of the route map used for OSPFv3 IPv4 route redistribution",
|
|
322
242
|
)
|
|
323
243
|
filter_v4: Optional[BoolStr] = Field(
|
|
324
244
|
default=None,
|
|
325
245
|
json_schema_extra={"vmanage_key": "filter", "data_path": ["ospfv3", "address-family", "ipv4", "table-map"]},
|
|
326
|
-
description="Flag indicating whether filtering is applied to OSPFv3 IPv4 routes using the specified route map",
|
|
327
246
|
)
|
|
328
247
|
redistribute_v4: Optional[List[Redistribute]] = Field(
|
|
329
248
|
default=None,
|
|
330
249
|
json_schema_extra={"vmanage_key": "redistribute", "data_path": ["ospfv3", "address-family", "ipv4"]},
|
|
331
|
-
description="List of redistribution configurations for OSPFv3 IPv4 address family",
|
|
332
250
|
)
|
|
333
251
|
router_lsa_v4: Optional[List[RouterLsa]] = Field(
|
|
334
252
|
default=None,
|
|
@@ -336,19 +254,12 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
336
254
|
"vmanage_key": "router-lsa",
|
|
337
255
|
"data_path": ["ospfv3", "address-family", "ipv4", "max-metric"],
|
|
338
256
|
},
|
|
339
|
-
description=(
|
|
340
|
-
"List of configurations to set the maximum metric for router LSAs in the OSPFv3 IPv4 address family"
|
|
341
|
-
),
|
|
342
257
|
)
|
|
343
258
|
area_v4: Optional[List[Area]] = Field(
|
|
344
|
-
default=None,
|
|
345
|
-
json_schema_extra={"vmanage_key": "area", "data_path": ["ospfv3", "address-family", "ipv4"]},
|
|
346
|
-
description="List of OSPFv3 area configurations for the IPv4 address family",
|
|
259
|
+
default=None, json_schema_extra={"vmanage_key": "area", "data_path": ["ospfv3", "address-family", "ipv4"]}
|
|
347
260
|
)
|
|
348
261
|
router_id_v6: Optional[ipaddress.IPv4Address] = Field(
|
|
349
|
-
default=None,
|
|
350
|
-
json_schema_extra={"vmanage_key": "router-id", "data_path": ["ospfv3", "address-family", "ipv6"]},
|
|
351
|
-
description="IPv4 address to be used as the router ID for the OSPFv3 process for IPv6",
|
|
262
|
+
default=None, json_schema_extra={"vmanage_key": "router-id", "data_path": ["ospfv3", "address-family", "ipv6"]}
|
|
352
263
|
)
|
|
353
264
|
reference_bandwidth_v6: Optional[int] = Field(
|
|
354
265
|
100,
|
|
@@ -356,12 +267,10 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
356
267
|
"vmanage_key": "reference-bandwidth",
|
|
357
268
|
"data_path": ["ospfv3", "address-family", "ipv6", "auto-cost"],
|
|
358
269
|
},
|
|
359
|
-
description="Reference bandwidth in Mbps for calculating the OSPFv3 cost on IPv6 interfaces",
|
|
360
270
|
)
|
|
361
271
|
rfc1583_v6: Optional[BoolStr] = Field(
|
|
362
272
|
default=True,
|
|
363
273
|
json_schema_extra={"vmanage_key": "rfc1583", "data_path": ["ospfv3", "address-family", "ipv6", "compatible"]},
|
|
364
|
-
description="Compatibility flag for RFC 1583 to influence OSPFv3 route selection and preferences on IPv6",
|
|
365
274
|
)
|
|
366
275
|
originate_v6: Optional[BoolStr] = Field(
|
|
367
276
|
default=None,
|
|
@@ -369,7 +278,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
369
278
|
"vmanage_key": "originate",
|
|
370
279
|
"data_path": ["ospfv3", "address-family", "ipv6", "default-information"],
|
|
371
280
|
},
|
|
372
|
-
description="Flag to control the origination of default information/routes into the OSPFv3 domain for IPv6",
|
|
373
281
|
)
|
|
374
282
|
always_v6: Optional[BoolStr] = Field(
|
|
375
283
|
default=None,
|
|
@@ -377,10 +285,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
377
285
|
"vmanage_key": "always",
|
|
378
286
|
"data_path": ["ospfv3", "address-family", "ipv6", "default-information", "originate"],
|
|
379
287
|
},
|
|
380
|
-
description=(
|
|
381
|
-
"Flag indicating if the default route should always be advertised in OSPFv3 for IPv6, "
|
|
382
|
-
"irrespective of its presence in the routing table"
|
|
383
|
-
),
|
|
384
288
|
)
|
|
385
289
|
metric_v6: Optional[int] = Field(
|
|
386
290
|
default=None,
|
|
@@ -388,7 +292,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
388
292
|
"vmanage_key": "metric",
|
|
389
293
|
"data_path": ["ospfv3", "address-family", "ipv6", "default-information", "originate"],
|
|
390
294
|
},
|
|
391
|
-
description="The OSPFv3 metric value to use for the default route advertisement in IPv6",
|
|
392
295
|
)
|
|
393
296
|
metric_type_v6: Optional[MetricType] = Field(
|
|
394
297
|
default=None,
|
|
@@ -396,7 +299,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
396
299
|
"vmanage_key": "metric-type",
|
|
397
300
|
"data_path": ["ospfv3", "address-family", "ipv6", "default-information", "originate"],
|
|
398
301
|
},
|
|
399
|
-
description="The OSPFv3 metric type (E1 or E2) for the default route advertisement in IPv6",
|
|
400
302
|
)
|
|
401
303
|
external_v6: Optional[int] = Field(
|
|
402
304
|
110,
|
|
@@ -404,7 +306,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
404
306
|
"vmanage_key": "external",
|
|
405
307
|
"data_path": ["ospfv3", "address-family", "ipv6", "distance-ipv6", "ospf"],
|
|
406
308
|
},
|
|
407
|
-
description="Administrative distance for OSPFv3 external routes in IPv6",
|
|
408
309
|
)
|
|
409
310
|
inter_area_v6: Optional[int] = Field(
|
|
410
311
|
110,
|
|
@@ -412,7 +313,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
412
313
|
"vmanage_key": "inter-area",
|
|
413
314
|
"data_path": ["ospfv3", "address-family", "ipv6", "distance-ipv6", "ospf"],
|
|
414
315
|
},
|
|
415
|
-
description="Administrative distance for OSPFv3 inter-area routes in IPv6",
|
|
416
316
|
)
|
|
417
317
|
intra_area_v6: Optional[int] = Field(
|
|
418
318
|
110,
|
|
@@ -420,7 +320,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
420
320
|
"vmanage_key": "intra-area",
|
|
421
321
|
"data_path": ["ospfv3", "address-family", "ipv6", "distance-ipv6", "ospf"],
|
|
422
322
|
},
|
|
423
|
-
description="Administrative distance for OSPFv3 intra-area routes in IPv6",
|
|
424
323
|
)
|
|
425
324
|
delay_v6: Optional[int] = Field(
|
|
426
325
|
200,
|
|
@@ -428,10 +327,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
428
327
|
"vmanage_key": "delay",
|
|
429
328
|
"data_path": ["ospfv3", "address-family", "ipv6", "timers", "throttle", "spf"],
|
|
430
329
|
},
|
|
431
|
-
description=(
|
|
432
|
-
"Initial delay time in milliseconds before the OSPFv3 SPF algorithm starts "
|
|
433
|
-
"after a topology change for IPv6"
|
|
434
|
-
),
|
|
435
330
|
)
|
|
436
331
|
initial_hold_v6: Optional[int] = Field(
|
|
437
332
|
1000,
|
|
@@ -439,10 +334,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
439
334
|
"vmanage_key": "initial-hold",
|
|
440
335
|
"data_path": ["ospfv3", "address-family", "ipv6", "timers", "throttle", "spf"],
|
|
441
336
|
},
|
|
442
|
-
description=(
|
|
443
|
-
"Initial hold time in milliseconds for the OSPFv3 SPF algorithm to "
|
|
444
|
-
"wait between two successive SPF calculations for IPv6"
|
|
445
|
-
),
|
|
446
337
|
)
|
|
447
338
|
max_hold_v6: Optional[int] = Field(
|
|
448
339
|
10000,
|
|
@@ -450,10 +341,6 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
450
341
|
"vmanage_key": "max-hold",
|
|
451
342
|
"data_path": ["ospfv3", "address-family", "ipv6", "timers", "throttle", "spf"],
|
|
452
343
|
},
|
|
453
|
-
description=(
|
|
454
|
-
"Maximum hold time in milliseconds for the OSPFv3 SPF algorithm "
|
|
455
|
-
"to wait between two successive SPF calculations for IPv6"
|
|
456
|
-
),
|
|
457
344
|
)
|
|
458
345
|
distance_v6: Optional[int] = Field(
|
|
459
346
|
110,
|
|
@@ -461,22 +348,18 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
461
348
|
"vmanage_key": "distance",
|
|
462
349
|
"data_path": ["ospfv3", "address-family", "ipv6", "distance-ipv6"],
|
|
463
350
|
},
|
|
464
|
-
description="Administrative distance for OSPFv3 routes in IPv6",
|
|
465
351
|
)
|
|
466
352
|
name_v6: Optional[str] = Field(
|
|
467
353
|
default=None,
|
|
468
354
|
json_schema_extra={"vmanage_key": "name", "data_path": ["ospfv3", "address-family", "ipv6", "table-map"]},
|
|
469
|
-
description="Name of the route map used for OSPFv3 IPv6 route redistribution",
|
|
470
355
|
)
|
|
471
356
|
filter_v6: Optional[BoolStr] = Field(
|
|
472
357
|
default=None,
|
|
473
358
|
json_schema_extra={"vmanage_key": "filter", "data_path": ["ospfv3", "address-family", "ipv6", "table-map"]},
|
|
474
|
-
description="Flag indicating whether filtering is applied to OSPFv3 IPv6 routes using the specified route map",
|
|
475
359
|
)
|
|
476
360
|
redistribute_v6: Optional[List[RedistributeV6]] = Field(
|
|
477
361
|
default=None,
|
|
478
362
|
json_schema_extra={"vmanage_key": "redistribute", "data_path": ["ospfv3", "address-family", "ipv6"]},
|
|
479
|
-
description="List of redistribution configurations for OSPFv3 IPv6 address family",
|
|
480
363
|
)
|
|
481
364
|
router_lsa_v6: Optional[List[RouterLsa]] = Field(
|
|
482
365
|
default=None,
|
|
@@ -484,14 +367,9 @@ class CiscoOspfv3Model(FeatureTemplate):
|
|
|
484
367
|
"vmanage_key": "router-lsa",
|
|
485
368
|
"data_path": ["ospfv3", "address-family", "ipv6", "max-metric"],
|
|
486
369
|
},
|
|
487
|
-
description=(
|
|
488
|
-
"List of configurations to set the maximum metric for router LSAs in the OSPFv3 IPv6 address family"
|
|
489
|
-
),
|
|
490
370
|
)
|
|
491
371
|
area_v6: Optional[List[AreaV6]] = Field(
|
|
492
|
-
default=None,
|
|
493
|
-
json_schema_extra={"vmanage_key": "area", "data_path": ["ospfv3", "address-family", "ipv6"]},
|
|
494
|
-
description="List of OSPFv3 area configurations for the IPv6 address family",
|
|
372
|
+
default=None, json_schema_extra={"vmanage_key": "area", "data_path": ["ospfv3", "address-family", "ipv6"]}
|
|
495
373
|
)
|
|
496
374
|
|
|
497
375
|
payload_path: ClassVar[Path] = Path(__file__).parent / "DEPRECATED"
|