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,154 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- # mypy: disable-error-code="empty-body"
4
- from typing import Optional, Union
5
- from uuid import UUID
6
-
7
- from catalystwan.endpoints import APIEndpoints, delete, get, post, put, versions
8
- from catalystwan.models.configuration.feature_profile.common import (
9
- FeatureProfileCreationPayload,
10
- FeatureProfileCreationResponse,
11
- FeatureProfileInfo,
12
- GetFeatureProfilesParams,
13
- )
14
- from catalystwan.models.configuration.feature_profile.parcel import (
15
- Parcel,
16
- ParcelAssociationPayload,
17
- ParcelCreationResponse,
18
- )
19
- from catalystwan.models.configuration.feature_profile.sdwan.routing import AnyRoutingParcel
20
- from catalystwan.models.configuration.feature_profile.sdwan.service import (
21
- AnyLanVpnInterfaceParcel,
22
- AnyServiceParcel,
23
- AnyTopLevelServiceParcel,
24
- )
25
- from catalystwan.typed_list import DataSequence
26
-
27
-
28
- class ServiceFeatureProfile(APIEndpoints):
29
- @versions(supported_versions=(">=20.9"), raises=False)
30
- @get("/v1/feature-profile/sdwan/service")
31
- def get_sdwan_service_feature_profiles(
32
- self, payload: Optional[GetFeatureProfilesParams]
33
- ) -> DataSequence[FeatureProfileInfo]:
34
- ...
35
-
36
- @versions(supported_versions=(">=20.9"), raises=False)
37
- @post("/v1/feature-profile/sdwan/service")
38
- def create_sdwan_service_feature_profile(
39
- self, payload: FeatureProfileCreationPayload
40
- ) -> FeatureProfileCreationResponse:
41
- ...
42
-
43
- @versions(supported_versions=(">=20.9"), raises=False)
44
- @delete("/v1/feature-profile/sdwan/service/{profile_uuid}")
45
- def delete_sdwan_service_feature_profile(self, profile_uuid: UUID) -> None:
46
- ...
47
-
48
- @versions(supported_versions=(">=20.9"), raises=False)
49
- @post("/v1/feature-profile/sdwan/service/{profile_uuid}/{parcel_type}")
50
- def create_service_parcel(
51
- self, profile_uuid: UUID, parcel_type: str, payload: Union[AnyTopLevelServiceParcel, AnyRoutingParcel]
52
- ) -> ParcelCreationResponse:
53
- ...
54
-
55
- @versions(supported_versions=(">=20.9"), raises=False)
56
- @delete("/v1/feature-profile/sdwan/service/{profile_uuid}/{parcel_type}/{parcel_uuid}")
57
- def delete_service_parcel(self, profile_uuid: UUID, parcel_type: str, parcel_uuid: UUID) -> None:
58
- ...
59
-
60
- @versions(supported_versions=(">=20.9"), raises=False)
61
- @delete("/v1/feature-profile/sdwan/service/{profile_uuid}/lan/vpn/{vpn_uuid}/{parcel_type}/{parcel_uuid}")
62
- def delete_lan_vpn_sub_parcel(
63
- self, profile_uuid: UUID, vpn_uuid: UUID, parcel_type: str, parcel_uuid: UUID
64
- ) -> None:
65
- ...
66
-
67
- @versions(supported_versions=(">=20.9"), raises=False)
68
- @post("/v1/feature-profile/sdwan/service/{profile_uuid}/lan/vpn/{vpn_uuid}/{parcel_type}")
69
- def create_lan_vpn_sub_parcel(
70
- self, profile_uuid: UUID, vpn_uuid: UUID, parcel_type: str, payload: AnyLanVpnInterfaceParcel
71
- ) -> ParcelCreationResponse:
72
- ...
73
-
74
- @versions(supported_versions=(">=20.9"), raises=False)
75
- @post("/v1/feature-profile/sdwan/service/{profile_uuid}/lan/vpn/{vpn_uuid}/{parcel_type}")
76
- def associate_parcel_with_vpn(
77
- self, profile_uuid: UUID, vpn_uuid: UUID, parcel_type: str, payload: ParcelAssociationPayload
78
- ) -> ParcelCreationResponse:
79
- ...
80
-
81
- # Ethernet, IPSec, SVI
82
- @versions(supported_versions=(">=20.9"), raises=False)
83
- @post(
84
- "/v1/feature-profile/sdwan/service/{profile_uuid}/lan/vpn/"
85
- "{vpn_uuid}/{interface_parcel_type}/{interface_uuid}/dhcp-server"
86
- )
87
- def associate_dhcp_server_with_vpn_interface(
88
- self,
89
- profile_uuid: UUID,
90
- vpn_uuid: UUID,
91
- interface_parcel_type: str,
92
- interface_uuid: UUID,
93
- payload: ParcelAssociationPayload,
94
- ) -> ParcelCreationResponse:
95
- ...
96
-
97
- # Tracker, TrackerGroup, IPv6Tracker, TrackerGroupIPv6
98
- @versions(supported_versions=(">=20.9"), raises=False)
99
- @post(
100
- "/v1/feature-profile/sdwan/service/{profile_uuid}/lan/vpn/"
101
- "{vpn_uuid}/{interface_parcel_type}/{interface_uuid}/{tracker_type}"
102
- )
103
- def associate_tracker_with_vpn_interface(
104
- self,
105
- profile_uuid: UUID,
106
- vpn_uuid: UUID,
107
- interface_parcel_type: str,
108
- interface_uuid: UUID,
109
- tracker_type: str,
110
- payload: ParcelAssociationPayload,
111
- ) -> ParcelCreationResponse:
112
- ...
113
-
114
- @versions(supported_versions=(">=20.9"), raises=False)
115
- @post("/v1/feature-profile/sdwan/service/{profile_id}/lan/vpn/{vpn_id}/{parcel_type}")
116
- def associate_with_vpn(
117
- self, profile_id: UUID, vpn_id: UUID, parcel_type: str, payload: ParcelAssociationPayload
118
- ) -> ParcelCreationResponse:
119
- ...
120
-
121
- @versions(supported_versions=(">=20.9"), raises=False)
122
- @put("/v1/feature-profile/sdwan/service/{profile_id}/{parcel_type}/{parcel_id}")
123
- def update(
124
- self, profile_id: UUID, parcel_type: str, parcel_id: UUID, payload: AnyTopLevelServiceParcel
125
- ) -> ParcelCreationResponse:
126
- ...
127
-
128
- @versions(supported_versions=(">=20.9"), raises=False)
129
- @put("/v1/feature-profile/sdwan/service/{profile_id}/lan/vpn/{vpn_id}/{parcel_type}/{parcel_id}")
130
- def update_lan_vpn_sub_parcel(
131
- self, profile_id: UUID, vpn_id: UUID, parcel_type: str, parcel_id: UUID, payload: AnyLanVpnInterfaceParcel
132
- ) -> ParcelCreationResponse:
133
- ...
134
-
135
- @versions(supported_versions=(">=20.9"), raises=False)
136
- @get("/v1/feature-profile/sdwan/service/{profile_id}/{parcel_type}/{parcel_id}")
137
- def get_by_id(
138
- self, profile_id: UUID, parcel_type: str, parcel_id: UUID
139
- ) -> Parcel[Union[AnyServiceParcel, AnyRoutingParcel]]:
140
- ...
141
-
142
- @versions(supported_versions=(">=20.9"), raises=False)
143
- @get("/v1/feature-profile/sdwan/service/{profile_id}/{parcel_type}")
144
- def get_all(
145
- self, profile_id: UUID, parcel_type: str
146
- ) -> DataSequence[Parcel[Union[AnyServiceParcel, AnyRoutingParcel]]]:
147
- ...
148
-
149
- @versions(supported_versions=(">=20.9"), raises=False)
150
- @get("/v1/feature-profile/sdwan/service/{profile_id}/lan/vpn/{vpn_id}/{parcel_type}/{parcel_id}")
151
- def get_lan_vpn_sub_parcel(
152
- self, profile_id: UUID, vpn_id: UUID, parcel_type: str, parcel_id: UUID
153
- ) -> Parcel[AnyLanVpnInterfaceParcel]:
154
- ...
@@ -1,88 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- # mypy: disable-error-code="empty-body"
4
-
5
- from pydantic import BaseModel, Field
6
-
7
- from catalystwan.endpoints import JSON, APIEndpoints, delete, get, post, put, versions
8
- from catalystwan.models.configuration.feature_profile.common import (
9
- FeatureProfileCreationPayload,
10
- FeatureProfileCreationResponse,
11
- FeatureProfileDetail,
12
- FeatureProfileEditPayload,
13
- FeatureProfileInfo,
14
- GetReferenceCountFeatureProfilesPayload,
15
- SchemaTypeQuery,
16
- )
17
- from catalystwan.models.configuration.feature_profile.parcel import Parcel, ParcelCreationResponse, ParcelSequence
18
- from catalystwan.models.configuration.feature_profile.sdwan.sig_security.sig_security import SIGParcel
19
- from catalystwan.typed_list import DataSequence
20
-
21
-
22
- class SIGSecurityProfileParams(BaseModel):
23
- references: bool = Field(default=False)
24
-
25
-
26
- class SIGSecurity(APIEndpoints):
27
- @versions(">=20.12", raises=False)
28
- @get("/v1/feature-profile/sdwan/sig-security/sig/schema", resp_json_key="request")
29
- def get_sig_security_parcel_schema(self, params: SchemaTypeQuery) -> JSON:
30
- ...
31
-
32
- @versions(">=20.12")
33
- @get("/v1/feature-profile/sdwan/sig-security")
34
- def get_sig_security_feature_profiles(
35
- self, params: GetReferenceCountFeatureProfilesPayload
36
- ) -> DataSequence[FeatureProfileInfo]:
37
- ...
38
-
39
- @versions(">=20.12")
40
- @post("/v1/feature-profile/sdwan/sig-security")
41
- def create_sig_security_feature_profile(
42
- self, payload: FeatureProfileCreationPayload
43
- ) -> FeatureProfileCreationResponse:
44
- ...
45
-
46
- @versions(">=20.12")
47
- @get("/v1/feature-profile/sdwan/sig-security/{profile_id}")
48
- def get_sig_security_feature_profile(
49
- self, profile_id: str, params: SIGSecurityProfileParams
50
- ) -> FeatureProfileDetail:
51
- ...
52
-
53
- @versions(">=20.12")
54
- @put("/v1/feature-profile/sdwan/sig-security/{profile_id}")
55
- def edit_sig_security_feature_profile(
56
- self, profile_id: str, payload: FeatureProfileEditPayload
57
- ) -> FeatureProfileCreationResponse:
58
- ...
59
-
60
- @versions(">=20.12")
61
- @delete("/v1/feature-profile/sdwan/sig-security/{profile_id}")
62
- def delete_sig_security_feature_profile(self, profile_id: str) -> None:
63
- ...
64
-
65
- @versions(">=20.12")
66
- @get("/v1/feature-profile/sdwan/sig-security/{profile_id}/sig")
67
- def get_sig_security_parcels(self, profile_id: str) -> ParcelSequence[SIGParcel]:
68
- ...
69
-
70
- @versions(">=20.12")
71
- @post("/v1/feature-profile/sdwan/sig-security/{profile_id}/sig")
72
- def create_sig_security_parcel(self, profile_id: str, payload: SIGParcel) -> ParcelCreationResponse:
73
- ...
74
-
75
- @versions(">=20.12")
76
- @get("/v1/feature-profile/sdwan/sig-security/{profile_id}/sig/{parcel_id}")
77
- def get_sig_security_parcel(self, profile_id: str, parcel_id: str) -> Parcel[SIGParcel]:
78
- ...
79
-
80
- @versions(">=20.12")
81
- @put("/v1/feature-profile/sdwan/sig-security/{profile_id}/sig/{parcel_id}")
82
- def edit_sig_security_parcel(self, profile_id: str, parcel_id: str, payload: SIGParcel) -> ParcelCreationResponse:
83
- ...
84
-
85
- @versions(">=20.12")
86
- @delete("/v1/feature-profile/sdwan/sig-security/{profile_id}/sig/{parcel_id}")
87
- def delete_sig_security_parcel(self, profile_id: str, parcel_id: str) -> None:
88
- ...
@@ -1,93 +0,0 @@
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 JSON, APIEndpoints, delete, get, post, put, versions
8
- from catalystwan.models.configuration.feature_profile.common import (
9
- FeatureProfileCreationPayload,
10
- FeatureProfileCreationResponse,
11
- FeatureProfileDetail,
12
- FeatureProfileEditPayload,
13
- FeatureProfileInfo,
14
- GetFeatureProfilesParams,
15
- SchemaTypeQuery,
16
- )
17
- from catalystwan.models.configuration.feature_profile.parcel import Parcel, ParcelCreationResponse
18
- from catalystwan.models.configuration.feature_profile.sdwan.topology import AnyTopologyParcel
19
- from catalystwan.typed_list import DataSequence
20
-
21
-
22
- class TopologyFeatureProfile(APIEndpoints):
23
- @versions(supported_versions=(">=20.12"), raises=False)
24
- @post("/v1/feature-profile/sdwan/topology")
25
- def create_topology_feature_profile(self, payload: FeatureProfileCreationPayload) -> FeatureProfileCreationResponse:
26
- ...
27
-
28
- @versions(supported_versions=(">=20.12"), raises=False)
29
- @get("/v1/feature-profile/sdwan/topology")
30
- def get_topology_feature_profiles(self, params: GetFeatureProfilesParams) -> DataSequence[FeatureProfileInfo]:
31
- ...
32
-
33
- @versions(supported_versions=(">=20.12"), raises=False)
34
- @get("/v1/feature-profile/sdwan/topology/{profile_id}")
35
- def get_topology_feature_profile(self, profile_id: str, params: GetFeatureProfilesParams) -> FeatureProfileDetail:
36
- ...
37
-
38
- @versions(supported_versions=(">=20.12"), raises=False)
39
- @put("/v1/feature-profile/sdwan/topology/{profile_id}")
40
- def edit_topology_feature_profile(
41
- self, profile_id: str, payload: FeatureProfileEditPayload
42
- ) -> FeatureProfileCreationResponse:
43
- ...
44
-
45
- @versions(supported_versions=(">=20.12"), raises=False)
46
- @delete("/v1/feature-profile/sdwan/topology/{profile_id}")
47
- def delete_topology_feature_profile(self, profile_id: str) -> None:
48
- ...
49
-
50
- #
51
- # Create/Delete/Get Any Topology Parcel
52
- #
53
-
54
- @versions(supported_versions=(">=20.12"), raises=False)
55
- @post("/v1/feature-profile/sdwan/topology/{profile_id}/{parcel_type}")
56
- def create_any_parcel(
57
- self, profile_id: UUID, parcel_type: str, payload: AnyTopologyParcel
58
- ) -> ParcelCreationResponse:
59
- ...
60
-
61
- @versions(supported_versions=(">=20.9"), raises=False)
62
- @delete("/v1/feature-profile/sdwan/topology/{profile_id}/{parcel_type}/{parcel_id}")
63
- def delete_any_parcel(self, profile_id: UUID, parcel_type: str, parcel_id: UUID) -> None:
64
- ...
65
-
66
- @versions(supported_versions=(">=20.9"), raises=False)
67
- @get("/v1/feature-profile/sdwan/topology/{profile_id}/{parcel_type}/{parcel_id}")
68
- def get_any_parcel_by_id(self, profile_id: UUID, parcel_type: str, parcel_id: UUID) -> Parcel[AnyTopologyParcel]:
69
- ...
70
-
71
- #
72
- # Mesh Parcel
73
- #
74
- @versions(supported_versions=(">=20.9"), raises=False)
75
- @get("/v1/feature-profile/sdwan/topology/mesh/schema", resp_json_key="request")
76
- def get_mesh_parcel_schema(self, params: SchemaTypeQuery) -> JSON:
77
- ...
78
-
79
- #
80
- # Hub and Spoke Parcel
81
- #
82
- @versions(supported_versions=(">=20.9"), raises=False)
83
- @get("/v1/feature-profile/sdwan/topology/hubspoke/schema", resp_json_key="request")
84
- def get_hubspoke_parcel_schema(self, params: SchemaTypeQuery) -> JSON:
85
- ...
86
-
87
- #
88
- # Custom Control Parcel
89
- #
90
- @versions(supported_versions=(">=20.9"), raises=False)
91
- @get("/v1/feature-profile/sdwan/topology/custom-control/schema", resp_json_key="request")
92
- def get_custom_control_parcel_schema(self, params: SchemaTypeQuery) -> JSON:
93
- ...
@@ -1,77 +0,0 @@
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, versions
7
- from catalystwan.models.configuration.feature_profile.common import (
8
- FeatureProfileCreationPayload,
9
- FeatureProfileCreationResponse,
10
- FeatureProfileDetail,
11
- FeatureProfileEditPayload,
12
- FeatureProfileInfo,
13
- GetFeatureProfilesParams,
14
- )
15
- from catalystwan.models.configuration.feature_profile.parcel import Parcel, ParcelCreationResponse
16
- from catalystwan.models.configuration.feature_profile.sdwan.uc_voice import AnyUcVoiceParcel
17
- from catalystwan.typed_list import DataSequence
18
-
19
-
20
- class UcVoiceFeatureProfile(APIEndpoints):
21
- @versions(supported_versions=(">=20.13"), raises=False)
22
- @post("/v1/feature-profile/sdwan/uc-voice")
23
- def create_uc_voice_feature_profile(self, payload: FeatureProfileCreationPayload) -> FeatureProfileCreationResponse:
24
- ...
25
-
26
- @versions(supported_versions=(">=20.13"), raises=False)
27
- @get("/v1/feature-profile/sdwan/uc-voice")
28
- def get_uc_voice_feature_profiles(self, params: GetFeatureProfilesParams) -> DataSequence[FeatureProfileInfo]:
29
- ...
30
-
31
- @versions(supported_versions=(">=20.13"), raises=False)
32
- @get("/v1/feature-profile/sdwan/uc-voice/{profile_id}")
33
- def get_uc_voice_feature_profile(self, profile_id: str, params: GetFeatureProfilesParams) -> FeatureProfileDetail:
34
- ...
35
-
36
- @versions(supported_versions=(">=20.13"), raises=False)
37
- @put("/v1/feature-profile/sdwan/uc-voice/{profile_id}")
38
- def edit_uc_voice_feature_profile(
39
- self, profile_id: str, payload: FeatureProfileEditPayload
40
- ) -> FeatureProfileCreationResponse:
41
- ...
42
-
43
- @versions(supported_versions=(">=20.13"), raises=False)
44
- @delete("/v1/feature-profile/sdwan/uc-voice/{profile_id}")
45
- def delete_uc_voice_feature_profile(self, profile_id: str) -> None:
46
- ...
47
-
48
- @versions(supported_versions=(">=20.13"), raises=False)
49
- @post("/v1/feature-profile/sdwan/uc-voice/{profile_id}/{uc_voice_list_type}")
50
- def create(self, profile_id: UUID, uc_voice_list_type: str, payload: AnyUcVoiceParcel) -> ParcelCreationResponse:
51
- ...
52
-
53
- @versions(supported_versions=(">=20.13"), raises=False)
54
- @delete("/v1/feature-profile/sdwan/uc-voice/{profile_id}/{uc_voice_list_type}/{parcel_id}")
55
- def delete(self, profile_id: UUID, uc_voice_list_type: str, parcel_id: UUID) -> None:
56
- ...
57
-
58
- @versions(supported_versions=(">=20.13"), raises=False)
59
- @put("/v1/feature-profile/sdwan/uc-voice/{profile_id}/{uc_voice_list_type}/{parcel_id}")
60
- def update(
61
- self,
62
- profile_id: UUID,
63
- uc_voice_list_type: str,
64
- parcel_id: UUID,
65
- payload: AnyUcVoiceParcel,
66
- ) -> ParcelCreationResponse:
67
- ...
68
-
69
- @versions(supported_versions=(">=20.13"), raises=False)
70
- @get("/v1/feature-profile/sdwan/uc-voice/{profile_id}/{uc_voice_list_type}/{parcel_id}")
71
- def get_by_id(self, profile_id: UUID, uc_voice_list_type: str, parcel_id: UUID) -> Parcel[AnyUcVoiceParcel]:
72
- ...
73
-
74
- @versions(supported_versions=(">=20.13"), raises=False)
75
- @get("/v1/feature-profile/sdwan/uc-voice/{profile_id}/{uc_voice_list_type}", resp_json_key="data")
76
- def get_all(self, profile_id: UUID, uc_voice_list_type: str) -> DataSequence[Parcel[AnyUcVoiceParcel]]:
77
- ...
@@ -1,47 +0,0 @@
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, versions
7
- from catalystwan.models.configuration.feature_profile.parcel import Parcel, ParcelCreationResponse
8
- from catalystwan.models.configuration.network_hierarchy.cflowd import CflowdParcel
9
- from catalystwan.models.configuration.network_hierarchy.node import NodeInfo
10
- from catalystwan.models.configuration.network_hierarchy.security_logging import SecurityLoggingParcel
11
- from catalystwan.typed_list import DataSequence
12
-
13
-
14
- class NetworkHierarchy(APIEndpoints):
15
- @get("/v1/network-hierarchy")
16
- @versions(">=20.10")
17
- def list_nodes(self) -> DataSequence[NodeInfo]: ...
18
-
19
- @post("/v1/network-hierarchy/{node_id}/network-settings/cflowd")
20
- @versions(">20.12")
21
- def create_cflowd(self, node_id: UUID, payload: CflowdParcel) -> ParcelCreationResponse: ...
22
-
23
- @get("/v1/network-hierarchy/{node_id}/network-settings/cflowd", resp_json_key="data")
24
- @versions(">20.12")
25
- def get_cflowd(self, node_id: UUID) -> DataSequence[Parcel[CflowdParcel]]: ...
26
-
27
- @delete("/v1/network-hierarchy/{node_id}/network-settings/cflowd/{parcel_id}")
28
- @versions(">20.12")
29
- def delete_cflowd(self, node_id: UUID, parcel_id: UUID) -> None: ...
30
-
31
- @post("/v1/network-hierarchy/{node_id}/network-settings/security-logging")
32
- @versions(">20.12")
33
- def create_security_logging(self, node_id: UUID, payload: SecurityLoggingParcel) -> ParcelCreationResponse: ...
34
-
35
- @get("/v1/network-hierarchy/{node_id}/network-settings/security-logging", resp_json_key="data")
36
- @versions(">20.12")
37
- def get_security_logging(self, node_id: UUID) -> DataSequence[Parcel[SecurityLoggingParcel]]: ...
38
-
39
- @put("/v1/network-hierarchy/{node_id}/network-settings/security-logging/{parcel_id}")
40
- @versions(">20.12")
41
- def edit_security_logging(
42
- self, node_id: UUID, payload: SecurityLoggingParcel, parcel_id: UUID
43
- ) -> ParcelCreationResponse: ...
44
-
45
- @delete("/v1/network-hierarchy/{node_id}/network-settings/security-logging/{parcel_id}")
46
- @versions(">20.12")
47
- def delete_security_logging(self, node_id: UUID, parcel_id: UUID) -> None: ...
@@ -1,36 +0,0 @@
1
- # Copyright 2026 Cisco Systems, Inc. and its affiliates
2
-
3
- # mypy: disable-error-code="empty-body"
4
-
5
- from pathlib import Path
6
-
7
- from catalystwan.endpoints import APIEndpoints, CustomPayloadType, PreparedPayload, post, versions
8
- from catalystwan.models.configuration.packages import (
9
- CatalogPackageExportRequest,
10
- CatalogPackageImportResponse,
11
- TemplatePackageExportRequest,
12
- )
13
-
14
-
15
- class CatalogImportTarballFile(CustomPayloadType):
16
- def __init__(self, filename: Path):
17
- self.filename = filename
18
-
19
- def prepared(self) -> PreparedPayload:
20
- data = open(self.filename, "rb")
21
- return PreparedPayload(files={"file": (Path(data.name).name, data)})
22
-
23
-
24
- class DeviceConfigPackageEndpoints(APIEndpoints):
25
-
26
- @versions(supported_versions=(">=20.12"), raises=False)
27
- @post("/templates/package/export")
28
- def export_templates(self, payload: TemplatePackageExportRequest = TemplatePackageExportRequest()) -> bytes: ...
29
-
30
- @versions(supported_versions=(">=20.14"), raises=False)
31
- @post("/v1/packages/export")
32
- def export_catalog(self, payload: CatalogPackageExportRequest) -> bytes: ...
33
-
34
- @versions(supported_versions=(">=20.14"), raises=False)
35
- @post("/v1/packages/import")
36
- def import_catalog(self, payload: CatalogImportTarballFile) -> CatalogPackageImportResponse: ...
@@ -1,49 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
- from typing import Protocol
3
- from uuid import UUID
4
-
5
- from pydantic import BaseModel
6
-
7
- from catalystwan.models.policy import AnyPolicyList
8
- from catalystwan.models.policy.policy_definition import (
9
- PolicyDefinitionEditResponse,
10
- PolicyDefinitionGetResponse,
11
- PolicyDefinitionId,
12
- PolicyDefinitionInfo,
13
- )
14
- from catalystwan.models.policy.policy_list import PolicyListId, PolicyListInfo
15
- from catalystwan.typed_list import DataSequence
16
-
17
-
18
- class PolicyListEndpoints(Protocol):
19
- def create_policy_list(self, payload: AnyPolicyList) -> PolicyListId:
20
- ...
21
-
22
- def delete_policy_list(self, id: UUID) -> None:
23
- ...
24
-
25
- def edit_policy_list(self, id: UUID, payload: AnyPolicyList) -> None:
26
- ...
27
-
28
- def get_lists_by_id(self, id: UUID) -> PolicyListInfo:
29
- ...
30
-
31
- def get_policy_lists(self) -> DataSequence[PolicyListInfo]:
32
- ...
33
-
34
-
35
- class PolicyDefinitionEndpoints(Protocol):
36
- def create_policy_definition(self, payload: BaseModel) -> PolicyDefinitionId:
37
- ...
38
-
39
- def delete_policy_definition(self, id: UUID) -> None:
40
- ...
41
-
42
- def edit_policy_definition(self, id: UUID, payload: BaseModel) -> PolicyDefinitionEditResponse:
43
- ...
44
-
45
- def get_definitions(self) -> DataSequence[PolicyDefinitionInfo]:
46
- ...
47
-
48
- def get_policy_definition(self, id: UUID) -> PolicyDefinitionGetResponse:
49
- ...
@@ -1,52 +0,0 @@
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.aip import (
10
- AdvancedInspectionProfilePolicy,
11
- AdvancedInspectionProfilePolicyEditPayload,
12
- AdvancedInspectionProfilePolicyGetResponse,
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 ConfigurationPolicyAIPDefinition(APIEndpoints, PolicyDefinitionEndpoints):
24
- @post("/template/policy/definition/advancedinspectionprofile")
25
- def create_policy_definition(self, payload: AdvancedInspectionProfilePolicy) -> PolicyDefinitionId:
26
- ...
27
-
28
- @delete("/template/policy/definition/advancedinspectionprofile/{id}")
29
- def delete_policy_definition(self, id: UUID) -> None:
30
- ...
31
-
32
- @put("/template/policy/definition/advancedinspectionprofile/{id}")
33
- def edit_policy_definition(
34
- self, id: UUID, payload: AdvancedInspectionProfilePolicyEditPayload
35
- ) -> PolicyDefinitionEditResponse:
36
- ...
37
-
38
- @get("/template/policy/definition/advancedinspectionprofile", "data")
39
- def get_definitions(self) -> DataSequence[PolicyDefinitionInfo]:
40
- ...
41
-
42
- @get("/template/policy/definition/advancedinspectionprofile/{id}")
43
- def get_policy_definition(self, id: UUID) -> AdvancedInspectionProfilePolicyGetResponse:
44
- ...
45
-
46
- @post("/template/policy/definition/advancedinspectionprofile/preview")
47
- def preview_policy_definition(self, payload: AdvancedInspectionProfilePolicy) -> PolicyDefinitionPreview:
48
- ...
49
-
50
- @get("/template/policy/definition/advancedinspectionprofile/preview/{id}")
51
- def preview_policy_definition_by_id(self, id: UUID) -> PolicyDefinitionPreview:
52
- ...
@@ -1,52 +0,0 @@
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.amp import (
10
- AdvancedMalwareProtectionPolicy,
11
- AdvancedMalwareProtectionPolicyEditPayload,
12
- AdvancedMalwareProtectionPolicyGetResponse,
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 ConfigurationPolicyAMPDefinition(APIEndpoints, PolicyDefinitionEndpoints):
24
- @post("/template/policy/definition/advancedMalwareProtection")
25
- def create_policy_definition(self, payload: AdvancedMalwareProtectionPolicy) -> PolicyDefinitionId:
26
- ...
27
-
28
- @delete("/template/policy/definition/advancedMalwareProtection/{id}")
29
- def delete_policy_definition(self, id: UUID) -> None:
30
- ...
31
-
32
- @put("/template/policy/definition/advancedMalwareProtection/{id}")
33
- def edit_policy_definition(
34
- self, id: UUID, payload: AdvancedMalwareProtectionPolicyEditPayload
35
- ) -> PolicyDefinitionEditResponse:
36
- ...
37
-
38
- @get("/template/policy/definition/advancedMalwareProtection", "data")
39
- def get_definitions(self) -> DataSequence[PolicyDefinitionInfo]:
40
- ...
41
-
42
- @get("/template/policy/definition/advancedMalwareProtection/{id}")
43
- def get_policy_definition(self, id: UUID) -> AdvancedMalwareProtectionPolicyGetResponse:
44
- ...
45
-
46
- @post("/template/policy/definition/advancedMalwareProtection/preview")
47
- def preview_policy_definition(self, payload: AdvancedMalwareProtectionPolicy) -> PolicyDefinitionPreview:
48
- ...
49
-
50
- @get("/template/policy/definition/advancedMalwareProtection/preview/{id}")
51
- def preview_policy_definition_by_id(self, id: UUID) -> PolicyDefinitionPreview:
52
- ...