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.
Files changed (509) hide show
  1. catalystwan/ENDPOINTS.md +611 -0
  2. catalystwan/__init__.py +2 -3
  3. catalystwan/api/administration.py +2 -13
  4. catalystwan/api/api_container.py +1 -4
  5. catalystwan/api/config_group_api.py +16 -41
  6. catalystwan/api/configuration_groups/parcel.py +30 -100
  7. catalystwan/api/configuration_groups/parcels/cellular_controller.py +33 -0
  8. catalystwan/api/feature_profile_api.py +237 -2016
  9. catalystwan/api/policy_api.py +116 -470
  10. catalystwan/api/template_api.py +44 -113
  11. catalystwan/api/templates/README.md +47 -61
  12. catalystwan/api/templates/cli_template.py +7 -17
  13. catalystwan/api/templates/device_template/device_template.py +32 -127
  14. catalystwan/api/templates/device_template/device_template_payload.json.j2 +19 -0
  15. catalystwan/api/templates/feature_template.py +3 -3
  16. catalystwan/api/templates/models/cisco_aaa_model.py +42 -289
  17. catalystwan/api/templates/models/cisco_banner_model.py +2 -11
  18. catalystwan/api/templates/models/cisco_bfd_model.py +36 -31
  19. catalystwan/api/templates/models/cisco_bgp_model.py +131 -382
  20. catalystwan/api/templates/models/cisco_logging_model.py +43 -80
  21. catalystwan/api/templates/models/cisco_ntp_model.py +15 -34
  22. catalystwan/api/templates/models/cisco_omp_model.py +60 -70
  23. catalystwan/api/templates/models/cisco_ospf.py +74 -143
  24. catalystwan/api/templates/models/cisco_ospfv3.py +95 -217
  25. catalystwan/api/templates/models/cisco_secure_internet_gateway.py +142 -304
  26. catalystwan/api/templates/models/cisco_snmp_model.py +52 -66
  27. catalystwan/api/templates/models/cisco_system.py +129 -238
  28. catalystwan/api/templates/models/cisco_vpn_interface_model.py +275 -632
  29. catalystwan/api/templates/models/cisco_vpn_model.py +270 -433
  30. catalystwan/api/templates/models/cli_template.py +2 -3
  31. catalystwan/api/templates/models/omp_vsmart_model.py +10 -46
  32. catalystwan/api/templates/models/security_vsmart_model.py +8 -11
  33. catalystwan/api/templates/models/supported.py +4 -10
  34. catalystwan/api/templates/models/system_vsmart_model.py +27 -164
  35. catalystwan/apigw_auth.py +2 -6
  36. catalystwan/dataclasses.py +53 -2
  37. catalystwan/endpoints/__init__.py +41 -41
  38. catalystwan/endpoints/certificate_management_device.py +0 -4
  39. catalystwan/endpoints/cluster_management.py +9 -30
  40. catalystwan/endpoints/configuration/feature_profile/sdwan/policy_object.py +12 -35
  41. catalystwan/endpoints/configuration/feature_profile/sdwan/system.py +11 -164
  42. catalystwan/endpoints/configuration/feature_profile/sdwan/transport.py +26 -144
  43. catalystwan/endpoints/configuration/policy/definition/access_control_list.py +11 -6
  44. catalystwan/endpoints/configuration/policy/definition/access_control_list_ipv6.py +11 -6
  45. catalystwan/endpoints/configuration/policy/definition/control.py +11 -6
  46. catalystwan/endpoints/configuration/policy/definition/device_access.py +11 -6
  47. catalystwan/endpoints/configuration/policy/definition/device_access_ipv6.py +11 -6
  48. catalystwan/endpoints/configuration/policy/definition/hub_and_spoke.py +11 -6
  49. catalystwan/endpoints/configuration/policy/definition/mesh.py +11 -2
  50. catalystwan/endpoints/configuration/policy/definition/qos_map.py +11 -2
  51. catalystwan/endpoints/configuration/policy/definition/rewrite.py +11 -6
  52. catalystwan/endpoints/configuration/policy/definition/rule_set.py +11 -2
  53. catalystwan/endpoints/configuration/policy/definition/security_group.py +11 -6
  54. catalystwan/endpoints/configuration/policy/definition/traffic_data.py +11 -6
  55. catalystwan/endpoints/configuration/policy/definition/vpn_membership.py +11 -6
  56. catalystwan/endpoints/configuration/policy/definition/zone_based_firewall.py +11 -6
  57. catalystwan/endpoints/configuration/policy/list/app.py +16 -3
  58. catalystwan/endpoints/configuration/policy/list/app_probe.py +15 -6
  59. catalystwan/endpoints/configuration/policy/list/as_path.py +16 -3
  60. catalystwan/endpoints/configuration/policy/list/class_map.py +16 -3
  61. catalystwan/endpoints/configuration/policy/list/color.py +16 -3
  62. catalystwan/endpoints/configuration/policy/list/community.py +16 -3
  63. catalystwan/endpoints/configuration/policy/list/data_ipv6_prefix.py +15 -6
  64. catalystwan/endpoints/configuration/policy/list/data_prefix.py +16 -3
  65. catalystwan/endpoints/configuration/policy/list/expanded_community.py +15 -6
  66. catalystwan/endpoints/configuration/policy/list/fqdn.py +16 -3
  67. catalystwan/endpoints/configuration/policy/list/geo_location.py +16 -3
  68. catalystwan/endpoints/configuration/policy/list/ips_signature.py +15 -6
  69. catalystwan/endpoints/configuration/policy/list/ipv6_prefix.py +16 -3
  70. catalystwan/endpoints/configuration/policy/list/local_app.py +16 -3
  71. catalystwan/endpoints/configuration/policy/list/local_domain.py +16 -3
  72. catalystwan/endpoints/configuration/policy/list/mirror.py +16 -3
  73. catalystwan/endpoints/configuration/policy/list/policer.py +16 -3
  74. catalystwan/endpoints/configuration/policy/list/port.py +16 -3
  75. catalystwan/endpoints/configuration/policy/list/preferred_color_group.py +15 -6
  76. catalystwan/endpoints/configuration/policy/list/prefix.py +16 -4
  77. catalystwan/endpoints/configuration/policy/list/protocol_name.py +15 -6
  78. catalystwan/endpoints/configuration/policy/list/region.py +10 -2
  79. catalystwan/endpoints/configuration/policy/list/site.py +16 -3
  80. catalystwan/endpoints/configuration/policy/list/sla.py +16 -3
  81. catalystwan/endpoints/configuration/policy/list/tloc.py +16 -3
  82. catalystwan/endpoints/configuration/policy/list/url_allow_list.py +16 -3
  83. catalystwan/endpoints/configuration/policy/list/url_block_list.py +16 -3
  84. catalystwan/endpoints/configuration/policy/list/vpn.py +16 -3
  85. catalystwan/endpoints/configuration/policy/list/zone.py +16 -3
  86. catalystwan/endpoints/configuration/policy/security_template.py +3 -2
  87. catalystwan/endpoints/configuration/software_actions.py +4 -2
  88. catalystwan/endpoints/configuration_dashboard_status.py +2 -2
  89. catalystwan/endpoints/configuration_device_template.py +1 -15
  90. catalystwan/endpoints/configuration_feature_profile.py +11 -8
  91. catalystwan/endpoints/configuration_group.py +5 -28
  92. catalystwan/endpoints/configuration_settings.py +1 -90
  93. catalystwan/endpoints/endpoints_container.py +18 -82
  94. catalystwan/endpoints/real_time_monitoring/reboot_history.py +3 -1
  95. catalystwan/endpoints/tenant_migration.py +0 -2
  96. catalystwan/exceptions.py +0 -24
  97. catalystwan/integration_tests/test_find_template_values.py +18 -7
  98. catalystwan/models/common.py +2 -1898
  99. catalystwan/models/configuration/common.py +0 -1
  100. catalystwan/models/configuration/config_migration.py +36 -0
  101. catalystwan/models/configuration/feature_profile/common.py +149 -634
  102. catalystwan/models/configuration/feature_profile/sdwan/management/vpn.py +26 -0
  103. catalystwan/models/configuration/feature_profile/sdwan/policy_object/__init__.py +60 -69
  104. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py +20 -34
  105. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py +6 -8
  106. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/color_list.py +5 -7
  107. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/data_prefix.py +4 -13
  108. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/expanded_community_list.py +7 -9
  109. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/fowarding_class.py +5 -7
  110. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_data_prefix.py +9 -11
  111. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_prefix_list.py +10 -25
  112. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/{policer.py → policier.py} +10 -12
  113. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefered_group_color.py +10 -29
  114. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefix_list.py +8 -23
  115. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/sla_class.py +31 -12
  116. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/standard_community.py +10 -16
  117. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/tloc_list.py +7 -8
  118. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/application_list.py +6 -8
  119. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/data_prefix.py +5 -7
  120. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/fqdn.py +5 -7
  121. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/geolocation_list.py +5 -7
  122. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ips_signature.py +5 -7
  123. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/local_domain.py +5 -7
  124. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/protocol_list.py +5 -7
  125. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/security_port.py +11 -21
  126. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url.py +15 -36
  127. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/zone.py +18 -14
  128. catalystwan/models/configuration/feature_profile/sdwan/service/acl.py +409 -0
  129. catalystwan/models/configuration/feature_profile/sdwan/service/appqoe.py +42 -77
  130. catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py +288 -0
  131. catalystwan/models/configuration/feature_profile/sdwan/service/dhcp_server.py +64 -107
  132. catalystwan/models/configuration/feature_profile/sdwan/service/eigrp.py +42 -39
  133. catalystwan/models/configuration/feature_profile/sdwan/service/lan/common.py +88 -7
  134. catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py +156 -232
  135. catalystwan/models/configuration/feature_profile/sdwan/service/lan/gre.py +108 -38
  136. catalystwan/models/configuration/feature_profile/sdwan/service/lan/ipsec.py +84 -77
  137. catalystwan/models/configuration/feature_profile/sdwan/service/lan/svi.py +56 -62
  138. catalystwan/models/configuration/feature_profile/sdwan/service/lan/vpn.py +121 -112
  139. catalystwan/models/configuration/feature_profile/sdwan/service/multicast.py +57 -56
  140. catalystwan/models/configuration/feature_profile/sdwan/service/object_tracker.py +21 -15
  141. catalystwan/models/configuration/feature_profile/sdwan/{routing → service}/ospf.py +47 -55
  142. catalystwan/models/configuration/feature_profile/sdwan/{routing → service}/ospfv3.py +72 -74
  143. catalystwan/models/configuration/feature_profile/sdwan/service/route_policy.py +110 -358
  144. catalystwan/models/configuration/feature_profile/sdwan/service/service_insertion_attachment.py +25 -17
  145. catalystwan/models/configuration/feature_profile/sdwan/service/switchport.py +58 -50
  146. catalystwan/models/configuration/feature_profile/sdwan/service/tracker.py +21 -12
  147. catalystwan/models/configuration/feature_profile/sdwan/service/wireless_lan.py +31 -27
  148. catalystwan/models/configuration/feature_profile/sdwan/system/aaa.py +10 -58
  149. catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_controller.py +23 -26
  150. catalystwan/models/configuration/profile_type.py +6 -1
  151. catalystwan/models/policy/__init__.py +69 -282
  152. catalystwan/models/policy/centralized.py +29 -26
  153. catalystwan/models/policy/{definition → definitions}/access_control_list.py +17 -47
  154. catalystwan/models/policy/{definition → definitions}/access_control_list_ipv6.py +18 -42
  155. catalystwan/models/policy/{definition → definitions}/control.py +25 -48
  156. catalystwan/models/policy/{definition → definitions}/device_access.py +11 -22
  157. catalystwan/models/policy/{definition → definitions}/device_access_ipv6.py +11 -20
  158. catalystwan/models/policy/{definition → definitions}/hub_and_spoke.py +4 -18
  159. catalystwan/models/policy/{definition → definitions}/mesh.py +1 -13
  160. catalystwan/models/policy/{definition → definitions}/qos_map.py +32 -39
  161. catalystwan/models/policy/{definition → definitions}/rewrite.py +2 -12
  162. catalystwan/models/policy/{definition → definitions}/rule_set.py +48 -66
  163. catalystwan/models/policy/{definition → definitions}/security_group.py +14 -38
  164. catalystwan/models/policy/{definition → definitions}/traffic_data.py +61 -184
  165. catalystwan/models/policy/{definition → definitions}/vpn_membership.py +1 -13
  166. catalystwan/models/policy/{definition → definitions}/zone_based_firewall.py +32 -93
  167. catalystwan/models/policy/lists.py +330 -0
  168. catalystwan/models/policy/lists_entries.py +444 -0
  169. catalystwan/models/policy/localized.py +16 -34
  170. catalystwan/models/policy/policy.py +10 -14
  171. catalystwan/models/policy/policy_definition.py +173 -673
  172. catalystwan/models/policy/policy_list.py +27 -38
  173. catalystwan/models/policy/security.py +46 -145
  174. catalystwan/response.py +2 -6
  175. catalystwan/session.py +1 -1
  176. catalystwan/tests/templates/definitions/{cisco_vpn_basic.json → Basic_Cisco_VPN_Model.json} +2 -2
  177. catalystwan/tests/templates/definitions/complex_aaa.json +277 -0
  178. catalystwan/tests/templates/definitions/{cisco_vpn_complex.json → complex_cisco_vpn.json} +12 -27
  179. catalystwan/tests/templates/definitions/{cisco_aaa.json → iuo.json} +15 -44
  180. catalystwan/tests/templates/definitions/omp_1.json +11 -0
  181. catalystwan/tests/templates/definitions/{omp_vsmart_2.json → omp_2.json} +2 -16
  182. catalystwan/tests/templates/definitions/{omp_vsmart_3.json → omp_3.json} +2 -16
  183. catalystwan/tests/templates/models/__init__.py +13 -46
  184. catalystwan/tests/templates/models/cisco_aaa.py +48 -81
  185. catalystwan/tests/templates/models/cisco_banner.py +2 -2
  186. catalystwan/tests/templates/models/cisco_bfd.py +6 -4
  187. catalystwan/tests/templates/models/cisco_system.py +3 -108
  188. catalystwan/tests/templates/models/cisco_vpn.py +72 -42
  189. catalystwan/tests/templates/models/omp_vsmart.py +8 -28
  190. catalystwan/tests/templates/schemas/cedge_aaa.json +1 -1
  191. catalystwan/tests/templates/schemas/cisco_system.json +0 -242
  192. catalystwan/tests/templates/schemas/cisco_vpn.json +1 -53
  193. catalystwan/tests/templates/schemas/omp-vsmart.json +0 -20
  194. catalystwan/tests/templates/test_chose_model.py +10 -6
  195. catalystwan/tests/templates/test_deserialize_model.py +4 -4
  196. catalystwan/tests/templates/test_find_template_values.py +0 -229
  197. catalystwan/tests/templates/test_serialize_model.py +2 -1
  198. catalystwan/tests/test_cli_template.py +9 -8
  199. catalystwan/tests/test_endpoints.py +11 -42
  200. catalystwan/tests/test_templates.py +19 -16
  201. catalystwan/utils/feature_template/find_template_values.py +9 -22
  202. catalystwan/utils/timezone.py +422 -0
  203. catalystwan/workflows/tenant_migration.py +1 -1
  204. {catalystwan-0.41.2.dev9.dist-info → catalystwan-0.41.3.dist-info}/METADATA +1 -20
  205. catalystwan-0.41.3.dist-info/RECORD +353 -0
  206. catalystwan/api/builders/__init__.py +0 -14
  207. catalystwan/api/builders/feature_profiles/__init__.py +0 -0
  208. catalystwan/api/builders/feature_profiles/application_priority.py +0 -58
  209. catalystwan/api/builders/feature_profiles/builder_factory.py +0 -59
  210. catalystwan/api/builders/feature_profiles/cli.py +0 -76
  211. catalystwan/api/builders/feature_profiles/mixins.py +0 -44
  212. catalystwan/api/builders/feature_profiles/other.py +0 -79
  213. catalystwan/api/builders/feature_profiles/report.py +0 -155
  214. catalystwan/api/builders/feature_profiles/service.py +0 -248
  215. catalystwan/api/builders/feature_profiles/system.py +0 -80
  216. catalystwan/api/builders/feature_profiles/transport.py +0 -256
  217. catalystwan/api/builders/feature_profiles/uc_voice.py +0 -287
  218. catalystwan/api/templates/models/aaa_model.py +0 -387
  219. catalystwan/api/templates/models/vpn_vsmart_interface_model.py +0 -198
  220. catalystwan/api/templates/models/vpn_vsmart_model.py +0 -124
  221. catalystwan/endpoints/configuration/feature_profile/sdwan/application_priority.py +0 -107
  222. catalystwan/endpoints/configuration/feature_profile/sdwan/cli.py +0 -60
  223. catalystwan/endpoints/configuration/feature_profile/sdwan/dns_security.py +0 -83
  224. catalystwan/endpoints/configuration/feature_profile/sdwan/embedded_security.py +0 -88
  225. catalystwan/endpoints/configuration/feature_profile/sdwan/other.py +0 -62
  226. catalystwan/endpoints/configuration/feature_profile/sdwan/service.py +0 -154
  227. catalystwan/endpoints/configuration/feature_profile/sdwan/sig_security.py +0 -88
  228. catalystwan/endpoints/configuration/feature_profile/sdwan/topology.py +0 -93
  229. catalystwan/endpoints/configuration/feature_profile/sdwan/uc_voice.py +0 -77
  230. catalystwan/endpoints/configuration/network_hierarchy.py +0 -47
  231. catalystwan/endpoints/configuration/packages.py +0 -36
  232. catalystwan/endpoints/configuration/policy/abstractions.py +0 -49
  233. catalystwan/endpoints/configuration/policy/definition/aip.py +0 -52
  234. catalystwan/endpoints/configuration/policy/definition/amp.py +0 -52
  235. catalystwan/endpoints/configuration/policy/definition/app_route.py +0 -50
  236. catalystwan/endpoints/configuration/policy/definition/cflowd.py +0 -46
  237. catalystwan/endpoints/configuration/policy/definition/dial_peer.py +0 -57
  238. catalystwan/endpoints/configuration/policy/definition/dns_security.py +0 -50
  239. catalystwan/endpoints/configuration/policy/definition/fxo_port.py +0 -57
  240. catalystwan/endpoints/configuration/policy/definition/fxs_did_port.py +0 -57
  241. catalystwan/endpoints/configuration/policy/definition/fxs_port.py +0 -57
  242. catalystwan/endpoints/configuration/policy/definition/intrusion_prevention.py +0 -52
  243. catalystwan/endpoints/configuration/policy/definition/pri_isdn_port.py +0 -57
  244. catalystwan/endpoints/configuration/policy/definition/route_policy.py +0 -50
  245. catalystwan/endpoints/configuration/policy/definition/srst_phone_profile.py +0 -59
  246. catalystwan/endpoints/configuration/policy/definition/ssl_decryption.py +0 -50
  247. catalystwan/endpoints/configuration/policy/definition/ssl_decryption_utd_profile.py +0 -52
  248. catalystwan/endpoints/configuration/policy/definition/url_filtering.py +0 -50
  249. catalystwan/endpoints/configuration/policy/definition/vpn_qos_map.py +0 -50
  250. catalystwan/endpoints/configuration/policy/list/extended_community.py +0 -52
  251. catalystwan/endpoints/configuration/policy/list/fax_protocol.py +0 -48
  252. catalystwan/endpoints/configuration/policy/list/identity.py +0 -48
  253. catalystwan/endpoints/configuration/policy/list/media_profile.py +0 -52
  254. catalystwan/endpoints/configuration/policy/list/modem_pass_through.py +0 -52
  255. catalystwan/endpoints/configuration/policy/list/scalable_group_tag.py +0 -52
  256. catalystwan/endpoints/configuration/policy/list/supervisory_disconnect.py +0 -52
  257. catalystwan/endpoints/configuration/policy/list/threat_grid_api_key.py +0 -52
  258. catalystwan/endpoints/configuration/policy/list/translation_profile.py +0 -52
  259. catalystwan/endpoints/configuration/policy/list/translation_rules.py +0 -52
  260. catalystwan/endpoints/configuration/policy/list/trunkgroup.py +0 -48
  261. catalystwan/endpoints/configuration/policy/list/umbrella_data.py +0 -52
  262. catalystwan/endpoints/configuration/policy/voice_template.py +0 -39
  263. catalystwan/endpoints/configuration/policy_group.py +0 -30
  264. catalystwan/endpoints/configuration/topology_group.py +0 -51
  265. catalystwan/endpoints/configuration_general_template.py +0 -31
  266. catalystwan/endpoints/configuration_template_master.py +0 -48
  267. catalystwan/integration_tests/base.py +0 -81
  268. catalystwan/integration_tests/feature_profile/sdwan/__init__.py +0 -0
  269. catalystwan/integration_tests/feature_profile/sdwan/policy/__init__.py +0 -0
  270. catalystwan/integration_tests/feature_profile/sdwan/policy/base.py +0 -33
  271. catalystwan/integration_tests/feature_profile/sdwan/policy/test_extended_community.py +0 -33
  272. catalystwan/integration_tests/feature_profile/sdwan/policy/test_security_app_list.py +0 -32
  273. catalystwan/integration_tests/feature_profile/sdwan/test_application_priority.py +0 -433
  274. catalystwan/integration_tests/feature_profile/sdwan/test_cli.py +0 -54
  275. catalystwan/integration_tests/feature_profile/sdwan/test_dns_security.py +0 -106
  276. catalystwan/integration_tests/feature_profile/sdwan/test_other.py +0 -49
  277. catalystwan/integration_tests/feature_profile/sdwan/test_service.py +0 -1078
  278. catalystwan/integration_tests/feature_profile/sdwan/test_sig_security.py +0 -322
  279. catalystwan/integration_tests/feature_profile/sdwan/test_ssl_decryption.py +0 -85
  280. catalystwan/integration_tests/feature_profile/sdwan/test_system.py +0 -368
  281. catalystwan/integration_tests/feature_profile/sdwan/test_tracker.py +0 -127
  282. catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +0 -1698
  283. catalystwan/integration_tests/feature_profile/sdwan/topology/test_topology.py +0 -93
  284. catalystwan/integration_tests/feature_profile/test_parcel.py +0 -54
  285. catalystwan/integration_tests/profile_builder/__init__.py +0 -0
  286. catalystwan/integration_tests/profile_builder/test_pb_service.py +0 -197
  287. catalystwan/integration_tests/profile_builder/test_pb_transport.py +0 -226
  288. catalystwan/integration_tests/profile_builder/test_pb_uc_voice.py +0 -277
  289. catalystwan/integration_tests/test_data/__init__.py +0 -117
  290. catalystwan/integration_tests/test_network_hierarchy.py +0 -82
  291. catalystwan/integration_tests/test_settings.py +0 -30
  292. catalystwan/models/configuration/feature_profile/parcel.py +0 -245
  293. catalystwan/models/configuration/feature_profile/sdwan/acl/__init__.py +0 -13
  294. catalystwan/models/configuration/feature_profile/sdwan/acl/ipv4acl.py +0 -298
  295. catalystwan/models/configuration/feature_profile/sdwan/acl/ipv6acl.py +0 -344
  296. catalystwan/models/configuration/feature_profile/sdwan/application_priority/__init__.py +0 -218
  297. catalystwan/models/configuration/feature_profile/sdwan/application_priority/cloud_probe.py +0 -61
  298. catalystwan/models/configuration/feature_profile/sdwan/application_priority/policy_settings.py +0 -31
  299. catalystwan/models/configuration/feature_profile/sdwan/application_priority/qos_policy.py +0 -102
  300. catalystwan/models/configuration/feature_profile/sdwan/application_priority/traffic_policy.py +0 -1057
  301. catalystwan/models/configuration/feature_profile/sdwan/cli/__init__.py +0 -23
  302. catalystwan/models/configuration/feature_profile/sdwan/cli/config.py +0 -18
  303. catalystwan/models/configuration/feature_profile/sdwan/cli/full_config.py +0 -15
  304. catalystwan/models/configuration/feature_profile/sdwan/dns_security/__init__.py +0 -13
  305. catalystwan/models/configuration/feature_profile/sdwan/dns_security/dns.py +0 -110
  306. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/__init__.py +0 -23
  307. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/ngfirewall.py +0 -493
  308. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/policy.py +0 -171
  309. catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py +0 -25
  310. catalystwan/models/configuration/feature_profile/sdwan/other/cybervision.py +0 -44
  311. catalystwan/models/configuration/feature_profile/sdwan/other/thousandeyes.py +0 -147
  312. catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py +0 -110
  313. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/as_path.py +0 -22
  314. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/extended_community.py +0 -34
  315. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_network_object.py +0 -15
  316. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_service_object.py +0 -254
  317. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/mirror.py +0 -27
  318. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/network_object_group.py +0 -15
  319. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/object_group.py +0 -15
  320. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/service_object_group.py +0 -21
  321. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/aip.py +0 -64
  322. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/amp.py +0 -79
  323. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/identity.py +0 -30
  324. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/intrusion_prevention.py +0 -58
  325. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/object_group.py +0 -72
  326. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/rule_set.py +0 -137
  327. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/scalable_group_tag.py +0 -26
  328. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption.py +0 -126
  329. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption_profile.py +0 -165
  330. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url_filtering.py +0 -148
  331. catalystwan/models/configuration/feature_profile/sdwan/routing/__init__.py +0 -26
  332. catalystwan/models/configuration/feature_profile/sdwan/routing/bgp.py +0 -609
  333. catalystwan/models/configuration/feature_profile/sdwan/service/__init__.py +0 -91
  334. catalystwan/models/configuration/feature_profile/sdwan/service/dual_router_ha.py +0 -26
  335. catalystwan/models/configuration/feature_profile/sdwan/service/lan/multilink.py +0 -101
  336. catalystwan/models/configuration/feature_profile/sdwan/service/service_chain.py +0 -38
  337. catalystwan/models/configuration/feature_profile/sdwan/sig_security/__init__.py +0 -19
  338. catalystwan/models/configuration/feature_profile/sdwan/sig_security/sig_security.py +0 -379
  339. catalystwan/models/configuration/feature_profile/sdwan/system/__init__.py +0 -59
  340. catalystwan/models/configuration/feature_profile/sdwan/system/banner.py +0 -30
  341. catalystwan/models/configuration/feature_profile/sdwan/system/basic.py +0 -290
  342. catalystwan/models/configuration/feature_profile/sdwan/system/bfd.py +0 -69
  343. catalystwan/models/configuration/feature_profile/sdwan/system/device_access.py +0 -157
  344. catalystwan/models/configuration/feature_profile/sdwan/system/device_access_ipv6.py +0 -157
  345. catalystwan/models/configuration/feature_profile/sdwan/system/global_parcel.py +0 -163
  346. catalystwan/models/configuration/feature_profile/sdwan/system/logging_parcel.py +0 -162
  347. catalystwan/models/configuration/feature_profile/sdwan/system/mrf.py +0 -75
  348. catalystwan/models/configuration/feature_profile/sdwan/system/ntp.py +0 -103
  349. catalystwan/models/configuration/feature_profile/sdwan/system/omp.py +0 -120
  350. catalystwan/models/configuration/feature_profile/sdwan/system/security.py +0 -179
  351. catalystwan/models/configuration/feature_profile/sdwan/system/snmp.py +0 -173
  352. catalystwan/models/configuration/feature_profile/sdwan/topology/__init__.py +0 -29
  353. catalystwan/models/configuration/feature_profile/sdwan/topology/custom_control.py +0 -425
  354. catalystwan/models/configuration/feature_profile/sdwan/topology/hubspoke.py +0 -60
  355. catalystwan/models/configuration/feature_profile/sdwan/topology/mesh.py +0 -23
  356. catalystwan/models/configuration/feature_profile/sdwan/trackers/__init__.py +0 -36
  357. catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker.py +0 -96
  358. catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker_group.py +0 -63
  359. catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +0 -93
  360. catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_profile.py +0 -71
  361. catalystwan/models/configuration/feature_profile/sdwan/transport/gps.py +0 -37
  362. catalystwan/models/configuration/feature_profile/sdwan/transport/management/ethernet.py +0 -121
  363. catalystwan/models/configuration/feature_profile/sdwan/transport/t1e1controller.py +0 -124
  364. catalystwan/models/configuration/feature_profile/sdwan/transport/vpn.py +0 -285
  365. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/cellular.py +0 -173
  366. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ethernet.py +0 -389
  367. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/gre.py +0 -46
  368. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ipsec.py +0 -137
  369. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/multilink.py +0 -219
  370. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/protocol_over.py +0 -405
  371. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/t1e1serial.py +0 -195
  372. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/__init__.py +0 -62
  373. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/analog_interface.py +0 -436
  374. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/call_routing.py +0 -179
  375. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/digital_interface.py +0 -380
  376. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/dsp_farm.py +0 -193
  377. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/media_profile.py +0 -17
  378. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/server_group.py +0 -51
  379. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/srst.py +0 -86
  380. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/supervisory_disconnect.py +0 -69
  381. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_profile.py +0 -42
  382. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_rule.py +0 -31
  383. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/trunk_group.py +0 -26
  384. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_global.py +0 -57
  385. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_tenant.py +0 -40
  386. catalystwan/models/configuration/network_hierarchy/__init__.py +0 -24
  387. catalystwan/models/configuration/network_hierarchy/cflowd.py +0 -128
  388. catalystwan/models/configuration/network_hierarchy/node.py +0 -88
  389. catalystwan/models/configuration/network_hierarchy/security_logging.py +0 -91
  390. catalystwan/models/configuration/packages.py +0 -57
  391. catalystwan/models/configuration/policy_group.py +0 -74
  392. catalystwan/models/configuration/topology_group.py +0 -52
  393. catalystwan/models/policy/definition/aip.py +0 -60
  394. catalystwan/models/policy/definition/amp.py +0 -65
  395. catalystwan/models/policy/definition/app_route.py +0 -246
  396. catalystwan/models/policy/definition/cflowd.py +0 -95
  397. catalystwan/models/policy/definition/dial_peer.py +0 -60
  398. catalystwan/models/policy/definition/dns_security.py +0 -130
  399. catalystwan/models/policy/definition/fxo_port.py +0 -63
  400. catalystwan/models/policy/definition/fxs_did_port.py +0 -58
  401. catalystwan/models/policy/definition/fxs_port.py +0 -56
  402. catalystwan/models/policy/definition/intrusion_prevention.py +0 -55
  403. catalystwan/models/policy/definition/pri_isdn_port.py +0 -48
  404. catalystwan/models/policy/definition/route_policy.py +0 -187
  405. catalystwan/models/policy/definition/srst_phone_profile.py +0 -37
  406. catalystwan/models/policy/definition/ssl_decryption.py +0 -209
  407. catalystwan/models/policy/definition/ssl_decryption_utd_profile.py +0 -88
  408. catalystwan/models/policy/definition/url_filtering.py +0 -70
  409. catalystwan/models/policy/definition/vpn_qos_map.py +0 -46
  410. catalystwan/models/policy/list/app.py +0 -44
  411. catalystwan/models/policy/list/app_probe.py +0 -42
  412. catalystwan/models/policy/list/as_path.py +0 -30
  413. catalystwan/models/policy/list/class_map.py +0 -30
  414. catalystwan/models/policy/list/color.py +0 -28
  415. catalystwan/models/policy/list/communities.py +0 -83
  416. catalystwan/models/policy/list/data_ipv6_prefix.py +0 -30
  417. catalystwan/models/policy/list/data_prefix.py +0 -30
  418. catalystwan/models/policy/list/fax_protocol.py +0 -45
  419. catalystwan/models/policy/list/fqdn.py +0 -24
  420. catalystwan/models/policy/list/geo_location.py +0 -33
  421. catalystwan/models/policy/list/identity.py +0 -29
  422. catalystwan/models/policy/list/ips_signature.py +0 -27
  423. catalystwan/models/policy/list/ipv6_prefix.py +0 -33
  424. catalystwan/models/policy/list/local_app.py +0 -45
  425. catalystwan/models/policy/list/local_domain.py +0 -36
  426. catalystwan/models/policy/list/media_profile.py +0 -44
  427. catalystwan/models/policy/list/mirror.py +0 -27
  428. catalystwan/models/policy/list/modem_pass_through.py +0 -27
  429. catalystwan/models/policy/list/policer.py +0 -39
  430. catalystwan/models/policy/list/port.py +0 -33
  431. catalystwan/models/policy/list/preferred_color_group.py +0 -82
  432. catalystwan/models/policy/list/prefix.py +0 -33
  433. catalystwan/models/policy/list/protocol_name.py +0 -26
  434. catalystwan/models/policy/list/region.py +0 -45
  435. catalystwan/models/policy/list/scalable_group_tag.py +0 -30
  436. catalystwan/models/policy/list/site.py +0 -34
  437. catalystwan/models/policy/list/sla.py +0 -77
  438. catalystwan/models/policy/list/supervisory_disconnect.py +0 -62
  439. catalystwan/models/policy/list/threat_grid_api_key.py +0 -32
  440. catalystwan/models/policy/list/tloc.py +0 -32
  441. catalystwan/models/policy/list/translation_profile.py +0 -32
  442. catalystwan/models/policy/list/translation_rules.py +0 -29
  443. catalystwan/models/policy/list/trunkgroup.py +0 -56
  444. catalystwan/models/policy/list/umbrella_data.py +0 -30
  445. catalystwan/models/policy/list/url.py +0 -39
  446. catalystwan/models/policy/list/vpn.py +0 -40
  447. catalystwan/models/policy/list/zone.py +0 -46
  448. catalystwan/models/policy/voice.py +0 -77
  449. catalystwan/models/settings.py +0 -41
  450. catalystwan/models/templates.py +0 -79
  451. catalystwan/tests/builders/test_report.py +0 -60
  452. catalystwan/tests/builders/uc_voice.py +0 -85
  453. catalystwan/tests/models/__init__.py +0 -0
  454. catalystwan/tests/models/configuration/feature_profile/sdwan/policy_object/security/test_url.py +0 -73
  455. catalystwan/tests/models/test_digital_interface.py +0 -56
  456. catalystwan/tests/templates/definitions/aaa_basic.json +0 -96
  457. catalystwan/tests/templates/definitions/aaa_complex.json +0 -464
  458. catalystwan/tests/templates/definitions/cisco_aaa_complex.json +0 -361
  459. catalystwan/tests/templates/definitions/cisco_logging_complex.json +0 -268
  460. catalystwan/tests/templates/definitions/cisco_ntp_complex.json +0 -143
  461. catalystwan/tests/templates/definitions/cisco_omp_complex.json +0 -175
  462. catalystwan/tests/templates/definitions/cisco_ospf_complex.json +0 -302
  463. catalystwan/tests/templates/definitions/cisco_sig.json +0 -405
  464. catalystwan/tests/templates/definitions/cisco_snmp_complex.json +0 -258
  465. catalystwan/tests/templates/definitions/cisco_system_complex.json +0 -502
  466. catalystwan/tests/templates/definitions/cisco_vpn_interface_complex.json +0 -821
  467. catalystwan/tests/templates/definitions/omp_vsmart_1.json +0 -26
  468. catalystwan/tests/templates/definitions/omp_vsmart_complex.json +0 -73
  469. catalystwan/tests/templates/definitions/security_vsmart_complex.json +0 -24
  470. catalystwan/tests/templates/definitions/system_vsmart_complex.json +0 -193
  471. catalystwan/tests/templates/definitions/vpn_vsmart_basic.json +0 -17
  472. catalystwan/tests/templates/definitions/vpn_vsmart_complex.json +0 -179
  473. catalystwan/tests/templates/definitions/vpn_vsmart_interface_basic.json +0 -42
  474. catalystwan/tests/templates/definitions/vpn_vsmart_interface_complex.json +0 -208
  475. catalystwan/tests/templates/models/aaa.py +0 -106
  476. catalystwan/tests/templates/models/cisco_logging.py +0 -65
  477. catalystwan/tests/templates/models/cisco_ntp.py +0 -17
  478. catalystwan/tests/templates/models/cisco_omp.py +0 -37
  479. catalystwan/tests/templates/models/cisco_ospf.py +0 -60
  480. catalystwan/tests/templates/models/cisco_secure_internet_gateway.py +0 -95
  481. catalystwan/tests/templates/models/cisco_snmp.py +0 -40
  482. catalystwan/tests/templates/models/cisco_vpn_interface.py +0 -200
  483. catalystwan/tests/templates/models/security_vsmart.py +0 -11
  484. catalystwan/tests/templates/models/system_vsmart.py +0 -37
  485. catalystwan/tests/templates/models/vpn_vsmart.py +0 -32
  486. catalystwan/tests/templates/models/vpn_vsmart_interface.py +0 -54
  487. catalystwan/tests/templates/schemas/aaa.json +0 -1096
  488. catalystwan/tests/templates/schemas/cisco_logging.json +0 -577
  489. catalystwan/tests/templates/schemas/cisco_ntp.json +0 -265
  490. catalystwan/tests/templates/schemas/cisco_omp.json +0 -479
  491. catalystwan/tests/templates/schemas/cisco_ospf.json +0 -908
  492. catalystwan/tests/templates/schemas/cisco_secure_internet_gateway.json +0 -1520
  493. catalystwan/tests/templates/schemas/cisco_snmp.json +0 -561
  494. catalystwan/tests/templates/schemas/cisco_vpn_interface.json +0 -3348
  495. catalystwan/tests/templates/schemas/security-vsmart.json +0 -58
  496. catalystwan/tests/templates/schemas/system-vsmart.json +0 -2585
  497. catalystwan/tests/templates/schemas/vpn-vsmart-interface.json +0 -859
  498. catalystwan/tests/templates/schemas/vpn-vsmart.json +0 -445
  499. catalystwan/tests/templates/test_find_template_values_2.py +0 -193
  500. catalystwan/tests/test_feature_profile_api.py +0 -282
  501. catalystwan/tests/test_models_common.py +0 -53
  502. catalystwan/utils/model.py +0 -48
  503. catalystwan/utils/persona.py +0 -5
  504. catalystwan/utils/type_check.py +0 -22
  505. catalystwan/workflows/backup_restore_device_templates.py +0 -467
  506. catalystwan-0.41.2.dev9.dist-info/RECORD +0 -641
  507. /catalystwan/tests/templates/definitions/{cisco_banner.json → banner_1.json} +0 -0
  508. {catalystwan-0.41.2.dev9.dist-info → catalystwan-0.41.3.dist-info}/LICENSE +0 -0
  509. {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, Literal, Optional
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
- MetricType = Literal["type1", "type2"]
13
- Protocol = Literal["bgp", "connected", "eigrp", "isis", "lisp", "nat-route", "omp", "static"]
14
- AdType = Literal["on-startup"]
15
- Translate = Literal["always"]
16
- Network = Literal["broadcast", "point-to-point", "non-broadcast", "point-to-multipoint"]
17
- Type = Literal["md5", "sha1"]
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 = Field(description="The routing protocol for redistribution")
22
- route_policy: Optional[str] = Field(
23
- default=None,
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
- json_schema_extra={"vmanage_key": "ad-type"}, description="Advertisement type for the router LSA"
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 = Field(description="The name of the interface")
43
- hello_interval: Optional[int] = Field(
44
- default=10,
45
- json_schema_extra={"vmanage_key": "hello-interval"},
46
- description="The interval between HELLO packets in seconds",
47
- )
48
- dead_interval: Optional[int] = Field(
49
- default=40,
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 = Field(..., description="The IPv4 interface address and subnet")
83
- cost: Optional[int] = Field(default=None, description="The cost metric for the address range")
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"}, description="The area number for OSPF configuration")
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
- normal: Optional[BoolStr] = Field(description="Whether the area is a normal OSPF area")
110
- interface: Optional[List[Interface]] = Field(
111
- default=None, description="List of OSPF interface configurations for the area"
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 = Field(description="The IPv6 routing protocol for redistribution")
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 = Field(description="The name of the IPv6 interface")
129
- hello_interval: Optional[int] = Field(
130
- default=10,
131
- json_schema_extra={"vmanage_key": "hello-interval"},
132
- description="The interval between HELLO packets in seconds for IPv6",
133
- )
134
- dead_interval: Optional[int] = Field(
135
- default=40,
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 = Field(..., description="The IPv6 interface address and subnet")
168
- cost: Optional[int] = Field(default=None, description="The cost metric for the IPv6 address range")
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
- normal: Optional[BoolStr] = Field(description="Whether the IPv6 area is a normal OSPFv3 area")
197
- interface: Optional[List[InterfaceV6]] = Field(
198
- default=None, description="List of OSPFv3 interface configurations for the IPv6 area"
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
- description="Administrative distance for OSPFv3 inter-area routes in IPv4",
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"