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,387 +0,0 @@
1
- # Copyright 2023 Cisco Systems, Inc. and its affiliates
2
-
3
- from pathlib import Path
4
- from typing import ClassVar, List, Literal, Optional
5
-
6
- from pydantic import ConfigDict, Field, field_validator
7
-
8
- from catalystwan.api.templates.bool_str import BoolStr
9
- from catalystwan.api.templates.feature_template import FeatureTemplate, FeatureTemplateValidator
10
-
11
- Privilage = Literal["1", "15"]
12
- AuthenticationOrder = Literal["local", "radius", "tacacs"]
13
- TacacsAuthType = Literal["pap", "ascii"]
14
- TaskPermission = Literal["read", "write"]
15
- DefaultAction = Literal["accept", "deny"]
16
- TaskMode = Literal["system", "interface", "policy", "routing", "security"]
17
-
18
-
19
- class Command(FeatureTemplateValidator):
20
- model_config = ConfigDict(populate_by_name=True, coerce_numbers_to_str=True)
21
-
22
- command: str = Field(description="Define command", json_schema_extra={"vmanage_key": "command"})
23
-
24
-
25
- class Task(FeatureTemplateValidator):
26
- model_config = ConfigDict(populate_by_name=True, coerce_numbers_to_str=True)
27
-
28
- name: str = Field(description="The name of the user", json_schema_extra={"vmanage_key": "name"})
29
- config_default_action: DefaultAction = Field(
30
- json_schema_extra={
31
- "vmanage_key": "default-action",
32
- "data_path": ["config"],
33
- },
34
- description="Define config default action",
35
- )
36
- oper_exec_default_action: DefaultAction = Field(
37
- json_schema_extra={
38
- "vmanage_key": "default-action",
39
- "data_path": ["oper-exec"],
40
- },
41
- description="Define oper-exec default action",
42
- )
43
- oper_exec_accept_action: Optional[List[Command]] = Field(
44
- default=None,
45
- json_schema_extra={
46
- "vmanage_key": "accept",
47
- "data_path": ["oper-exec"],
48
- },
49
- description="List of oper-exec commands to allow",
50
- )
51
- oper_exec_deny_action: Optional[List[Command]] = Field(
52
- default=None,
53
- json_schema_extra={
54
- "vmanage_key": "deny",
55
- "data_path": ["oper-exec"],
56
- },
57
- description="List of oper-exec commands to deny",
58
- )
59
- config_accept_action: Optional[List[Command]] = Field(
60
- default=None,
61
- json_schema_extra={
62
- "vmanage_key": "accept",
63
- "data_path": ["config"],
64
- },
65
- description="List of config commands to allow",
66
- )
67
- config_deny_action: Optional[List[Command]] = Field(
68
- default=None,
69
- json_schema_extra={
70
- "vmanage_key": "deny",
71
- "data_path": ["config"],
72
- },
73
- description="List of config commands to deny",
74
- )
75
-
76
- password: Optional[str] = Field(default=None, description="The password for the user")
77
- secret: Optional[str] = Field(default=None, description="The secret for the user")
78
- privilege: Optional[Privilage] = Field(default="15", description="The privilege level for the user")
79
-
80
-
81
- class PubkeyChain(FeatureTemplateValidator):
82
- model_config = ConfigDict(populate_by_name=True, coerce_numbers_to_str=True)
83
-
84
- usertag: str = Field(
85
- description="User Tag",
86
- json_schema_extra={"vmanage_key": "usertag"},
87
- )
88
- key_string: str = Field(
89
- description="Set the RSA key string",
90
- json_schema_extra={"vmanage_key": "key-string"},
91
- )
92
- key_type: Optional[str] = Field(
93
- default="ssh-rsa",
94
- description="Only RSA is supported",
95
- json_schema_extra={"vmanage_key": "key-type"},
96
- )
97
-
98
-
99
- class User(FeatureTemplateValidator):
100
- model_config = ConfigDict(populate_by_name=True, coerce_numbers_to_str=True)
101
-
102
- name: str = Field(description="The name of the user")
103
- password: Optional[str] = Field(default=None, description="The password for the user")
104
- secret: Optional[str] = Field(default=None, description="The secret for the user")
105
- description: Optional[str] = Field(default=None, description="Add a description of the user")
106
- group: Optional[List[str]] = Field(default=None, description="Configure the groups that the user is part of")
107
- pubkey_chain: Optional[List[PubkeyChain]] = Field(
108
- default=None,
109
- description="List of public keys for the user",
110
- json_schema_extra={"vmanage_key": "pubkey-chain"},
111
- )
112
-
113
-
114
- class RadiusServer(FeatureTemplateValidator):
115
- model_config = ConfigDict(populate_by_name=True, coerce_numbers_to_str=True)
116
-
117
- address: str = Field(description="The IP address or hostname of the RADIUS server")
118
- auth_port: Optional[int] = Field(
119
- default=1812,
120
- json_schema_extra={"vmanage_key": "auth-port"},
121
- description="The authentication port for the RADIUS server",
122
- )
123
- tag: Optional[str] = Field(
124
- default=None,
125
- json_schema_extra={"vmanage_key": "tag"},
126
- description="Reference tag/name for the server",
127
- )
128
- acct_port: Optional[int] = Field(
129
- default=1813,
130
- json_schema_extra={"vmanage_key": "acct-port"},
131
- description="The accounting port for the RADIUS server",
132
- )
133
- vpn: Optional[str] = Field(
134
- default="0",
135
- json_schema_extra={"vmanage_key": "vpn"},
136
- description="Set VPN in which RADIUS server is located",
137
- )
138
- source_interface: Optional[str] = Field(
139
- default=None,
140
- json_schema_extra={"vmanage_key": "source-interface"},
141
- description="Set interface to use to reach RADIUS server",
142
- )
143
- key: Optional[str] = Field(default=None, description="Set the password to access the RADIUS server")
144
- secret_key: Optional[str] = Field(
145
- default=None,
146
- json_schema_extra={"vmanage_key": "secret-key"},
147
- description="Set the AES encrypted key to access the RADIUS server",
148
- )
149
- priority: int = Field(default=0, description="RADIUS server priority <0..7>")
150
-
151
-
152
- class TacacsServer(FeatureTemplateValidator):
153
- model_config = ConfigDict(populate_by_name=True, coerce_numbers_to_str=True)
154
-
155
- address: str = Field(description="The IP address or hostname of the TACACS+ server")
156
- auth_port: Optional[int] = Field(
157
- default=49,
158
- json_schema_extra={"vmanage_key": "auth-port"},
159
- description="The authentication port for the TACACS+ server",
160
- )
161
- vpn: Optional[str] = Field(
162
- default="0",
163
- json_schema_extra={"vmanage_key": "vpn"},
164
- description="Set VPN in which TACACS+ server is located",
165
- )
166
- source_interface: Optional[str] = Field(
167
- default=None,
168
- json_schema_extra={"vmanage_key": "source-interface"},
169
- description="Set interface to use to reach TACACS+ server",
170
- )
171
- key: Optional[str] = Field(default=None, description="Set the password to access the TACACS+ server")
172
- secret_key: Optional[str] = Field(
173
- default=None,
174
- json_schema_extra={"vmanage_key": "secret-key"},
175
- description="Set the AES encrypted key to access the TACACS+ server",
176
- )
177
- priority: int = Field(default=0, description="TACACS+ server priority <0..7>")
178
-
179
-
180
- class TaskPermissions(FeatureTemplateValidator):
181
- model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
182
-
183
- mode: TaskMode = Field(
184
- json_schema_extra={"vmanage_key": "mode"},
185
- description="Select the task to set privileges for",
186
- )
187
- permission: List[TaskPermission] = Field(
188
- default=["read"], # type: ignore
189
- json_schema_extra={
190
- "vmanage_key": "permission",
191
- },
192
- description="Set read or write permission for the task",
193
- )
194
-
195
- @field_validator("permission")
196
- def convert_permission_field(cls, val: List[TaskPermission]) -> List:
197
- permission_list = []
198
- for value in val:
199
- permission_list.append({"vipType": "constant", "vipValue": f"{value}", "vipObjectType": "object"})
200
- return permission_list
201
-
202
-
203
- class UserGroup(FeatureTemplateValidator):
204
- model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
205
-
206
- name: str = Field(
207
- json_schema_extra={"vmanage_key": "name"},
208
- description="Set name of user group",
209
- )
210
- task: Optional[List[TaskPermissions]] = Field(
211
- default=None,
212
- json_schema_extra={"vmanage_key": "task", "priority_order": ["mode", "permission"]},
213
- description="Set the user group's tasks and task privileges. Skipping tasks sets all as read and write",
214
- )
215
-
216
-
217
- class AAAModel(FeatureTemplate):
218
- model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
219
- _docs_description: str = "AAA Feature Template configuration"
220
-
221
- auth_order: Optional[List[AuthenticationOrder]] = Field(
222
- validate_default=True,
223
- default=["local", "radius", "tacacs"], # type: ignore
224
- json_schema_extra={"vmanage_key": "auth-order", "data_path": ["aaa"]},
225
- description="ServerGroups authentication order to user access",
226
- )
227
-
228
- @field_validator("auth_order")
229
- def convert_to_auth_order_field(cls, val: Optional[List[AuthenticationOrder]]) -> List:
230
- auth_order_list = []
231
- if val:
232
- for value in val:
233
- auth_order_list.append({"vipType": "constant", "vipValue": f"{value}", "vipObjectType": "object"})
234
- return auth_order_list
235
-
236
- auth_fallback: Optional[BoolStr] = Field(
237
- default=False,
238
- json_schema_extra={
239
- "data_path": ["aaa"],
240
- "vmanage_key": "auth-fallback",
241
- },
242
- description="Authenticate admin user as per auth-order",
243
- )
244
- admin_auth_order: Optional[BoolStr] = Field(
245
- default=False,
246
- json_schema_extra={
247
- "data_path": ["aaa"],
248
- "vmanage_key": "admin-auth-order",
249
- },
250
- description="Fall back if higher-priority authentication fails",
251
- )
252
- netconf_disable: Optional[BoolStr] = Field(
253
- default=False,
254
- json_schema_extra={
255
- "data_path": ["aaa", "logs"],
256
- "vmanage_key": "netconf-disable",
257
- },
258
- description="Disable Netconf logs",
259
- )
260
- audit_disable: Optional[BoolStr] = Field(
261
- default=False,
262
- json_schema_extra={
263
- "data_path": ["aaa", "logs"],
264
- "vmanage_key": "audit-disable",
265
- },
266
- description="Disable audit logs",
267
- )
268
- radius_server_list: Optional[List[str]] = Field(
269
- default=None,
270
- json_schema_extra={"vmanage_key": "radius-servers", "data_path": ["aaa"]},
271
- description="Designate radius servers for authentication and accounting",
272
- )
273
- task: Optional[List[Task]] = Field(
274
- default=None,
275
- frozen=True,
276
- json_schema_extra={
277
- "data_path": ["aaa"],
278
- "vmanage_key": "audit-disable",
279
- "priority_order": ["name"],
280
- },
281
- description="Set the user group's tasks and task privileges.",
282
- )
283
- accounting: Optional[BoolStr] = Field(
284
- default=False,
285
- json_schema_extra={
286
- "data_path": ["aaa"],
287
- "vmanage_key": "accounting",
288
- },
289
- description="Enable/disable user accounting",
290
- )
291
- usergroup: Optional[List[UserGroup]] = Field(
292
- default=None,
293
- json_schema_extra={
294
- "data_path": ["aaa"],
295
- "vmanage_key": "usergroup",
296
- "priority_order": ["name"],
297
- },
298
- description="Create groupings of users with the same authorization privileges. "
299
- "When used, overrides existing groups(netadmin, basic, operator)",
300
- )
301
- user: Optional[List[User]] = Field(
302
- default=None,
303
- json_schema_extra={
304
- "data_path": ["aaa"],
305
- "vmanage_key": "user",
306
- },
307
- description="List of local user configurations. When used, overrides existing users",
308
- )
309
- cisco_tac_ro_user: Optional[BoolStr] = Field(
310
- default=True,
311
- json_schema_extra={
312
- "data_path": ["aaa"],
313
- "vmanage_key": "ciscotacro-user",
314
- },
315
- description="Cisco Tac Enable Read only",
316
- )
317
- cisco_tac_rw_user: Optional[BoolStr] = Field(
318
- default=True,
319
- json_schema_extra={
320
- "data_path": ["aaa"],
321
- "vmanage_key": "ciscotacrw-user",
322
- },
323
- description="Cisco Tac Enable Read and Write",
324
- )
325
- tacacs_timeout: Optional[int] = Field(
326
- default=5,
327
- json_schema_extra={
328
- "data_path": ["tacacs"],
329
- "vmanage_key": "timeout",
330
- },
331
- description="The timeout period in seconds for the TACACS+ server",
332
- )
333
- tacacs_authentication: Optional[TacacsAuthType] = Field(
334
- default="pap",
335
- json_schema_extra={
336
- "data_path": ["tacacs"],
337
- "vmanage_key": "authentication",
338
- },
339
- description="TACACS authentication type",
340
- )
341
- tacacs_server: Optional[List[TacacsServer]] = Field(
342
- default=None,
343
- json_schema_extra={
344
- "data_path": ["tacacs"],
345
- "priority_order": ["address", "auth-port", "vpn", "source-interface", "secret-key", "priority"],
346
- "vmanage_key": "server",
347
- },
348
- description="The list of TACACS+ servers",
349
- )
350
- radius_timeout: Optional[int] = Field(
351
- default=5,
352
- json_schema_extra={
353
- "data_path": ["radius"],
354
- "vmanage_key": "timeout",
355
- },
356
- description="The timeout period in seconds for the RADIUS server",
357
- )
358
- radius_retransmit: Optional[int] = Field(
359
- default=3,
360
- json_schema_extra={
361
- "data_path": ["radius"],
362
- "vmanage_key": "retransmit",
363
- },
364
- description="The number of retransmit attempts for the RADIUS server",
365
- )
366
- radius_server: Optional[List[RadiusServer]] = Field(
367
- default=None,
368
- json_schema_extra={
369
- "data_path": ["radius"],
370
- "priority_order": [
371
- "address",
372
- "auth-port",
373
- "vpn",
374
- "source-interface",
375
- "key",
376
- "secret-key",
377
- "priority",
378
- "tag",
379
- "acct-port",
380
- ],
381
- "vmanage_key": "server",
382
- },
383
- description="The list of RADIUS servers",
384
- )
385
-
386
- payload_path: ClassVar[Path] = Path(__file__).parent / "DEPRECATED"
387
- type: ClassVar[str] = "aaa"
@@ -1,198 +0,0 @@
1
- # Copyright 2023 Cisco Systems, Inc. and its affiliates
2
-
3
- import ipaddress
4
- from pathlib import Path
5
- from typing import ClassVar, List, Literal, Optional
6
-
7
- from pydantic import ConfigDict, Field
8
-
9
- from catalystwan.api.templates.bool_str import BoolStr
10
- from catalystwan.api.templates.feature_template import FeatureTemplate, FeatureTemplateValidator
11
- from catalystwan.models.common import TLOCColor
12
-
13
- VpnId = Literal["0", "512"]
14
- Role = Literal["primary", "secondary"]
15
-
16
- Speed = Literal["10", "100", "1000"]
17
- Duplex = Literal["full", "half"]
18
- Carrier = Literal[
19
- "default", "carrier1", "carrier2", "carrier3", "carrier4", "carrier5", "carrier6", "carrier7", "carrier8"
20
- ]
21
- FlowControl = Literal["ingress", "egress", "autoneg", "both", "none"]
22
-
23
-
24
- class Ip(FeatureTemplateValidator):
25
- addr: ipaddress.IPv4Address = Field(..., description="IPv4 address for the interface.")
26
- mac: str = Field(..., description="MAC address associated with the IPv4 address.")
27
-
28
-
29
- class VpnVsmartInterfaceModel(FeatureTemplate):
30
- model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
31
- _docs_description: str = "vSmart VPN Interface Feature Template configuration"
32
-
33
- if_name: Optional[str] = Field(
34
- default=None, description="The name of the interface.", json_schema_extra={"vmanage_key": "if-name"}
35
- )
36
- interface_description: Optional[str] = Field(
37
- default=None, description="A description for the interface.", json_schema_extra={"vmanage_key": "description"}
38
- )
39
- ipv4_address: Optional[str] = Field(
40
- default=None,
41
- description="The primary IPv4 address assigned to the interface.",
42
- json_schema_extra={"data_path": ["ip"], "vmanage_key": "address"},
43
- )
44
- dhcp_ipv4_client: Optional[BoolStr] = Field(
45
- default=None,
46
- description=(
47
- "Whether DHCP client is enabled on the interface for IPv4 addressing. True if enabled, False otherwise."
48
- ),
49
- json_schema_extra={"data_path": ["ip"], "vmanage_key": "dhcp-client"},
50
- )
51
- dhcp_distance: Optional[int] = Field(
52
- default=None,
53
- description="Administrative distance for DHCP routes on the interface.",
54
- json_schema_extra={"data_path": ["ip"], "vmanage_key": "dhcp-distance"},
55
- )
56
- ipv6_address: Optional[ipaddress.IPv6Interface] = Field(
57
- default=None,
58
- description="The primary IPv6 address assigned to the interface.",
59
- json_schema_extra={"data_path": ["ipv6"], "vmanage_key": "address"},
60
- )
61
- dhcp_ipv6_client: Optional[BoolStr] = Field(
62
- default=None,
63
- description=(
64
- "Whether DHCP client is enabled on the interface for IPv6 addressing. True if enabled, False otherwise."
65
- ),
66
- json_schema_extra={"data_path": ["ipv6"], "vmanage_key": "dhcp-client"},
67
- )
68
- dhcp_ipv6_distance: Optional[int] = Field(
69
- default=None,
70
- description="Administrative distance for DHCP routes on the interface.",
71
- json_schema_extra={"data_path": ["ipv6"], "vmanage_key": "dhcp-distance"},
72
- )
73
- dhcp_rapid_commit: Optional[BoolStr] = Field(
74
- default=None,
75
- description=("Enable DHCPv6 rapid commit"),
76
- json_schema_extra={"data_path": ["ipv6"], "vmanage_key": "dhcp-rapid-commit"},
77
- )
78
- group: Optional[List[int]] = Field(
79
- default=None,
80
- json_schema_extra={"data_path": ["tunnel-interface"]},
81
- description="Identifies the group or groups the interface belongs to.",
82
- )
83
- value: Optional[TLOCColor] = Field(
84
- default=None,
85
- json_schema_extra={"data_path": ["tunnel-interface", "color"]},
86
- description=(
87
- "The value field often corresponds to a specific attribute or setting, such as color in this context."
88
- ),
89
- )
90
- carrier: Optional[Carrier] = Field(
91
- default=None,
92
- json_schema_extra={"data_path": ["tunnel-interface"]},
93
- description="Specifies the carrier information for the tunnel interface.",
94
- )
95
- nat_refresh_interval: Optional[int] = Field(
96
- default=None,
97
- json_schema_extra={"vmanage_key": "nat-refresh-interval", "data_path": ["tunnel-interface"]},
98
- description="Interval in seconds to refresh NAT (Network Address Translation) mappings.",
99
- )
100
- hello_interval: Optional[int] = Field(
101
- default=None,
102
- json_schema_extra={"vmanage_key": "hello-interval", "data_path": ["tunnel-interface"]},
103
- description="Time interval in seconds between successive hello packets sent over the tunnel interface.",
104
- )
105
- hello_tolerance: Optional[int] = Field(
106
- default=None,
107
- json_schema_extra={"vmanage_key": "hello-tolerance", "data_path": ["tunnel-interface"]},
108
- description="Time in seconds to wait before declaring a neighbor down due to missing hello packets.",
109
- )
110
- all: Optional[BoolStr] = Field(
111
- default=None,
112
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
113
- description="Permits or denies all services through the tunnel interface.",
114
- )
115
- dhcp: Optional[BoolStr] = Field(
116
- default=None,
117
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
118
- description="Enables or disables Dynamic Host Configuration Protocol (DHCP) on the tunnel interface.",
119
- )
120
- dns: Optional[BoolStr] = Field(
121
- default=None,
122
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
123
- description="Allows or disallows Domain Name System (DNS) queries through the tunnel interface.",
124
- )
125
- icmp: Optional[BoolStr] = Field(
126
- default=None,
127
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
128
- description=(
129
- "Enables or disables Internet Control Message Protocol (ICMP) "
130
- "for ping and traceroute through the tunnel interface."
131
- ),
132
- )
133
- sshd: Optional[BoolStr] = Field(
134
- default=None,
135
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
136
- description="Allows or disallows Secure Shell (SSH) daemon access through the tunnel interface.",
137
- )
138
- netconf: Optional[BoolStr] = Field(
139
- default=None,
140
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
141
- description="Enables or disables NETCONF protocol support on the tunnel interface.",
142
- )
143
- ntp: Optional[BoolStr] = Field(
144
- default=None,
145
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
146
- description="Allows or disallows Network Time Protocol (NTP) synchronization through the tunnel interface.",
147
- )
148
- stun: Optional[BoolStr] = Field(
149
- default=None,
150
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
151
- description="Enables or disables Session Traversal Utilities for NAT (STUN) on the tunnel interface.",
152
- )
153
- flow_control: Optional[FlowControl] = Field(default=None, description="Enable flow control.")
154
- clear_dont_fragment: Optional[BoolStr] = Field(
155
- default=False,
156
- json_schema_extra={"vmanage_key": "clear-dont-fragment"},
157
- description="Enables Clear don't fragment bit",
158
- )
159
- autonegotiate: Optional[BoolStr] = Field(
160
- default=True,
161
- json_schema_extra={"vmanage_key": "autonegotiate"},
162
- description="Link autonegotiation",
163
- )
164
- pmtu: Optional[BoolStr] = Field(
165
- default=False,
166
- json_schema_extra={"vmanage_key": "pmtu"},
167
- description="Enables Path MTU Discovery",
168
- )
169
- mtu: Optional[int] = Field(
170
- default=1500,
171
- json_schema_extra={"vmanage_key": "mtu"},
172
- description="Interface MTU <576..2000>",
173
- )
174
- tcp_mss_adjust: Optional[int] = Field(
175
- default=None,
176
- json_schema_extra={"vmanage_key": "tcp-mss-adjust"},
177
- description="TCP MSS on SYN packets, in bytes",
178
- )
179
- mac_address: Optional[str] = Field(
180
- default=None,
181
- json_schema_extra={"vmanage_key": "mac-address"},
182
- description="Specifies the MAC address for the interface.",
183
- )
184
- speed: Optional[Speed] = Field(
185
- default=None, description="Defines the speed of the interface, such as 10Mbps, 100Mbps, or 1Gbps."
186
- )
187
- duplex: Optional[Duplex] = Field(
188
- default=None, description="Sets the duplex mode for the interface, such as full or half duplex."
189
- )
190
- shutdown: Optional[BoolStr] = Field(default=False, description="Enables or disables (shuts down) the interface.")
191
- ip: Optional[List[Ip]] = Field(
192
- default=None,
193
- json_schema_extra={"data_path": ["arp"]},
194
- description="A list of IP configurations for Address Resolution Protocol (ARP) settings.",
195
- )
196
-
197
- payload_path: ClassVar[Path] = Path(__file__).parent / "DEPRECATED"
198
- type: ClassVar[str] = "vpn-vsmart-interface"