catalystwan 0.40.1.dev6__py3-none-any.whl → 2.0.0a0__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 (630) hide show
  1. catalystwan/core/__init__.py +2 -0
  2. catalystwan/core/abstractions.py +26 -0
  3. catalystwan/{apigw_auth.py → core/apigw_auth.py} +29 -14
  4. catalystwan/core/client.py +71 -0
  5. catalystwan/core/encoder.py +12 -0
  6. catalystwan/{exceptions.py → core/exceptions.py} +29 -9
  7. catalystwan/core/loader.py +37 -0
  8. catalystwan/{__init__.py → core/metadata.py} +9 -22
  9. catalystwan/core/models/deserialize.py +203 -0
  10. catalystwan/core/models/serialize.py +137 -0
  11. catalystwan/core/request_adapter.py +246 -0
  12. catalystwan/{request_limiter.py → core/request_limiter.py} +1 -2
  13. catalystwan/{response.py → core/response.py} +38 -85
  14. catalystwan/{session.py → core/session.py} +84 -101
  15. catalystwan/core/types.py +33 -0
  16. catalystwan/{version.py → core/version.py} +3 -5
  17. catalystwan/{vmanage_auth.py → core/vmanage_auth.py} +46 -21
  18. catalystwan-2.0.0a0.dist-info/METADATA +327 -0
  19. catalystwan-2.0.0a0.dist-info/RECORD +24 -0
  20. {catalystwan-0.40.1.dev6.dist-info → catalystwan-2.0.0a0.dist-info}/WHEEL +2 -1
  21. catalystwan-2.0.0a0.dist-info/top_level.txt +1 -0
  22. catalystwan/abstractions.py +0 -77
  23. catalystwan/api/admin_tech_api.py +0 -176
  24. catalystwan/api/administration.py +0 -434
  25. catalystwan/api/alarms_api.py +0 -186
  26. catalystwan/api/api_container.py +0 -73
  27. catalystwan/api/basic_api.py +0 -338
  28. catalystwan/api/builders/__init__.py +0 -14
  29. catalystwan/api/builders/feature_profiles/application_priority.py +0 -58
  30. catalystwan/api/builders/feature_profiles/builder_factory.py +0 -59
  31. catalystwan/api/builders/feature_profiles/cli.py +0 -76
  32. catalystwan/api/builders/feature_profiles/other.py +0 -79
  33. catalystwan/api/builders/feature_profiles/report.py +0 -137
  34. catalystwan/api/builders/feature_profiles/service.py +0 -213
  35. catalystwan/api/builders/feature_profiles/system.py +0 -80
  36. catalystwan/api/builders/feature_profiles/transport.py +0 -214
  37. catalystwan/api/builders/feature_profiles/uc_voice.py +0 -287
  38. catalystwan/api/config_device_inventory_api.py +0 -58
  39. catalystwan/api/config_group_api.py +0 -150
  40. catalystwan/api/configuration_groups/parcel.py +0 -206
  41. catalystwan/api/dashboard_api.py +0 -215
  42. catalystwan/api/device_action_api.py +0 -216
  43. catalystwan/api/feature_profile_api.py +0 -2401
  44. catalystwan/api/logs_api.py +0 -63
  45. catalystwan/api/monitoring_status_api.py +0 -76
  46. catalystwan/api/mtt_aaa_api.py +0 -197
  47. catalystwan/api/omp_api.py +0 -124
  48. catalystwan/api/packet_capture_api.py +0 -152
  49. catalystwan/api/parcel_api.py +0 -42
  50. catalystwan/api/partition_manager_api.py +0 -143
  51. catalystwan/api/policy_api.py +0 -1163
  52. catalystwan/api/resource_pool_api.py +0 -74
  53. catalystwan/api/software_action_api.py +0 -269
  54. catalystwan/api/speedtest_api.py +0 -153
  55. catalystwan/api/task_status_api.py +0 -171
  56. catalystwan/api/template_api.py +0 -761
  57. catalystwan/api/templates/README.md +0 -101
  58. catalystwan/api/templates/bool_str.py +0 -6
  59. catalystwan/api/templates/cli_template.py +0 -236
  60. catalystwan/api/templates/device_template/device_template.py +0 -181
  61. catalystwan/api/templates/device_variable.py +0 -7
  62. catalystwan/api/templates/feature_template.py +0 -133
  63. catalystwan/api/templates/feature_template_field.py +0 -175
  64. catalystwan/api/templates/feature_template_payload.py +0 -17
  65. catalystwan/api/templates/models/aaa_model.py +0 -387
  66. catalystwan/api/templates/models/cisco_aaa_model.py +0 -331
  67. catalystwan/api/templates/models/cisco_banner_model.py +0 -27
  68. catalystwan/api/templates/models/cisco_bfd_model.py +0 -61
  69. catalystwan/api/templates/models/cisco_bgp_model.py +0 -510
  70. catalystwan/api/templates/models/cisco_logging_model.py +0 -122
  71. catalystwan/api/templates/models/cisco_ntp_model.py +0 -60
  72. catalystwan/api/templates/models/cisco_omp_model.py +0 -121
  73. catalystwan/api/templates/models/cisco_ospf.py +0 -241
  74. catalystwan/api/templates/models/cisco_ospfv3.py +0 -498
  75. catalystwan/api/templates/models/cisco_secure_internet_gateway.py +0 -385
  76. catalystwan/api/templates/models/cisco_snmp_model.py +0 -102
  77. catalystwan/api/templates/models/cisco_system.py +0 -318
  78. catalystwan/api/templates/models/cisco_vpn_interface_model.py +0 -822
  79. catalystwan/api/templates/models/cisco_vpn_model.py +0 -603
  80. catalystwan/api/templates/models/cli_template.py +0 -18
  81. catalystwan/api/templates/models/omp_vsmart_model.py +0 -73
  82. catalystwan/api/templates/models/security_vsmart_model.py +0 -28
  83. catalystwan/api/templates/models/supported.py +0 -42
  84. catalystwan/api/templates/models/system_vsmart_model.py +0 -182
  85. catalystwan/api/templates/models/vpn_vsmart_interface_model.py +0 -198
  86. catalystwan/api/templates/models/vpn_vsmart_model.py +0 -124
  87. catalystwan/api/templates/payloads/aaa/aaa_model.py +0 -91
  88. catalystwan/api/templates/payloads/aaa/feature/aaa.json.j2 +0 -373
  89. catalystwan/api/templates/payloads/aaa/feature/accounting.json.j2 +0 -40
  90. catalystwan/api/templates/payloads/aaa/feature/radius.json.j2 +0 -107
  91. catalystwan/api/templates/payloads/aaa/feature/tacacs.json.j2 +0 -95
  92. catalystwan/api/templates/payloads/aaa/feature/user.json.j2 +0 -60
  93. catalystwan/api/templates/payloads/cisco_vpn/cisco_vpn_model.py +0 -92
  94. catalystwan/api/templates/payloads/cisco_vpn/feature/cisco_vpn.json.j2 +0 -224
  95. catalystwan/api/templates/payloads/cisco_vpn/feature/dns.json.j2 +0 -86
  96. catalystwan/api/templates/payloads/cisco_vpn/feature/ipv4route.json.j2 +0 -59
  97. catalystwan/api/templates/payloads/cisco_vpn/feature/ipv6route.json.j2 +0 -58
  98. catalystwan/api/templates/payloads/cisco_vpn/feature/mapping.json.j2 +0 -24
  99. catalystwan/api/templates/payloads/tenant/tenant.json.j2 +0 -127
  100. catalystwan/api/templates/payloads/tenant/tenant_model.py +0 -43
  101. catalystwan/api/tenant_backup_restore_api.py +0 -154
  102. catalystwan/api/tenant_management_api.py +0 -127
  103. catalystwan/api/tenant_migration_api.py +0 -121
  104. catalystwan/api/versions_utils.py +0 -414
  105. catalystwan/api/virtual_image_action_api.py +0 -200
  106. catalystwan/dataclasses.py +0 -493
  107. catalystwan/endpoints/__init__.py +0 -606
  108. catalystwan/endpoints/administration_user_and_group.py +0 -341
  109. catalystwan/endpoints/api_gateway.py +0 -24
  110. catalystwan/endpoints/certificate_management_device.py +0 -137
  111. catalystwan/endpoints/certificate_management_vmanage.py +0 -48
  112. catalystwan/endpoints/client.py +0 -96
  113. catalystwan/endpoints/cluster_management.py +0 -130
  114. catalystwan/endpoints/configuration/device/software_update.py +0 -31
  115. catalystwan/endpoints/configuration/disaster_recovery.py +0 -305
  116. catalystwan/endpoints/configuration/feature_profile/sdwan/application_priority.py +0 -107
  117. catalystwan/endpoints/configuration/feature_profile/sdwan/cli.py +0 -60
  118. catalystwan/endpoints/configuration/feature_profile/sdwan/dns_security.py +0 -83
  119. catalystwan/endpoints/configuration/feature_profile/sdwan/embedded_security.py +0 -88
  120. catalystwan/endpoints/configuration/feature_profile/sdwan/other.py +0 -62
  121. catalystwan/endpoints/configuration/feature_profile/sdwan/policy_object.py +0 -105
  122. catalystwan/endpoints/configuration/feature_profile/sdwan/service.py +0 -137
  123. catalystwan/endpoints/configuration/feature_profile/sdwan/sig_security.py +0 -88
  124. catalystwan/endpoints/configuration/feature_profile/sdwan/system.py +0 -205
  125. catalystwan/endpoints/configuration/feature_profile/sdwan/topology.py +0 -93
  126. catalystwan/endpoints/configuration/feature_profile/sdwan/transport.py +0 -214
  127. catalystwan/endpoints/configuration/feature_profile/sdwan/uc_voice.py +0 -77
  128. catalystwan/endpoints/configuration/network_hierarchy.py +0 -32
  129. catalystwan/endpoints/configuration/policy/abstractions.py +0 -49
  130. catalystwan/endpoints/configuration/policy/definition/access_control_list.py +0 -57
  131. catalystwan/endpoints/configuration/policy/definition/access_control_list_ipv6.py +0 -57
  132. catalystwan/endpoints/configuration/policy/definition/aip.py +0 -52
  133. catalystwan/endpoints/configuration/policy/definition/amp.py +0 -52
  134. catalystwan/endpoints/configuration/policy/definition/app_route.py +0 -50
  135. catalystwan/endpoints/configuration/policy/definition/cflowd.py +0 -46
  136. catalystwan/endpoints/configuration/policy/definition/control.py +0 -57
  137. catalystwan/endpoints/configuration/policy/definition/device_access.py +0 -57
  138. catalystwan/endpoints/configuration/policy/definition/device_access_ipv6.py +0 -59
  139. catalystwan/endpoints/configuration/policy/definition/dial_peer.py +0 -57
  140. catalystwan/endpoints/configuration/policy/definition/dns_security.py +0 -50
  141. catalystwan/endpoints/configuration/policy/definition/fxo_port.py +0 -57
  142. catalystwan/endpoints/configuration/policy/definition/fxs_did_port.py +0 -57
  143. catalystwan/endpoints/configuration/policy/definition/fxs_port.py +0 -57
  144. catalystwan/endpoints/configuration/policy/definition/hub_and_spoke.py +0 -57
  145. catalystwan/endpoints/configuration/policy/definition/intrusion_prevention.py +0 -52
  146. catalystwan/endpoints/configuration/policy/definition/mesh.py +0 -53
  147. catalystwan/endpoints/configuration/policy/definition/pri_isdn_port.py +0 -57
  148. catalystwan/endpoints/configuration/policy/definition/qos_map.py +0 -53
  149. catalystwan/endpoints/configuration/policy/definition/rewrite.py +0 -57
  150. catalystwan/endpoints/configuration/policy/definition/route_policy.py +0 -50
  151. catalystwan/endpoints/configuration/policy/definition/rule_set.py +0 -53
  152. catalystwan/endpoints/configuration/policy/definition/security_group.py +0 -57
  153. catalystwan/endpoints/configuration/policy/definition/srst_phone_profile.py +0 -59
  154. catalystwan/endpoints/configuration/policy/definition/ssl_decryption.py +0 -50
  155. catalystwan/endpoints/configuration/policy/definition/ssl_decryption_utd_profile.py +0 -52
  156. catalystwan/endpoints/configuration/policy/definition/traffic_data.py +0 -58
  157. catalystwan/endpoints/configuration/policy/definition/url_filtering.py +0 -50
  158. catalystwan/endpoints/configuration/policy/definition/vpn_membership.py +0 -57
  159. catalystwan/endpoints/configuration/policy/definition/vpn_qos_map.py +0 -50
  160. catalystwan/endpoints/configuration/policy/definition/zone_based_firewall.py +0 -57
  161. catalystwan/endpoints/configuration/policy/list/app.py +0 -48
  162. catalystwan/endpoints/configuration/policy/list/app_probe.py +0 -52
  163. catalystwan/endpoints/configuration/policy/list/as_path.py +0 -48
  164. catalystwan/endpoints/configuration/policy/list/class_map.py +0 -48
  165. catalystwan/endpoints/configuration/policy/list/color.py +0 -48
  166. catalystwan/endpoints/configuration/policy/list/community.py +0 -48
  167. catalystwan/endpoints/configuration/policy/list/data_ipv6_prefix.py +0 -52
  168. catalystwan/endpoints/configuration/policy/list/data_prefix.py +0 -48
  169. catalystwan/endpoints/configuration/policy/list/expanded_community.py +0 -52
  170. catalystwan/endpoints/configuration/policy/list/extended_community.py +0 -52
  171. catalystwan/endpoints/configuration/policy/list/fax_protocol.py +0 -48
  172. catalystwan/endpoints/configuration/policy/list/fqdn.py +0 -48
  173. catalystwan/endpoints/configuration/policy/list/geo_location.py +0 -48
  174. catalystwan/endpoints/configuration/policy/list/identity.py +0 -48
  175. catalystwan/endpoints/configuration/policy/list/ips_signature.py +0 -52
  176. catalystwan/endpoints/configuration/policy/list/ipv6_prefix.py +0 -48
  177. catalystwan/endpoints/configuration/policy/list/local_app.py +0 -48
  178. catalystwan/endpoints/configuration/policy/list/local_domain.py +0 -48
  179. catalystwan/endpoints/configuration/policy/list/media_profile.py +0 -52
  180. catalystwan/endpoints/configuration/policy/list/mirror.py +0 -48
  181. catalystwan/endpoints/configuration/policy/list/modem_pass_through.py +0 -52
  182. catalystwan/endpoints/configuration/policy/list/policer.py +0 -48
  183. catalystwan/endpoints/configuration/policy/list/port.py +0 -48
  184. catalystwan/endpoints/configuration/policy/list/preferred_color_group.py +0 -52
  185. catalystwan/endpoints/configuration/policy/list/prefix.py +0 -49
  186. catalystwan/endpoints/configuration/policy/list/protocol_name.py +0 -52
  187. catalystwan/endpoints/configuration/policy/list/region.py +0 -47
  188. catalystwan/endpoints/configuration/policy/list/scalable_group_tag.py +0 -52
  189. catalystwan/endpoints/configuration/policy/list/site.py +0 -52
  190. catalystwan/endpoints/configuration/policy/list/sla.py +0 -48
  191. catalystwan/endpoints/configuration/policy/list/supervisory_disconnect.py +0 -52
  192. catalystwan/endpoints/configuration/policy/list/threat_grid_api_key.py +0 -52
  193. catalystwan/endpoints/configuration/policy/list/tloc.py +0 -48
  194. catalystwan/endpoints/configuration/policy/list/translation_profile.py +0 -52
  195. catalystwan/endpoints/configuration/policy/list/translation_rules.py +0 -52
  196. catalystwan/endpoints/configuration/policy/list/trunkgroup.py +0 -48
  197. catalystwan/endpoints/configuration/policy/list/umbrella_data.py +0 -52
  198. catalystwan/endpoints/configuration/policy/list/url_allow_list.py +0 -48
  199. catalystwan/endpoints/configuration/policy/list/url_block_list.py +0 -48
  200. catalystwan/endpoints/configuration/policy/list/vpn.py +0 -50
  201. catalystwan/endpoints/configuration/policy/list/zone.py +0 -48
  202. catalystwan/endpoints/configuration/policy/security_template.py +0 -55
  203. catalystwan/endpoints/configuration/policy/vedge_template.py +0 -52
  204. catalystwan/endpoints/configuration/policy/voice_template.py +0 -39
  205. catalystwan/endpoints/configuration/policy/vsmart_template.py +0 -79
  206. catalystwan/endpoints/configuration/policy_group.py +0 -30
  207. catalystwan/endpoints/configuration/software_actions.py +0 -201
  208. catalystwan/endpoints/configuration/topology_group.py +0 -51
  209. catalystwan/endpoints/configuration_dashboard_status.py +0 -127
  210. catalystwan/endpoints/configuration_device_actions.py +0 -385
  211. catalystwan/endpoints/configuration_device_inventory.py +0 -309
  212. catalystwan/endpoints/configuration_device_template.py +0 -39
  213. catalystwan/endpoints/configuration_feature_profile.py +0 -135
  214. catalystwan/endpoints/configuration_general_template.py +0 -31
  215. catalystwan/endpoints/configuration_group.py +0 -197
  216. catalystwan/endpoints/configuration_settings.py +0 -749
  217. catalystwan/endpoints/configuration_template_master.py +0 -48
  218. catalystwan/endpoints/endpoints_container.py +0 -279
  219. catalystwan/endpoints/misc.py +0 -21
  220. catalystwan/endpoints/monitoring/device_details.py +0 -246
  221. catalystwan/endpoints/monitoring/security_policy.py +0 -12
  222. catalystwan/endpoints/monitoring/server_info.py +0 -12
  223. catalystwan/endpoints/monitoring/status.py +0 -76
  224. catalystwan/endpoints/real_time_monitoring/reboot_history.py +0 -35
  225. catalystwan/endpoints/sdavc_cloud_connector.py +0 -43
  226. catalystwan/endpoints/tenant_backup_restore.py +0 -40
  227. catalystwan/endpoints/tenant_management.py +0 -215
  228. catalystwan/endpoints/tenant_migration.py +0 -102
  229. catalystwan/endpoints/troubleshooting_tools/device_connectivity.py +0 -128
  230. catalystwan/endpoints/url_monitoring.py +0 -26
  231. catalystwan/integration_tests/__init__.py +0 -0
  232. catalystwan/integration_tests/base.py +0 -81
  233. catalystwan/integration_tests/feature_profile/sdwan/__init__.py +0 -0
  234. catalystwan/integration_tests/feature_profile/sdwan/policy/__init__.py +0 -0
  235. catalystwan/integration_tests/feature_profile/sdwan/policy/base.py +0 -33
  236. catalystwan/integration_tests/feature_profile/sdwan/policy/test_extended_community.py +0 -33
  237. catalystwan/integration_tests/feature_profile/sdwan/policy/test_security_app_list.py +0 -32
  238. catalystwan/integration_tests/feature_profile/sdwan/test_application_priority.py +0 -433
  239. catalystwan/integration_tests/feature_profile/sdwan/test_cli.py +0 -54
  240. catalystwan/integration_tests/feature_profile/sdwan/test_dns_security.py +0 -106
  241. catalystwan/integration_tests/feature_profile/sdwan/test_other.py +0 -49
  242. catalystwan/integration_tests/feature_profile/sdwan/test_service.py +0 -1078
  243. catalystwan/integration_tests/feature_profile/sdwan/test_sig_security.py +0 -322
  244. catalystwan/integration_tests/feature_profile/sdwan/test_ssl_decryption.py +0 -85
  245. catalystwan/integration_tests/feature_profile/sdwan/test_system.py +0 -368
  246. catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +0 -1700
  247. catalystwan/integration_tests/feature_profile/sdwan/topology/test_topology.py +0 -93
  248. catalystwan/integration_tests/profile_builder/__init__.py +0 -0
  249. catalystwan/integration_tests/profile_builder/test_pb_service.py +0 -78
  250. catalystwan/integration_tests/profile_builder/test_pb_transport.py +0 -56
  251. catalystwan/integration_tests/profile_builder/test_pb_uc_voice.py +0 -277
  252. catalystwan/integration_tests/test_data/__init__.py +0 -117
  253. catalystwan/integration_tests/test_find_template_values.py +0 -38
  254. catalystwan/integration_tests/test_network_hierarchy.py +0 -82
  255. catalystwan/integration_tests/test_settings.py +0 -30
  256. catalystwan/logging.conf +0 -37
  257. catalystwan/models/common.py +0 -1508
  258. catalystwan/models/configuration/common.py +0 -11
  259. catalystwan/models/configuration/feature_profile/README.md +0 -344
  260. catalystwan/models/configuration/feature_profile/builder.py +0 -22
  261. catalystwan/models/configuration/feature_profile/common.py +0 -749
  262. catalystwan/models/configuration/feature_profile/parcel.py +0 -232
  263. catalystwan/models/configuration/feature_profile/sdwan/acl/__init__.py +0 -13
  264. catalystwan/models/configuration/feature_profile/sdwan/acl/ipv4acl.py +0 -298
  265. catalystwan/models/configuration/feature_profile/sdwan/acl/ipv6acl.py +0 -344
  266. catalystwan/models/configuration/feature_profile/sdwan/application_priority/__init__.py +0 -215
  267. catalystwan/models/configuration/feature_profile/sdwan/application_priority/policy_settings.py +0 -31
  268. catalystwan/models/configuration/feature_profile/sdwan/application_priority/qos_policy.py +0 -102
  269. catalystwan/models/configuration/feature_profile/sdwan/application_priority/traffic_policy.py +0 -1054
  270. catalystwan/models/configuration/feature_profile/sdwan/cli/__init__.py +0 -23
  271. catalystwan/models/configuration/feature_profile/sdwan/cli/config.py +0 -18
  272. catalystwan/models/configuration/feature_profile/sdwan/cli/full_config.py +0 -15
  273. catalystwan/models/configuration/feature_profile/sdwan/dns_security/__init__.py +0 -13
  274. catalystwan/models/configuration/feature_profile/sdwan/dns_security/dns.py +0 -107
  275. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/__init__.py +0 -23
  276. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/ngfirewall.py +0 -915
  277. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/policy.py +0 -171
  278. catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py +0 -23
  279. catalystwan/models/configuration/feature_profile/sdwan/other/thousandeyes.py +0 -147
  280. catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py +0 -110
  281. catalystwan/models/configuration/feature_profile/sdwan/policy_object/__init__.py +0 -175
  282. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py +0 -56
  283. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py +0 -31
  284. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/as_path.py +0 -22
  285. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/color_list.py +0 -21
  286. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/data_prefix.py +0 -35
  287. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/expanded_community_list.py +0 -25
  288. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/extended_community.py +0 -34
  289. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/fowarding_class.py +0 -26
  290. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_data_prefix.py +0 -28
  291. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_prefix_list.py +0 -38
  292. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/mirror.py +0 -27
  293. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/policer.py +0 -42
  294. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefered_group_color.py +0 -83
  295. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefix_list.py +0 -28
  296. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/sla_class.py +0 -130
  297. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/standard_community.py +0 -30
  298. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/tloc_list.py +0 -44
  299. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/aip.py +0 -64
  300. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/amp.py +0 -79
  301. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/application_list.py +0 -31
  302. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/data_prefix.py +0 -22
  303. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/fqdn.py +0 -24
  304. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/geolocation_list.py +0 -32
  305. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/identity.py +0 -30
  306. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/intrusion_prevention.py +0 -58
  307. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ips_signature.py +0 -44
  308. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/local_domain.py +0 -24
  309. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/protocol_list.py +0 -21
  310. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/scalable_group_tag.py +0 -26
  311. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/security_port.py +0 -45
  312. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption.py +0 -126
  313. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption_profile.py +0 -165
  314. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url.py +0 -32
  315. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url_filtering.py +0 -148
  316. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/zone.py +0 -44
  317. catalystwan/models/configuration/feature_profile/sdwan/routing/__init__.py +0 -26
  318. catalystwan/models/configuration/feature_profile/sdwan/routing/bgp.py +0 -594
  319. catalystwan/models/configuration/feature_profile/sdwan/routing/ospf.py +0 -170
  320. catalystwan/models/configuration/feature_profile/sdwan/routing/ospfv3.py +0 -298
  321. catalystwan/models/configuration/feature_profile/sdwan/service/__init__.py +0 -85
  322. catalystwan/models/configuration/feature_profile/sdwan/service/appqoe.py +0 -270
  323. catalystwan/models/configuration/feature_profile/sdwan/service/dhcp_server.py +0 -127
  324. catalystwan/models/configuration/feature_profile/sdwan/service/eigrp.py +0 -103
  325. catalystwan/models/configuration/feature_profile/sdwan/service/lan/common.py +0 -33
  326. catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py +0 -275
  327. catalystwan/models/configuration/feature_profile/sdwan/service/lan/gre.py +0 -136
  328. catalystwan/models/configuration/feature_profile/sdwan/service/lan/ipsec.py +0 -119
  329. catalystwan/models/configuration/feature_profile/sdwan/service/lan/multilink.py +0 -101
  330. catalystwan/models/configuration/feature_profile/sdwan/service/lan/svi.py +0 -172
  331. catalystwan/models/configuration/feature_profile/sdwan/service/lan/vpn.py +0 -624
  332. catalystwan/models/configuration/feature_profile/sdwan/service/multicast.py +0 -242
  333. catalystwan/models/configuration/feature_profile/sdwan/service/object_tracker.py +0 -84
  334. catalystwan/models/configuration/feature_profile/sdwan/service/route_policy.py +0 -419
  335. catalystwan/models/configuration/feature_profile/sdwan/service/service_insertion_attachment.py +0 -184
  336. catalystwan/models/configuration/feature_profile/sdwan/service/switchport.py +0 -112
  337. catalystwan/models/configuration/feature_profile/sdwan/service/tracker.py +0 -92
  338. catalystwan/models/configuration/feature_profile/sdwan/service/wireless_lan.py +0 -216
  339. catalystwan/models/configuration/feature_profile/sdwan/sig_security/__init__.py +0 -19
  340. catalystwan/models/configuration/feature_profile/sdwan/sig_security/sig_security.py +0 -379
  341. catalystwan/models/configuration/feature_profile/sdwan/system/__init__.py +0 -59
  342. catalystwan/models/configuration/feature_profile/sdwan/system/aaa.py +0 -406
  343. catalystwan/models/configuration/feature_profile/sdwan/system/banner.py +0 -30
  344. catalystwan/models/configuration/feature_profile/sdwan/system/basic.py +0 -290
  345. catalystwan/models/configuration/feature_profile/sdwan/system/bfd.py +0 -69
  346. catalystwan/models/configuration/feature_profile/sdwan/system/device_access.py +0 -157
  347. catalystwan/models/configuration/feature_profile/sdwan/system/device_access_ipv6.py +0 -157
  348. catalystwan/models/configuration/feature_profile/sdwan/system/global_parcel.py +0 -149
  349. catalystwan/models/configuration/feature_profile/sdwan/system/logging_parcel.py +0 -162
  350. catalystwan/models/configuration/feature_profile/sdwan/system/mrf.py +0 -75
  351. catalystwan/models/configuration/feature_profile/sdwan/system/ntp.py +0 -103
  352. catalystwan/models/configuration/feature_profile/sdwan/system/omp.py +0 -111
  353. catalystwan/models/configuration/feature_profile/sdwan/system/security.py +0 -179
  354. catalystwan/models/configuration/feature_profile/sdwan/system/snmp.py +0 -173
  355. catalystwan/models/configuration/feature_profile/sdwan/topology/__init__.py +0 -29
  356. catalystwan/models/configuration/feature_profile/sdwan/topology/custom_control.py +0 -425
  357. catalystwan/models/configuration/feature_profile/sdwan/topology/hubspoke.py +0 -60
  358. catalystwan/models/configuration/feature_profile/sdwan/topology/mesh.py +0 -23
  359. catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +0 -93
  360. catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_controller.py +0 -58
  361. catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_profile.py +0 -71
  362. catalystwan/models/configuration/feature_profile/sdwan/transport/gps.py +0 -37
  363. catalystwan/models/configuration/feature_profile/sdwan/transport/management/ethernet.py +0 -121
  364. catalystwan/models/configuration/feature_profile/sdwan/transport/t1e1controller.py +0 -124
  365. catalystwan/models/configuration/feature_profile/sdwan/transport/vpn.py +0 -285
  366. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/cellular.py +0 -166
  367. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ethernet.py +0 -281
  368. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/gre.py +0 -46
  369. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ipsec.py +0 -98
  370. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/multilink.py +0 -219
  371. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/protocol_over.py +0 -405
  372. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/t1e1serial.py +0 -195
  373. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/__init__.py +0 -62
  374. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/analog_interface.py +0 -436
  375. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/call_routing.py +0 -179
  376. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/digital_interface.py +0 -329
  377. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/dsp_farm.py +0 -193
  378. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/media_profile.py +0 -25
  379. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/server_group.py +0 -51
  380. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/srst.py +0 -86
  381. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/supervisory_disconnect.py +0 -68
  382. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_profile.py +0 -42
  383. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_rule.py +0 -31
  384. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/trunk_group.py +0 -26
  385. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_global.py +0 -55
  386. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_tenant.py +0 -40
  387. catalystwan/models/configuration/network_hierarchy/__init__.py +0 -22
  388. catalystwan/models/configuration/network_hierarchy/cflowd.py +0 -120
  389. catalystwan/models/configuration/network_hierarchy/node.py +0 -88
  390. catalystwan/models/configuration/policy_group.py +0 -74
  391. catalystwan/models/configuration/profile_type.py +0 -5
  392. catalystwan/models/configuration/topology_group.py +0 -52
  393. catalystwan/models/device_inventory.py +0 -30
  394. catalystwan/models/feature_profile_parcel.py +0 -15
  395. catalystwan/models/misc/application_protocols.py +0 -29
  396. catalystwan/models/monitoring/security_policy.py +0 -16
  397. catalystwan/models/monitoring/server_info.py +0 -12
  398. catalystwan/models/policy/__init__.py +0 -392
  399. catalystwan/models/policy/centralized.py +0 -265
  400. catalystwan/models/policy/definition/access_control_list.py +0 -193
  401. catalystwan/models/policy/definition/access_control_list_ipv6.py +0 -187
  402. catalystwan/models/policy/definition/aip.py +0 -60
  403. catalystwan/models/policy/definition/amp.py +0 -65
  404. catalystwan/models/policy/definition/app_route.py +0 -246
  405. catalystwan/models/policy/definition/cflowd.py +0 -95
  406. catalystwan/models/policy/definition/control.py +0 -366
  407. catalystwan/models/policy/definition/device_access.py +0 -117
  408. catalystwan/models/policy/definition/device_access_ipv6.py +0 -115
  409. catalystwan/models/policy/definition/dial_peer.py +0 -60
  410. catalystwan/models/policy/definition/dns_security.py +0 -130
  411. catalystwan/models/policy/definition/fxo_port.py +0 -63
  412. catalystwan/models/policy/definition/fxs_did_port.py +0 -58
  413. catalystwan/models/policy/definition/fxs_port.py +0 -56
  414. catalystwan/models/policy/definition/hub_and_spoke.py +0 -87
  415. catalystwan/models/policy/definition/intrusion_prevention.py +0 -55
  416. catalystwan/models/policy/definition/mesh.py +0 -47
  417. catalystwan/models/policy/definition/pri_isdn_port.py +0 -48
  418. catalystwan/models/policy/definition/qos_map.py +0 -111
  419. catalystwan/models/policy/definition/rewrite.py +0 -47
  420. catalystwan/models/policy/definition/route_policy.py +0 -187
  421. catalystwan/models/policy/definition/rule_set.py +0 -270
  422. catalystwan/models/policy/definition/security_group.py +0 -93
  423. catalystwan/models/policy/definition/srst_phone_profile.py +0 -37
  424. catalystwan/models/policy/definition/ssl_decryption.py +0 -209
  425. catalystwan/models/policy/definition/ssl_decryption_utd_profile.py +0 -87
  426. catalystwan/models/policy/definition/traffic_data.py +0 -496
  427. catalystwan/models/policy/definition/url_filtering.py +0 -70
  428. catalystwan/models/policy/definition/vpn_membership.py +0 -42
  429. catalystwan/models/policy/definition/vpn_qos_map.py +0 -46
  430. catalystwan/models/policy/definition/zone_based_firewall.py +0 -301
  431. catalystwan/models/policy/list/app.py +0 -44
  432. catalystwan/models/policy/list/app_probe.py +0 -42
  433. catalystwan/models/policy/list/as_path.py +0 -30
  434. catalystwan/models/policy/list/class_map.py +0 -30
  435. catalystwan/models/policy/list/color.py +0 -28
  436. catalystwan/models/policy/list/communities.py +0 -83
  437. catalystwan/models/policy/list/data_ipv6_prefix.py +0 -30
  438. catalystwan/models/policy/list/data_prefix.py +0 -30
  439. catalystwan/models/policy/list/fax_protocol.py +0 -45
  440. catalystwan/models/policy/list/fqdn.py +0 -24
  441. catalystwan/models/policy/list/geo_location.py +0 -33
  442. catalystwan/models/policy/list/identity.py +0 -29
  443. catalystwan/models/policy/list/ips_signature.py +0 -27
  444. catalystwan/models/policy/list/ipv6_prefix.py +0 -33
  445. catalystwan/models/policy/list/local_app.py +0 -45
  446. catalystwan/models/policy/list/local_domain.py +0 -36
  447. catalystwan/models/policy/list/media_profile.py +0 -44
  448. catalystwan/models/policy/list/mirror.py +0 -27
  449. catalystwan/models/policy/list/modem_pass_through.py +0 -27
  450. catalystwan/models/policy/list/policer.py +0 -39
  451. catalystwan/models/policy/list/port.py +0 -33
  452. catalystwan/models/policy/list/preferred_color_group.py +0 -82
  453. catalystwan/models/policy/list/prefix.py +0 -33
  454. catalystwan/models/policy/list/protocol_name.py +0 -26
  455. catalystwan/models/policy/list/region.py +0 -45
  456. catalystwan/models/policy/list/scalable_group_tag.py +0 -30
  457. catalystwan/models/policy/list/site.py +0 -34
  458. catalystwan/models/policy/list/sla.py +0 -77
  459. catalystwan/models/policy/list/supervisory_disconnect.py +0 -62
  460. catalystwan/models/policy/list/threat_grid_api_key.py +0 -32
  461. catalystwan/models/policy/list/tloc.py +0 -32
  462. catalystwan/models/policy/list/translation_profile.py +0 -32
  463. catalystwan/models/policy/list/translation_rules.py +0 -29
  464. catalystwan/models/policy/list/trunkgroup.py +0 -56
  465. catalystwan/models/policy/list/umbrella_data.py +0 -30
  466. catalystwan/models/policy/list/url.py +0 -39
  467. catalystwan/models/policy/list/vpn.py +0 -40
  468. catalystwan/models/policy/list/zone.py +0 -45
  469. catalystwan/models/policy/localized.py +0 -154
  470. catalystwan/models/policy/policy.py +0 -100
  471. catalystwan/models/policy/policy_definition.py +0 -1624
  472. catalystwan/models/policy/policy_list.py +0 -47
  473. catalystwan/models/policy/security.py +0 -279
  474. catalystwan/models/policy/voice.py +0 -71
  475. catalystwan/models/settings.py +0 -41
  476. catalystwan/models/templates.py +0 -79
  477. catalystwan/models/tenant.py +0 -105
  478. catalystwan/models/url_monitoring.py +0 -28
  479. catalystwan/tests/__init__.py +0 -0
  480. catalystwan/tests/builders/uc_voice.py +0 -85
  481. catalystwan/tests/models/__init__.py +0 -0
  482. catalystwan/tests/templates/__init__.py +0 -0
  483. catalystwan/tests/templates/definitions/__init__.py +0 -0
  484. catalystwan/tests/templates/definitions/aaa_basic.json +0 -96
  485. catalystwan/tests/templates/definitions/aaa_complex.json +0 -464
  486. catalystwan/tests/templates/definitions/basic/__init__.py +0 -0
  487. catalystwan/tests/templates/definitions/basic/alias.json +0 -7
  488. catalystwan/tests/templates/definitions/basic/basic.json +0 -7
  489. catalystwan/tests/templates/definitions/basic/basic_no_value.json +0 -7
  490. catalystwan/tests/templates/definitions/basic/children.json +0 -39
  491. catalystwan/tests/templates/definitions/basic/children_nested.json +0 -72
  492. catalystwan/tests/templates/definitions/basic/children_nested_datapath.json +0 -72
  493. catalystwan/tests/templates/definitions/basic/data_path.json +0 -13
  494. catalystwan/tests/templates/definitions/cisco_aaa.json +0 -178
  495. catalystwan/tests/templates/definitions/cisco_aaa_complex.json +0 -361
  496. catalystwan/tests/templates/definitions/cisco_banner.json +0 -20
  497. catalystwan/tests/templates/definitions/cisco_bfd.json +0 -90
  498. catalystwan/tests/templates/definitions/cisco_logging_complex.json +0 -268
  499. catalystwan/tests/templates/definitions/cisco_ntp_complex.json +0 -143
  500. catalystwan/tests/templates/definitions/cisco_omp_complex.json +0 -175
  501. catalystwan/tests/templates/definitions/cisco_ospf_complex.json +0 -302
  502. catalystwan/tests/templates/definitions/cisco_sig.json +0 -405
  503. catalystwan/tests/templates/definitions/cisco_snmp_complex.json +0 -258
  504. catalystwan/tests/templates/definitions/cisco_system_complex.json +0 -502
  505. catalystwan/tests/templates/definitions/cisco_vpn_basic.json +0 -17
  506. catalystwan/tests/templates/definitions/cisco_vpn_complex.json +0 -1081
  507. catalystwan/tests/templates/definitions/cisco_vpn_interface_complex.json +0 -821
  508. catalystwan/tests/templates/definitions/default_cisco_system.json +0 -184
  509. catalystwan/tests/templates/definitions/omp_vsmart_1.json +0 -26
  510. catalystwan/tests/templates/definitions/omp_vsmart_2.json +0 -48
  511. catalystwan/tests/templates/definitions/omp_vsmart_3.json +0 -71
  512. catalystwan/tests/templates/definitions/omp_vsmart_complex.json +0 -73
  513. catalystwan/tests/templates/definitions/security_vsmart_complex.json +0 -24
  514. catalystwan/tests/templates/definitions/system_vsmart_complex.json +0 -193
  515. catalystwan/tests/templates/definitions/vpn_vsmart_basic.json +0 -17
  516. catalystwan/tests/templates/definitions/vpn_vsmart_complex.json +0 -179
  517. catalystwan/tests/templates/definitions/vpn_vsmart_interface_basic.json +0 -42
  518. catalystwan/tests/templates/definitions/vpn_vsmart_interface_complex.json +0 -208
  519. catalystwan/tests/templates/models/__init__.py +0 -53
  520. catalystwan/tests/templates/models/aaa.py +0 -106
  521. catalystwan/tests/templates/models/cisco_aaa.py +0 -124
  522. catalystwan/tests/templates/models/cisco_banner.py +0 -7
  523. catalystwan/tests/templates/models/cisco_bfd.py +0 -15
  524. catalystwan/tests/templates/models/cisco_logging.py +0 -65
  525. catalystwan/tests/templates/models/cisco_ntp.py +0 -17
  526. catalystwan/tests/templates/models/cisco_omp.py +0 -37
  527. catalystwan/tests/templates/models/cisco_ospf.py +0 -60
  528. catalystwan/tests/templates/models/cisco_secure_internet_gateway.py +0 -95
  529. catalystwan/tests/templates/models/cisco_snmp.py +0 -40
  530. catalystwan/tests/templates/models/cisco_system.py +0 -113
  531. catalystwan/tests/templates/models/cisco_vpn.py +0 -240
  532. catalystwan/tests/templates/models/cisco_vpn_interface.py +0 -200
  533. catalystwan/tests/templates/models/omp_vsmart.py +0 -53
  534. catalystwan/tests/templates/models/security_vsmart.py +0 -11
  535. catalystwan/tests/templates/models/system_vsmart.py +0 -37
  536. catalystwan/tests/templates/models/vpn_vsmart.py +0 -32
  537. catalystwan/tests/templates/models/vpn_vsmart_interface.py +0 -54
  538. catalystwan/tests/templates/schemas/aaa.json +0 -1096
  539. catalystwan/tests/templates/schemas/basic/alias.json +0 -24
  540. catalystwan/tests/templates/schemas/basic/basic.json +0 -23
  541. catalystwan/tests/templates/schemas/basic/children.json +0 -59
  542. catalystwan/tests/templates/schemas/basic/children_nested.json +0 -112
  543. catalystwan/tests/templates/schemas/basic/children_nested_datapath.json +0 -112
  544. catalystwan/tests/templates/schemas/basic/data_path.json +0 -29
  545. catalystwan/tests/templates/schemas/cedge_aaa.json +0 -1185
  546. catalystwan/tests/templates/schemas/cisco_banner.json +0 -44
  547. catalystwan/tests/templates/schemas/cisco_bfd.json +0 -266
  548. catalystwan/tests/templates/schemas/cisco_logging.json +0 -577
  549. catalystwan/tests/templates/schemas/cisco_ntp.json +0 -265
  550. catalystwan/tests/templates/schemas/cisco_omp.json +0 -479
  551. catalystwan/tests/templates/schemas/cisco_ospf.json +0 -908
  552. catalystwan/tests/templates/schemas/cisco_secure_internet_gateway.json +0 -1520
  553. catalystwan/tests/templates/schemas/cisco_snmp.json +0 -561
  554. catalystwan/tests/templates/schemas/cisco_system.json +0 -3099
  555. catalystwan/tests/templates/schemas/cisco_vpn.json +0 -2504
  556. catalystwan/tests/templates/schemas/cisco_vpn_interface.json +0 -3348
  557. catalystwan/tests/templates/schemas/omp-vsmart.json +0 -222
  558. catalystwan/tests/templates/schemas/security-vsmart.json +0 -58
  559. catalystwan/tests/templates/schemas/system-vsmart.json +0 -2585
  560. catalystwan/tests/templates/schemas/vpn-vsmart-interface.json +0 -859
  561. catalystwan/tests/templates/schemas/vpn-vsmart.json +0 -445
  562. catalystwan/tests/templates/test_chose_model.py +0 -32
  563. catalystwan/tests/templates/test_deserialize_model.py +0 -69
  564. catalystwan/tests/templates/test_find_template_values.py +0 -193
  565. catalystwan/tests/templates/test_find_template_values_2.py +0 -193
  566. catalystwan/tests/templates/test_generate_payload.py +0 -137
  567. catalystwan/tests/templates/test_serialize_model.py +0 -52
  568. catalystwan/tests/test_admin_tech_api.py +0 -198
  569. catalystwan/tests/test_administration.py +0 -470
  570. catalystwan/tests/test_alarms_api.py +0 -251
  571. catalystwan/tests/test_cli_template.py +0 -218
  572. catalystwan/tests/test_creation_tools.py +0 -155
  573. catalystwan/tests/test_device_action_api.py +0 -117
  574. catalystwan/tests/test_devices_api.py +0 -674
  575. catalystwan/tests/test_endpoints.py +0 -907
  576. catalystwan/tests/test_feature_profile_api.py +0 -282
  577. catalystwan/tests/test_feature_template_field.py +0 -33
  578. catalystwan/tests/test_logs_api.py +0 -40
  579. catalystwan/tests/test_models_common.py +0 -53
  580. catalystwan/tests/test_monitoring_security_policy.py +0 -65
  581. catalystwan/tests/test_monitoring_server_info.py +0 -49
  582. catalystwan/tests/test_monitoring_status_api.py +0 -118
  583. catalystwan/tests/test_mtt_aaa_api.py +0 -293
  584. catalystwan/tests/test_omp_api.py +0 -438
  585. catalystwan/tests/test_packet_capture.py +0 -125
  586. catalystwan/tests/test_partition_manager_api.py +0 -121
  587. catalystwan/tests/test_response.py +0 -183
  588. catalystwan/tests/test_session.py +0 -102
  589. catalystwan/tests/test_software_action_api.py +0 -154
  590. catalystwan/tests/test_speed_test_api.py +0 -143
  591. catalystwan/tests/test_task_status_api.py +0 -381
  592. catalystwan/tests/test_templates.py +0 -405
  593. catalystwan/tests/test_tenant_backup_restore_api.py +0 -88
  594. catalystwan/tests/test_tenant_management_api.py +0 -153
  595. catalystwan/tests/test_tenant_migration_api.py +0 -102
  596. catalystwan/tests/test_typed_list.py +0 -426
  597. catalystwan/tests/test_url_monitoring.py +0 -80
  598. catalystwan/tests/test_version.py +0 -99
  599. catalystwan/tests/test_version_utils.py +0 -240
  600. catalystwan/tests/test_vmanage_auth.py +0 -149
  601. catalystwan/typed_list.py +0 -288
  602. catalystwan/utils/__init__.py +0 -0
  603. catalystwan/utils/alarm_status.py +0 -16
  604. catalystwan/utils/certificate_status.py +0 -13
  605. catalystwan/utils/colors.py +0 -12
  606. catalystwan/utils/config_status.py +0 -8
  607. catalystwan/utils/creation_tools.py +0 -136
  608. catalystwan/utils/dashboard.py +0 -255
  609. catalystwan/utils/device_model.py +0 -322
  610. catalystwan/utils/dict.py +0 -61
  611. catalystwan/utils/feature_template/choose_model.py +0 -30
  612. catalystwan/utils/feature_template/find_template_values.py +0 -111
  613. catalystwan/utils/model.py +0 -45
  614. catalystwan/utils/operation_status.py +0 -22
  615. catalystwan/utils/persona.py +0 -5
  616. catalystwan/utils/personality.py +0 -10
  617. catalystwan/utils/pydantic_field.py +0 -12
  618. catalystwan/utils/reachability.py +0 -14
  619. catalystwan/utils/session_type.py +0 -17
  620. catalystwan/utils/template_type.py +0 -8
  621. catalystwan/utils/type_check.py +0 -22
  622. catalystwan/utils/upgrades_helper.py +0 -95
  623. catalystwan/utils/validate_status.py +0 -8
  624. catalystwan/workflows/backup_restore_device_templates.py +0 -467
  625. catalystwan/workflows/tenant_migration.py +0 -203
  626. catalystwan-0.40.1.dev6.dist-info/METADATA +0 -539
  627. catalystwan-0.40.1.dev6.dist-info/RECORD +0 -618
  628. /catalystwan/{api → core/models}/__init__.py +0 -0
  629. /catalystwan/{api/builders/feature_profiles/__init__.py → core/py.typed} +0 -0
  630. {catalystwan-0.40.1.dev6.dist-info → catalystwan-2.0.0a0.dist-info}/LICENSE +0 -0
@@ -1,1508 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- import re
4
- from dataclasses import InitVar, dataclass, field
5
- from ipaddress import IPv4Interface, IPv6Interface
6
- from typing import Any, Dict, Iterator, List, Literal, Mapping, Optional, Sequence, Set, Tuple, Union, cast, get_args
7
- from uuid import UUID
8
-
9
- from annotated_types import Ge, Le
10
- from packaging.specifiers import SpecifierSet # type: ignore
11
- from packaging.version import Version # type: ignore
12
- from pydantic import Field, NonNegativeInt, PlainSerializer, PositiveInt, SerializationInfo, ValidationInfo
13
- from pydantic.fields import FieldInfo
14
- from pydantic.functional_validators import BeforeValidator
15
- from typing_extensions import Annotated
16
-
17
-
18
- @dataclass()
19
- class VersionedField:
20
- """
21
- This class could be used as field type annotation for pydantic.BaseModel fields.
22
- Together with dedicated @model_serializer it allows pick different serialization alias.
23
- When version provided as specifier set eg. ">=20.13" matches Manager API version detected at runtime
24
- original serialization_alias will be overriden.
25
-
26
- Example:
27
- >>> from catalystwan.models.common import VersionedField
28
- >>> from pydantic import BaseModel, SerializationInfo, SerializerFunctionWrapHandler, model_serializer
29
- >>> from typing_extensions import Annotated
30
- >>>
31
- >>> class Payload(BaseModel):
32
- >>> snake_case: Annotated[int, VersionedField(versions="<=20.12", serialization_alias="kebab-case")]
33
- >>>
34
- >>> @model_serializer(mode="wrap", when_used="json")
35
- >>> def serialize(self, handler: SerializerFunctionWrapHandler, info: SerializationInfo) -> Dict[str, Any]:
36
- >>> return VersionedField.dump(self.model_fields, handler(self), info)
37
- """
38
-
39
- versions: InitVar[str]
40
- versions_set: SpecifierSet = field(init=False)
41
- serialization_alias: Optional[str] = None
42
- forbidden: bool = False
43
-
44
- def __post_init__(self, versions):
45
- self.versions_set = SpecifierSet(versions)
46
-
47
- @staticmethod
48
- def model_iterate(
49
- model_fields: Dict[str, FieldInfo], info: Union[SerializationInfo, ValidationInfo]
50
- ) -> Iterator[Tuple[str, FieldInfo, "VersionedField"]]:
51
- """Itrerates over model fields that matches a version given in context (Serialization info or ValidationInfo)
52
-
53
- Yields:
54
- Tuple[str, FieldInfo, VersionedField]: a tuple containing field name, FieldInfo and VersionedField
55
- """
56
- if info.context is not None:
57
- api_version: Optional[Version] = info.context.get("api_version")
58
- if api_version is not None:
59
- for field_name, field_info in model_fields.items():
60
- versioned_fields = [meta for meta in field_info.metadata if isinstance(meta, VersionedField)]
61
- for versioned_field in versioned_fields:
62
- if api_version in versioned_field.versions_set:
63
- yield (field_name, field_info, versioned_field)
64
-
65
- @staticmethod
66
- def dump(
67
- model_fields: Dict[str, FieldInfo],
68
- model_dict: Dict[str, Any],
69
- info: SerializationInfo,
70
- replaced_keys: Optional[Mapping[str, Tuple[Optional[str], str]]] = None,
71
- ) -> Dict[str, Any]:
72
- """To be reused in methods decorated with pydantic.model_serializer
73
- Args:
74
- model_fields (Dict[str, FieldInfo]): obtained from BaseModel class
75
- model_dict (Dict[str, Any]): obtained from serialized BaseModel instance
76
- serialization_info (SerializationInfo): passed from serializer
77
- replaced_keys (Dict[str, Tuple(Optional[str], str)]): field names that were replaced
78
- previously during serialization
79
- (Tuple represent path and new field name - this currently supports up to 1 level deep alias path only)
80
-
81
- Returns:
82
- Dict[str, Any]: model_dict with updated field names according to matching runtime version
83
- """
84
- for field_name, field_info, versioned_field in VersionedField.model_iterate(model_fields, info):
85
- current_field_name = field_info.serialization_alias or field_info.alias or field_name
86
- new_field_name = versioned_field.serialization_alias
87
- if current_field_name in model_dict:
88
- if versioned_field.forbidden:
89
- del model_dict[current_field_name]
90
- elif new_field_name is not None and new_field_name != current_field_name:
91
- model_dict[new_field_name] = model_dict[current_field_name]
92
- del model_dict[current_field_name]
93
- elif replaced_keys is not None:
94
- if current_field_path := replaced_keys.get(current_field_name):
95
- path, name = current_field_path
96
- dict_ = model_dict[path] if path is not None else model_dict
97
- if new_field_name is not None:
98
- dict_[new_field_name] = dict_[name]
99
- del dict_[name]
100
- return model_dict
101
-
102
-
103
- def check_fields_exclusive(values: Dict, field_names: Set[str], at_least_one: bool = False) -> bool:
104
- """Helper method to check fields are mutually exclusive
105
-
106
- Args:
107
- values (Dict): BaseModel field values
108
- field_names (Set[str]): set of field names that we want to be mutually exclusive
109
- at_least_one (bool, optional): Additionaly check if at least one of fields is not None
110
-
111
- Raises:
112
- ValueError: When fields are not mutually exclusive
113
-
114
- Returns:
115
- bool: True if at least one field was present
116
- """
117
- assigned = [values.get(field_name) for field_name in field_names if values.get(field_name) is not None]
118
- if len(assigned) == 0 and at_least_one:
119
- raise ValueError(f"At least one of given fields {field_names} must be assigned")
120
- if len(assigned) > 1:
121
- raise ValueError(f"Fields {field_names} are mutually exclusive")
122
- return True if len(assigned) > 0 else False
123
-
124
-
125
- def check_any_of_exclusive_field_sets(values: Dict, field_sets: List[Tuple[Set[str], bool]]):
126
- """This is very specific validator but common in policy definitions model.
127
- It checks that fields in each of the sets are mutually exclusive and also
128
- guarantees that at least one of the values is present from all sets.
129
-
130
- Args:
131
- values (Dict): BaseModel field values
132
- field_sets (Set[Tuple[Set[str]], bool]): Set of tuples each tuple should
133
- contain field names set and flag to check if at least one of fields is present within a set
134
-
135
- Raises:
136
- ValueError: When fields are not mutually exclusive or none of the field values is present
137
-
138
- """
139
- any_assigned = False
140
- for field_names, at_least_one in field_sets:
141
- if check_fields_exclusive(values, field_names, at_least_one):
142
- any_assigned = True
143
- if not any_assigned:
144
- all_sets_field_names = [s[0] for s in field_sets]
145
- raise ValueError(f"One of {all_sets_field_names} must be assigned")
146
-
147
-
148
- def str_as_uuid_list(val: Union[str, Sequence[UUID]]) -> Sequence[UUID]:
149
- if isinstance(val, str):
150
- return [UUID(uuid_) for uuid_ in val.split()]
151
- return val
152
-
153
-
154
- def str_as_positive_int_list(val: Union[str, Sequence[PositiveInt]]) -> Sequence[PositiveInt]:
155
- if isinstance(val, str):
156
- return [int(element) for element in val.split()]
157
- return val
158
-
159
-
160
- def str_as_ipv4_list(val: Union[str, Sequence[IPv4Interface]]) -> Sequence[IPv4Interface]:
161
- if isinstance(val, str):
162
- return [IPv4Interface(element) for element in val.split()]
163
- return val
164
-
165
-
166
- def str_as_ipv6_list(val: Union[str, Sequence[IPv6Interface]]) -> Sequence[IPv6Interface]:
167
- if isinstance(val, str):
168
- return [IPv6Interface(element) for element in val.split()]
169
- return val
170
-
171
-
172
- def str_as_str_list(val: Union[str, Sequence[str]]) -> Sequence[str]:
173
- if isinstance(val, str):
174
- return val.split()
175
- return val
176
-
177
-
178
- IntStr = Annotated[
179
- int,
180
- PlainSerializer(lambda x: str(x), return_type=str, when_used="json-unless-none"),
181
- BeforeValidator(lambda x: int(x)),
182
- ]
183
-
184
- IntRange = Tuple[int, Optional[int]]
185
-
186
- SpaceSeparatedUUIDList = Annotated[
187
- List[UUID],
188
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
189
- BeforeValidator(str_as_uuid_list),
190
- Field(min_length=1),
191
- ]
192
-
193
- SpaceSeparatedNonNegativeIntList = Annotated[
194
- List[NonNegativeInt],
195
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
196
- BeforeValidator(str_as_positive_int_list),
197
- Field(min_length=1),
198
- ]
199
-
200
- SpaceSeparatedIPv4 = Annotated[
201
- List[IPv4Interface],
202
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
203
- BeforeValidator(str_as_ipv4_list),
204
- Field(min_length=1),
205
- ]
206
-
207
- SpaceSeparatedIPv6 = Annotated[
208
- List[IPv6Interface],
209
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
210
- BeforeValidator(str_as_ipv6_list),
211
- Field(min_length=1),
212
- ]
213
-
214
-
215
- def int_range_str_validator(value: Union[str, int, IntRange], ascending: bool = True) -> IntRange:
216
- """
217
- Validates input given as string containing integer pair separated by hyphen
218
- eg: '1-3' or single number '1'
219
- """
220
- if isinstance(value, str):
221
- int_list = [int(i) for i in value.strip().split("-")]
222
- assert 0 < len(int_list) <= 2, "Number range string must contain one or two numbers"
223
- first = int_list[0]
224
- second = None if len(int_list) == 1 else int_list[1]
225
- int_range = (first, second)
226
- elif isinstance(value, int):
227
- int_range = (value, None)
228
- else:
229
- int_range = value
230
- if ascending and int_range[1] is not None:
231
- assert int_range[0] < int_range[1], "Numbers in range must be in ascending order"
232
- return int_range
233
-
234
-
235
- def int_range_serializer(value: IntRange) -> str:
236
- """Serializes integer pair as string separated by hyphen eg: '1-3' or single number '1'"""
237
- return "-".join((str(i) for i in value if i is not None))
238
-
239
-
240
- IntRangeStr = Annotated[
241
- IntRange,
242
- PlainSerializer(int_range_serializer, return_type=str, when_used="json-unless-none"),
243
- BeforeValidator(int_range_str_validator),
244
- ]
245
-
246
- AcceptDropActionType = Literal["accept", "drop"]
247
- AcceptRejectActionType = Literal["accept", "reject"]
248
- DeviceAccessProtocolPort = Literal[161, 22]
249
-
250
- DestinationRegion = Literal[
251
- "primary-region",
252
- "secondary-region",
253
- "other-region",
254
- ]
255
-
256
- DNSEntryType = Literal[
257
- "request",
258
- "response",
259
- ]
260
-
261
- CarrierType = Literal[
262
- "default",
263
- "carrier1",
264
- "carrier2",
265
- "carrier3",
266
- "carrier4",
267
- "carrier5",
268
- "carrier6",
269
- "carrier7",
270
- "carrier8",
271
- ]
272
-
273
- ControlPathType = Literal[
274
- "direct-path",
275
- "hierarchical-path",
276
- "transport-gateway-path",
277
- ]
278
-
279
- EncapType = Literal[
280
- "ipsec",
281
- "gre",
282
- ]
283
-
284
-
285
- InterfaceType = Literal[
286
- "Ethernet",
287
- "FastEthernet",
288
- "FiveGigabitEthernet",
289
- "FortyGigabitEthernet",
290
- "GigabitEthernet",
291
- "HundredGigE",
292
- "Loopback",
293
- "TenGigabitEthernet",
294
- "Tunnel",
295
- "TwentyFiveGigabitEthernet",
296
- "TwentyFiveGigE",
297
- "TwoGigabitEthernet",
298
- "VirtualPortGroup",
299
- "Vlan",
300
- ]
301
- InterfaceTypePattern = re.compile(r"^(?:" + "|".join(map(re.escape, get_args(InterfaceType))) + r")[\x00-\x7F]*$")
302
-
303
- InterfaceStr = Annotated[
304
- str,
305
- Field(pattern=InterfaceTypePattern),
306
- ]
307
-
308
-
309
- def str_as_interface_list(val: Union[str, Sequence[InterfaceStr]]) -> Sequence[InterfaceStr]:
310
- if isinstance(val, str):
311
- return [str(element) for element in val.split()]
312
- return val
313
-
314
-
315
- SpaceSeparatedInterfaceStr = Annotated[
316
- List[InterfaceStr],
317
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
318
- BeforeValidator(str_as_interface_list),
319
- ]
320
-
321
- StaticNatDirection = Literal["inside", "outside"]
322
-
323
- Protocol = Literal["tcp", "udp"]
324
-
325
- TLOCColor = Literal[
326
- "default",
327
- "mpls",
328
- "metro-ethernet",
329
- "biz-internet",
330
- "public-internet",
331
- "lte",
332
- "3g",
333
- "red",
334
- "green",
335
- "blue",
336
- "gold",
337
- "silver",
338
- "bronze",
339
- "custom1",
340
- "custom2",
341
- "custom3",
342
- "private1",
343
- "private2",
344
- "private3",
345
- "private4",
346
- "private5",
347
- "private6",
348
- ]
349
-
350
- MpVoiceCodec = Literal[
351
- "G711aLaw",
352
- "G711uLaw",
353
- "G722",
354
- "G729r8",
355
- "ilbc",
356
- "g711ulaw",
357
- "g711alaw",
358
- "g772",
359
- "g729r8",
360
- ]
361
-
362
- FaxProtocols = Literal[
363
- "Fax Pass-through G711alaw No ECM",
364
- "Fax Pass-through G711alaw",
365
- "Fax Pass-through G711ulaw No ECM",
366
- "Fax Pass-through G711ulaw",
367
- "None",
368
- "T.38 Fax Relay Version 0 No ECM",
369
- "T.38 Fax Relay Version 0 NSE force No ECM",
370
- "T.38 Fax Relay Version 0 NSE force Rate 14.4 No ECM",
371
- "T.38 Fax Relay Version 0 NSE force Rate 14.4",
372
- "T.38 Fax Relay Version 0 NSE force Rate 9.6 No ECM",
373
- "T.38 Fax Relay Version 0 NSE force Rate 9.6",
374
- "T.38 Fax Relay Version 0 NSE force",
375
- "T.38 Fax Relay Version 0 NSE No ECM",
376
- "T.38 Fax Relay Version 0 NSE Rate 14.4 No ECM",
377
- "T.38 Fax Relay Version 0 NSE Rate 14.4",
378
- "T.38 Fax Relay Version 0 NSE Rate 9.6 No ECM",
379
- "T.38 Fax Relay Version 0 NSE Rate 9.6",
380
- "T.38 Fax Relay Version 0 NSE",
381
- "T.38 Fax Relay Version 0 Rate 14.4 No ECM",
382
- "T.38 Fax Relay Version 0 Rate 14.4",
383
- "T.38 Fax Relay Version 0 Rate 9.6 No ECM",
384
- "T.38 Fax Relay Version 0",
385
- "T.38 Fax Relay Version 3 NSE force",
386
- "T.38 Fax Relay Version 3 NSE",
387
- "T.38 Fax Relay Version 3",
388
- ]
389
-
390
- FaxPrimaryProtocols = Literal[
391
- "none",
392
- "t38",
393
- "g711ulaw",
394
- "g711alaw",
395
- ]
396
-
397
- FaxFallBackProtocols = Literal[
398
- "none",
399
- "g711ulaw",
400
- "g711alaw",
401
- ]
402
-
403
- MpDtmf = Literal[
404
- "inband",
405
- "rtp-nte",
406
- "rtp-nte sip-kpml",
407
- "rtp-nte sip-kpml sip-notify",
408
- "rtp-nte sip-notify",
409
- "rtp-nte sip-notify sip-kpml",
410
- "sip-kpml",
411
- "sip-kpml rtp-nte",
412
- "sip-kpml rtp-nte sip-notify",
413
- "sip-kpml sip-notify",
414
- "sip-kpml sip-notify rtp-nte",
415
- "sip-notify",
416
- "sip-notify rtp-nte",
417
- "sip-notify rtp-nte sip-kpml",
418
- "sip-notify sip-kpml",
419
- "sip-notify sip-kpml rtp-nte",
420
- ]
421
-
422
- HuntSchemeMethod = Literal[
423
- "least-idle",
424
- "least-used",
425
- "longest-idle",
426
- "random",
427
- "round-robin",
428
- "sequential",
429
- ]
430
-
431
- HuntSchemeChannel = Literal[
432
- "both",
433
- "even",
434
- "odd",
435
- ]
436
-
437
- HuntSchemeDirection = Literal[
438
- "down",
439
- "up",
440
- ]
441
-
442
- SpaceSeparatedTLOCColorStr = Annotated[
443
- List[TLOCColor],
444
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
445
- BeforeValidator(str_as_str_list),
446
- ]
447
-
448
-
449
- WellKnownBGPCommunities = Literal[
450
- "internet",
451
- "local-AS",
452
- "no-advertise",
453
- "no-export",
454
- ]
455
-
456
-
457
- MultiRegionRole = Literal[
458
- "border-router",
459
- "edge-router",
460
- ]
461
-
462
- OriginProtocol = Literal[
463
- "aggregate",
464
- "bgp",
465
- "bgp-external",
466
- "bgp-internal",
467
- "connected",
468
- "eigrp",
469
- "ospf",
470
- "ospf-inter-area",
471
- "ospf-intra-area",
472
- "ospf-external1",
473
- "ospf-external2",
474
- "rip",
475
- "static",
476
- "eigrp-summary",
477
- "eigrp-internal",
478
- "eigrp-external",
479
- "lisp",
480
- "nat-dia",
481
- "natpool",
482
- "isis",
483
- "isis-level1",
484
- "isis-level2",
485
- "egp",
486
- "igp",
487
- "incomplete",
488
- ]
489
-
490
- ServiceType = Literal[
491
- "appqoe",
492
- "FW",
493
- "IDP",
494
- "IDS",
495
- "netsvc1",
496
- "netsvc2",
497
- "netsvc3",
498
- "netsvc4",
499
- "netsvc5",
500
- ]
501
-
502
- ServiceChainNumber = Literal[
503
- "SC1",
504
- "SC2",
505
- "SC3",
506
- "SC4",
507
- "SC5",
508
- "SC6",
509
- "SC7",
510
- "SC8",
511
- "SC9",
512
- "SC10",
513
- "SC11",
514
- "SC12",
515
- "SC13",
516
- "SC14",
517
- "SC15",
518
- "SC16",
519
- ]
520
-
521
- SequenceIpType = Literal[
522
- "ipv4",
523
- "ipv6",
524
- "all",
525
- ]
526
-
527
- TLOCActionType = Literal[
528
- "strict",
529
- "primary",
530
- "backup",
531
- "ecmp",
532
- ]
533
-
534
- IcmpMsgType = Literal[
535
- "administratively-prohibited",
536
- "dod-host-prohibited",
537
- "dod-net-prohibited",
538
- "echo",
539
- "echo-reply",
540
- "echo-reply-no-error",
541
- "extended-echo",
542
- "extended-echo-reply",
543
- "general-parameter-problem",
544
- "host-isolated",
545
- "host-precedence-unreachable",
546
- "host-redirect",
547
- "host-tos-redirect",
548
- "host-tos-unreachable",
549
- "host-unknown",
550
- "host-unreachable",
551
- "interface-error",
552
- "malformed-query",
553
- "multiple-interface-match",
554
- "net-redirect",
555
- "net-tos-redirect",
556
- "net-tos-unreachable",
557
- "net-unreachable",
558
- "network-unknown",
559
- "no-room-for-option",
560
- "option-missing",
561
- "packet-too-big",
562
- "parameter-problem",
563
- "photuris",
564
- "port-unreachable",
565
- "precedence-unreachable",
566
- "protocol-unreachable",
567
- "reassembly-timeout",
568
- "redirect",
569
- "router-advertisement",
570
- "router-solicitation",
571
- "source-route-failed",
572
- "table-entry-error",
573
- "time-exceeded",
574
- "timestamp-reply",
575
- "timestamp-request",
576
- "ttl-exceeded",
577
- "unreachable",
578
- ]
579
-
580
- Icmp6MsgType = Literal[
581
- "beyond-scope",
582
- "cp-advertisement",
583
- "cp-solicitation",
584
- "destination-unreachable",
585
- "dhaad-reply",
586
- "dhaad-request",
587
- "echo-reply",
588
- "echo-request",
589
- "header",
590
- "hop-limit",
591
- "ind-advertisement",
592
- "ind-solicitation",
593
- "mld-query",
594
- "mld-reduction",
595
- "mld-report",
596
- "mldv2-report",
597
- "mpd-advertisement",
598
- "mpd-solicitation",
599
- "mr-advertisement",
600
- "mr-solicitation",
601
- "mr-termination",
602
- "nd-na",
603
- "nd-ns",
604
- "next-header-type",
605
- "ni-query",
606
- "ni-query-name",
607
- "ni-query-v4-address",
608
- "ni-query-v6-address",
609
- "ni-response",
610
- "ni-response-qtype-unknown",
611
- "ni-response-refuse",
612
- "ni-response-success",
613
- "no-admin",
614
- "no-route",
615
- "packet-too-big",
616
- "parameter-option",
617
- "parameter-problem",
618
- "port-unreachable",
619
- "reassembly-timeout",
620
- "redirect",
621
- "reject-route",
622
- "renum-command",
623
- "renum-result",
624
- "renum-seq-number",
625
- "router-advertisement",
626
- "router-renumbering",
627
- "router-solicitation",
628
- "rpl-control",
629
- "source-policy",
630
- "source-route-header",
631
- "time-exceeded",
632
- "unreachable",
633
- ]
634
-
635
- MetricType = Literal["type1", "type2"]
636
-
637
- SubnetMask = Literal[
638
- "255.255.255.255",
639
- "255.255.255.254",
640
- "255.255.255.252",
641
- "255.255.255.248",
642
- "255.255.255.240",
643
- "255.255.255.224",
644
- "255.255.255.192",
645
- "255.255.255.128",
646
- "255.255.255.0",
647
- "255.255.254.0",
648
- "255.255.252.0",
649
- "255.255.248.0",
650
- "255.255.240.0",
651
- "255.255.224.0",
652
- "255.255.192.0",
653
- "255.255.128.0",
654
- "255.255.0.0",
655
- "255.254.0.0",
656
- "255.252.0.0",
657
- "255.240.0.0",
658
- "255.224.0.0",
659
- "255.192.0.0",
660
- "255.128.0.0",
661
- "255.0.0.0",
662
- "254.0.0.0",
663
- "252.0.0.0",
664
- "248.0.0.0",
665
- "240.0.0.0",
666
- "224.0.0.0",
667
- "192.0.0.0",
668
- "128.0.0.0",
669
- "0.0.0.0",
670
- ]
671
-
672
- AmpFileReputationServer = Literal["nam", "eur", "apjc"]
673
- AmpFileAlertLevel = Literal["critical", "warning", "info"]
674
- AmpFileAnalysisServer = Literal["nam", "eur"]
675
- AmpFileAnalysisFileTypes = Literal[
676
- "pdf", "ms-exe", "new-office", "rtf", "mdb", "mscab", "msole2", "wri", "xlw", "flv", "swf"
677
- ]
678
-
679
- VpnId = Annotated[
680
- IntStr,
681
- Ge(0),
682
- Le(65530),
683
- ]
684
-
685
- DNSTypeEntryType = Literal[
686
- "host",
687
- "umbrella",
688
- ]
689
-
690
- _PolicyModeType = Literal["security", "unified"]
691
-
692
-
693
- def parse_policy_mode(val: Optional[str]) -> _PolicyModeType:
694
- if isinstance(val, str) and val == "unified":
695
- return "unified"
696
- return "security"
697
-
698
-
699
- PolicyModeType = Annotated[_PolicyModeType, BeforeValidator(parse_policy_mode)]
700
-
701
-
702
- CoreRegion = Literal[
703
- "core",
704
- "core-shared",
705
- ]
706
-
707
- SecondaryRegion = Literal[
708
- "secondary-only",
709
- "secondary-shared",
710
- ]
711
-
712
- WebReputation = Literal["low-risk", "moderate-risk", "high-risk", "suspicious", "trustworthy"]
713
-
714
- WebCategory = Literal[
715
- "abused-drugs",
716
- "abortion",
717
- "adult-and-pornography",
718
- "alcohol-and-tobacco",
719
- "auctions",
720
- "bot-nets",
721
- "business-and-economy",
722
- "cdns",
723
- "cheating",
724
- "computer-and-internet-info",
725
- "computer-and-internet-security",
726
- "games",
727
- "gambling",
728
- "financial-services",
729
- "fashion-and-beauty",
730
- "entertainment-and-arts",
731
- "educational-institutions",
732
- "dynamic-content",
733
- "dead-sites",
734
- "confirmed-spam-sources",
735
- "cult-and-occult",
736
- "dating",
737
- "government",
738
- "gross",
739
- "hacking",
740
- "hate-and-racism",
741
- "health-and-medicine",
742
- "home",
743
- "hunting-and-fishing",
744
- "illegal",
745
- "image-and-video-search",
746
- "individual-stock-advice-and-tools",
747
- "internet-communications",
748
- "internet-portals",
749
- "job-search",
750
- "keyloggers-and-monitoring",
751
- "kids",
752
- "legal",
753
- "local-information",
754
- "malware-sites",
755
- "marijuana",
756
- "p2p",
757
- "parked-sites",
758
- "pay-to-surf",
759
- "personal-sites-and-blogs",
760
- "philosophy-and-political-advocacy",
761
- "phishing-and-other-frauds",
762
- "private-ip-addresses",
763
- "proxy-avoid-and-anonymizers",
764
- "questionable",
765
- "real-estate",
766
- "recreation-and-hobbies",
767
- "reference-and-research",
768
- "religion",
769
- "search-engines",
770
- "sex-education",
771
- "shareware-and-freeware",
772
- "shopping",
773
- "social-network",
774
- "society",
775
- "sports",
776
- "spam-urls",
777
- "spyware-and-adware",
778
- "streaming-media",
779
- "swimsuits-and-intimate-apparel",
780
- "training-and-tools",
781
- "translation",
782
- "travel",
783
- "uncategorized",
784
- "unconfirmed-spam-sources",
785
- "violence",
786
- "weapons",
787
- "web-advertisements",
788
- "web-based-email",
789
- "web-hosting",
790
- "open-http-proxies",
791
- "online-personal-storage",
792
- "online-greeting-cards",
793
- "nudity",
794
- "news-and-media",
795
- "music",
796
- "motor-vehicles",
797
- "military",
798
- ]
799
-
800
- IkeMode = Literal[
801
- "main",
802
- "aggresive",
803
- ]
804
-
805
- IkeCiphersuite = Literal[
806
- "aes256-cbc-sha1",
807
- "aes256-cbc-sha2",
808
- "aes128-cbc-sha1",
809
- "aes128-cbc-sha2",
810
- ]
811
-
812
- IkeGroup = Literal[
813
- "2",
814
- "14",
815
- "15",
816
- "16",
817
- "19",
818
- "20",
819
- "21",
820
- "24",
821
- ]
822
-
823
- IpsecCiphersuite = Literal[
824
- "aes256-cbc-sha1",
825
- "aes256-cbc-sha384",
826
- "aes256-cbc-sha256",
827
- "aes256-cbc-sha512",
828
- "aes256-gcm",
829
- "null-sha1",
830
- "null-sha384",
831
- "null-sha256",
832
- "null-sha512",
833
- ]
834
-
835
- LossProtectionType = Literal[
836
- "fecAdaptive",
837
- "fecAlways",
838
- "packetDuplication",
839
- ]
840
-
841
- PfsGroup = Literal[
842
- "group-1",
843
- "group-2",
844
- "group-5",
845
- "group-14",
846
- "group-15",
847
- "group-16",
848
- "group-19",
849
- "group-20",
850
- "group-21",
851
- "group-24",
852
- "none",
853
- ]
854
-
855
- VrrpTrackerAction = Literal[
856
- "Decrement",
857
- "Shutdown",
858
- ]
859
-
860
- TunnelMode = Literal[
861
- "hub",
862
- "spoke",
863
- ]
864
-
865
- Duplex = Literal[
866
- "full",
867
- "half",
868
- ]
869
-
870
- EthernetDuplexMode = Literal[
871
- "full",
872
- "half",
873
- "auto",
874
- ]
875
-
876
- MediaType = Literal[
877
- "auto-select",
878
- "rj45",
879
- "sfp",
880
- ]
881
-
882
- Speed = Literal[
883
- "10",
884
- "100",
885
- "1000",
886
- "10000",
887
- "2500",
888
- ]
889
-
890
- EthernetNatType = Literal["pool", "loopback", "interface"]
891
-
892
- EthernetDirection = Literal[
893
- "inside",
894
- "outside",
895
- ]
896
-
897
- ClockRate = Literal[
898
- "1000000",
899
- "115200",
900
- "1200",
901
- "125000",
902
- "14400",
903
- "148000",
904
- "19200",
905
- "192000",
906
- "2000000",
907
- "2400",
908
- "250000",
909
- "256000",
910
- "28800",
911
- "32000",
912
- "38400",
913
- "384000",
914
- "4000000",
915
- "4800",
916
- "48000",
917
- "500000",
918
- "512000",
919
- "5300000",
920
- "56000",
921
- "57600",
922
- "64000",
923
- "72000",
924
- "768000",
925
- "800000",
926
- "8000000",
927
- "9600",
928
- ]
929
-
930
- LineMode = Literal[
931
- "primary",
932
- "secondary",
933
- ]
934
-
935
- T1Framing = Literal[
936
- "esf",
937
- "sf",
938
- ]
939
-
940
- T1Linecode = Literal[
941
- "ami",
942
- "b8zs",
943
- ]
944
-
945
- E1Framing = Literal[
946
- "crc4",
947
- "no-crc4",
948
- ]
949
-
950
- E1Linecode = Literal[
951
- "ami",
952
- "hdb3",
953
- ]
954
-
955
- CableLengthShortValue = Literal[
956
- "110ft",
957
- "220ft",
958
- "330ft",
959
- "440ft",
960
- "550ft",
961
- "660ft",
962
- ]
963
-
964
- CableLengthLongValue = Literal[
965
- "-15db",
966
- "-22.5db",
967
- "-7.5db",
968
- "0db",
969
- ]
970
-
971
-
972
- Timezone = Literal[
973
- "Europe/Andorra",
974
- "Asia/Dubai",
975
- "Asia/Kabul",
976
- "America/Antigua",
977
- "America/Anguilla",
978
- "Europe/Tirane",
979
- "Asia/Yerevan",
980
- "Africa/Luanda",
981
- "Antarctica/McMurdo",
982
- "Antarctica/Rothera",
983
- "Antarctica/Palmer",
984
- "Antarctica/Mawson",
985
- "Antarctica/Davis",
986
- "Antarctica/Casey",
987
- "Antarctica/Vostok",
988
- "Antarctica/DumontDUrville",
989
- "Antarctica/Syowa",
990
- "America/Argentina/Buenos_Aires",
991
- "America/Argentina/Cordoba",
992
- "America/Argentina/Salta",
993
- "America/Argentina/Jujuy",
994
- "America/Argentina/Tucuman",
995
- "America/Argentina/Catamarca",
996
- "America/Argentina/La_Rioja",
997
- "America/Argentina/San_Juan",
998
- "America/Argentina/Mendoza",
999
- "America/Argentina/San_Luis",
1000
- "America/Argentina/Rio_Gallegos",
1001
- "America/Argentina/Ushuaia",
1002
- "Pacific/Pago_Pago",
1003
- "Europe/Vienna",
1004
- "Australia/Lord_Howe",
1005
- "Antarctica/Macquarie",
1006
- "Australia/Hobart",
1007
- "Australia/Currie",
1008
- "Australia/Melbourne",
1009
- "Australia/Sydney",
1010
- "Australia/Broken_Hill",
1011
- "Australia/Brisbane",
1012
- "Australia/Lindeman",
1013
- "Australia/Adelaide",
1014
- "Australia/Darwin",
1015
- "Australia/Perth",
1016
- "Australia/Eucla",
1017
- "America/Aruba",
1018
- "Europe/Mariehamn",
1019
- "Asia/Baku",
1020
- "Europe/Sarajevo",
1021
- "America/Barbados",
1022
- "Asia/Dhaka",
1023
- "Europe/Brussels",
1024
- "Africa/Ouagadougou",
1025
- "Europe/Sofia",
1026
- "Asia/Bahrain",
1027
- "Africa/Bujumbura",
1028
- "Africa/Porto-Novo",
1029
- "America/St_Barthelemy",
1030
- "Atlantic/Bermuda",
1031
- "Asia/Brunei",
1032
- "America/La_Paz",
1033
- "America/Kralendijk",
1034
- "America/Noronha",
1035
- "America/Belem",
1036
- "America/Fortaleza",
1037
- "America/Recife",
1038
- "America/Araguaina",
1039
- "America/Maceio",
1040
- "America/Bahia",
1041
- "America/Sao_Paulo",
1042
- "America/Campo_Grande",
1043
- "America/Cuiaba",
1044
- "America/Santarem",
1045
- "America/Porto_Velho",
1046
- "America/Boa_Vista",
1047
- "America/Manaus",
1048
- "America/Eirunepe",
1049
- "America/Rio_Branco",
1050
- "America/Nassau",
1051
- "Asia/Thimphu",
1052
- "Africa/Gaborone",
1053
- "Europe/Minsk",
1054
- "America/Belize",
1055
- "America/St_Johns",
1056
- "America/Halifax",
1057
- "America/Glace_Bay",
1058
- "America/Moncton",
1059
- "America/Goose_Bay",
1060
- "America/Blanc-Sablon",
1061
- "America/Toronto",
1062
- "America/Nipigon",
1063
- "America/Thunder_Bay",
1064
- "America/Iqaluit",
1065
- "America/Pangnirtung",
1066
- "America/Resolute",
1067
- "America/Atikokan",
1068
- "America/Rankin_Inlet",
1069
- "America/Winnipeg",
1070
- "America/Rainy_River",
1071
- "America/Regina",
1072
- "America/Swift_Current",
1073
- "America/Edmonton",
1074
- "America/Cambridge_Bay",
1075
- "America/Yellowknife",
1076
- "America/Inuvik",
1077
- "America/Creston",
1078
- "America/Dawson_Creek",
1079
- "America/Vancouver",
1080
- "America/Whitehorse",
1081
- "America/Dawson",
1082
- "Indian/Cocos",
1083
- "Africa/Kinshasa",
1084
- "Africa/Lubumbashi",
1085
- "Africa/Bangui",
1086
- "Africa/Brazzaville",
1087
- "Europe/Zurich",
1088
- "Africa/Abidjan",
1089
- "Pacific/Rarotonga",
1090
- "America/Santiago",
1091
- "Pacific/Easter",
1092
- "Africa/Douala",
1093
- "Asia/Shanghai",
1094
- "Asia/Harbin",
1095
- "Asia/Chongqing",
1096
- "Asia/Urumqi",
1097
- "Asia/Kashgar",
1098
- "America/Bogota",
1099
- "America/Costa_Rica",
1100
- "America/Havana",
1101
- "Atlantic/Cape_Verde",
1102
- "America/Curacao",
1103
- "Indian/Christmas",
1104
- "Asia/Nicosia",
1105
- "Europe/Prague",
1106
- "Europe/Berlin",
1107
- "Europe/Busingen",
1108
- "Africa/Djibouti",
1109
- "Europe/Copenhagen",
1110
- "America/Dominica",
1111
- "America/Santo_Domingo",
1112
- "Africa/Algiers",
1113
- "America/Guayaquil",
1114
- "Pacific/Galapagos",
1115
- "Europe/Tallinn",
1116
- "Africa/Cairo",
1117
- "Africa/El_Aaiun",
1118
- "Africa/Asmara",
1119
- "Europe/Madrid",
1120
- "Africa/Ceuta",
1121
- "Atlantic/Canary",
1122
- "Africa/Addis_Ababa",
1123
- "Europe/Helsinki",
1124
- "Pacific/Fiji",
1125
- "Atlantic/Stanley",
1126
- "Pacific/Chuuk",
1127
- "Pacific/Pohnpei",
1128
- "Pacific/Kosrae",
1129
- "Atlantic/Faroe",
1130
- "Europe/Paris",
1131
- "Africa/Libreville",
1132
- "Europe/London",
1133
- "America/Grenada",
1134
- "Asia/Tbilisi",
1135
- "America/Cayenne",
1136
- "Europe/Guernsey",
1137
- "Africa/Accra",
1138
- "Europe/Gibraltar",
1139
- "America/Godthab",
1140
- "America/Danmarkshavn",
1141
- "America/Scoresbysund",
1142
- "America/Thule",
1143
- "Africa/Banjul",
1144
- "Africa/Conakry",
1145
- "America/Guadeloupe",
1146
- "Africa/Malabo",
1147
- "Europe/Athens",
1148
- "Atlantic/South_Georgia",
1149
- "America/Guatemala",
1150
- "Pacific/Guam",
1151
- "Africa/Bissau",
1152
- "America/Guyana",
1153
- "Asia/Hong_Kong",
1154
- "America/Tegucigalpa",
1155
- "Europe/Zagreb",
1156
- "America/Port-au-Prince",
1157
- "Europe/Budapest",
1158
- "Asia/Jakarta",
1159
- "Asia/Pontianak",
1160
- "Asia/Makassar",
1161
- "Asia/Jayapura",
1162
- "Europe/Dublin",
1163
- "Asia/Jerusalem",
1164
- "Europe/Isle_of_Man",
1165
- "Asia/Kolkata",
1166
- "Indian/Chagos",
1167
- "Asia/Baghdad",
1168
- "Asia/Tehran",
1169
- "Atlantic/Reykjavik",
1170
- "Europe/Rome",
1171
- "Europe/Jersey",
1172
- "America/Jamaica",
1173
- "Asia/Amman",
1174
- "Asia/Tokyo",
1175
- "Africa/Nairobi",
1176
- "Asia/Bishkek",
1177
- "Asia/Phnom_Penh",
1178
- "Pacific/Tarawa",
1179
- "Pacific/Enderbury",
1180
- "Pacific/Kiritimati",
1181
- "Indian/Comoro",
1182
- "America/St_Kitts",
1183
- "Asia/Pyongyang",
1184
- "Asia/Seoul",
1185
- "Asia/Kuwait",
1186
- "America/Cayman",
1187
- "Asia/Almaty",
1188
- "Asia/Qyzylorda",
1189
- "Asia/Aqtobe",
1190
- "Asia/Aqtau",
1191
- "Asia/Oral",
1192
- "Asia/Vientiane",
1193
- "Asia/Beirut",
1194
- "America/St_Lucia",
1195
- "Europe/Vaduz",
1196
- "Asia/Colombo",
1197
- "Africa/Monrovia",
1198
- "Africa/Maseru",
1199
- "Europe/Vilnius",
1200
- "Europe/Luxembourg",
1201
- "Europe/Riga",
1202
- "Africa/Tripoli",
1203
- "Africa/Casablanca",
1204
- "Europe/Monaco",
1205
- "Europe/Chisinau",
1206
- "Europe/Podgorica",
1207
- "America/Marigot",
1208
- "Indian/Antananarivo",
1209
- "Pacific/Majuro",
1210
- "Pacific/Kwajalein",
1211
- "Europe/Skopje",
1212
- "Africa/Bamako",
1213
- "Asia/Rangoon",
1214
- "Asia/Ulaanbaatar",
1215
- "Asia/Hovd",
1216
- "Asia/Choibalsan",
1217
- "Asia/Macau",
1218
- "Pacific/Saipan",
1219
- "America/Martinique",
1220
- "Africa/Nouakchott",
1221
- "America/Montserrat",
1222
- "Europe/Malta",
1223
- "Indian/Mauritius",
1224
- "Indian/Maldives",
1225
- "Africa/Blantyre",
1226
- "America/Mexico_City",
1227
- "America/Cancun",
1228
- "America/Merida",
1229
- "America/Monterrey",
1230
- "America/Matamoros",
1231
- "America/Mazatlan",
1232
- "America/Chihuahua",
1233
- "America/Ojinaga",
1234
- "America/Hermosillo",
1235
- "America/Tijuana",
1236
- "America/Santa_Isabel",
1237
- "America/Bahia_Banderas",
1238
- "Asia/Kuala_Lumpur",
1239
- "Asia/Kuching",
1240
- "Africa/Maputo",
1241
- "Africa/Windhoek",
1242
- "Pacific/Noumea",
1243
- "Africa/Niamey",
1244
- "Pacific/Norfolk",
1245
- "Africa/Lagos",
1246
- "America/Managua",
1247
- "Europe/Amsterdam",
1248
- "Europe/Oslo",
1249
- "Asia/Kathmandu",
1250
- "Pacific/Nauru",
1251
- "Pacific/Niue",
1252
- "Pacific/Auckland",
1253
- "Pacific/Chatham",
1254
- "Asia/Muscat",
1255
- "America/Panama",
1256
- "America/Lima",
1257
- "Pacific/Tahiti",
1258
- "Pacific/Marquesas",
1259
- "Pacific/Gambier",
1260
- "Pacific/Port_Moresby",
1261
- "Asia/Manila",
1262
- "Asia/Karachi",
1263
- "Europe/Warsaw",
1264
- "America/Miquelon",
1265
- "Pacific/Pitcairn",
1266
- "America/Puerto_Rico",
1267
- "Asia/Gaza",
1268
- "Asia/Hebron",
1269
- "Europe/Lisbon",
1270
- "Atlantic/Madeira",
1271
- "Atlantic/Azores",
1272
- "Pacific/Palau",
1273
- "America/Asuncion",
1274
- "Asia/Qatar",
1275
- "Indian/Reunion",
1276
- "Europe/Bucharest",
1277
- "Europe/Belgrade",
1278
- "Europe/Kaliningrad",
1279
- "Europe/Moscow",
1280
- "Europe/Volgograd",
1281
- "Europe/Samara",
1282
- "Asia/Yekaterinburg",
1283
- "Asia/Omsk",
1284
- "Asia/Novosibirsk",
1285
- "Asia/Novokuznetsk",
1286
- "Asia/Krasnoyarsk",
1287
- "Asia/Irkutsk",
1288
- "Asia/Yakutsk",
1289
- "Asia/Khandyga",
1290
- "Asia/Vladivostok",
1291
- "Asia/Sakhalin",
1292
- "Asia/Ust-Nera",
1293
- "Asia/Magadan",
1294
- "Asia/Kamchatka",
1295
- "Asia/Anadyr",
1296
- "Africa/Kigali",
1297
- "Asia/Riyadh",
1298
- "Pacific/Guadalcanal",
1299
- "Indian/Mahe",
1300
- "Africa/Khartoum",
1301
- "Europe/Stockholm",
1302
- "Asia/Singapore",
1303
- "Atlantic/St_Helena",
1304
- "Europe/Ljubljana",
1305
- "Arctic/Longyearbyen",
1306
- "Europe/Bratislava",
1307
- "Africa/Freetown",
1308
- "Europe/San_Marino",
1309
- "Africa/Dakar",
1310
- "Africa/Mogadishu",
1311
- "America/Paramaribo",
1312
- "Africa/Juba",
1313
- "Africa/Sao_Tome",
1314
- "America/El_Salvador",
1315
- "America/Lower_Princes",
1316
- "Asia/Damascus",
1317
- "Africa/Mbabane",
1318
- "America/Grand_Turk",
1319
- "Africa/Ndjamena",
1320
- "Indian/Kerguelen",
1321
- "Africa/Lome",
1322
- "Asia/Bangkok",
1323
- "Asia/Dushanbe",
1324
- "Pacific/Fakaofo",
1325
- "Asia/Dili",
1326
- "Asia/Ashgabat",
1327
- "Africa/Tunis",
1328
- "Pacific/Tongatapu",
1329
- "Europe/Istanbul",
1330
- "America/Port_of_Spain",
1331
- "Pacific/Funafuti",
1332
- "Asia/Taipei",
1333
- "Africa/Dar_es_Salaam",
1334
- "Europe/Kiev",
1335
- "Europe/Uzhgorod",
1336
- "Europe/Zaporozhye",
1337
- "Europe/Simferopol",
1338
- "Africa/Kampala",
1339
- "Pacific/Johnston",
1340
- "Pacific/Midway",
1341
- "Pacific/Wake",
1342
- "America/New_York",
1343
- "America/Detroit",
1344
- "America/Kentucky/Louisville",
1345
- "America/Kentucky/Monticello",
1346
- "America/Indiana/Indianapolis",
1347
- "America/Indiana/Vincennes",
1348
- "America/Indiana/Winamac",
1349
- "America/Indiana/Marengo",
1350
- "America/Indiana/Petersburg",
1351
- "America/Indiana/Vevay",
1352
- "America/Chicago",
1353
- "America/Indiana/Tell_City",
1354
- "America/Indiana/Knox",
1355
- "America/Menominee",
1356
- "America/North_Dakota/Center",
1357
- "America/North_Dakota/New_Salem",
1358
- "America/North_Dakota/Beulah",
1359
- "America/Denver",
1360
- "America/Boise",
1361
- "America/Phoenix",
1362
- "America/Los_Angeles",
1363
- "America/Anchorage",
1364
- "America/Juneau",
1365
- "America/Sitka",
1366
- "America/Yakutat",
1367
- "America/Nome",
1368
- "America/Adak",
1369
- "America/Metlakatla",
1370
- "Pacific/Honolulu",
1371
- "America/Montevideo",
1372
- "Asia/Samarkand",
1373
- "Asia/Tashkent",
1374
- "Europe/Vatican",
1375
- "America/St_Vincent",
1376
- "America/Caracas",
1377
- "America/Tortola",
1378
- "America/St_Thomas",
1379
- "Asia/Ho_Chi_Minh",
1380
- "Pacific/Efate",
1381
- "Pacific/Wallis",
1382
- "Pacific/Apia",
1383
- "Asia/Aden",
1384
- "Indian/Mayotte",
1385
- "Africa/Johannesburg",
1386
- "Africa/Lusaka",
1387
- "Africa/Harare",
1388
- "UTC",
1389
- ]
1390
-
1391
- TrafficTargetType = Literal[
1392
- "access",
1393
- "core",
1394
- "service",
1395
- ]
1396
-
1397
- DeviceModel = Literal[
1398
- "None",
1399
- "vsmart",
1400
- "vedge-cloud",
1401
- "vmanage",
1402
- "vedge-ISR1100-6G",
1403
- "vedge-ISR1100X-6G",
1404
- "vedge-ISR1100-4G",
1405
- "vedge-ISR1100X-4G",
1406
- "vedge-ISR1100-4GLTE",
1407
- "vedge-cloud",
1408
- "vedge-1000",
1409
- "vedge-2000",
1410
- "vedge-100",
1411
- "vedge-100-B",
1412
- "vedge-100-WM",
1413
- "vedge-100-M",
1414
- "vedge-5000",
1415
- "vedge-IR-1101",
1416
- "vedge-ESR-6300",
1417
- "vedge-IR-1821",
1418
- "vedge-IR-1831",
1419
- "vedge-IR-1833",
1420
- "vedge-IR-1835",
1421
- "vedge-ASR-1001-X",
1422
- "vedge-ASR-1002-X",
1423
- "vedge-ASR-1002-HX",
1424
- "vedge-ASR-1001-HX",
1425
- "vedge-C8500L-8G4X",
1426
- "vedge-C8500-12X4QC",
1427
- "vedge-C8500-12X",
1428
- "vedge-C8500L-8S4X",
1429
- "vedge-ASR-1006-X",
1430
- "vedge-C8500-20X6C",
1431
- "vedge-CSR-1000v",
1432
- "vedge-C8000V",
1433
- "vedge-ISR-4331",
1434
- "vedge-ISR-4431",
1435
- "vedge-ISR-4461",
1436
- "vedge-ISR-4451-X",
1437
- "vedge-ISR-4321",
1438
- "vedge-ISR-4351",
1439
- "vedge-ISR-4221",
1440
- "vedge-ISR-4221X",
1441
- "vedge-C1111-8PW",
1442
- "vedge-C1111-8PLTELAW",
1443
- "vedge-C1111-8PLTEEAW",
1444
- "vedge-C1113-8PMLTEEA",
1445
- "vedge-C1116-4P",
1446
- "vedge-C1116-4PLTEEA",
1447
- "vedge-C1117-4P",
1448
- "vedge-C1117-4PM",
1449
- "vedge-C1117-4PLTEEA",
1450
- "vedge-C1111-8PLTELA",
1451
- "vedge-C1111-8PLTEEA",
1452
- "vedge-C1121-8PLTEPW",
1453
- "vedge-C1121-8PLTEP",
1454
- "vedge-C1121X-8PLTEP",
1455
- "vedge-C1111-4PLTEEA",
1456
- "vedge-C1161X-8PLTEP",
1457
- "vedge-C8300-2N2S-6T",
1458
- "vedge-C8300-1N1S-6T",
1459
- "vedge-C8300-1N1S-4T2X",
1460
- "vedge-C8300-2N2S-4T2X",
1461
- "vedge-C8200-1N-4T",
1462
- "vedge-C8200L-1N-4T",
1463
- "vedge-ISRv",
1464
- ]
1465
-
1466
- SLAClassCriteria = Literal[
1467
- "loss",
1468
- "latency",
1469
- "jitter",
1470
- "loss-latency",
1471
- "loss-jitter",
1472
- "latency-loss",
1473
- "latency-jitter",
1474
- "jitter-latency",
1475
- "jitter-loss",
1476
- "loss-latency-jitter",
1477
- "loss-jitter-latency",
1478
- "latency-loss-jitter",
1479
- "latency-jitter-loss",
1480
- "jitter-latency-loss",
1481
- "jitter-loss-latency",
1482
- ]
1483
-
1484
- ServiceAreaValue = Literal[
1485
- "common",
1486
- "exchange",
1487
- "sharepoint",
1488
- "skype",
1489
- ]
1490
-
1491
- TrafficCategory = Literal[
1492
- "all",
1493
- "optimize",
1494
- "optimize-allow",
1495
- ]
1496
-
1497
-
1498
- def str_as_service_area_list(val: Union[str, Sequence[ServiceAreaValue]]) -> Sequence[ServiceAreaValue]:
1499
- if isinstance(val, str):
1500
- return [cast(ServiceAreaValue, item) for item in val.split() if item in get_args(ServiceAreaValue)]
1501
- return val
1502
-
1503
-
1504
- SpaceSeparatedServiceAreaList = Annotated[
1505
- List[ServiceAreaValue],
1506
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
1507
- BeforeValidator(str_as_service_area_list),
1508
- ]