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,24 +1,17 @@
1
1
  # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
2
 
3
- from ipaddress import IPv4Address, IPv6Address, IPv6Interface
4
3
  from typing import List, Literal, Optional, Union
5
4
  from uuid import UUID
6
5
 
7
- from pydantic import AliasPath, BaseModel, ConfigDict, Field, field_validator
6
+ from pydantic import BaseModel, ConfigDict, Field
8
7
 
9
- from catalystwan.api.configuration_groups.parcel import Default, Global, Variable, _ParcelBase, as_default
10
- from catalystwan.models.configuration.feature_profile.common import (
11
- AddressWithMask,
12
- DNSIPv4,
13
- DNSIPv6,
14
- HostMapping,
15
- RefIdItem,
16
- )
8
+ from catalystwan.api.configuration_groups.parcel import Default, Global, Variable
9
+ from catalystwan.models.configuration.feature_profile.common import Prefix
17
10
 
18
11
  ProtocolIPv4 = Literal[
19
12
  "bgp",
20
13
  "ospf",
21
- "ospfv3",
14
+ "opsfv3",
22
15
  "connected",
23
16
  "static",
24
17
  "network",
@@ -100,33 +93,58 @@ RedistributeToGlobalProtocol = Literal[
100
93
  ]
101
94
 
102
95
 
103
- class RoutePrefix(BaseModel):
96
+ class DnsIPv4(BaseModel):
97
+ model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
98
+
99
+ primary_dns_address_ipv4: Union[Variable, Global[str], Default[None]] = Field(
100
+ serialization_alias="primaryDnsAddressIpv4", validation_alias="primaryDnsAddressIpv4"
101
+ )
102
+ secondary_dns_address_ipv4: Union[Variable, Global[str], Default[None]] = Field(
103
+ serialization_alias="secondaryDnsAddressIpv4", validation_alias="secondaryDnsAddressIpv4"
104
+ )
105
+
106
+
107
+ class DnsIPv6(BaseModel):
104
108
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
105
109
 
106
- ip_address: Union[Variable, Global[str], Global[IPv4Address], Global[IPv6Address]] = Field(
107
- serialization_alias="ipAddress", validation_alias="ipAddress"
110
+ primary_dns_address_ipv6: Union[Variable, Global[str], Default[None]] = Field(
111
+ serialization_alias="primaryDnsAddressIpv6", validation_alias="primaryDnsAddressIpv6"
112
+ )
113
+ secondary_dns_address_ipv6: Union[Variable, Global[str], Default[None]] = Field(
114
+ serialization_alias="secondaryDnsAddressIpv6", validation_alias="secondaryDnsAddressIpv6"
108
115
  )
116
+
117
+
118
+ class HostMapping(BaseModel):
119
+ model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
120
+
121
+ host_name: Union[Variable, Global[str]] = Field(serialization_alias="hostName", validation_alias="hostName")
122
+ list_of_ip: Union[Variable, Global[str]] = Field(serialization_alias="listOfIp", validation_alias="listOfIp")
123
+
124
+
125
+ class RoutePrefix(BaseModel):
126
+ ip_address: Union[Variable, Global[str]] = Field(serialization_alias="ipAddress", validation_alias="ipAddress")
109
127
  subnet_mask: Union[Variable, Global[str]] = Field(serialization_alias="subnetMask", validation_alias="subnetMask")
110
128
 
111
129
 
112
130
  class IPv4Prefix(BaseModel):
113
131
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
114
132
 
115
- prefix: AddressWithMask
133
+ prefix: Prefix
116
134
  aggregate_only: Optional[Union[Global[bool], Default[bool]]] = Field(
117
135
  serialization_alias="aggregateOnly", validation_alias="aggregateOnly", default=None
118
136
  )
119
- region: Optional[Union[Variable, Global[Region], Default[Region]]] = None
137
+ region: Optional[Union[Variable, Global[Region], Default[str]]] = None
120
138
 
121
139
 
122
140
  class IPv6Prefix(BaseModel):
123
141
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
124
142
 
125
- prefix: Union[Global[str], Global[IPv6Interface], Variable]
143
+ prefix: Union[Global[str], Variable]
126
144
  aggregate_only: Optional[Union[Global[bool], Default[bool]]] = Field(
127
145
  serialization_alias="aggregateOnly", validation_alias="aggregateOnly", default=None
128
146
  )
129
- region: Optional[Union[Variable, Global[Region], Default[Region]]] = None
147
+ region: Optional[Union[Variable, Global[Region], Default[str]]] = None
130
148
 
131
149
 
132
150
  class OmpAdvertiseIPv4(BaseModel):
@@ -135,12 +153,10 @@ class OmpAdvertiseIPv4(BaseModel):
135
153
  omp_protocol: Union[Variable, Global[ProtocolIPv4]] = Field(
136
154
  serialization_alias="ompProtocol", validation_alias="ompProtocol"
137
155
  )
138
- route_policy: Optional[Union[Default[None], RefIdItem]] = Field(
156
+ route_policy: Optional[Union[Default[None], Global[UUID]]] = Field(
139
157
  serialization_alias="routePolicy", validation_alias="routePolicy", default=None
140
158
  )
141
- prefix_list: Optional[List[IPv4Prefix]] = Field(
142
- default=None, serialization_alias="prefixList", validation_alias="prefixList"
143
- )
159
+ prefix_list: Optional[List[IPv4Prefix]] = None
144
160
 
145
161
 
146
162
  class OmpAdvertiseIPv6(BaseModel):
@@ -149,28 +165,25 @@ class OmpAdvertiseIPv6(BaseModel):
149
165
  omp_protocol: Union[Variable, Global[ProtocolIPv6]] = Field(
150
166
  serialization_alias="ompProtocol", validation_alias="ompProtocol"
151
167
  )
152
- route_policy: Optional[Union[Default[None], RefIdItem]] = Field(
168
+ route_policy: Optional[Union[Default[None], Global[UUID]]] = Field(
153
169
  serialization_alias="routePolicy", validation_alias="routePolicy", default=None
154
170
  )
155
- protocol_sub_type: Optional[Union[Variable, Default[None], Global[Literal["External"]]]] = Field(
156
- default=None, validation_alias="protocolSubType", serialization_alias="protocolSubType"
157
- )
158
171
  prefix_list: Optional[List[IPv6Prefix]] = None
159
172
 
160
173
 
161
174
  class IPv4RouteGatewayNextHop(BaseModel):
162
175
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
163
176
 
164
- address: Union[Variable, Global[str], Global[IPv4Address]]
177
+ address: Union[Variable, Global[str]]
165
178
  distance: Union[Variable, Global[int], Default[int]] = Default[int](value=1)
166
179
 
167
180
 
168
181
  class IPv4RouteGatewayNextHopWithTracker(BaseModel):
169
182
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
170
183
 
171
- address: Union[Variable, Global[str], Global[IPv4Address]]
184
+ address: Union[Variable, Global[str]]
172
185
  distance: Union[Variable, Global[int], Default[int]] = Default[int](value=1)
173
- tracker: Union[Global[UUID], Default[None]] = as_default(None)
186
+ tracker: Union[Global[UUID], Default[None]]
174
187
 
175
188
 
176
189
  class NextHopContainer(BaseModel):
@@ -216,6 +229,8 @@ class NextHopRouteIPv6Container(BaseModel):
216
229
 
217
230
 
218
231
  class Null0(BaseModel):
232
+ model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
233
+
219
234
  null0: Union[Global[bool], Default[bool]] = Default[bool](value=True)
220
235
  distance: Union[Variable, Global[int], Default[int]] = Default[int](value=1)
221
236
 
@@ -233,11 +248,15 @@ class NAT(BaseModel):
233
248
 
234
249
 
235
250
  class DHCP(BaseModel):
251
+ model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
252
+
236
253
  dhcp: Union[Global[bool], Default[bool]] = Default[bool](value=True)
237
254
 
238
255
 
239
256
  class StaticRouteVPN(BaseModel):
240
- vpn: Union[Global[bool], Default[bool]] = Field(default=Default[bool](value=True))
257
+ model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
258
+
259
+ vpn: Union[Global[bool], Default[bool]] = Default[bool](value=True)
241
260
 
242
261
 
243
262
  class NextHopInterfaceRoute(BaseModel):
@@ -250,7 +269,7 @@ class NextHopInterfaceRoute(BaseModel):
250
269
  class NextHopInterfaceRouteIPv6(BaseModel):
251
270
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
252
271
 
253
- address: Union[Variable, Global[str], Global[IPv6Address], Default[None]] = Default[None](value=None)
272
+ address: Union[Variable, Global[str], Default[None]] = Default[None](value=None)
254
273
  distance: Union[Variable, Global[int], Default[int]] = Default[int](value=1)
255
274
 
256
275
 
@@ -269,9 +288,7 @@ class IPv6StaticRouteInterface(BaseModel):
269
288
  interface_name: Union[Variable, Global[str]] = Field(
270
289
  serialization_alias="interfaceName", validation_alias="interfaceName"
271
290
  )
272
- interface_next_hop: List[NextHopInterfaceRouteIPv6] = Field(
273
- serialization_alias="nextHop", validation_alias="nextHop"
274
- )
291
+ next_hop: List[NextHopInterfaceRouteIPv6] = Field(serialization_alias="nextHop", validation_alias="nextHop")
275
292
 
276
293
 
277
294
  class InterfaceContainer(BaseModel):
@@ -307,32 +324,18 @@ class InterfaceRouteIPv6Container(BaseModel):
307
324
 
308
325
 
309
326
  class StaticRouteIPv4(BaseModel):
310
- model_config = ConfigDict(populate_by_name=True)
327
+ model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
311
328
 
312
329
  prefix: RoutePrefix
313
330
  one_of_ip_route: Union[NextHopRouteContainer, Null0, DHCP, StaticRouteVPN, InterfaceRouteContainer] = Field(
314
331
  serialization_alias="oneOfIpRoute", validation_alias="oneOfIpRoute"
315
332
  )
316
333
 
317
- @field_validator("one_of_ip_route", mode="before")
318
- @classmethod
319
- def validate_one_of_ip_route(
320
- cls, value: Union[dict, NextHopRouteContainer, Null0, DHCP, StaticRouteVPN, InterfaceRouteContainer]
321
- ):
322
- # https://github.com/pydantic/pydantic/issues/6830
323
- # For some reason the Null0 is always created from dict
324
- if isinstance(value, dict):
325
- if value.get("vpn"):
326
- return StaticRouteVPN(**value)
327
- if value.get("nextHopContainer"):
328
- return NextHopRouteContainer(**value)
329
- return value
330
-
331
334
 
332
335
  class StaticRouteIPv6(BaseModel):
333
336
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
334
337
 
335
- prefix: Union[Global[IPv6Interface], Variable] = Field()
338
+ prefix: RoutePrefix
336
339
  one_of_ip_route: Union[NextHopRouteIPv6Container, Null0IPv6, NAT, InterfaceRouteIPv6Container] = Field(
337
340
  serialization_alias="oneOfIpRoute", validation_alias="oneOfIpRoute"
338
341
  )
@@ -353,8 +356,8 @@ class Service(BaseModel):
353
356
  class ServiceRoute(BaseModel):
354
357
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
355
358
 
356
- prefix: RoutePrefix
357
- service: Union[Default[ServiceRouteType], Variable, Global[ServiceRouteType]] = Default[ServiceRouteType](
359
+ prefix: Prefix
360
+ service: Union[Variable, Global[ServiceRouteType], Default[ServiceRouteType]] = Default[ServiceRouteType](
358
361
  value="SIG"
359
362
  )
360
363
  vpn: Global[int] = Global[int](value=0)
@@ -366,16 +369,16 @@ class ServiceRoute(BaseModel):
366
369
  class StaticGreRouteIPv4(BaseModel):
367
370
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
368
371
 
369
- prefix: RoutePrefix
370
- interface: Union[Variable, Global[List[str]], Default[None]] = Default[None](value=None)
372
+ prefix: Prefix
373
+ interface: Union[Variable, Global[List[str]], Default[None]]
371
374
  vpn: Global[int] = Global[int](value=0)
372
375
 
373
376
 
374
377
  class StaticIpsecRouteIPv4(BaseModel):
375
378
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
376
379
 
377
- prefix: RoutePrefix
378
- interface: Union[Variable, Global[List[str]], Default[None]] = Default[None](value=None)
380
+ prefix: Prefix
381
+ interface: Union[Variable, Global[List[str]], Default[None]]
379
382
 
380
383
 
381
384
  class NatPool(BaseModel):
@@ -387,12 +390,8 @@ class NatPool(BaseModel):
387
390
  prefix_length: Union[Variable, Global[int]] = Field(
388
391
  serialization_alias="prefixLength", validation_alias="prefixLength"
389
392
  )
390
- range_start: Union[Variable, Global[str], Global[IPv4Address]] = Field(
391
- serialization_alias="rangeStart", validation_alias="rangeStart"
392
- )
393
- range_end: Union[Variable, Global[str], Global[IPv4Address]] = Field(
394
- serialization_alias="rangeEnd", validation_alias="rangeEnd"
395
- )
393
+ range_start: Union[Variable, Global[str]] = Field(serialization_alias="rangeStart", validation_alias="rangeStart")
394
+ range_end: Union[Variable, Global[str]] = Field(serialization_alias="rangeEnd", validation_alias="rangeEnd")
396
395
  overload: Union[Variable, Global[bool], Default[bool]] = Default[bool](value=True)
397
396
  direction: Union[Variable, Global[Direction]]
398
397
  tracking_object: Optional[dict] = Field(
@@ -410,11 +409,9 @@ class NatPortForward(BaseModel):
410
409
  translate_port: Union[Variable, Global[int]] = Field(
411
410
  serialization_alias="translatePort", validation_alias="translatePort"
412
411
  )
413
- source_ip: Union[Variable, Global[str], Global[IPv4Address]] = Field(
414
- serialization_alias="sourceIp", validation_alias="sourceIp"
415
- )
416
- translated_source_ip: Union[Variable, Global[str], Global[IPv4Address]] = Field(
417
- serialization_alias="translatedSourceIp", validation_alias="translatedSourceIp"
412
+ source_ip: Union[Variable, Global[str]] = Field(serialization_alias="sourceIp", validation_alias="sourceIp")
413
+ translated_source_ip: Union[Variable, Global[str]] = Field(
414
+ serialization_alias="TranslatedSourceIp", validation_alias="TranslatedSourceIp"
418
415
  )
419
416
  protocol: Union[Variable, Global[NATPortForwardProtocol]]
420
417
 
@@ -425,11 +422,9 @@ class StaticNat(BaseModel):
425
422
  nat_pool_name: Union[Variable, Global[int], Default[None]] = Field(
426
423
  serialization_alias="natPoolName", validation_alias="natPoolName"
427
424
  )
428
- source_ip: Union[Variable, Global[str], Global[IPv4Address]] = Field(
429
- serialization_alias="sourceIp", validation_alias="sourceIp"
430
- )
431
- translated_source_ip: Union[Variable, Global[str], Global[IPv4Address]] = Field(
432
- serialization_alias="TranslatedSourceIp", validation_alias="TranslatedSourceIp"
425
+ source_ip: Union[Variable, Global[str]] = Field(serialization_alias="sourceIp", validation_alias="sourceIp")
426
+ translated_source_ip: Union[Variable, Global[str]] = Field(
427
+ serialization_alias="TranslatedSourceIP", validation_alias="TranslatedSourceIP"
433
428
  )
434
429
  static_nat_direction: Union[Variable, Global[Direction]] = Field(
435
430
  serialization_alias="staticNatDirection", validation_alias="staticNatDirection"
@@ -446,7 +441,7 @@ class StaticNatSubnet(BaseModel):
446
441
  serialization_alias="sourceIpSubnet", validation_alias="sourceIpSubnet"
447
442
  )
448
443
  translated_source_ip_subnet: Union[Variable, Global[str]] = Field(
449
- serialization_alias="translatedSourceIpSubnet", validation_alias="translatedSourceIpSubnet"
444
+ serialization_alias="TranslatedSourceIpSubnet", validation_alias="TranslatedSourceIpSubnet"
450
445
  )
451
446
  prefix_length: Union[Variable, Global[int]] = Field(
452
447
  serialization_alias="prefixLength", validation_alias="prefixLength"
@@ -465,10 +460,10 @@ class Nat64v4Pool(BaseModel):
465
460
  nat64_v4_pool_name: Union[Variable, Global[str]] = Field(
466
461
  serialization_alias="nat64V4PoolName", validation_alias="nat64V4PoolName"
467
462
  )
468
- nat64_v4_pool_range_start: Union[Variable, Global[str], Global[IPv4Address]] = Field(
463
+ nat64_v4_pool_range_start: Union[Variable, Global[str]] = Field(
469
464
  serialization_alias="nat64V4PoolRangeStart", validation_alias="nat64V4PoolRangeStart"
470
465
  )
471
- nat64_v4_pool_range_end: Union[Variable, Global[str], Global[IPv4Address]] = Field(
466
+ nat64_v4_pool_range_end: Union[Variable, Global[str]] = Field(
472
467
  serialization_alias="nat64V4PoolRangeEnd", validation_alias="nat64V4PoolRangeEnd"
473
468
  )
474
469
  nat64_v4_pool_overload: Union[Variable, Global[bool], Default[bool]] = Field(
@@ -482,14 +477,14 @@ class RedistributeToService(BaseModel):
482
477
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
483
478
 
484
479
  protocol: Union[Variable, Global[RedistributeToServiceProtocol]]
485
- policy: Union[Default[None], RefIdItem] = Default[None](value=None)
480
+ policy: Union[Default[None], Global[UUID]]
486
481
 
487
482
 
488
483
  class RedistributeToGlobal(BaseModel):
489
484
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
490
485
 
491
486
  protocol: Union[Variable, Global[RedistributeToGlobalProtocol]]
492
- policy: Union[Default[None], Global[UUID]] = Default[None](value=None)
487
+ policy: Union[Default[None], Global[UUID]]
493
488
 
494
489
 
495
490
  class RouteLeakFromGlobal(BaseModel):
@@ -498,7 +493,7 @@ class RouteLeakFromGlobal(BaseModel):
498
493
  route_protocol: Union[Variable, Global[RouteLeakFromGlobalProtocol]] = Field(
499
494
  serialization_alias="routeProtocol", validation_alias="routeProtocol"
500
495
  )
501
- route_policy: Optional[Union[Default[None], RefIdItem]] = Field(
496
+ route_policy: Optional[Union[Default[None], Global[UUID]]] = Field(
502
497
  serialization_alias="routePolicy", validation_alias="routePolicy", default=None
503
498
  )
504
499
  redistribute_to_protocol: Optional[List[RedistributeToService]] = Field(
@@ -512,7 +507,7 @@ class RouteLeakFromService(BaseModel):
512
507
  route_protocol: Union[Variable, Global[RouteLeakFromServiceProtocol]] = Field(
513
508
  serialization_alias="routeProtocol", validation_alias="routeProtocol"
514
509
  )
515
- route_policy: Optional[Union[Default[None], RefIdItem]] = Field(
510
+ route_policy: Optional[Union[Default[None], Global[UUID]]] = Field(
516
511
  serialization_alias="routePolicy", validation_alias="routePolicy", default=None
517
512
  )
518
513
  redistribute_to_protocol: Optional[List[RedistributeToService]] = Field(
@@ -527,7 +522,7 @@ class RouteLeakBetweenServices(BaseModel):
527
522
  route_protocol: Union[Variable, Global[RouteLeakFromServiceProtocol]] = Field(
528
523
  serialization_alias="routeProtocol", validation_alias="routeProtocol"
529
524
  )
530
- route_policy: Optional[Union[Default[None], RefIdItem]] = Field(
525
+ route_policy: Optional[Union[Default[None], Global[UUID]]] = Field(
531
526
  serialization_alias="routePolicy", validation_alias="routePolicy", default=None
532
527
  )
533
528
  redistribute_to_protocol: Optional[List[RedistributeToService]] = Field(
@@ -563,65 +558,79 @@ class MplsVpnIPv6RouteTarget(BaseModel):
563
558
  )
564
559
 
565
560
 
566
- class LanVpnParcel(_ParcelBase):
567
- type_: Literal["lan/vpn"] = Field(default="lan/vpn", exclude=True)
568
- model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True, extra="forbid")
561
+ class LanVpnData(BaseModel):
562
+ model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
569
563
 
570
- vpn_id: Union[Variable, Global[int]] = Field(validation_alias=AliasPath("data", "vpnId"))
571
- vpn_name: Union[Variable, Global[str], Default[None]] = Field(
572
- default=Default[None](value=None), validation_alias=AliasPath("data", "name")
573
- )
574
- omp_admin_distance_ipv4: Optional[Union[Variable, Global[int], Default[None]]] = Field(
575
- validation_alias=AliasPath("data", "ompAdminDistance"), default=None
564
+ vpn_id: Union[Variable, Global[int], Default[int]] = Field(serialization_alias="vpnId", validation_alias="vpnId")
565
+ name: Union[Variable, Global[str], Default[None]]
566
+ omp_admin_distance: Optional[Union[Variable, Global[int], Default[None]]] = Field(
567
+ serialization_alias="ompAdminDistance", validation_alias="ompAdminDistance", default=None
576
568
  )
577
569
  omp_admin_distance_ipv6: Optional[Union[Variable, Global[int], Default[None]]] = Field(
578
- validation_alias=AliasPath("data", "ompAdminDistanceIpv6"), default=None
570
+ serialization_alias="ompAdminDistanceIpv6", validation_alias="ompAdminDistanceIpv6", default=None
579
571
  )
580
- dns_ipv4: Optional[DNSIPv4] = Field(validation_alias=AliasPath("data", "dnsIpv4"), default=None)
581
- dns_ipv6: Optional[DNSIPv6] = Field(validation_alias=AliasPath("data", "dnsIpv6"), default=None)
572
+ dns_ipv4: Optional[DnsIPv4] = Field(serialization_alias="dnsIpv4", validation_alias="dnsIpv4", default=None)
573
+ dns_ipv6: Optional[DnsIPv6] = Field(serialization_alias="dnsIpv6", validation_alias="dnsIpv6", default=None)
582
574
  new_host_mapping: Optional[List[HostMapping]] = Field(
583
- validation_alias=AliasPath("data", "newHostMapping"), default=None
575
+ serialization_alias="newHostMapping", validation_alias="newHostMapping", default=None
584
576
  )
585
577
  omp_advertise_ipv4: Optional[List[OmpAdvertiseIPv4]] = Field(
586
- validation_alias=AliasPath("data", "ompAdvertiseIp4"), default=None # API typo
578
+ serialization_alias="ompAdvertiseIpv4", validation_alias="ompAdvertiseIpv4", default=None
587
579
  )
588
580
  omp_advertise_ipv6: Optional[List[OmpAdvertiseIPv6]] = Field(
589
- validation_alias=AliasPath("data", "ompAdvertiseIpv6"), default=None
581
+ serialization_alias="ompAdvertiseIpv6", validation_alias="ompAdvertiseIpv6", default=None
582
+ )
583
+ ipv4_route: Optional[List[StaticRouteIPv4]] = Field(
584
+ serialization_alias="ipv4Route", validation_alias="ipv4Route", default=None
590
585
  )
591
- ipv4_route: Optional[List[StaticRouteIPv4]] = Field(validation_alias=AliasPath("data", "ipv4Route"), default=None)
592
- ipv6_route: Optional[List[StaticRouteIPv6]] = Field(validation_alias=AliasPath("data", "ipv6Route"), default=None)
593
- service: Optional[List[Service]] = Field(default=None, validation_alias=AliasPath("data", "service"))
586
+ ipv6_route: Optional[List[StaticRouteIPv6]] = Field(
587
+ serialization_alias="ipv6Route", validation_alias="ipv6Route", default=None
588
+ )
589
+ service: Optional[List[Service]] = None
594
590
  service_route: Optional[List[ServiceRoute]] = Field(
595
- validation_alias=AliasPath("data", "serviceRoute"), default=None
591
+ serialization_alias="serviceRoute", validation_alias="serviceRoute", default=None
592
+ )
593
+ gre_route: Optional[List[StaticGreRouteIPv4]] = Field(
594
+ serialization_alias="greRoute", validation_alias="greRoute", default=None
596
595
  )
597
- gre_route: Optional[List[StaticGreRouteIPv4]] = Field(validation_alias=AliasPath("data", "greRoute"), default=None)
598
596
  ipsec_route: Optional[List[StaticIpsecRouteIPv4]] = Field(
599
- validation_alias=AliasPath("data", "ipsecRoute"), default=None
597
+ serialization_alias="ipsecRoute", validation_alias="ipsecRoute", default=None
600
598
  )
601
- nat_pool: Optional[List[NatPool]] = Field(validation_alias=AliasPath("data", "natPool"), default=None)
599
+ nat_pool: Optional[List[NatPool]] = Field(serialization_alias="natPool", validation_alias="natPool", default=None)
602
600
  nat_port_forwarding: Optional[List[NatPortForward]] = Field(
603
- validation_alias=AliasPath("data", "natPortForwarding"), default=None
601
+ serialization_alias="natPortForwarding", validation_alias="natPortForwarding", default=None
602
+ )
603
+ static_nat: Optional[List[StaticNat]] = Field(
604
+ serialization_alias="staticNat", validation_alias="staticNat", default=None
604
605
  )
605
- static_nat: Optional[List[StaticNat]] = Field(validation_alias=AliasPath("data", "staticNat"), default=None)
606
606
  static_nat_subnet: Optional[List[StaticNatSubnet]] = Field(
607
- validation_alias=AliasPath("data", "staticNatSubnet"), default=None
607
+ serialization_alias="staticNatSubnet", validation_alias="staticNatSubnet", default=None
608
+ )
609
+ nat64_v4_pool: Optional[List[Nat64v4Pool]] = Field(
610
+ serialization_alias="nat64V4Pool", validation_alias="nat64V4Pool", default=None
608
611
  )
609
- nat64_v4_pool: Optional[List[Nat64v4Pool]] = Field(validation_alias=AliasPath("data", "nat64V4Pool"), default=None)
610
612
  route_leak_from_global: Optional[List[RouteLeakFromGlobal]] = Field(
611
- validation_alias=AliasPath("data", "routeLeakFromGlobal"), default=None
613
+ serialization_alias="routeLeakFromGlobal", validation_alias="routeLeakFromGlobal", default=None
612
614
  )
613
615
  route_leak_from_service: Optional[List[RouteLeakFromService]] = Field(
614
- validation_alias=AliasPath("data", "routeLeakFromService"), default=None
616
+ serialization_alias="routeLeakFromService", validation_alias="routeLeakFromService", default=None
615
617
  )
616
618
  route_leak_between_services: Optional[List[RouteLeakBetweenServices]] = Field(
617
- validation_alias=AliasPath("data", "routeLeakBetweenServices"), default=None
619
+ serialization_alias="routeLeakBetweenServices", validation_alias="routeLeakBetweenServices", default=None
618
620
  )
619
621
  mpls_vpn_ipv4_route_target: Optional[MplsVpnIPv4RouteTarget] = Field(
620
- validation_alias=AliasPath("data", "mplsVpnIpv4RouteTarget"), default=None
622
+ serialization_alias="mplsVpnIpv4RouteTarget", validation_alias="mplsVpnIpv4RouteTarget", default=None
621
623
  )
622
624
  mpls_vpn_ipv6_route_target: Optional[MplsVpnIPv6RouteTarget] = Field(
623
- validation_alias=AliasPath("data", "mplsVpnIpv6RouteTarget"), default=None
625
+ serialization_alias="mplsVpnIpv6RouteTarget", validation_alias="mplsVpnIpv6RouteTarget", default=None
624
626
  )
625
627
  enable_sdra: Optional[Union[Global[bool], Default[bool]]] = Field(
626
- validation_alias=AliasPath("data", "enableSdra"), default=None
628
+ serialization_alias="enableSdra", validation_alias="enableSdra", default=None
627
629
  )
630
+
631
+
632
+ class LanVpnCreationPayload(BaseModel):
633
+ name: str
634
+ description: Optional[str] = None
635
+ data: LanVpnData
636
+ metadata: Optional[dict] = None