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,157 +1,88 @@
1
1
  # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
2
 
3
3
  # This stub provide top-level "public" policy models to be used with PolicyAPI()
4
- from functools import lru_cache
5
- from typing import List, Sequence, Type, Union, cast
4
+ from typing import List, Union
6
5
 
7
6
  from pydantic import Field
8
7
  from typing_extensions import Annotated
9
8
 
10
- from catalystwan.exceptions import ModelNotFound
11
- from catalystwan.models.policy.definition.app_route import AppRoutePolicy, AppRoutePolicyGetResponse
12
- from catalystwan.models.policy.definition.dial_peer import DialPeerPolicy, DialPeerPolicyGetResponse
13
- from catalystwan.models.policy.definition.fxo_port import FxoPortPolicy, FxoPortPolicyGetResponse
14
- from catalystwan.models.policy.definition.fxs_did_port import FxsDidPortPolicy, FxsDidPortPolicyGetResponse
15
- from catalystwan.models.policy.definition.fxs_port import FxsPortPolicy, FxsPortPolicyGetResponse
16
- from catalystwan.models.policy.definition.pri_isdn_port import PriIsdnPortPolicy, PriIsdnPortPolicyGetResponse
17
- from catalystwan.models.policy.definition.srst_phone_profile import (
18
- SrstPhoneProfilePolicy,
19
- SrstPhoneProfilePolicyGetResponse,
20
- )
21
- from catalystwan.models.policy.definition.vpn_qos_map import VPNQoSMapPolicy, VPNQoSMapPolicyGetResponse
22
- from catalystwan.models.policy.list.app import AppList, AppListInfo
23
- from catalystwan.models.policy.list.app_probe import AppProbeClassList, AppProbeClassListInfo
24
- from catalystwan.models.policy.list.as_path import ASPathList, ASPathListInfo
25
- from catalystwan.models.policy.list.class_map import ClassMapList, ClassMapListInfo
26
- from catalystwan.models.policy.list.color import ColorList, ColorListInfo
27
- from catalystwan.models.policy.list.communities import (
9
+ from .centralized import CentralizedPolicy, TrafficDataDirection
10
+ from .definitions.access_control_list import AclPolicy
11
+ from .definitions.access_control_list_ipv6 import AclIPv6Policy
12
+ from .definitions.control import ControlPolicy
13
+ from .definitions.device_access import DeviceAccessPolicy
14
+ from .definitions.device_access_ipv6 import DeviceAccessIPv6Policy
15
+ from .definitions.hub_and_spoke import HubAndSpokePolicy
16
+ from .definitions.mesh import MeshPolicy
17
+ from .definitions.qos_map import QoSDropType, QoSMapPolicy
18
+ from .definitions.rewrite import RewritePolicy
19
+ from .definitions.rule_set import RuleSet
20
+ from .definitions.security_group import SecurityGroup
21
+ from .definitions.traffic_data import TrafficDataPolicy
22
+ from .definitions.vpn_membership import VPNMembershipPolicy
23
+ from .definitions.zone_based_firewall import ZoneBasedFWPolicy
24
+ from .lists import (
25
+ AppList,
26
+ AppProbeClassList,
27
+ ASPathList,
28
+ ClassMapList,
29
+ ColorList,
28
30
  CommunityList,
29
- CommunityListInfo,
31
+ DataIPv6PrefixList,
32
+ DataPrefixList,
30
33
  ExpandedCommunityList,
31
- ExpandedCommunityListInfo,
32
- ExtendedCommunityList,
33
- ExtendedCommunityListInfo,
34
- )
35
- from catalystwan.models.policy.list.data_ipv6_prefix import DataIPv6PrefixList, DataIPv6PrefixListInfo
36
- from catalystwan.models.policy.list.data_prefix import DataPrefixList, DataPrefixListInfo
37
- from catalystwan.models.policy.list.fax_protocol import FaxProtocolList, FaxProtocolListInfo
38
- from catalystwan.models.policy.list.fqdn import FQDNList, FQDNListInfo
39
- from catalystwan.models.policy.list.geo_location import GeoLocationList, GeoLocationListInfo
40
- from catalystwan.models.policy.list.identity import IdentityList, IdentityListInfo
41
- from catalystwan.models.policy.list.ips_signature import IPSSignatureList, IPSSignatureListInfo
42
- from catalystwan.models.policy.list.ipv6_prefix import IPv6PrefixList, IPv6PrefixListInfo
43
- from catalystwan.models.policy.list.local_app import LocalAppList, LocalAppListInfo
44
- from catalystwan.models.policy.list.local_domain import LocalDomainList, LocalDomainListInfo
45
- from catalystwan.models.policy.list.media_profile import MediaProfileList, MediaProfileListInfo
46
- from catalystwan.models.policy.list.mirror import MirrorList, MirrorListInfo
47
- from catalystwan.models.policy.list.modem_pass_through import ModemPassThroughList, ModemPassThroughListInfo
48
- from catalystwan.models.policy.list.policer import PolicerList, PolicerListInfo
49
- from catalystwan.models.policy.list.port import PortList, PortListInfo
50
- from catalystwan.models.policy.list.preferred_color_group import PreferredColorGroupList, PreferredColorGroupListInfo
51
- from catalystwan.models.policy.list.prefix import PrefixList, PrefixListInfo
52
- from catalystwan.models.policy.list.protocol_name import ProtocolNameList, ProtocolNameListInfo
53
- from catalystwan.models.policy.list.region import RegionList, RegionListInfo
54
- from catalystwan.models.policy.list.scalable_group_tag import ScalableGroupTagList, ScalableGroupTagListInfo
55
- from catalystwan.models.policy.list.site import SiteList, SiteListInfo
56
- from catalystwan.models.policy.list.sla import SLAClassList, SLAClassListInfo
57
- from catalystwan.models.policy.list.supervisory_disconnect import (
58
- SupervisoryDisconnectList,
59
- SupervisoryDisconnectListInfo,
60
- )
61
- from catalystwan.models.policy.list.threat_grid_api_key import ThreatGridApiKeyList, ThreatGridApiKeyListInfo
62
- from catalystwan.models.policy.list.tloc import TLOCList, TLOCListInfo
63
- from catalystwan.models.policy.list.translation_profile import TranslationProfileList, TranslationProfileListInfo
64
- from catalystwan.models.policy.list.translation_rules import TranslationRulesList, TranslationRulesListInfo
65
- from catalystwan.models.policy.list.trunkgroup import TrunkGroupList, TrunkGroupListInfo
66
- from catalystwan.models.policy.list.umbrella_data import UmbrellaDataList, UmbrellaDataListInfo
67
- from catalystwan.models.policy.list.url import URLAllowList, URLAllowListInfo, URLBlockList, URLBlockListInfo
68
- from catalystwan.models.policy.list.vpn import VPNList, VPNListInfo
69
- from catalystwan.models.policy.list.zone import ZoneList, ZoneListInfo
70
- from catalystwan.utils.model import get_model_type_literals, resolve_nested_base_model_unions
71
-
72
- from .centralized import CentralizedPolicy, CentralizedPolicyInfo, TrafficDataDirection
73
- from .definition.access_control_list import AclPolicy, AclPolicyGetResponse
74
- from .definition.access_control_list_ipv6 import AclIPv6Policy, AclIPv6PolicyGetResponse
75
- from .definition.aip import AdvancedInspectionProfilePolicy, AdvancedInspectionProfilePolicyGetResponse
76
- from .definition.amp import AdvancedMalwareProtectionPolicy, AdvancedMalwareProtectionPolicyGetResponse
77
- from .definition.cflowd import CflowdPolicy, CflowdPolicyGetResponse
78
- from .definition.control import ControlPolicy, ControlPolicyGetResponse
79
- from .definition.device_access import DeviceAccessPolicy, DeviceAccessPolicyGetResponse
80
- from .definition.device_access_ipv6 import DeviceAccessIPv6Policy, DeviceAccessIPv6PolicyGetResponse
81
- from .definition.dns_security import DnsSecurityPolicy, DnsSecurityPolicyGetResponse
82
- from .definition.hub_and_spoke import HubAndSpokePolicy, HubAndSpokePolicyGetResponse
83
- from .definition.intrusion_prevention import IntrusionPreventionPolicy, IntrusionPreventionPolicyGetResponse
84
- from .definition.mesh import MeshPolicy, MeshPolicyGetResponse
85
- from .definition.qos_map import QoSDropType, QoSMapPolicy, QoSMapPolicyGetResponse
86
- from .definition.rewrite import RewritePolicy, RewritePolicyGetResponse
87
- from .definition.route_policy import RoutePolicy, RoutePolicyGetResponse
88
- from .definition.rule_set import RuleSet, RuleSetGetResponse
89
- from .definition.security_group import SecurityGroup, SecurityGroupGetResponse
90
- from .definition.ssl_decryption import SslDecryptionPolicy, SslDecryptionPolicyGetResponse
91
- from .definition.ssl_decryption_utd_profile import (
92
- SslDecryptionUtdProfilePolicy,
93
- SslDecryptionUtdProfilePolicyGetResponse,
34
+ FQDNList,
35
+ GeoLocationList,
36
+ IPSSignatureList,
37
+ IPv6PrefixList,
38
+ LocalAppList,
39
+ LocalDomainList,
40
+ MirrorList,
41
+ PolicerList,
42
+ PortList,
43
+ PreferredColorGroupList,
44
+ PrefixList,
45
+ ProtocolNameList,
46
+ RegionList,
47
+ SiteList,
48
+ SLAClassList,
49
+ TLOCList,
50
+ URLAllowList,
51
+ URLBlockList,
52
+ VPNList,
53
+ ZoneList,
94
54
  )
95
- from .definition.traffic_data import TrafficDataPolicy, TrafficDataPolicyGetResponse
96
- from .definition.url_filtering import UrlFilteringPolicy, UrlFilteringPolicyGetResponse
97
- from .definition.vpn_membership import VPNMembershipPolicy, VPNMembershipPolicyGetResponse
98
- from .definition.zone_based_firewall import ZoneBasedFWPolicy, ZoneBasedFWPolicyGetResponse
99
- from .localized import LocalizedPolicy, LocalizedPolicyInfo
55
+ from .lists_entries import EncapType, PathPreference, PolicerExceedAction
56
+ from .localized import LocalizedPolicy
100
57
  from .policy_definition import (
101
- CarrierType,
102
- ControlPathType,
58
+ Carrier,
103
59
  DNSTypeEntryType,
104
60
  MultiRegionRole,
105
61
  OriginProtocol,
62
+ PathType,
106
63
  PLPEntryType,
107
- PolicyDefinitionInfo,
64
+ PolicyActionType,
108
65
  ServiceType,
109
66
  TLOCActionType,
110
67
  )
111
- from .policy_list import PolicyListInfo
112
- from .security import (
113
- AnySecurityPolicy,
114
- AnySecurityPolicyInfo,
115
- AnySecurityPolicyInfoList,
116
- SecurityPolicy,
117
- SecurityPolicyInfo,
118
- UnifiedSecurityPolicy,
119
- UnifiedSecurityPolicyInfo,
120
- )
68
+ from .security import SecurityPolicy, UnifiedSecurityPolicy
121
69
 
122
70
  AnyPolicyDefinition = Annotated[
123
71
  Union[
124
- AclIPv6Policy,
125
- AclPolicy,
126
- AdvancedInspectionProfilePolicy,
127
- AdvancedMalwareProtectionPolicy,
128
- AppRoutePolicy,
129
- CflowdPolicy,
130
- ControlPolicy,
131
- DeviceAccessIPv6Policy,
132
- DeviceAccessPolicy,
133
- DialPeerPolicy,
134
- DnsSecurityPolicy,
135
- FxoPortPolicy,
136
- FxsPortPolicy,
137
- FxsDidPortPolicy,
138
- HubAndSpokePolicy,
139
- IntrusionPreventionPolicy,
140
- MeshPolicy,
141
- PriIsdnPortPolicy,
142
- QoSMapPolicy,
143
- RewritePolicy,
144
- RoutePolicy,
145
72
  RuleSet,
146
73
  SecurityGroup,
147
- SslDecryptionPolicy,
148
- SslDecryptionUtdProfilePolicy,
149
- SrstPhoneProfilePolicy,
74
+ ZoneBasedFWPolicy,
150
75
  TrafficDataPolicy,
151
- UrlFilteringPolicy,
76
+ QoSMapPolicy,
77
+ RewritePolicy,
78
+ ControlPolicy,
152
79
  VPNMembershipPolicy,
153
- VPNQoSMapPolicy,
154
- ZoneBasedFWPolicy,
80
+ HubAndSpokePolicy,
81
+ MeshPolicy,
82
+ AclPolicy,
83
+ AclIPv6Policy,
84
+ DeviceAccessPolicy,
85
+ DeviceAccessIPv6Policy,
155
86
  ],
156
87
  Field(discriminator="type"),
157
88
  ]
@@ -167,203 +98,70 @@ AnyPolicyList = Annotated[
167
98
  DataIPv6PrefixList,
168
99
  DataPrefixList,
169
100
  ExpandedCommunityList,
170
- ExtendedCommunityList,
171
- FaxProtocolList,
172
101
  FQDNList,
173
102
  GeoLocationList,
174
- IdentityList,
175
103
  IPSSignatureList,
176
104
  IPv6PrefixList,
177
105
  LocalAppList,
178
106
  LocalDomainList,
179
- MediaProfileList,
180
107
  MirrorList,
181
- ModemPassThroughList,
182
108
  PolicerList,
183
109
  PortList,
184
110
  PreferredColorGroupList,
185
111
  PrefixList,
186
112
  ProtocolNameList,
187
113
  RegionList,
188
- ScalableGroupTagList,
189
114
  SiteList,
190
115
  SLAClassList,
191
- SupervisoryDisconnectList,
192
- ThreatGridApiKeyList,
193
116
  TLOCList,
194
- TranslationProfileList,
195
- TranslationRulesList,
196
- TrunkGroupList,
197
- UmbrellaDataList,
198
- URLAllowList,
199
117
  URLBlockList,
118
+ URLAllowList,
200
119
  VPNList,
201
120
  ZoneList,
202
121
  ],
203
122
  Field(discriminator="type"),
204
123
  ]
205
124
 
206
- AnyPolicyListInfo = Annotated[
207
- Union[
208
- AppListInfo,
209
- AppProbeClassListInfo,
210
- ASPathListInfo,
211
- ClassMapListInfo,
212
- ColorListInfo,
213
- CommunityListInfo,
214
- DataIPv6PrefixListInfo,
215
- DataPrefixListInfo,
216
- ExpandedCommunityListInfo,
217
- ExtendedCommunityListInfo,
218
- FaxProtocolListInfo,
219
- FQDNListInfo,
220
- GeoLocationListInfo,
221
- IdentityListInfo,
222
- IPSSignatureListInfo,
223
- IPv6PrefixListInfo,
224
- LocalAppListInfo,
225
- LocalDomainListInfo,
226
- MediaProfileListInfo,
227
- MirrorListInfo,
228
- ModemPassThroughListInfo,
229
- PolicerListInfo,
230
- PortListInfo,
231
- PreferredColorGroupListInfo,
232
- PrefixListInfo,
233
- ProtocolNameListInfo,
234
- RegionListInfo,
235
- ScalableGroupTagListInfo,
236
- SiteListInfo,
237
- SLAClassListInfo,
238
- SupervisoryDisconnectListInfo,
239
- ThreatGridApiKeyListInfo,
240
- TLOCListInfo,
241
- TranslationProfileListInfo,
242
- TranslationRulesListInfo,
243
- TrunkGroupListInfo,
244
- UmbrellaDataListInfo,
245
- URLAllowListInfo,
246
- URLBlockListInfo,
247
- VPNListInfo,
248
- ZoneListInfo,
249
- ],
250
- Field(discriminator="type"),
251
- ]
252
-
253
- AnyPolicyDefinitionInfo = Annotated[
254
- Union[
255
- AclIPv6PolicyGetResponse,
256
- AclPolicyGetResponse,
257
- AdvancedInspectionProfilePolicyGetResponse,
258
- AdvancedMalwareProtectionPolicyGetResponse,
259
- AppRoutePolicyGetResponse,
260
- CflowdPolicyGetResponse,
261
- ControlPolicyGetResponse,
262
- DeviceAccessIPv6PolicyGetResponse,
263
- DeviceAccessPolicyGetResponse,
264
- DialPeerPolicyGetResponse,
265
- DnsSecurityPolicyGetResponse,
266
- FxoPortPolicyGetResponse,
267
- FxsPortPolicyGetResponse,
268
- FxsDidPortPolicyGetResponse,
269
- HubAndSpokePolicyGetResponse,
270
- IntrusionPreventionPolicyGetResponse,
271
- MeshPolicyGetResponse,
272
- PriIsdnPortPolicyGetResponse,
273
- QoSMapPolicyGetResponse,
274
- RewritePolicyGetResponse,
275
- RoutePolicyGetResponse,
276
- RuleSetGetResponse,
277
- SecurityGroupGetResponse,
278
- SslDecryptionPolicyGetResponse,
279
- SslDecryptionUtdProfilePolicyGetResponse,
280
- SrstPhoneProfilePolicyGetResponse,
281
- TrafficDataPolicyGetResponse,
282
- UrlFilteringPolicyGetResponse,
283
- VPNMembershipPolicyGetResponse,
284
- VPNQoSMapPolicyGetResponse,
285
- ZoneBasedFWPolicyGetResponse,
286
- ],
287
- Field(discriminator="type"),
288
- ]
289
-
290
-
291
- @lru_cache
292
- def find_policy_list_model(model_type: str) -> Type[AnyPolicyListInfo]:
293
- types = cast(
294
- Sequence[Type[AnyPolicyListInfo]],
295
- resolve_nested_base_model_unions(AnyPolicyListInfo),
296
- )
297
- try:
298
- model = next(t for t in types if model_type in get_model_type_literals(t))
299
- except StopIteration:
300
- raise ModelNotFound(model_type, AnyPolicyListInfo)
301
- return model
302
-
303
-
304
- @lru_cache
305
- def find_policy_definition_model(model_type: str) -> Type[AnyPolicyDefinitionInfo]:
306
- types = cast(
307
- Sequence[Type[AnyPolicyDefinitionInfo]],
308
- resolve_nested_base_model_unions(AnyPolicyDefinitionInfo),
309
- )
310
- try:
311
- model = next(t for t in types if model_type in get_model_type_literals(t))
312
- except StopIteration:
313
- raise ModelNotFound(model_type, AnyPolicyDefinitionInfo)
314
- return model
315
-
316
125
 
317
126
  __all__ = (
318
127
  "AclIPv6Policy",
319
128
  "AclPolicy",
320
- "AdvancedInspectionProfilePolicy",
321
- "AdvancedMalwareProtectionPolicy",
322
- "AnyPolicyDefinitionInfo",
323
129
  "AnyPolicyList",
324
- "AnySecurityPolicy",
325
- "AnySecurityPolicyInfo",
326
- "AnySecurityPolicyInfoList",
130
+ "AnyPolicyList",
327
131
  "AppList",
328
132
  "AppProbeClassList",
329
- "AppRoutePolicy",
330
133
  "ASPathList",
331
- "CarrierType",
134
+ "Carrier",
332
135
  "CentralizedPolicy",
333
- "CentralizedPolicyInfo",
334
- "CflowdPolicy",
335
136
  "ClassMapList",
336
137
  "ColorList",
337
138
  "CommunityList",
338
- "ControlPathType",
339
139
  "ControlPolicy",
340
140
  "DataIPv6PrefixList",
341
141
  "DataPrefixList",
342
142
  "DeviceAccessIPv6Policy",
343
143
  "DeviceAccessPolicy",
344
- "DnsSecurityPolicy",
345
144
  "DNSTypeEntryType",
145
+ "EncapType",
346
146
  "ExpandedCommunityList",
347
- "ExtendedCommunityList",
348
147
  "FQDNList",
349
148
  "GeoLocationList",
350
149
  "HubAndSpokePolicy",
351
- "IdentityList",
352
- "IntrusionPreventionPolicy",
353
150
  "IPSSignatureList",
354
151
  "IPv6PrefixList",
355
152
  "LocalAppList",
356
153
  "LocalDomainList",
357
154
  "LocalizedPolicy",
358
- "LocalizedPolicyInfo",
359
155
  "MeshPolicy",
360
156
  "MirrorList",
361
157
  "MultiRegionRole",
362
158
  "OriginProtocol",
159
+ "PathPreference",
160
+ "PathType",
363
161
  "PLPEntryType",
162
+ "PolicerExceedAction",
364
163
  "PolicerList",
365
- "PolicyDefinitionInfo",
366
- "PolicyListInfo",
164
+ "PolicyActionType",
367
165
  "PortList",
368
166
  "PreferredColorGroupList",
369
167
  "PrefixList",
@@ -372,32 +170,21 @@ __all__ = (
372
170
  "QoSMapPolicy",
373
171
  "RegionList",
374
172
  "RewritePolicy",
375
- "RoutePolicy",
376
173
  "RuleSet",
377
- "ScalableGroupTagList",
378
174
  "SecurityGroup",
379
175
  "SecurityPolicy",
380
- "SecurityPolicyInfo",
381
176
  "ServiceType",
382
177
  "SiteList",
383
178
  "SLAClassList",
384
- "SslDecryptionPolicy",
385
- "SslDecryptionUtdProfilePolicy",
386
- "ThreatGridApiKeyList",
387
179
  "TLOCActionType",
388
180
  "TLOCList",
389
181
  "TrafficDataDirection",
390
182
  "TrafficDataPolicy",
391
- "TrunkGroupList",
392
- "UmbrellaDataList",
393
183
  "UnifiedSecurityPolicy",
394
- "UnifiedSecurityPolicyInfo",
395
- "URLAllowList",
396
184
  "URLBlockList",
397
- "UrlFilteringPolicy",
185
+ "URLAllowList",
398
186
  "VPNList",
399
187
  "VPNMembershipPolicy",
400
- "VPNQoSMapPolicy",
401
188
  "ZoneBasedFWPolicy",
402
189
  "ZoneList",
403
190
  )
@@ -18,8 +18,6 @@ TrafficDataDirection = Literal[
18
18
  "service",
19
19
  "tunnel",
20
20
  "all",
21
- "from-service",
22
- "from-tunnel",
23
21
  ]
24
22
 
25
23
  ControlDirection = Literal[
@@ -27,8 +25,6 @@ ControlDirection = Literal[
27
25
  "out",
28
26
  ]
29
27
 
30
- AppRouteItemType = Literal["approute", "appRoute"]
31
-
32
28
 
33
29
  def assert_feature_defintion(definition: Any) -> "CentralizedPolicyDefinition":
34
30
  assert isinstance(definition, CentralizedPolicyDefinition)
@@ -41,7 +37,7 @@ class DataApplicationEntry(BaseModel):
41
37
  site_lists: Optional[List[UUID]] = Field(
42
38
  default=None, serialization_alias="siteLists", validation_alias="siteLists"
43
39
  )
44
- vpn_lists: List[UUID] = Field(default_factory=list, serialization_alias="vpnLists", validation_alias="vpnLists")
40
+ vpn_lists: List[UUID] = Field(default=[], serialization_alias="vpnLists", validation_alias="vpnLists")
45
41
  region_ids: Optional[List[str]] = Field(default=None, serialization_alias="regionIds", validation_alias="regionIds")
46
42
  region_lists: Optional[List[UUID]] = Field(
47
43
  default=None, serialization_alias="regionLists", validation_alias="regionLists"
@@ -75,7 +71,7 @@ class ControlPolicyItem(AssemblyItemBase):
75
71
  self.entries.append(entry)
76
72
 
77
73
  def assign_to_outbound_sites(self, site_lists: List[UUID]) -> None:
78
- entry = ControlApplicationEntry(direction="out", site_lists=site_lists)
74
+ entry = ControlApplicationEntry(direction="in", site_lists=site_lists)
79
75
  self.entries.append(entry)
80
76
 
81
77
  @overload
@@ -171,8 +167,7 @@ class MeshPolicyItem(AssemblyItemBase):
171
167
 
172
168
 
173
169
  class AppRoutePolicyItem(AssemblyItemBase):
174
- type: AppRouteItemType = "appRoute"
175
- entries: List[DataApplicationEntry] = []
170
+ type: Literal["appRoute"] = "appRoute"
176
171
 
177
172
 
178
173
  class CFlowDPolicyItem(AssemblyItemBase):
@@ -198,29 +193,22 @@ AnyAssemblyItem = Annotated[
198
193
 
199
194
 
200
195
  class CentralizedPolicyDefinition(PolicyDefinition):
201
- model_config = ConfigDict(populate_by_name=True)
202
196
  region_role_assembly: List = Field(
203
- default_factory=list, serialization_alias="regionRoleAssembly", validation_alias="regionRoleAssembly"
197
+ default=[], serialization_alias="regionRoleAssembly", validation_alias="regionRoleAssembly"
204
198
  )
205
199
  assembly: List[AnyAssemblyItem] = []
206
200
  model_config = ConfigDict(populate_by_name=True)
207
201
 
208
- def find_assembly_item_by_definition_id(self, definition_id: UUID) -> Optional[AnyAssemblyItem]:
209
- for item in self.assembly:
210
- if item.definition_id == definition_id:
211
- return item
212
- return None
213
-
214
202
 
215
203
  class CentralizedPolicy(PolicyCreationPayload):
216
- model_config = ConfigDict(populate_by_name=True)
217
- policy_type: Literal["feature", "cli"] = Field(
218
- default="feature", serialization_alias="policyType", validation_alias="policyType"
219
- )
220
- policy_definition: Union[str, CentralizedPolicyDefinition] = Field(
204
+ policy_definition: Union[CentralizedPolicyDefinition, str] = Field(
205
+ default=CentralizedPolicyDefinition(),
221
206
  serialization_alias="policyDefinition",
222
207
  validation_alias="policyDefinition",
223
208
  )
209
+ policy_type: Literal["feature", "cli"] = Field(
210
+ default="feature", serialization_alias="policyType", validation_alias="policyType"
211
+ )
224
212
 
225
213
  def add_traffic_data_policy(self, traffic_data_policy_id: UUID) -> TrafficDataPolicyItem:
226
214
  policy_definition = assert_feature_defintion(self.policy_definition)
@@ -245,17 +233,32 @@ class CentralizedPolicy(PolicyCreationPayload):
245
233
  @model_validator(mode="before")
246
234
  @classmethod
247
235
  def try_parse_policy_definition_string(cls, values):
248
- # this is needed because GET /template/policy/vsmart contains string in policyDefinition field
236
+ # GET /template/policy/vsmart contains string in policyDefinition field
249
237
  # while POST /template/policy/vsmart requires a regular object
250
238
  # it makes sense to reuse that model for both requests and present parsed data to the user
251
- if not isinstance(values, dict):
252
- return values
239
+ # This is only applicable for "feature" policy type
240
+ # when we are trying to deserialize "policyDefinition" field obtained from remote as string
253
241
  json_policy_type = values.get("policyType")
254
242
  json_policy_definition = values.get("policyDefinition")
255
- if json_policy_type == "feature" and isinstance(json_policy_definition, str):
256
- values["policyDefinition"] = CentralizedPolicyDefinition.model_validate_json(json_policy_definition)
243
+ if json_policy_type == "feature":
244
+ if isinstance(json_policy_definition, str):
245
+ values["policyDefinition"] = CentralizedPolicyDefinition.model_validate_json(json_policy_definition)
246
+ else:
247
+ values["policyDefinition"] = CentralizedPolicyDefinition()
257
248
  return values
258
249
 
250
+ @model_validator(mode="after")
251
+ def check_definition_content_by_type(self):
252
+ if self.policy_type == "cli":
253
+ assert isinstance(
254
+ self.policy_definition, str
255
+ ), "policy definition must be provided as string for cli policy"
256
+ elif self.policy_type == "feature":
257
+ assert isinstance(
258
+ self.policy_definition, CentralizedPolicyDefinition
259
+ ), "policy definition must be provided as CentralizedPolicyDefinition object for feature policy"
260
+ return self
261
+
259
262
 
260
263
  class CentralizedPolicyEditPayload(PolicyEditPayload, CentralizedPolicy):
261
264
  rid: Optional[int] = Field(default=None, serialization_alias="@rid", validation_alias="@rid")