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,70 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- from typing import List, Literal, Optional, Set
4
-
5
- from pydantic import BaseModel, ConfigDict, Field, field_validator
6
-
7
- from catalystwan.models.common import PolicyModeType, VpnId, WebCategory, WebReputation
8
- from catalystwan.models.policy.policy_definition import (
9
- PolicyDefinitionBase,
10
- PolicyDefinitionGetResponse,
11
- PolicyDefinitionId,
12
- Reference,
13
- )
14
-
15
- BLOCK_PAGE_CONTENT_HEADER = "Access to the requested page has been denied."
16
-
17
- BlockPageAction = Literal["text", "redirectUrl"]
18
- UrlFilteringAlerts = Literal["blacklist", "whitelist", "categories-reputation"]
19
- WebCategoriesAction = Literal["allow", "block"]
20
-
21
-
22
- class UrlFilteringDefinition(BaseModel):
23
- model_config = ConfigDict(populate_by_name=True)
24
- web_categories_action: WebCategoriesAction = Field(
25
- validation_alias="webCategoriesAction", serialization_alias="webCategoriesAction"
26
- )
27
- web_categories: List[WebCategory] = Field(validation_alias="webCategories", serialization_alias="webCategories")
28
- web_reputation: WebReputation = Field(validation_alias="webReputation", serialization_alias="webReputation")
29
- url_white_list: Optional[Reference] = Field(
30
- default=None, validation_alias="urlWhiteList", serialization_alias="urlWhiteList"
31
- )
32
- url_black_list: Optional[Reference] = Field(
33
- default=None, validation_alias="urlBlackList", serialization_alias="urlBlackList"
34
- )
35
- block_page_action: BlockPageAction = Field(
36
- validation_alias="blockPageAction", serialization_alias="blockPageAction"
37
- )
38
- block_page_contents: str = Field(
39
- default=BLOCK_PAGE_CONTENT_HEADER, validation_alias="blockPageContents", serialization_alias="blockPageContents"
40
- )
41
- logging: List[str] = Field(default_factory=list)
42
- enable_alerts: bool = Field(validation_alias="enableAlerts", serialization_alias="enableAlerts")
43
- alerts: Set[UrlFilteringAlerts] = Field(
44
- default_factory=set, validation_alias="alerts", serialization_alias="alerts"
45
- )
46
- target_vpns: List[VpnId] = Field(
47
- default_factory=list, validation_alias="targetVpns", serialization_alias="targetVpns"
48
- )
49
-
50
- @field_validator("url_black_list", "url_white_list", mode="before")
51
- @classmethod
52
- def convert_empty_dict_to_none(cls, value):
53
- if not value:
54
- return None
55
-
56
- return value
57
-
58
-
59
- class UrlFilteringPolicy(PolicyDefinitionBase):
60
- type: Literal["urlFiltering"] = "urlFiltering"
61
- mode: PolicyModeType = "security"
62
- definition: UrlFilteringDefinition
63
-
64
-
65
- class UrlFilteringPolicyEditPayload(UrlFilteringPolicy, PolicyDefinitionId):
66
- pass
67
-
68
-
69
- class UrlFilteringPolicyGetResponse(UrlFilteringPolicy, PolicyDefinitionGetResponse):
70
- pass
@@ -1,46 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- from typing import List, Literal, Optional
4
- from uuid import UUID
5
-
6
- from pydantic import BaseModel, ConfigDict, Field
7
-
8
- from catalystwan.models.common import IntStr
9
- from catalystwan.models.policy.policy_definition import (
10
- PolicyDefinitionBase,
11
- PolicyDefinitionGetResponse,
12
- PolicyDefinitionId,
13
- )
14
-
15
-
16
- class VPNQoSScheduler(BaseModel):
17
- model_config = ConfigDict(populate_by_name=True)
18
- child_map_ref: UUID = Field(validation_alias="childMapRef", serialization_alias="childMapRef")
19
- vpn_list_ref: Optional[UUID] = Field(default=None, validation_alias="vpnListRef", serialization_alias="vpnListRef")
20
- bandwidth_rate: Optional[IntStr] = Field(
21
- default=None, validation_alias="bandwidthRate", serialization_alias="bandwidthRate", ge=8, le=100_000_000
22
- )
23
- shaping_rate: Optional[IntStr] = Field(
24
- default=None, validation_alias="shapingRate", serialization_alias="shapingRate", ge=8, le=100_000_000
25
- )
26
-
27
-
28
- class VPNQoSMapPolicyDefinition(BaseModel):
29
- model_config = ConfigDict(populate_by_name=True)
30
- vpn_qos_schedulers: List[VPNQoSScheduler] = Field(
31
- validation_alias="vpnQosSchedulers", serialization_alias="vpnQosSchedulers"
32
- )
33
-
34
-
35
- class VPNQoSMapPolicy(PolicyDefinitionBase):
36
- model_config = ConfigDict(populate_by_name=True)
37
- type: Literal["vpnQosMap", "vpnQoSMap"] = "vpnQosMap"
38
- definition: VPNQoSMapPolicyDefinition
39
-
40
-
41
- class VPNQoSMapPolicyEditPayload(VPNQoSMapPolicy, PolicyDefinitionId):
42
- pass
43
-
44
-
45
- class VPNQoSMapPolicyGetResponse(VPNQoSMapPolicy, PolicyDefinitionGetResponse):
46
- pass
@@ -1,44 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
- from typing import List, Literal, Optional
3
-
4
- from pydantic import BaseModel, ConfigDict, Field, model_validator
5
-
6
- from catalystwan.models.common import check_fields_exclusive
7
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
8
-
9
-
10
- class AppListEntry(BaseModel):
11
- model_config = ConfigDict(populate_by_name=True)
12
-
13
- app_family: Optional[str] = Field(default=None, serialization_alias="appFamily", validation_alias="appFamily")
14
- app: Optional[str] = None
15
-
16
- @model_validator(mode="after")
17
- def check_app_xor_appfamily(self):
18
- check_fields_exclusive(self.__dict__, {"app", "app_family"}, True)
19
- return self
20
-
21
-
22
- class AppList(PolicyListBase):
23
- type: Literal["app"] = "app"
24
- entries: List[AppListEntry] = []
25
-
26
- def add_app(self, app: str) -> None:
27
- self._add_entry(AppListEntry(app=app))
28
-
29
- def add_app_family(self, app_family: str) -> None:
30
- self._add_entry(AppListEntry(app_family=app_family))
31
-
32
- def list_all_app(self) -> List[str]:
33
- return [e.app for e in self.entries if e.app is not None]
34
-
35
- def list_all_app_family(self) -> List[str]:
36
- return [e.app_family for e in self.entries if e.app_family is not None]
37
-
38
-
39
- class AppListEditPayload(AppList, PolicyListId):
40
- pass
41
-
42
-
43
- class AppListInfo(AppList, PolicyListInfo):
44
- pass
@@ -1,42 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- from typing import List, Literal, Optional
4
-
5
- from pydantic import BaseModel, ConfigDict, Field
6
-
7
- from catalystwan.models.common import TLOCColor
8
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
9
-
10
-
11
- class ColorDSCPMap(BaseModel):
12
- color: TLOCColor
13
- dscp: Optional[int] = Field(default=None, ge=0, le=63)
14
-
15
-
16
- class AppProbeClassListEntry(BaseModel):
17
- model_config = ConfigDict(populate_by_name=True)
18
-
19
- forwarding_class: str = Field(serialization_alias="forwardingClass", validation_alias="forwardingClass")
20
- map: List[ColorDSCPMap] = []
21
-
22
- def add_color_mapping(self, color: TLOCColor, dscp: Optional[int] = None) -> None:
23
- self.map.append(ColorDSCPMap(color=color, dscp=dscp))
24
-
25
-
26
- class AppProbeClassList(PolicyListBase):
27
- type: Literal["appProbe"] = "appProbe"
28
- entries: List[AppProbeClassListEntry] = []
29
-
30
- def assign_forwarding_class(self, name: str) -> AppProbeClassListEntry:
31
- # App probe class list must have only one entry!
32
- entry = AppProbeClassListEntry(forwarding_class=name)
33
- self._add_entry(entry, single=True)
34
- return entry
35
-
36
-
37
- class AppProbeClassListEditPayload(AppProbeClassList, PolicyListId):
38
- pass
39
-
40
-
41
- class AppProbeClassListInfo(AppProbeClassList, PolicyListInfo):
42
- pass
@@ -1,30 +0,0 @@
1
- # Copyright 2022 Cisco Systems, Inc. and its affiliates
2
-
3
- from typing import List, Literal
4
-
5
- from pydantic import BaseModel, ConfigDict, Field
6
-
7
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
8
-
9
-
10
- class ASPathListEntry(BaseModel):
11
- model_config = ConfigDict(populate_by_name=True)
12
-
13
- as_path: str = Field(serialization_alias="asPath", validation_alias="asPath")
14
-
15
-
16
- class ASPathList(PolicyListBase):
17
- type: Literal["asPath"] = "asPath"
18
- entries: List[ASPathListEntry] = []
19
-
20
- def add_as_path(self, as_path: str):
21
- as_path_entry = ASPathListEntry(as_path=as_path)
22
- self._add_entry(entry=as_path_entry)
23
-
24
-
25
- class ASPathListEditPayload(ASPathList, PolicyListId):
26
- pass
27
-
28
-
29
- class ASPathListInfo(ASPathList, PolicyListInfo):
30
- pass
@@ -1,30 +0,0 @@
1
- # Copyright 2022 Cisco Systems, Inc. and its affiliates
2
-
3
- from typing import List, Literal
4
-
5
- from pydantic import BaseModel, Field
6
-
7
- from catalystwan.models.common import IntStr
8
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
9
-
10
-
11
- class ClassMapListEntry(BaseModel):
12
- queue: IntStr = Field(ge=0, le=7)
13
-
14
-
15
- class ClassMapList(PolicyListBase):
16
- type: Literal["class"] = "class"
17
- entries: List[ClassMapListEntry] = []
18
-
19
- def assign_queue(self, queue: int) -> None:
20
- # Class map list must have only one entry!
21
- entry = ClassMapListEntry(queue=queue)
22
- self._add_entry(entry, single=True)
23
-
24
-
25
- class ClassMapListEditPayload(ClassMapList, PolicyListId):
26
- pass
27
-
28
-
29
- class ClassMapListInfo(ClassMapList, PolicyListInfo):
30
- pass
@@ -1,28 +0,0 @@
1
- # Copyright 2022 Cisco Systems, Inc. and its affiliates
2
-
3
- from typing import List, Literal
4
-
5
- from pydantic import BaseModel
6
-
7
- from catalystwan.models.common import TLOCColor
8
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
9
-
10
-
11
- class ColorListEntry(BaseModel):
12
- color: TLOCColor
13
-
14
-
15
- class ColorList(PolicyListBase):
16
- type: Literal["color"] = "color"
17
- entries: List[ColorListEntry] = []
18
-
19
- def add_color(self, color: TLOCColor) -> None:
20
- self._add_entry(ColorListEntry(color=color))
21
-
22
-
23
- class ColorListEditPayload(ColorList, PolicyListId):
24
- pass
25
-
26
-
27
- class ColorListInfo(ColorList, PolicyListInfo):
28
- pass
@@ -1,83 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- from ipaddress import IPv4Address, IPv6Address
4
- from typing import List, Literal, Optional, Union
5
-
6
- from pydantic import BaseModel, ConfigDict, Field
7
-
8
- from catalystwan.models.common import WellKnownBGPCommunities
9
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
10
-
11
-
12
- class CommunityListEntry(BaseModel):
13
- model_config = ConfigDict(populate_by_name=True)
14
-
15
- community: str = Field(examples=["1000:10000", "internet", "local-AS"])
16
-
17
-
18
- class ExtendedCommunityListEntry(BaseModel):
19
- model_config = ConfigDict(populate_by_name=True)
20
- community: str = Field(examples=["soo 1.2.3.4:1000", "rt 10:100"])
21
-
22
-
23
- class CommunityListBase(PolicyListBase):
24
- entries: List[CommunityListEntry] = []
25
-
26
- def add_well_known_community(self, community: WellKnownBGPCommunities) -> None:
27
- self._add_entry(CommunityListEntry(community=community))
28
-
29
- def add_community(self, as_number: int, community_number: int) -> None:
30
- self._add_entry(CommunityListEntry(community=f"{as_number}:{community_number}"))
31
-
32
-
33
- class CommunityList(CommunityListBase):
34
- type: Literal["community"] = "community"
35
-
36
-
37
- class CommunityListEditPayload(CommunityList, PolicyListId):
38
- pass
39
-
40
-
41
- class CommunityListInfo(CommunityList, PolicyListInfo):
42
- pass
43
-
44
-
45
- class ExpandedCommunityList(CommunityListBase):
46
- type: Literal["expandedCommunity"] = "expandedCommunity"
47
-
48
-
49
- class ExpandedCommunityListEditPayload(ExpandedCommunityList, PolicyListId):
50
- pass
51
-
52
-
53
- class ExpandedCommunityListInfo(ExpandedCommunityList, PolicyListInfo):
54
- pass
55
-
56
-
57
- class ExtendedCommunityList(PolicyListBase):
58
- entries: List[ExtendedCommunityListEntry] = []
59
- type: Literal["extCommunity"] = "extCommunity"
60
-
61
- def add_site_of_origin_community(
62
- self, ip_address: Union[IPv4Address, IPv6Address], port: int, name: Optional[str] = None
63
- ):
64
- entry = f"soo {ip_address}:{port}"
65
- self.entries.append(ExtendedCommunityListEntry(community=self._append_name(entry, name)))
66
-
67
- def add_route_target_community(self, as_number: int, community_number: int, name: Optional[str] = None):
68
- entry = f"rt {as_number}:{community_number}"
69
- self.entries.append(ExtendedCommunityListEntry(community=self._append_name(entry, name)))
70
-
71
- def _append_name(self, entry: str, name: Optional[str] = None) -> str:
72
- if not name:
73
- return entry
74
-
75
- return f"{name} {entry}"
76
-
77
-
78
- class ExtendedCommunityListEditPayload(ExtendedCommunityList, PolicyListId):
79
- pass
80
-
81
-
82
- class ExtendedCommunityListInfo(ExtendedCommunityList, PolicyListInfo):
83
- pass
@@ -1,30 +0,0 @@
1
- # Copyright 2022 Cisco Systems, Inc. and its affiliates
2
-
3
- from ipaddress import IPv6Interface
4
- from typing import List, Literal
5
-
6
- from pydantic import BaseModel, ConfigDict, Field
7
-
8
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
9
-
10
-
11
- class DataIPv6PrefixListEntry(BaseModel):
12
- model_config = ConfigDict(populate_by_name=True)
13
-
14
- ipv6_prefix: IPv6Interface = Field(serialization_alias="ipv6Prefix", validation_alias="ipv6Prefix")
15
-
16
-
17
- class DataIPv6PrefixList(PolicyListBase):
18
- type: Literal["dataIpv6Prefix"] = "dataIpv6Prefix"
19
- entries: List[DataIPv6PrefixListEntry] = []
20
-
21
- def add_prefix(self, ipv6_prefix: IPv6Interface) -> None:
22
- self._add_entry(DataIPv6PrefixListEntry(ipv6_prefix=ipv6_prefix))
23
-
24
-
25
- class DataIPv6PrefixListEditPayload(DataIPv6PrefixList, PolicyListId):
26
- pass
27
-
28
-
29
- class DataIPv6PrefixListInfo(DataIPv6PrefixList, PolicyListInfo):
30
- pass
@@ -1,30 +0,0 @@
1
- # Copyright 2022 Cisco Systems, Inc. and its affiliates
2
-
3
- from ipaddress import IPv4Network
4
- from typing import List, Literal
5
-
6
- from pydantic import BaseModel, ConfigDict, Field
7
-
8
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
9
-
10
-
11
- class DataPrefixListEntry(BaseModel):
12
- model_config = ConfigDict(populate_by_name=True)
13
-
14
- ip_prefix: IPv4Network = Field(serialization_alias="ipPrefix", validation_alias="ipPrefix")
15
-
16
-
17
- class DataPrefixList(PolicyListBase):
18
- type: Literal["dataPrefix"] = "dataPrefix"
19
- entries: List[DataPrefixListEntry] = []
20
-
21
- def add_prefix(self, ip_prefix: IPv4Network) -> None:
22
- self._add_entry(DataPrefixListEntry(ip_prefix=ip_prefix))
23
-
24
-
25
- class DataPrefixListEditPayload(DataPrefixList, PolicyListId):
26
- pass
27
-
28
-
29
- class DataPrefixListInfo(DataPrefixList, PolicyListInfo):
30
- pass
@@ -1,45 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- from typing import List, Literal, Optional
4
-
5
- from pydantic import BaseModel, ConfigDict, Field
6
-
7
- from catalystwan.models.common import FaxFallBackProtocols, FaxPrimaryProtocols
8
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
9
-
10
-
11
- class T38Options(BaseModel):
12
- model_config = ConfigDict(populate_by_name=True)
13
- version: int = Field(ge=0)
14
- rate: str
15
- nse: str
16
- lowSpeed: int = Field(ge=0, validation_alias="lowSpeed", serialization_alias="lowSpeed")
17
- highSpeed: int = Field(ge=0, validation_alias="highSpeed", serialization_alias="highSpeed")
18
- fallbackProtocol: FaxFallBackProtocols = Field(
19
- validation_alias="fallbackProtocol", serialization_alias="fallbackProtocol"
20
- )
21
-
22
-
23
- class FaxProtocolListEntry(BaseModel):
24
- model_config = ConfigDict(populate_by_name=True)
25
- primary_protocol: FaxPrimaryProtocols = Field(
26
- validation_alias="primaryProtocol", serialization_alias="primaryProtocol"
27
- )
28
- ecm: bool = Field(default=False)
29
- t38_options: Optional[T38Options] = Field(
30
- default=None, serialization_alias="t38Options", validation_alias="t38Options"
31
- )
32
-
33
-
34
- class FaxProtocolList(PolicyListBase):
35
- model_config = ConfigDict(populate_by_name=True)
36
- type: Literal["faxProtocol", "faxprotocol"] = "faxProtocol"
37
- entries: List[FaxProtocolListEntry] = Field(default_factory=list)
38
-
39
-
40
- class FaxProtocolListEditPayload(FaxProtocolList, PolicyListId):
41
- pass
42
-
43
-
44
- class FaxProtocolListInfo(FaxProtocolList, PolicyListInfo):
45
- pass
@@ -1,24 +0,0 @@
1
- # Copyright 2022 Cisco Systems, Inc. and its affiliates
2
-
3
- from typing import List, Literal
4
-
5
- from pydantic import BaseModel
6
-
7
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
8
-
9
-
10
- class FQDNListEntry(BaseModel):
11
- pattern: str
12
-
13
-
14
- class FQDNList(PolicyListBase):
15
- type: Literal["fqdn"] = "fqdn"
16
- entries: List[FQDNListEntry] = []
17
-
18
-
19
- class FQDNListEditPayload(FQDNList, PolicyListId):
20
- pass
21
-
22
-
23
- class FQDNListInfo(FQDNList, PolicyListInfo):
24
- pass
@@ -1,33 +0,0 @@
1
- # Copyright 2022 Cisco Systems, Inc. and its affiliates
2
-
3
- from typing import List, Literal, Optional
4
-
5
- from pydantic import BaseModel, Field, model_validator
6
-
7
- from catalystwan.models.common import check_fields_exclusive
8
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
9
-
10
-
11
- class GeoLocationListEntry(BaseModel):
12
- country: Optional[str] = Field(default=None, description="ISO-3166 alpha-3 country code eg: FRA")
13
- continent: Optional[str] = Field(
14
- default=None, description="One of 2-letter continent codes: AF, NA, OC, AN, AS, EU, SA"
15
- )
16
-
17
- @model_validator(mode="after")
18
- def check_country_xor_continent(self):
19
- check_fields_exclusive(self.__dict__, {"country", "continent"}, True)
20
- return self
21
-
22
-
23
- class GeoLocationList(PolicyListBase):
24
- type: Literal["geoLocation"] = "geoLocation"
25
- entries: List[GeoLocationListEntry] = []
26
-
27
-
28
- class GeoLocationListEditPayload(GeoLocationList, PolicyListId):
29
- pass
30
-
31
-
32
- class GeoLocationListInfo(GeoLocationList, PolicyListInfo):
33
- pass
@@ -1,29 +0,0 @@
1
- # Copyright 2022 Cisco Systems, Inc. and its affiliates
2
-
3
- from typing import List, Literal
4
-
5
- from pydantic import BaseModel, ConfigDict, Field
6
-
7
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
8
-
9
-
10
- class IdentityListEntry(BaseModel):
11
- model_config = ConfigDict(populate_by_name=True)
12
- user: str
13
- user_group: str = Field(validation_alias="userGroup", serialization_alias="userGroup")
14
-
15
-
16
- class IdentityList(PolicyListBase):
17
- type: Literal["identity"] = "identity"
18
- entries: List[IdentityListEntry] = Field(default_factory=list)
19
-
20
- def add_entry(self, user: str, user_group: str) -> None:
21
- self._add_entry(IdentityListEntry(user=user, user_group=user_group))
22
-
23
-
24
- class IdentityListEditPayload(IdentityList, PolicyListId):
25
- pass
26
-
27
-
28
- class IdentityListInfo(IdentityList, PolicyListInfo):
29
- pass
@@ -1,27 +0,0 @@
1
- # Copyright 2022 Cisco Systems, Inc. and its affiliates
2
-
3
- from typing import List, Literal
4
-
5
- from pydantic import BaseModel, ConfigDict, Field
6
-
7
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
8
-
9
-
10
- class IPSSignatureListEntry(BaseModel):
11
- model_config = ConfigDict(populate_by_name=True)
12
-
13
- generator_id: str = Field(serialization_alias="generatorId", validation_alias="generatorId")
14
- signature_id: str = Field(serialization_alias="signatureId", validation_alias="signatureId")
15
-
16
-
17
- class IPSSignatureList(PolicyListBase):
18
- type: Literal["ipsSignature"] = "ipsSignature"
19
- entries: List[IPSSignatureListEntry] = []
20
-
21
-
22
- class IPSSignatureListEditPayload(IPSSignatureList, PolicyListId):
23
- pass
24
-
25
-
26
- class IPSSignatureListInfo(IPSSignatureList, PolicyListInfo):
27
- pass
@@ -1,33 +0,0 @@
1
- # Copyright 2022 Cisco Systems, Inc. and its affiliates
2
-
3
- from ipaddress import IPv6Interface
4
- from typing import List, Literal, Optional
5
-
6
- from pydantic import BaseModel, ConfigDict, Field
7
-
8
- from catalystwan.models.common import IntStr
9
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
10
-
11
-
12
- class IPv6PrefixListEntry(BaseModel):
13
- model_config = ConfigDict(populate_by_name=True)
14
-
15
- ipv6_prefix: IPv6Interface = Field(serialization_alias="ipv6Prefix", validation_alias="ipv6Prefix")
16
- ge: Optional[IntStr] = Field(default=None, ge=0, le=128)
17
- le: Optional[IntStr] = Field(default=None, ge=0, le=128)
18
-
19
-
20
- class IPv6PrefixList(PolicyListBase):
21
- type: Literal["ipv6prefix"] = "ipv6prefix"
22
- entries: List[IPv6PrefixListEntry] = []
23
-
24
- def add_prefix(self, prefix: IPv6Interface, ge: Optional[int] = None, le: Optional[int] = None) -> None:
25
- self._add_entry(IPv6PrefixListEntry(ipv6_prefix=prefix, ge=ge, le=le))
26
-
27
-
28
- class IPv6PrefixListEditPayload(IPv6PrefixList, PolicyListId):
29
- pass
30
-
31
-
32
- class IPv6PrefixListInfo(IPv6PrefixList, PolicyListInfo):
33
- pass
@@ -1,45 +0,0 @@
1
- # Copyright 2022 Cisco Systems, Inc. and its affiliates
2
-
3
- from typing import List, Literal, Optional
4
-
5
- from pydantic import BaseModel, ConfigDict, Field, model_validator
6
-
7
- from catalystwan.models.common import check_fields_exclusive
8
- from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
9
-
10
-
11
- class LocalAppListEntry(BaseModel):
12
- model_config = ConfigDict(populate_by_name=True)
13
-
14
- app_family: Optional[str] = Field(default=None, serialization_alias="appFamily", validation_alias="appFamily")
15
- app: Optional[str] = None
16
-
17
- @model_validator(mode="after")
18
- def check_app_xor_appfamily(self):
19
- check_fields_exclusive(self.__dict__, {"app", "app_family"}, True)
20
- return self
21
-
22
-
23
- class LocalAppList(PolicyListBase):
24
- type: Literal["localApp"] = "localApp"
25
- entries: List[LocalAppListEntry] = []
26
-
27
- def add_app(self, app: str) -> None:
28
- self._add_entry(LocalAppListEntry(app=app))
29
-
30
- def add_app_family(self, app_family: str) -> None:
31
- self._add_entry(LocalAppListEntry(app_family=app_family))
32
-
33
- def list_all_app(self) -> List[str]:
34
- return [e.app for e in self.entries if e.app is not None]
35
-
36
- def list_all_app_family(self) -> List[str]:
37
- return [e.app_family for e in self.entries if e.app_family is not None]
38
-
39
-
40
- class LocalAppListEditPayload(LocalAppList, PolicyListId):
41
- pass
42
-
43
-
44
- class LocalAppListInfo(LocalAppList, PolicyListInfo):
45
- pass