catalystwan 0.41.2__py3-none-any.whl → 0.41.2.dev0__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 (504) hide show
  1. catalystwan/__init__.py +3 -2
  2. catalystwan/api/administration.py +13 -2
  3. catalystwan/api/api_container.py +4 -1
  4. catalystwan/api/builders/__init__.py +14 -0
  5. catalystwan/api/builders/feature_profiles/__init__.py +0 -0
  6. catalystwan/api/builders/feature_profiles/application_priority.py +58 -0
  7. catalystwan/api/builders/feature_profiles/builder_factory.py +59 -0
  8. catalystwan/api/builders/feature_profiles/cli.py +76 -0
  9. catalystwan/api/builders/feature_profiles/mixins.py +44 -0
  10. catalystwan/api/builders/feature_profiles/other.py +79 -0
  11. catalystwan/api/builders/feature_profiles/report.py +155 -0
  12. catalystwan/api/builders/feature_profiles/service.py +248 -0
  13. catalystwan/api/builders/feature_profiles/system.py +80 -0
  14. catalystwan/api/builders/feature_profiles/transport.py +256 -0
  15. catalystwan/api/builders/feature_profiles/uc_voice.py +287 -0
  16. catalystwan/api/config_group_api.py +41 -16
  17. catalystwan/api/configuration_groups/parcel.py +100 -30
  18. catalystwan/api/feature_profile_api.py +2021 -242
  19. catalystwan/api/policy_api.py +470 -116
  20. catalystwan/api/template_api.py +113 -44
  21. catalystwan/api/templates/README.md +61 -47
  22. catalystwan/api/templates/cli_template.py +17 -7
  23. catalystwan/api/templates/device_template/device_template.py +127 -32
  24. catalystwan/api/templates/feature_template.py +3 -3
  25. catalystwan/api/templates/models/aaa_model.py +387 -0
  26. catalystwan/api/templates/models/cisco_aaa_model.py +289 -42
  27. catalystwan/api/templates/models/cisco_banner_model.py +11 -2
  28. catalystwan/api/templates/models/cisco_bfd_model.py +31 -36
  29. catalystwan/api/templates/models/cisco_bgp_model.py +382 -131
  30. catalystwan/api/templates/models/cisco_logging_model.py +80 -43
  31. catalystwan/api/templates/models/cisco_ntp_model.py +34 -15
  32. catalystwan/api/templates/models/cisco_omp_model.py +70 -60
  33. catalystwan/api/templates/models/cisco_ospf.py +143 -74
  34. catalystwan/api/templates/models/cisco_ospfv3.py +217 -95
  35. catalystwan/api/templates/models/cisco_secure_internet_gateway.py +304 -142
  36. catalystwan/api/templates/models/cisco_snmp_model.py +66 -52
  37. catalystwan/api/templates/models/cisco_system.py +238 -129
  38. catalystwan/api/templates/models/cisco_vpn_interface_model.py +632 -275
  39. catalystwan/api/templates/models/cisco_vpn_model.py +433 -270
  40. catalystwan/api/templates/models/cli_template.py +3 -2
  41. catalystwan/api/templates/models/omp_vsmart_model.py +46 -10
  42. catalystwan/api/templates/models/security_vsmart_model.py +11 -8
  43. catalystwan/api/templates/models/supported.py +10 -4
  44. catalystwan/api/templates/models/system_vsmart_model.py +164 -27
  45. catalystwan/api/templates/models/vpn_vsmart_interface_model.py +198 -0
  46. catalystwan/api/templates/models/vpn_vsmart_model.py +124 -0
  47. catalystwan/apigw_auth.py +6 -2
  48. catalystwan/dataclasses.py +2 -53
  49. catalystwan/endpoints/__init__.py +41 -41
  50. catalystwan/endpoints/certificate_management_device.py +4 -0
  51. catalystwan/endpoints/cluster_management.py +27 -7
  52. catalystwan/endpoints/configuration/feature_profile/sdwan/application_priority.py +107 -0
  53. catalystwan/endpoints/configuration/feature_profile/sdwan/cli.py +60 -0
  54. catalystwan/endpoints/configuration/feature_profile/sdwan/dns_security.py +83 -0
  55. catalystwan/endpoints/configuration/feature_profile/sdwan/embedded_security.py +88 -0
  56. catalystwan/endpoints/configuration/feature_profile/sdwan/other.py +62 -0
  57. catalystwan/endpoints/configuration/feature_profile/sdwan/policy_object.py +35 -12
  58. catalystwan/endpoints/configuration/feature_profile/sdwan/service.py +154 -0
  59. catalystwan/endpoints/configuration/feature_profile/sdwan/sig_security.py +88 -0
  60. catalystwan/endpoints/configuration/feature_profile/sdwan/system.py +164 -11
  61. catalystwan/endpoints/configuration/feature_profile/sdwan/topology.py +93 -0
  62. catalystwan/endpoints/configuration/feature_profile/sdwan/transport.py +144 -26
  63. catalystwan/endpoints/configuration/feature_profile/sdwan/uc_voice.py +77 -0
  64. catalystwan/endpoints/configuration/network_hierarchy.py +32 -0
  65. catalystwan/endpoints/configuration/policy/abstractions.py +49 -0
  66. catalystwan/endpoints/configuration/policy/definition/access_control_list.py +6 -11
  67. catalystwan/endpoints/configuration/policy/definition/access_control_list_ipv6.py +6 -11
  68. catalystwan/endpoints/configuration/policy/definition/aip.py +52 -0
  69. catalystwan/endpoints/configuration/policy/definition/amp.py +52 -0
  70. catalystwan/endpoints/configuration/policy/definition/app_route.py +50 -0
  71. catalystwan/endpoints/configuration/policy/definition/cflowd.py +46 -0
  72. catalystwan/endpoints/configuration/policy/definition/control.py +6 -11
  73. catalystwan/endpoints/configuration/policy/definition/device_access.py +6 -11
  74. catalystwan/endpoints/configuration/policy/definition/device_access_ipv6.py +6 -11
  75. catalystwan/endpoints/configuration/policy/definition/dial_peer.py +57 -0
  76. catalystwan/endpoints/configuration/policy/definition/dns_security.py +50 -0
  77. catalystwan/endpoints/configuration/policy/definition/fxo_port.py +57 -0
  78. catalystwan/endpoints/configuration/policy/definition/fxs_did_port.py +57 -0
  79. catalystwan/endpoints/configuration/policy/definition/fxs_port.py +57 -0
  80. catalystwan/endpoints/configuration/policy/definition/hub_and_spoke.py +6 -11
  81. catalystwan/endpoints/configuration/policy/definition/intrusion_prevention.py +52 -0
  82. catalystwan/endpoints/configuration/policy/definition/mesh.py +2 -11
  83. catalystwan/endpoints/configuration/policy/definition/pri_isdn_port.py +57 -0
  84. catalystwan/endpoints/configuration/policy/definition/qos_map.py +2 -11
  85. catalystwan/endpoints/configuration/policy/definition/rewrite.py +6 -11
  86. catalystwan/endpoints/configuration/policy/definition/route_policy.py +50 -0
  87. catalystwan/endpoints/configuration/policy/definition/rule_set.py +2 -11
  88. catalystwan/endpoints/configuration/policy/definition/security_group.py +6 -11
  89. catalystwan/endpoints/configuration/policy/definition/srst_phone_profile.py +59 -0
  90. catalystwan/endpoints/configuration/policy/definition/ssl_decryption.py +50 -0
  91. catalystwan/endpoints/configuration/policy/definition/ssl_decryption_utd_profile.py +52 -0
  92. catalystwan/endpoints/configuration/policy/definition/traffic_data.py +6 -11
  93. catalystwan/endpoints/configuration/policy/definition/url_filtering.py +50 -0
  94. catalystwan/endpoints/configuration/policy/definition/vpn_membership.py +6 -11
  95. catalystwan/endpoints/configuration/policy/definition/vpn_qos_map.py +50 -0
  96. catalystwan/endpoints/configuration/policy/definition/zone_based_firewall.py +6 -11
  97. catalystwan/endpoints/configuration/policy/list/app.py +3 -16
  98. catalystwan/endpoints/configuration/policy/list/app_probe.py +6 -15
  99. catalystwan/endpoints/configuration/policy/list/as_path.py +3 -16
  100. catalystwan/endpoints/configuration/policy/list/class_map.py +3 -16
  101. catalystwan/endpoints/configuration/policy/list/color.py +3 -16
  102. catalystwan/endpoints/configuration/policy/list/community.py +3 -16
  103. catalystwan/endpoints/configuration/policy/list/data_ipv6_prefix.py +6 -15
  104. catalystwan/endpoints/configuration/policy/list/data_prefix.py +3 -16
  105. catalystwan/endpoints/configuration/policy/list/expanded_community.py +6 -15
  106. catalystwan/endpoints/configuration/policy/list/extended_community.py +52 -0
  107. catalystwan/endpoints/configuration/policy/list/fax_protocol.py +48 -0
  108. catalystwan/endpoints/configuration/policy/list/fqdn.py +3 -16
  109. catalystwan/endpoints/configuration/policy/list/geo_location.py +3 -16
  110. catalystwan/endpoints/configuration/policy/list/identity.py +48 -0
  111. catalystwan/endpoints/configuration/policy/list/ips_signature.py +6 -15
  112. catalystwan/endpoints/configuration/policy/list/ipv6_prefix.py +3 -16
  113. catalystwan/endpoints/configuration/policy/list/local_app.py +3 -16
  114. catalystwan/endpoints/configuration/policy/list/local_domain.py +3 -16
  115. catalystwan/endpoints/configuration/policy/list/media_profile.py +52 -0
  116. catalystwan/endpoints/configuration/policy/list/mirror.py +3 -16
  117. catalystwan/endpoints/configuration/policy/list/modem_pass_through.py +52 -0
  118. catalystwan/endpoints/configuration/policy/list/policer.py +3 -16
  119. catalystwan/endpoints/configuration/policy/list/port.py +3 -16
  120. catalystwan/endpoints/configuration/policy/list/preferred_color_group.py +6 -15
  121. catalystwan/endpoints/configuration/policy/list/prefix.py +4 -16
  122. catalystwan/endpoints/configuration/policy/list/protocol_name.py +6 -15
  123. catalystwan/endpoints/configuration/policy/list/region.py +2 -10
  124. catalystwan/endpoints/configuration/policy/list/scalable_group_tag.py +52 -0
  125. catalystwan/endpoints/configuration/policy/list/site.py +3 -16
  126. catalystwan/endpoints/configuration/policy/list/sla.py +3 -16
  127. catalystwan/endpoints/configuration/policy/list/supervisory_disconnect.py +52 -0
  128. catalystwan/endpoints/configuration/policy/list/threat_grid_api_key.py +52 -0
  129. catalystwan/endpoints/configuration/policy/list/tloc.py +3 -16
  130. catalystwan/endpoints/configuration/policy/list/translation_profile.py +52 -0
  131. catalystwan/endpoints/configuration/policy/list/translation_rules.py +52 -0
  132. catalystwan/endpoints/configuration/policy/list/trunkgroup.py +48 -0
  133. catalystwan/endpoints/configuration/policy/list/umbrella_data.py +52 -0
  134. catalystwan/endpoints/configuration/policy/list/url_allow_list.py +3 -16
  135. catalystwan/endpoints/configuration/policy/list/url_block_list.py +3 -16
  136. catalystwan/endpoints/configuration/policy/list/vpn.py +3 -16
  137. catalystwan/endpoints/configuration/policy/list/zone.py +3 -16
  138. catalystwan/endpoints/configuration/policy/security_template.py +2 -3
  139. catalystwan/endpoints/configuration/policy/voice_template.py +39 -0
  140. catalystwan/endpoints/configuration/policy_group.py +30 -0
  141. catalystwan/endpoints/configuration/software_actions.py +2 -4
  142. catalystwan/endpoints/configuration/topology_group.py +51 -0
  143. catalystwan/endpoints/configuration_dashboard_status.py +2 -2
  144. catalystwan/endpoints/configuration_device_template.py +15 -1
  145. catalystwan/endpoints/configuration_feature_profile.py +8 -11
  146. catalystwan/endpoints/configuration_general_template.py +31 -0
  147. catalystwan/endpoints/configuration_group.py +28 -5
  148. catalystwan/endpoints/configuration_settings.py +90 -1
  149. catalystwan/endpoints/configuration_template_master.py +48 -0
  150. catalystwan/endpoints/endpoints_container.py +79 -19
  151. catalystwan/endpoints/real_time_monitoring/reboot_history.py +1 -3
  152. catalystwan/endpoints/tenant_migration.py +2 -0
  153. catalystwan/exceptions.py +17 -0
  154. catalystwan/integration_tests/base.py +81 -0
  155. catalystwan/integration_tests/feature_profile/sdwan/__init__.py +0 -0
  156. catalystwan/integration_tests/feature_profile/sdwan/policy/__init__.py +0 -0
  157. catalystwan/integration_tests/feature_profile/sdwan/policy/base.py +33 -0
  158. catalystwan/integration_tests/feature_profile/sdwan/policy/test_extended_community.py +33 -0
  159. catalystwan/integration_tests/feature_profile/sdwan/policy/test_security_app_list.py +32 -0
  160. catalystwan/integration_tests/feature_profile/sdwan/test_application_priority.py +433 -0
  161. catalystwan/integration_tests/feature_profile/sdwan/test_cli.py +54 -0
  162. catalystwan/integration_tests/feature_profile/sdwan/test_dns_security.py +106 -0
  163. catalystwan/integration_tests/feature_profile/sdwan/test_other.py +49 -0
  164. catalystwan/integration_tests/feature_profile/sdwan/test_service.py +1078 -0
  165. catalystwan/integration_tests/feature_profile/sdwan/test_sig_security.py +322 -0
  166. catalystwan/integration_tests/feature_profile/sdwan/test_ssl_decryption.py +85 -0
  167. catalystwan/integration_tests/feature_profile/sdwan/test_system.py +368 -0
  168. catalystwan/integration_tests/feature_profile/sdwan/test_tracker.py +127 -0
  169. catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +1698 -0
  170. catalystwan/integration_tests/feature_profile/sdwan/topology/test_topology.py +93 -0
  171. catalystwan/integration_tests/profile_builder/__init__.py +0 -0
  172. catalystwan/integration_tests/profile_builder/test_pb_service.py +197 -0
  173. catalystwan/integration_tests/profile_builder/test_pb_transport.py +226 -0
  174. catalystwan/integration_tests/profile_builder/test_pb_uc_voice.py +277 -0
  175. catalystwan/integration_tests/test_data/__init__.py +117 -0
  176. catalystwan/integration_tests/test_find_template_values.py +7 -18
  177. catalystwan/integration_tests/test_network_hierarchy.py +82 -0
  178. catalystwan/integration_tests/test_settings.py +30 -0
  179. catalystwan/models/common.py +1898 -2
  180. catalystwan/models/configuration/common.py +1 -0
  181. catalystwan/models/configuration/feature_profile/common.py +634 -149
  182. catalystwan/models/configuration/feature_profile/parcel.py +238 -0
  183. catalystwan/models/configuration/feature_profile/sdwan/acl/__init__.py +13 -0
  184. catalystwan/models/configuration/feature_profile/sdwan/acl/ipv4acl.py +298 -0
  185. catalystwan/models/configuration/feature_profile/sdwan/acl/ipv6acl.py +344 -0
  186. catalystwan/models/configuration/feature_profile/sdwan/application_priority/__init__.py +218 -0
  187. catalystwan/models/configuration/feature_profile/sdwan/application_priority/cloud_probe.py +61 -0
  188. catalystwan/models/configuration/feature_profile/sdwan/application_priority/policy_settings.py +31 -0
  189. catalystwan/models/configuration/feature_profile/sdwan/application_priority/qos_policy.py +102 -0
  190. catalystwan/models/configuration/feature_profile/sdwan/application_priority/traffic_policy.py +1057 -0
  191. catalystwan/models/configuration/feature_profile/sdwan/cli/__init__.py +23 -0
  192. catalystwan/models/configuration/feature_profile/sdwan/cli/config.py +18 -0
  193. catalystwan/models/configuration/feature_profile/sdwan/cli/full_config.py +15 -0
  194. catalystwan/models/configuration/feature_profile/sdwan/dns_security/__init__.py +13 -0
  195. catalystwan/models/configuration/feature_profile/sdwan/dns_security/dns.py +110 -0
  196. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/__init__.py +23 -0
  197. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/ngfirewall.py +493 -0
  198. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/policy.py +171 -0
  199. catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py +25 -0
  200. catalystwan/models/configuration/feature_profile/sdwan/other/cybervision.py +44 -0
  201. catalystwan/models/configuration/feature_profile/sdwan/other/thousandeyes.py +147 -0
  202. catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py +110 -0
  203. catalystwan/models/configuration/feature_profile/sdwan/policy_object/__init__.py +62 -48
  204. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py +34 -20
  205. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py +8 -6
  206. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/as_path.py +22 -0
  207. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/color_list.py +7 -5
  208. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/data_prefix.py +13 -4
  209. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/expanded_community_list.py +9 -7
  210. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/extended_community.py +34 -0
  211. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/fowarding_class.py +7 -5
  212. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_network_object.py +15 -0
  213. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_service_object.py +254 -0
  214. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_data_prefix.py +11 -9
  215. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_prefix_list.py +25 -10
  216. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/mirror.py +27 -0
  217. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/network_object_group.py +15 -0
  218. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/object_group.py +15 -0
  219. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/{policier.py → policer.py} +12 -10
  220. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefered_group_color.py +29 -10
  221. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefix_list.py +23 -8
  222. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/service_object_group.py +21 -0
  223. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/sla_class.py +12 -31
  224. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/standard_community.py +16 -10
  225. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/tloc_list.py +8 -7
  226. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/aip.py +64 -0
  227. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/amp.py +79 -0
  228. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/application_list.py +8 -6
  229. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/data_prefix.py +7 -5
  230. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/fqdn.py +7 -5
  231. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/geolocation_list.py +7 -5
  232. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/identity.py +30 -0
  233. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/intrusion_prevention.py +58 -0
  234. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ips_signature.py +7 -5
  235. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/local_domain.py +7 -5
  236. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/object_group.py +72 -0
  237. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/protocol_list.py +7 -5
  238. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/rule_set.py +137 -0
  239. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/scalable_group_tag.py +26 -0
  240. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/security_port.py +21 -11
  241. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption.py +126 -0
  242. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption_profile.py +165 -0
  243. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url.py +15 -10
  244. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url_filtering.py +148 -0
  245. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/zone.py +14 -18
  246. catalystwan/models/configuration/feature_profile/sdwan/routing/__init__.py +26 -0
  247. catalystwan/models/configuration/feature_profile/sdwan/routing/bgp.py +609 -0
  248. catalystwan/models/configuration/feature_profile/sdwan/{service → routing}/ospf.py +55 -47
  249. catalystwan/models/configuration/feature_profile/sdwan/{service → routing}/ospfv3.py +74 -72
  250. catalystwan/models/configuration/feature_profile/sdwan/service/__init__.py +91 -0
  251. catalystwan/models/configuration/feature_profile/sdwan/service/appqoe.py +76 -41
  252. catalystwan/models/configuration/feature_profile/sdwan/service/dhcp_server.py +107 -64
  253. catalystwan/models/configuration/feature_profile/sdwan/service/dual_router_ha.py +26 -0
  254. catalystwan/models/configuration/feature_profile/sdwan/service/eigrp.py +39 -42
  255. catalystwan/models/configuration/feature_profile/sdwan/service/lan/common.py +7 -88
  256. catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py +231 -155
  257. catalystwan/models/configuration/feature_profile/sdwan/service/lan/gre.py +38 -108
  258. catalystwan/models/configuration/feature_profile/sdwan/service/lan/ipsec.py +77 -84
  259. catalystwan/models/configuration/feature_profile/sdwan/service/lan/multilink.py +101 -0
  260. catalystwan/models/configuration/feature_profile/sdwan/service/lan/svi.py +62 -56
  261. catalystwan/models/configuration/feature_profile/sdwan/service/lan/vpn.py +111 -120
  262. catalystwan/models/configuration/feature_profile/sdwan/service/multicast.py +56 -57
  263. catalystwan/models/configuration/feature_profile/sdwan/service/object_tracker.py +15 -21
  264. catalystwan/models/configuration/feature_profile/sdwan/service/route_policy.py +358 -110
  265. catalystwan/models/configuration/feature_profile/sdwan/service/service_chain.py +38 -0
  266. catalystwan/models/configuration/feature_profile/sdwan/service/service_insertion_attachment.py +17 -25
  267. catalystwan/models/configuration/feature_profile/sdwan/service/switchport.py +50 -58
  268. catalystwan/models/configuration/feature_profile/sdwan/service/tracker.py +12 -21
  269. catalystwan/models/configuration/feature_profile/sdwan/service/wireless_lan.py +27 -31
  270. catalystwan/models/configuration/feature_profile/sdwan/sig_security/__init__.py +19 -0
  271. catalystwan/models/configuration/feature_profile/sdwan/sig_security/sig_security.py +379 -0
  272. catalystwan/models/configuration/feature_profile/sdwan/system/__init__.py +59 -0
  273. catalystwan/models/configuration/feature_profile/sdwan/system/aaa.py +58 -10
  274. catalystwan/models/configuration/feature_profile/sdwan/system/banner.py +30 -0
  275. catalystwan/models/configuration/feature_profile/sdwan/system/basic.py +290 -0
  276. catalystwan/models/configuration/feature_profile/sdwan/system/bfd.py +69 -0
  277. catalystwan/models/configuration/feature_profile/sdwan/system/device_access.py +157 -0
  278. catalystwan/models/configuration/feature_profile/sdwan/system/device_access_ipv6.py +157 -0
  279. catalystwan/models/configuration/feature_profile/sdwan/system/global_parcel.py +163 -0
  280. catalystwan/models/configuration/feature_profile/sdwan/system/logging_parcel.py +162 -0
  281. catalystwan/models/configuration/feature_profile/sdwan/system/mrf.py +75 -0
  282. catalystwan/models/configuration/feature_profile/sdwan/system/ntp.py +103 -0
  283. catalystwan/models/configuration/feature_profile/sdwan/system/omp.py +120 -0
  284. catalystwan/models/configuration/feature_profile/sdwan/system/security.py +179 -0
  285. catalystwan/models/configuration/feature_profile/sdwan/system/snmp.py +173 -0
  286. catalystwan/models/configuration/feature_profile/sdwan/topology/__init__.py +29 -0
  287. catalystwan/models/configuration/feature_profile/sdwan/topology/custom_control.py +425 -0
  288. catalystwan/models/configuration/feature_profile/sdwan/topology/hubspoke.py +60 -0
  289. catalystwan/models/configuration/feature_profile/sdwan/topology/mesh.py +23 -0
  290. catalystwan/models/configuration/feature_profile/sdwan/trackers/__init__.py +36 -0
  291. catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker.py +96 -0
  292. catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker_group.py +63 -0
  293. catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +93 -0
  294. catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_controller.py +26 -23
  295. catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_profile.py +71 -0
  296. catalystwan/models/configuration/feature_profile/sdwan/transport/gps.py +37 -0
  297. catalystwan/models/configuration/feature_profile/sdwan/transport/management/ethernet.py +121 -0
  298. catalystwan/models/configuration/feature_profile/sdwan/transport/t1e1controller.py +124 -0
  299. catalystwan/models/configuration/feature_profile/sdwan/transport/vpn.py +285 -0
  300. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/cellular.py +173 -0
  301. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ethernet.py +389 -0
  302. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/gre.py +46 -0
  303. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ipsec.py +137 -0
  304. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/multilink.py +219 -0
  305. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/protocol_over.py +405 -0
  306. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/t1e1serial.py +195 -0
  307. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/__init__.py +62 -0
  308. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/analog_interface.py +436 -0
  309. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/call_routing.py +179 -0
  310. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/digital_interface.py +380 -0
  311. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/dsp_farm.py +193 -0
  312. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/media_profile.py +17 -0
  313. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/server_group.py +51 -0
  314. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/srst.py +86 -0
  315. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/supervisory_disconnect.py +69 -0
  316. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_profile.py +42 -0
  317. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_rule.py +31 -0
  318. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/trunk_group.py +26 -0
  319. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_global.py +55 -0
  320. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_tenant.py +40 -0
  321. catalystwan/models/configuration/network_hierarchy/__init__.py +22 -0
  322. catalystwan/models/configuration/network_hierarchy/cflowd.py +120 -0
  323. catalystwan/models/configuration/network_hierarchy/node.py +88 -0
  324. catalystwan/models/configuration/policy_group.py +74 -0
  325. catalystwan/models/configuration/profile_type.py +1 -6
  326. catalystwan/models/configuration/topology_group.py +52 -0
  327. catalystwan/models/policy/__init__.py +275 -69
  328. catalystwan/models/policy/centralized.py +26 -29
  329. catalystwan/models/policy/{definitions → definition}/access_control_list.py +47 -17
  330. catalystwan/models/policy/{definitions → definition}/access_control_list_ipv6.py +42 -18
  331. catalystwan/models/policy/definition/aip.py +60 -0
  332. catalystwan/models/policy/definition/amp.py +65 -0
  333. catalystwan/models/policy/definition/app_route.py +246 -0
  334. catalystwan/models/policy/definition/cflowd.py +95 -0
  335. catalystwan/models/policy/{definitions → definition}/control.py +48 -25
  336. catalystwan/models/policy/{definitions → definition}/device_access.py +22 -11
  337. catalystwan/models/policy/{definitions → definition}/device_access_ipv6.py +20 -11
  338. catalystwan/models/policy/definition/dial_peer.py +60 -0
  339. catalystwan/models/policy/definition/dns_security.py +130 -0
  340. catalystwan/models/policy/definition/fxo_port.py +63 -0
  341. catalystwan/models/policy/definition/fxs_did_port.py +58 -0
  342. catalystwan/models/policy/definition/fxs_port.py +56 -0
  343. catalystwan/models/policy/{definitions → definition}/hub_and_spoke.py +18 -4
  344. catalystwan/models/policy/definition/intrusion_prevention.py +55 -0
  345. catalystwan/models/policy/{definitions → definition}/mesh.py +13 -1
  346. catalystwan/models/policy/definition/pri_isdn_port.py +48 -0
  347. catalystwan/models/policy/{definitions → definition}/qos_map.py +39 -32
  348. catalystwan/models/policy/{definitions → definition}/rewrite.py +12 -2
  349. catalystwan/models/policy/definition/route_policy.py +187 -0
  350. catalystwan/models/policy/{definitions → definition}/rule_set.py +66 -48
  351. catalystwan/models/policy/{definitions → definition}/security_group.py +38 -14
  352. catalystwan/models/policy/definition/srst_phone_profile.py +37 -0
  353. catalystwan/models/policy/definition/ssl_decryption.py +209 -0
  354. catalystwan/models/policy/definition/ssl_decryption_utd_profile.py +87 -0
  355. catalystwan/models/policy/{definitions → definition}/traffic_data.py +184 -61
  356. catalystwan/models/policy/definition/url_filtering.py +70 -0
  357. catalystwan/models/policy/{definitions → definition}/vpn_membership.py +13 -1
  358. catalystwan/models/policy/definition/vpn_qos_map.py +46 -0
  359. catalystwan/models/policy/{definitions → definition}/zone_based_firewall.py +93 -32
  360. catalystwan/models/policy/list/app.py +44 -0
  361. catalystwan/models/policy/list/app_probe.py +42 -0
  362. catalystwan/models/policy/list/as_path.py +30 -0
  363. catalystwan/models/policy/list/class_map.py +30 -0
  364. catalystwan/models/policy/list/color.py +28 -0
  365. catalystwan/models/policy/list/communities.py +83 -0
  366. catalystwan/models/policy/list/data_ipv6_prefix.py +30 -0
  367. catalystwan/models/policy/list/data_prefix.py +30 -0
  368. catalystwan/models/policy/list/fax_protocol.py +45 -0
  369. catalystwan/models/policy/list/fqdn.py +24 -0
  370. catalystwan/models/policy/list/geo_location.py +33 -0
  371. catalystwan/models/policy/list/identity.py +29 -0
  372. catalystwan/models/policy/list/ips_signature.py +27 -0
  373. catalystwan/models/policy/list/ipv6_prefix.py +33 -0
  374. catalystwan/models/policy/list/local_app.py +45 -0
  375. catalystwan/models/policy/list/local_domain.py +36 -0
  376. catalystwan/models/policy/list/media_profile.py +44 -0
  377. catalystwan/models/policy/list/mirror.py +27 -0
  378. catalystwan/models/policy/list/modem_pass_through.py +27 -0
  379. catalystwan/models/policy/list/policer.py +39 -0
  380. catalystwan/models/policy/list/port.py +33 -0
  381. catalystwan/models/policy/list/preferred_color_group.py +82 -0
  382. catalystwan/models/policy/list/prefix.py +33 -0
  383. catalystwan/models/policy/list/protocol_name.py +26 -0
  384. catalystwan/models/policy/list/region.py +45 -0
  385. catalystwan/models/policy/list/scalable_group_tag.py +30 -0
  386. catalystwan/models/policy/list/site.py +34 -0
  387. catalystwan/models/policy/list/sla.py +77 -0
  388. catalystwan/models/policy/list/supervisory_disconnect.py +62 -0
  389. catalystwan/models/policy/list/threat_grid_api_key.py +32 -0
  390. catalystwan/models/policy/list/tloc.py +32 -0
  391. catalystwan/models/policy/list/translation_profile.py +32 -0
  392. catalystwan/models/policy/list/translation_rules.py +29 -0
  393. catalystwan/models/policy/list/trunkgroup.py +56 -0
  394. catalystwan/models/policy/list/umbrella_data.py +30 -0
  395. catalystwan/models/policy/list/url.py +39 -0
  396. catalystwan/models/policy/list/vpn.py +40 -0
  397. catalystwan/models/policy/list/zone.py +46 -0
  398. catalystwan/models/policy/localized.py +34 -16
  399. catalystwan/models/policy/policy.py +13 -9
  400. catalystwan/models/policy/policy_definition.py +673 -173
  401. catalystwan/models/policy/policy_list.py +38 -27
  402. catalystwan/models/policy/security.py +145 -46
  403. catalystwan/models/policy/voice.py +77 -0
  404. catalystwan/models/settings.py +41 -0
  405. catalystwan/models/templates.py +79 -0
  406. catalystwan/response.py +6 -2
  407. catalystwan/session.py +1 -1
  408. catalystwan/tests/builders/test_report.py +60 -0
  409. catalystwan/tests/builders/uc_voice.py +85 -0
  410. catalystwan/tests/models/__init__.py +0 -0
  411. catalystwan/tests/models/test_digital_interface.py +56 -0
  412. catalystwan/tests/templates/definitions/aaa_basic.json +96 -0
  413. catalystwan/tests/templates/definitions/aaa_complex.json +464 -0
  414. catalystwan/tests/templates/definitions/{iuo.json → cisco_aaa.json} +44 -15
  415. catalystwan/tests/templates/definitions/cisco_aaa_complex.json +361 -0
  416. catalystwan/tests/templates/definitions/cisco_logging_complex.json +268 -0
  417. catalystwan/tests/templates/definitions/cisco_ntp_complex.json +143 -0
  418. catalystwan/tests/templates/definitions/cisco_omp_complex.json +175 -0
  419. catalystwan/tests/templates/definitions/cisco_ospf_complex.json +302 -0
  420. catalystwan/tests/templates/definitions/cisco_sig.json +405 -0
  421. catalystwan/tests/templates/definitions/cisco_snmp_complex.json +258 -0
  422. catalystwan/tests/templates/definitions/cisco_system_complex.json +502 -0
  423. catalystwan/tests/templates/definitions/{Basic_Cisco_VPN_Model.json → cisco_vpn_basic.json} +2 -2
  424. catalystwan/tests/templates/definitions/{complex_cisco_vpn.json → cisco_vpn_complex.json} +27 -12
  425. catalystwan/tests/templates/definitions/cisco_vpn_interface_complex.json +821 -0
  426. catalystwan/tests/templates/definitions/omp_vsmart_1.json +26 -0
  427. catalystwan/tests/templates/definitions/{omp_2.json → omp_vsmart_2.json} +16 -2
  428. catalystwan/tests/templates/definitions/{omp_3.json → omp_vsmart_3.json} +16 -2
  429. catalystwan/tests/templates/definitions/omp_vsmart_complex.json +73 -0
  430. catalystwan/tests/templates/definitions/security_vsmart_complex.json +24 -0
  431. catalystwan/tests/templates/definitions/system_vsmart_complex.json +193 -0
  432. catalystwan/tests/templates/definitions/vpn_vsmart_basic.json +17 -0
  433. catalystwan/tests/templates/definitions/vpn_vsmart_complex.json +179 -0
  434. catalystwan/tests/templates/definitions/vpn_vsmart_interface_basic.json +42 -0
  435. catalystwan/tests/templates/definitions/vpn_vsmart_interface_complex.json +208 -0
  436. catalystwan/tests/templates/models/__init__.py +46 -13
  437. catalystwan/tests/templates/models/aaa.py +106 -0
  438. catalystwan/tests/templates/models/cisco_aaa.py +81 -48
  439. catalystwan/tests/templates/models/cisco_banner.py +2 -2
  440. catalystwan/tests/templates/models/cisco_bfd.py +4 -6
  441. catalystwan/tests/templates/models/cisco_logging.py +65 -0
  442. catalystwan/tests/templates/models/cisco_ntp.py +17 -0
  443. catalystwan/tests/templates/models/cisco_omp.py +37 -0
  444. catalystwan/tests/templates/models/cisco_ospf.py +60 -0
  445. catalystwan/tests/templates/models/cisco_secure_internet_gateway.py +95 -0
  446. catalystwan/tests/templates/models/cisco_snmp.py +40 -0
  447. catalystwan/tests/templates/models/cisco_system.py +108 -3
  448. catalystwan/tests/templates/models/cisco_vpn.py +42 -72
  449. catalystwan/tests/templates/models/cisco_vpn_interface.py +200 -0
  450. catalystwan/tests/templates/models/omp_vsmart.py +28 -8
  451. catalystwan/tests/templates/models/security_vsmart.py +11 -0
  452. catalystwan/tests/templates/models/system_vsmart.py +37 -0
  453. catalystwan/tests/templates/models/vpn_vsmart.py +32 -0
  454. catalystwan/tests/templates/models/vpn_vsmart_interface.py +54 -0
  455. catalystwan/tests/templates/schemas/aaa.json +1096 -0
  456. catalystwan/tests/templates/schemas/cedge_aaa.json +1 -1
  457. catalystwan/tests/templates/schemas/cisco_logging.json +577 -0
  458. catalystwan/tests/templates/schemas/cisco_ntp.json +265 -0
  459. catalystwan/tests/templates/schemas/cisco_omp.json +479 -0
  460. catalystwan/tests/templates/schemas/cisco_ospf.json +908 -0
  461. catalystwan/tests/templates/schemas/cisco_secure_internet_gateway.json +1520 -0
  462. catalystwan/tests/templates/schemas/cisco_snmp.json +561 -0
  463. catalystwan/tests/templates/schemas/cisco_system.json +242 -0
  464. catalystwan/tests/templates/schemas/cisco_vpn.json +53 -1
  465. catalystwan/tests/templates/schemas/cisco_vpn_interface.json +3348 -0
  466. catalystwan/tests/templates/schemas/omp-vsmart.json +20 -0
  467. catalystwan/tests/templates/schemas/security-vsmart.json +58 -0
  468. catalystwan/tests/templates/schemas/system-vsmart.json +2585 -0
  469. catalystwan/tests/templates/schemas/vpn-vsmart-interface.json +859 -0
  470. catalystwan/tests/templates/schemas/vpn-vsmart.json +445 -0
  471. catalystwan/tests/templates/test_chose_model.py +6 -10
  472. catalystwan/tests/templates/test_deserialize_model.py +4 -4
  473. catalystwan/tests/templates/test_find_template_values.py +229 -0
  474. catalystwan/tests/templates/test_find_template_values_2.py +193 -0
  475. catalystwan/tests/templates/test_serialize_model.py +1 -2
  476. catalystwan/tests/test_cli_template.py +8 -9
  477. catalystwan/tests/test_endpoints.py +42 -11
  478. catalystwan/tests/test_feature_profile_api.py +282 -0
  479. catalystwan/tests/test_models_common.py +53 -0
  480. catalystwan/tests/test_templates.py +16 -19
  481. catalystwan/utils/feature_template/find_template_values.py +17 -4
  482. catalystwan/utils/model.py +45 -0
  483. catalystwan/utils/persona.py +5 -0
  484. catalystwan/utils/type_check.py +22 -0
  485. catalystwan/workflows/backup_restore_device_templates.py +467 -0
  486. catalystwan/workflows/tenant_migration.py +1 -1
  487. {catalystwan-0.41.2.dist-info → catalystwan-0.41.2.dev0.dist-info}/METADATA +20 -1
  488. catalystwan-0.41.2.dev0.dist-info/RECORD +636 -0
  489. catalystwan/ENDPOINTS.md +0 -611
  490. catalystwan/api/configuration_groups/parcels/cellular_controller.py +0 -33
  491. catalystwan/api/templates/device_template/device_template_payload.json.j2 +0 -19
  492. catalystwan/models/configuration/config_migration.py +0 -36
  493. catalystwan/models/configuration/feature_profile/sdwan/management/vpn.py +0 -26
  494. catalystwan/models/configuration/feature_profile/sdwan/service/acl.py +0 -409
  495. catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py +0 -288
  496. catalystwan/models/policy/lists.py +0 -330
  497. catalystwan/models/policy/lists_entries.py +0 -444
  498. catalystwan/tests/templates/definitions/complex_aaa.json +0 -277
  499. catalystwan/tests/templates/definitions/omp_1.json +0 -11
  500. catalystwan/utils/timezone.py +0 -422
  501. catalystwan-0.41.2.dist-info/RECORD +0 -353
  502. /catalystwan/tests/templates/definitions/{banner_1.json → cisco_banner.json} +0 -0
  503. {catalystwan-0.41.2.dist-info → catalystwan-0.41.2.dev0.dist-info}/LICENSE +0 -0
  504. {catalystwan-0.41.2.dist-info → catalystwan-0.41.2.dev0.dist-info}/WHEEL +0 -0
@@ -4,11 +4,14 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.definitions.vpn_membership import VPNMembershipPolicy
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyDefinitionEndpoints
8
+ from catalystwan.models.policy.definition.vpn_membership import (
9
+ VPNMembershipPolicy,
10
+ VPNMembershipPolicyEditPayload,
11
+ VPNMembershipPolicyGetResponse,
12
+ )
8
13
  from catalystwan.models.policy.policy_definition import (
9
14
  PolicyDefinitionEditResponse,
10
- PolicyDefinitionEndpoints,
11
- PolicyDefinitionGetResponse,
12
15
  PolicyDefinitionId,
13
16
  PolicyDefinitionInfo,
14
17
  PolicyDefinitionPreview,
@@ -16,14 +19,6 @@ from catalystwan.models.policy.policy_definition import (
16
19
  from catalystwan.typed_list import DataSequence
17
20
 
18
21
 
19
- class VPNMembershipPolicyEditPayload(VPNMembershipPolicy, PolicyDefinitionId):
20
- pass
21
-
22
-
23
- class VPNMembershipPolicyGetResponse(VPNMembershipPolicy, PolicyDefinitionGetResponse):
24
- pass
25
-
26
-
27
22
  class ConfigurationPolicyVPNMembershipGroupDefinition(APIEndpoints, PolicyDefinitionEndpoints):
28
23
  @post("/template/policy/definition/vpnmembershipgroup")
29
24
  def create_policy_definition(self, payload: VPNMembershipPolicy) -> PolicyDefinitionId:
@@ -0,0 +1,50 @@
1
+ # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
+
3
+ # mypy: disable-error-code="empty-body"
4
+
5
+ from uuid import UUID
6
+
7
+ from catalystwan.endpoints import APIEndpoints, delete, get, post, put
8
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyDefinitionEndpoints
9
+ from catalystwan.models.policy.definition.vpn_qos_map import (
10
+ VPNQoSMapPolicy,
11
+ VPNQoSMapPolicyEditPayload,
12
+ VPNQoSMapPolicyGetResponse,
13
+ )
14
+ from catalystwan.models.policy.policy_definition import (
15
+ PolicyDefinitionEditResponse,
16
+ PolicyDefinitionId,
17
+ PolicyDefinitionInfo,
18
+ PolicyDefinitionPreview,
19
+ )
20
+ from catalystwan.typed_list import DataSequence
21
+
22
+
23
+ class ConfigurationPolicyVPNQoSMapDefinition(APIEndpoints, PolicyDefinitionEndpoints):
24
+ @post("/template/policy/definition/vpnqosmap")
25
+ def create_policy_definition(self, payload: VPNQoSMapPolicy) -> PolicyDefinitionId:
26
+ ...
27
+
28
+ @delete("/template/policy/definition/vpnqosmap/{id}")
29
+ def delete_policy_definition(self, id: UUID) -> None:
30
+ ...
31
+
32
+ @put("/template/policy/definition/vpnqosmap/{id}")
33
+ def edit_policy_definition(self, id: UUID, payload: VPNQoSMapPolicyEditPayload) -> PolicyDefinitionEditResponse:
34
+ ...
35
+
36
+ @get("/template/policy/definition/vpnqosmap", "data")
37
+ def get_definitions(self) -> DataSequence[PolicyDefinitionInfo]:
38
+ ...
39
+
40
+ @get("/template/policy/definition/vpnqosmap/{id}")
41
+ def get_policy_definition(self, id: UUID) -> VPNQoSMapPolicyGetResponse:
42
+ ...
43
+
44
+ @post("/template/policy/definition/vpnqosmap/preview")
45
+ def preview_policy_definition(self, payload: VPNQoSMapPolicy) -> PolicyDefinitionPreview:
46
+ ...
47
+
48
+ @get("/template/policy/definition/vpnqosmap/preview/{id}")
49
+ def preview_policy_definition_by_id(self, id: UUID) -> PolicyDefinitionPreview:
50
+ ...
@@ -4,11 +4,14 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.definitions.zone_based_firewall import ZoneBasedFWPolicy
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyDefinitionEndpoints
8
+ from catalystwan.models.policy.definition.zone_based_firewall import (
9
+ ZoneBasedFWPolicy,
10
+ ZoneBasedFWPolicyEditPayload,
11
+ ZoneBasedFWPolicyGetResponse,
12
+ )
8
13
  from catalystwan.models.policy.policy_definition import (
9
14
  PolicyDefinitionEditResponse,
10
- PolicyDefinitionEndpoints,
11
- PolicyDefinitionGetResponse,
12
15
  PolicyDefinitionId,
13
16
  PolicyDefinitionInfo,
14
17
  PolicyDefinitionPreview,
@@ -16,14 +19,6 @@ from catalystwan.models.policy.policy_definition import (
16
19
  from catalystwan.typed_list import DataSequence
17
20
 
18
21
 
19
- class ZoneBasedFWPolicyEditPayload(ZoneBasedFWPolicy, PolicyDefinitionId):
20
- pass
21
-
22
-
23
- class ZoneBasedFWPolicyGetResponse(ZoneBasedFWPolicy, PolicyDefinitionGetResponse):
24
- pass
25
-
26
-
27
22
  class ConfigurationPolicyZoneBasedFirewallDefinition(APIEndpoints, PolicyDefinitionEndpoints):
28
23
  @post("/template/policy/definition/zonebasedfw")
29
24
  def create_policy_definition(self, payload: ZoneBasedFWPolicy) -> PolicyDefinitionId:
@@ -4,25 +4,12 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.lists import AppList
8
- from catalystwan.models.policy.policy_list import (
9
- InfoTag,
10
- PolicyListEndpoints,
11
- PolicyListId,
12
- PolicyListInfo,
13
- PolicyListPreview,
14
- )
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.app import AppList, AppListEditPayload, AppListInfo
9
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
15
10
  from catalystwan.typed_list import DataSequence
16
11
 
17
12
 
18
- class AppListEditPayload(AppList, PolicyListId):
19
- pass
20
-
21
-
22
- class AppListInfo(AppList, PolicyListInfo):
23
- pass
24
-
25
-
26
13
  class ConfigurationPolicyApplicationList(APIEndpoints, PolicyListEndpoints):
27
14
  @post("/template/policy/list/app")
28
15
  def create_policy_list(self, payload: AppList) -> PolicyListId:
@@ -4,25 +4,16 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.lists import AppProbeClassList
8
- from catalystwan.models.policy.policy_list import (
9
- InfoTag,
10
- PolicyListEndpoints,
11
- PolicyListId,
12
- PolicyListInfo,
13
- PolicyListPreview,
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.app_probe import (
9
+ AppProbeClassList,
10
+ AppProbeClassListEditPayload,
11
+ AppProbeClassListInfo,
14
12
  )
13
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
15
14
  from catalystwan.typed_list import DataSequence
16
15
 
17
16
 
18
- class AppProbeClassListEditPayload(AppProbeClassList, PolicyListId):
19
- pass
20
-
21
-
22
- class AppProbeClassListInfo(AppProbeClassList, PolicyListInfo):
23
- pass
24
-
25
-
26
17
  class ConfigurationPolicyAppProbeClassList(APIEndpoints, PolicyListEndpoints):
27
18
  @post("/template/policy/list/appprobe")
28
19
  def create_policy_list(self, payload: AppProbeClassList) -> PolicyListId:
@@ -4,25 +4,12 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.lists import ASPathList
8
- from catalystwan.models.policy.policy_list import (
9
- InfoTag,
10
- PolicyListEndpoints,
11
- PolicyListId,
12
- PolicyListInfo,
13
- PolicyListPreview,
14
- )
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.as_path import ASPathList, ASPathListEditPayload, ASPathListInfo
9
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
15
10
  from catalystwan.typed_list import DataSequence
16
11
 
17
12
 
18
- class ASPathListEditPayload(ASPathList, PolicyListId):
19
- pass
20
-
21
-
22
- class ASPathListInfo(ASPathList, PolicyListInfo):
23
- pass
24
-
25
-
26
13
  class ConfigurationPolicyASPathList(APIEndpoints, PolicyListEndpoints):
27
14
  @post("/template/policy/list/aspath")
28
15
  def create_policy_list(self, payload: ASPathList) -> PolicyListId:
@@ -4,25 +4,12 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.lists import ClassMapList
8
- from catalystwan.models.policy.policy_list import (
9
- InfoTag,
10
- PolicyListEndpoints,
11
- PolicyListId,
12
- PolicyListInfo,
13
- PolicyListPreview,
14
- )
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.class_map import ClassMapList, ClassMapListEditPayload, ClassMapListInfo
9
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
15
10
  from catalystwan.typed_list import DataSequence
16
11
 
17
12
 
18
- class ClassMapListEditPayload(ClassMapList, PolicyListId):
19
- pass
20
-
21
-
22
- class ClassMapListInfo(ClassMapList, PolicyListInfo):
23
- pass
24
-
25
-
26
13
  class ConfigurationPolicyForwardingClassList(APIEndpoints, PolicyListEndpoints):
27
14
  @post("/template/policy/list/class")
28
15
  def create_policy_list(self, payload: ClassMapList) -> PolicyListId:
@@ -4,25 +4,12 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.lists import ColorList
8
- from catalystwan.models.policy.policy_list import (
9
- InfoTag,
10
- PolicyListEndpoints,
11
- PolicyListId,
12
- PolicyListInfo,
13
- PolicyListPreview,
14
- )
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.color import ColorList, ColorListEditPayload, ColorListInfo
9
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
15
10
  from catalystwan.typed_list import DataSequence
16
11
 
17
12
 
18
- class ColorListEditPayload(ColorList, PolicyListId):
19
- pass
20
-
21
-
22
- class ColorListInfo(ColorList, PolicyListInfo):
23
- pass
24
-
25
-
26
13
  class ConfigurationPolicyColorList(APIEndpoints, PolicyListEndpoints):
27
14
  @post("/template/policy/list/color")
28
15
  def create_policy_list(self, payload: ColorList) -> PolicyListId:
@@ -4,25 +4,12 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.lists import CommunityList
8
- from catalystwan.models.policy.policy_list import (
9
- InfoTag,
10
- PolicyListEndpoints,
11
- PolicyListId,
12
- PolicyListInfo,
13
- PolicyListPreview,
14
- )
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.communities import CommunityList, CommunityListEditPayload, CommunityListInfo
9
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
15
10
  from catalystwan.typed_list import DataSequence
16
11
 
17
12
 
18
- class CommunityListEditPayload(CommunityList, PolicyListId):
19
- pass
20
-
21
-
22
- class CommunityListInfo(CommunityList, PolicyListInfo):
23
- pass
24
-
25
-
26
13
  class ConfigurationPolicyCommunityList(APIEndpoints, PolicyListEndpoints):
27
14
  @post("/template/policy/list/community")
28
15
  def create_policy_list(self, payload: CommunityList) -> PolicyListId:
@@ -4,25 +4,16 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.lists import DataIPv6PrefixList
8
- from catalystwan.models.policy.policy_list import (
9
- InfoTag,
10
- PolicyListEndpoints,
11
- PolicyListId,
12
- PolicyListInfo,
13
- PolicyListPreview,
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.data_ipv6_prefix import (
9
+ DataIPv6PrefixList,
10
+ DataIPv6PrefixListEditPayload,
11
+ DataIPv6PrefixListInfo,
14
12
  )
13
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
15
14
  from catalystwan.typed_list import DataSequence
16
15
 
17
16
 
18
- class DataIPv6PrefixListEditPayload(DataIPv6PrefixList, PolicyListId):
19
- pass
20
-
21
-
22
- class DataIPv6PrefixListInfo(DataIPv6PrefixList, PolicyListInfo):
23
- pass
24
-
25
-
26
17
  class ConfigurationPolicyDataIPv6PrefixList(APIEndpoints, PolicyListEndpoints):
27
18
  @post("/template/policy/list/dataipv6prefix")
28
19
  def create_policy_list(self, payload: DataIPv6PrefixList) -> PolicyListId:
@@ -4,25 +4,12 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.lists import DataPrefixList
8
- from catalystwan.models.policy.policy_list import (
9
- InfoTag,
10
- PolicyListEndpoints,
11
- PolicyListId,
12
- PolicyListInfo,
13
- PolicyListPreview,
14
- )
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.data_prefix import DataPrefixList, DataPrefixListEditPayload, DataPrefixListInfo
9
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
15
10
  from catalystwan.typed_list import DataSequence
16
11
 
17
12
 
18
- class DataPrefixListEditPayload(DataPrefixList, PolicyListId):
19
- pass
20
-
21
-
22
- class DataPrefixListInfo(DataPrefixList, PolicyListInfo):
23
- pass
24
-
25
-
26
13
  class ConfigurationPolicyDataPrefixList(APIEndpoints, PolicyListEndpoints):
27
14
  @post("/template/policy/list/dataprefix")
28
15
  def create_policy_list(self, payload: DataPrefixList) -> PolicyListId:
@@ -4,25 +4,16 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.lists import ExpandedCommunityList
8
- from catalystwan.models.policy.policy_list import (
9
- InfoTag,
10
- PolicyListEndpoints,
11
- PolicyListId,
12
- PolicyListInfo,
13
- PolicyListPreview,
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.communities import (
9
+ ExpandedCommunityList,
10
+ ExpandedCommunityListEditPayload,
11
+ ExpandedCommunityListInfo,
14
12
  )
13
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
15
14
  from catalystwan.typed_list import DataSequence
16
15
 
17
16
 
18
- class ExpandedCommunityListEditPayload(ExpandedCommunityList, PolicyListId):
19
- pass
20
-
21
-
22
- class ExpandedCommunityListInfo(ExpandedCommunityList, PolicyListInfo):
23
- pass
24
-
25
-
26
17
  class ConfigurationPolicyExpandedCommunityList(APIEndpoints, PolicyListEndpoints):
27
18
  @post("/template/policy/list/expandedcommunity")
28
19
  def create_policy_list(self, payload: ExpandedCommunityList) -> PolicyListId:
@@ -0,0 +1,52 @@
1
+ # Copyright 2023 Cisco Systems, Inc. and its affiliates
2
+
3
+ # mypy: disable-error-code="empty-body"
4
+ from uuid import UUID
5
+
6
+ from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.communities import (
9
+ ExtendedCommunityList,
10
+ ExtendedCommunityListEditPayload,
11
+ ExtendedCommunityListInfo,
12
+ )
13
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
14
+ from catalystwan.typed_list import DataSequence
15
+
16
+
17
+ class ConfigurationPolicyExtendedCommunityList(APIEndpoints, PolicyListEndpoints):
18
+ @post("/template/policy/list/extcommunity")
19
+ def create_policy_list(self, payload: ExtendedCommunityList) -> PolicyListId:
20
+ ...
21
+
22
+ @delete("/template/policy/list/extcommunity/{id}")
23
+ def delete_policy_list(self, id: UUID) -> None:
24
+ ...
25
+
26
+ @delete("/template/policy/list/extcommunity")
27
+ def delete_policy_lists_with_info_tag(self, params: InfoTag) -> None:
28
+ ...
29
+
30
+ @put("/template/policy/list/extcommunity/{id}")
31
+ def edit_policy_list(self, id: UUID, payload: ExtendedCommunityListEditPayload) -> None:
32
+ ...
33
+
34
+ @get("/template/policy/list/extcommunity/{id}")
35
+ def get_lists_by_id(self, id: UUID) -> ExtendedCommunityListInfo:
36
+ ...
37
+
38
+ @get("/template/policy/list/extcommunity", "data")
39
+ def get_policy_lists(self) -> DataSequence[ExtendedCommunityListInfo]:
40
+ ...
41
+
42
+ @get("/template/policy/list/extcommunity/filtered", "data")
43
+ def get_policy_lists_with_info_tag(self, params: InfoTag) -> DataSequence[ExtendedCommunityListInfo]:
44
+ ...
45
+
46
+ @post("/template/policy/list/extcommunity/preview")
47
+ def preview_policy_list(self, payload: ExtendedCommunityList) -> PolicyListPreview:
48
+ ...
49
+
50
+ @get("/template/policy/list/extcommunity/preview/{id}")
51
+ def preview_policy_list_by_id(self, id: UUID) -> PolicyListPreview:
52
+ ...
@@ -0,0 +1,48 @@
1
+ # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
+
3
+ # mypy: disable-error-code="empty-body"
4
+ from uuid import UUID
5
+
6
+ from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.fax_protocol import FaxProtocolList, FaxProtocolListEditPayload, FaxProtocolListInfo
9
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
10
+ from catalystwan.typed_list import DataSequence
11
+
12
+
13
+ class ConfigurationPolicyFaxProtocolList(APIEndpoints, PolicyListEndpoints):
14
+ @post("/template/policy/list/faxprotocol")
15
+ def create_policy_list(self, payload: FaxProtocolList) -> PolicyListId:
16
+ ...
17
+
18
+ @delete("/template/policy/list/faxprotocol/{id}")
19
+ def delete_policy_list(self, id: UUID) -> None:
20
+ ...
21
+
22
+ @delete("/template/policy/list/faxprotocol")
23
+ def delete_policy_lists_with_info_tag(self, params: InfoTag) -> None:
24
+ ...
25
+
26
+ @put("/template/policy/list/faxprotocol/{id}")
27
+ def edit_policy_list(self, id: UUID, payload: FaxProtocolListEditPayload) -> None:
28
+ ...
29
+
30
+ @get("/template/policy/list/faxprotocol/{id}")
31
+ def get_lists_by_id(self, id: UUID) -> FaxProtocolListInfo:
32
+ ...
33
+
34
+ @get("/template/policy/list/faxprotocol", "data")
35
+ def get_policy_lists(self) -> DataSequence[FaxProtocolListInfo]:
36
+ ...
37
+
38
+ @get("/template/policy/list/faxprotocol/filtered", "data")
39
+ def get_policy_lists_with_info_tag(self, params: InfoTag) -> DataSequence[FaxProtocolListInfo]:
40
+ ...
41
+
42
+ @post("/template/policy/list/faxprotocol/preview")
43
+ def preview_policy_list(self, payload: FaxProtocolList) -> PolicyListPreview:
44
+ ...
45
+
46
+ @get("/template/policy/list/faxprotocol/preview/{id}")
47
+ def preview_policy_list_by_id(self, id: UUID) -> PolicyListPreview:
48
+ ...
@@ -4,25 +4,12 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.lists import FQDNList
8
- from catalystwan.models.policy.policy_list import (
9
- InfoTag,
10
- PolicyListEndpoints,
11
- PolicyListId,
12
- PolicyListInfo,
13
- PolicyListPreview,
14
- )
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.fqdn import FQDNList, FQDNListEditPayload, FQDNListInfo
9
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
15
10
  from catalystwan.typed_list import DataSequence
16
11
 
17
12
 
18
- class FQDNListEditPayload(FQDNList, PolicyListId):
19
- pass
20
-
21
-
22
- class FQDNListInfo(FQDNList, PolicyListInfo):
23
- pass
24
-
25
-
26
13
  class ConfigurationPolicyFQDNList(APIEndpoints, PolicyListEndpoints):
27
14
  @post("/template/policy/list/fqdn")
28
15
  def create_policy_list(self, payload: FQDNList) -> PolicyListId:
@@ -4,25 +4,12 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.lists import GeoLocationList
8
- from catalystwan.models.policy.policy_list import (
9
- InfoTag,
10
- PolicyListEndpoints,
11
- PolicyListId,
12
- PolicyListInfo,
13
- PolicyListPreview,
14
- )
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.geo_location import GeoLocationList, GeoLocationListEditPayload, GeoLocationListInfo
9
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
15
10
  from catalystwan.typed_list import DataSequence
16
11
 
17
12
 
18
- class GeoLocationListEditPayload(GeoLocationList, PolicyListId):
19
- pass
20
-
21
-
22
- class GeoLocationListInfo(GeoLocationList, PolicyListInfo):
23
- pass
24
-
25
-
26
13
  class ConfigurationPolicyGeoLocationList(APIEndpoints, PolicyListEndpoints):
27
14
  @post("/template/policy/list/geolocation")
28
15
  def create_policy_list(self, payload: GeoLocationList) -> PolicyListId:
@@ -0,0 +1,48 @@
1
+ # Copyright 2023 Cisco Systems, Inc. and its affiliates
2
+
3
+ # mypy: disable-error-code="empty-body"
4
+ from uuid import UUID
5
+
6
+ from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.identity import IdentityList, IdentityListEditPayload, IdentityListInfo
9
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
10
+ from catalystwan.typed_list import DataSequence
11
+
12
+
13
+ class ConfigurationPolicyIdentityList(APIEndpoints, PolicyListEndpoints):
14
+ @post("/template/policy/list/identity")
15
+ def create_policy_list(self, payload: IdentityList) -> PolicyListId:
16
+ ...
17
+
18
+ @delete("/template/policy/list/identity/{id}")
19
+ def delete_policy_list(self, id: UUID) -> None:
20
+ ...
21
+
22
+ @delete("/template/policy/list/identity")
23
+ def delete_policy_lists_with_info_tag(self, params: InfoTag) -> None:
24
+ ...
25
+
26
+ @put("/template/policy/list/identity/{id}")
27
+ def edit_policy_list(self, id: UUID, payload: IdentityListEditPayload) -> None:
28
+ ...
29
+
30
+ @get("/template/policy/list/identity/{id}")
31
+ def get_lists_by_id(self, id: UUID) -> IdentityListInfo:
32
+ ...
33
+
34
+ @get("/template/policy/list/identity", "data")
35
+ def get_policy_lists(self) -> DataSequence[IdentityListInfo]:
36
+ ...
37
+
38
+ @get("/template/policy/list/identity/filtered", "data")
39
+ def get_policy_lists_with_info_tag(self, params: InfoTag) -> DataSequence[IdentityListInfo]:
40
+ ...
41
+
42
+ @post("/template/policy/list/identity/preview")
43
+ def preview_policy_list(self, payload: IdentityList) -> PolicyListPreview:
44
+ ...
45
+
46
+ @get("/template/policy/list/identity/preview/{id}")
47
+ def preview_policy_list_by_id(self, id: UUID) -> PolicyListPreview:
48
+ ...
@@ -4,25 +4,16 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.lists import IPSSignatureList
8
- from catalystwan.models.policy.policy_list import (
9
- InfoTag,
10
- PolicyListEndpoints,
11
- PolicyListId,
12
- PolicyListInfo,
13
- PolicyListPreview,
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.ips_signature import (
9
+ IPSSignatureList,
10
+ IPSSignatureListEditPayload,
11
+ IPSSignatureListInfo,
14
12
  )
13
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
15
14
  from catalystwan.typed_list import DataSequence
16
15
 
17
16
 
18
- class IPSSignatureListEditPayload(IPSSignatureList, PolicyListId):
19
- pass
20
-
21
-
22
- class IPSSignatureListInfo(IPSSignatureList, PolicyListInfo):
23
- pass
24
-
25
-
26
17
  class ConfigurationPolicyIPSSignatureList(APIEndpoints, PolicyListEndpoints):
27
18
  @post("/template/policy/list/ipssignature")
28
19
  def create_policy_list(self, payload: IPSSignatureList) -> PolicyListId:
@@ -4,25 +4,12 @@
4
4
  from uuid import UUID
5
5
 
6
6
  from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.lists import IPv6PrefixList
8
- from catalystwan.models.policy.policy_list import (
9
- InfoTag,
10
- PolicyListEndpoints,
11
- PolicyListId,
12
- PolicyListInfo,
13
- PolicyListPreview,
14
- )
7
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
+ from catalystwan.models.policy.list.ipv6_prefix import IPv6PrefixList, IPv6PrefixListEditPayload, IPv6PrefixListInfo
9
+ from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
15
10
  from catalystwan.typed_list import DataSequence
16
11
 
17
12
 
18
- class IPv6PrefixListEditPayload(IPv6PrefixList, PolicyListId):
19
- pass
20
-
21
-
22
- class IPv6PrefixListInfo(IPv6PrefixList, PolicyListInfo):
23
- pass
24
-
25
-
26
13
  class ConfigurationPolicyIPv6PrefixList(APIEndpoints, PolicyListEndpoints):
27
14
  @post("/template/policy/list/ipv6prefix")
28
15
  def create_policy_list(self, payload: IPv6PrefixList) -> PolicyListId: