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,103 +1,6 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
1
+ # Copyright 2023 Cisco Systems, Inc. and its affiliates
2
2
 
3
- import re
4
- from dataclasses import InitVar, dataclass, field
5
- from ipaddress import IPv4Interface, IPv4Network, 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
3
+ from typing import Dict, List, Literal, Set, Tuple
101
4
 
102
5
 
103
6
  def check_fields_exclusive(values: Dict, field_names: Set[str], at_least_one: bool = False) -> bool:
@@ -145,211 +48,6 @@ def check_any_of_exclusive_field_sets(values: Dict, field_sets: List[Tuple[Set[s
145
48
  raise ValueError(f"One of {all_sets_field_names} must be assigned")
146
49
 
147
50
 
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_ipv4_network_list(val: Union[str, Sequence[IPv4Network]]) -> Sequence[IPv4Network]:
167
- if isinstance(val, str):
168
- return [IPv4Network(element) for element in val.split()]
169
- return val
170
-
171
-
172
- def str_as_ipv6_list(val: Union[str, Sequence[IPv6Interface]]) -> Sequence[IPv6Interface]:
173
- if isinstance(val, str):
174
- return [IPv6Interface(element) for element in val.split()]
175
- return val
176
-
177
-
178
- def str_as_str_list(val: Union[str, Sequence[str]]) -> Sequence[str]:
179
- if isinstance(val, str):
180
- return val.split()
181
- return val
182
-
183
-
184
- IntStr = Annotated[
185
- int,
186
- PlainSerializer(lambda x: str(x), return_type=str, when_used="json-unless-none"),
187
- BeforeValidator(lambda x: int(x)),
188
- ]
189
-
190
- IntRange = Tuple[int, Optional[int]]
191
-
192
- DualToneCadenceInterval = Annotated[int, Field(ge=50, le=10_000)]
193
- DualToneCadenceStartStop = Tuple[DualToneCadenceInterval, DualToneCadenceInterval]
194
-
195
-
196
- def str_as_cadence_pairs(val: Union[str, Sequence[DualToneCadenceStartStop]]) -> Sequence[DualToneCadenceStartStop]:
197
- if isinstance(val, str):
198
- tab = val.split()
199
- val = list()
200
- assert len(tab) % 2 == 0, "cadence contain on/off interval pairs, odd number of entries detected"
201
- for start, stop in zip(tab, tab[1:]):
202
- val.append((int(start), int(stop)))
203
- return val
204
-
205
-
206
- def tuple_to_str(val: Tuple[Any, ...]) -> str:
207
- return " ".join(map(str, val))
208
-
209
-
210
- SpaceSeparatedCustomCadenceRanges = Annotated[
211
- List[DualToneCadenceStartStop],
212
- PlainSerializer(lambda x: " ".join(map(tuple_to_str, x)), return_type=str, when_used="json-unless-none"),
213
- BeforeValidator(str_as_cadence_pairs),
214
- Field(min_length=1),
215
- ]
216
-
217
- SpaceSeparatedUUIDList = Annotated[
218
- List[UUID],
219
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
220
- BeforeValidator(str_as_uuid_list),
221
- Field(min_length=1),
222
- ]
223
-
224
- SpaceSeparatedNonNegativeIntList = Annotated[
225
- List[NonNegativeInt],
226
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
227
- BeforeValidator(str_as_positive_int_list),
228
- Field(min_length=1),
229
- ]
230
-
231
- SpaceSeparatedIPv4 = Annotated[
232
- List[IPv4Interface],
233
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
234
- BeforeValidator(str_as_ipv4_list),
235
- Field(min_length=1),
236
- ]
237
-
238
- SpaceSeparatedIPv4Networks = Annotated[
239
- List[IPv4Network],
240
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
241
- BeforeValidator(str_as_ipv4_network_list),
242
- Field(min_length=1),
243
- ]
244
-
245
- SpaceSeparatedIPv6 = Annotated[
246
- List[IPv6Interface],
247
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
248
- BeforeValidator(str_as_ipv6_list),
249
- Field(min_length=1),
250
- ]
251
-
252
- Ipv4PrefixLen = Annotated[
253
- int,
254
- Field(ge=0, le=32),
255
- ]
256
-
257
- Ipv4LePrefixRangeLen = Annotated[
258
- int,
259
- Field(ge=1, le=32),
260
- ]
261
-
262
- Ipv4GePrefixRangeLen = Annotated[
263
- int,
264
- Field(ge=1, le=32),
265
- ]
266
-
267
- Ipv6PrefixLen = Annotated[
268
- int,
269
- Field(ge=0, le=128),
270
- ]
271
-
272
- Ipv6LePrefixRangeLen = Annotated[
273
- int,
274
- Field(ge=1, le=128),
275
- ]
276
-
277
- Ipv6GePrefixRangeLen = Annotated[
278
- int,
279
- Field(ge=1, le=128),
280
- ]
281
-
282
-
283
- def int_range_str_validator(value: Union[str, int, IntRange], ascending: bool = True) -> IntRange:
284
- """
285
- Validates input given as string containing integer pair separated by hyphen
286
- eg: '1-3' or single number '1'
287
- """
288
- if isinstance(value, str):
289
- int_list = [int(i) for i in value.strip().split("-")]
290
- assert 0 < len(int_list) <= 2, "Number range string must contain one or two numbers"
291
- first = int_list[0]
292
- second = None if len(int_list) == 1 else int_list[1]
293
- int_range = (first, second)
294
- elif isinstance(value, int):
295
- int_range = (value, None)
296
- else:
297
- int_range = value
298
- if ascending and int_range[1] is not None:
299
- assert int_range[0] < int_range[1], "Numbers in range must be in ascending order"
300
- return int_range
301
-
302
-
303
- def int_range_serializer(value: IntRange) -> str:
304
- """Serializes integer pair as string separated by hyphen eg: '1-3' or single number '1'"""
305
- return "-".join((str(i) for i in value if i is not None))
306
-
307
-
308
- IntRangeStr = Annotated[
309
- IntRange,
310
- PlainSerializer(int_range_serializer, return_type=str, when_used="json-unless-none"),
311
- BeforeValidator(int_range_str_validator),
312
- ]
313
-
314
- AcceptDropActionType = Literal["accept", "drop"]
315
- AcceptRejectActionType = Literal["accept", "reject"]
316
- DeviceAccessProtocolPort = Literal[161, 22]
317
-
318
- DestinationRegion = Literal[
319
- "primary-region",
320
- "secondary-region",
321
- "other-region",
322
- ]
323
-
324
- DNSEntryType = Literal[
325
- "request",
326
- "response",
327
- ]
328
-
329
- CarrierType = Literal[
330
- "default",
331
- "carrier1",
332
- "carrier2",
333
- "carrier3",
334
- "carrier4",
335
- "carrier5",
336
- "carrier6",
337
- "carrier7",
338
- "carrier8",
339
- ]
340
-
341
- ControlPathType = Literal[
342
- "direct-path",
343
- "hierarchical-path",
344
- "transport-gateway-path",
345
- ]
346
-
347
- EncapType = Literal[
348
- "ipsec",
349
- "gre",
350
- ]
351
-
352
-
353
51
  InterfaceType = Literal[
354
52
  "Ethernet",
355
53
  "FastEthernet",
@@ -366,29 +64,6 @@ InterfaceType = Literal[
366
64
  "VirtualPortGroup",
367
65
  "Vlan",
368
66
  ]
369
- InterfaceTypePattern = re.compile(r"^(?:" + "|".join(map(re.escape, get_args(InterfaceType))) + r")[\x00-\x7F]*$")
370
-
371
- InterfaceStr = Annotated[
372
- str,
373
- Field(pattern=InterfaceTypePattern),
374
- ]
375
-
376
-
377
- def str_as_interface_list(val: Union[str, Sequence[InterfaceStr]]) -> Sequence[InterfaceStr]:
378
- if isinstance(val, str):
379
- return [str(element) for element in val.split()]
380
- return val
381
-
382
-
383
- SpaceSeparatedInterfaceStr = Annotated[
384
- List[InterfaceStr],
385
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
386
- BeforeValidator(str_as_interface_list),
387
- ]
388
-
389
- StaticNatDirection = Literal["inside", "outside"]
390
-
391
- Protocol = Literal["tcp", "udp"]
392
67
 
393
68
  TLOCColor = Literal[
394
69
  "default",
@@ -415,96 +90,6 @@ TLOCColor = Literal[
415
90
  "private6",
416
91
  ]
417
92
 
418
- MpVoiceCodec = Literal["g711ulaw", "g711alaw", "g729r8", "g729br8", "g722-64", "clear-channel", "isac", "ilbc"]
419
-
420
- FaxProtocols = Literal[
421
- "Fax Pass-through G711alaw No ECM",
422
- "Fax Pass-through G711alaw",
423
- "Fax Pass-through G711ulaw No ECM",
424
- "Fax Pass-through G711ulaw",
425
- "None",
426
- "T.38 Fax Relay Version 0 No ECM",
427
- "T.38 Fax Relay Version 0 NSE force No ECM",
428
- "T.38 Fax Relay Version 0 NSE force Rate 14.4 No ECM",
429
- "T.38 Fax Relay Version 0 NSE force Rate 14.4",
430
- "T.38 Fax Relay Version 0 NSE force Rate 9.6 No ECM",
431
- "T.38 Fax Relay Version 0 NSE force Rate 9.6",
432
- "T.38 Fax Relay Version 0 NSE force",
433
- "T.38 Fax Relay Version 0 NSE No ECM",
434
- "T.38 Fax Relay Version 0 NSE Rate 14.4 No ECM",
435
- "T.38 Fax Relay Version 0 NSE Rate 14.4",
436
- "T.38 Fax Relay Version 0 NSE Rate 9.6 No ECM",
437
- "T.38 Fax Relay Version 0 NSE Rate 9.6",
438
- "T.38 Fax Relay Version 0 NSE",
439
- "T.38 Fax Relay Version 0 Rate 14.4 No ECM",
440
- "T.38 Fax Relay Version 0 Rate 14.4",
441
- "T.38 Fax Relay Version 0 Rate 9.6 No ECM",
442
- "T.38 Fax Relay Version 0",
443
- "T.38 Fax Relay Version 3 NSE force",
444
- "T.38 Fax Relay Version 3 NSE",
445
- "T.38 Fax Relay Version 3",
446
- ]
447
-
448
- FaxPrimaryProtocols = Literal[
449
- "none",
450
- "t38",
451
- "g711ulaw",
452
- "g711alaw",
453
- ]
454
-
455
- FaxFallBackProtocols = Literal[
456
- "none",
457
- "g711ulaw",
458
- "g711alaw",
459
- ]
460
-
461
- MpDtmf = Literal[
462
- "inband",
463
- "rtp-nte",
464
- "sip-notify",
465
- "sip-kpml",
466
- ]
467
-
468
-
469
- def str_as_mp_dmtf_list(val: Union[str, Sequence[MpDtmf]]) -> Sequence[MpDtmf]:
470
- if isinstance(val, str):
471
- return [cast(MpDtmf, dtmf) for dtmf in val.split()]
472
- return val
473
-
474
-
475
- SpaceSeparatedMpDtmfList = Annotated[
476
- List[MpDtmf],
477
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=MpDtmf, when_used="json-unless-none"),
478
- BeforeValidator(str_as_mp_dmtf_list),
479
- Field(min_length=1),
480
- ]
481
-
482
- HuntSchemeMethod = Literal[
483
- "least-idle",
484
- "least-used",
485
- "longest-idle",
486
- "random",
487
- "round-robin",
488
- "sequential",
489
- ]
490
-
491
- HuntSchemeChannel = Literal[
492
- "both",
493
- "even",
494
- "odd",
495
- ]
496
-
497
- HuntSchemeDirection = Literal[
498
- "down",
499
- "up",
500
- ]
501
-
502
- SpaceSeparatedTLOCColorStr = Annotated[
503
- List[TLOCColor],
504
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
505
- BeforeValidator(str_as_str_list),
506
- ]
507
-
508
93
 
509
94
  WellKnownBGPCommunities = Literal[
510
95
  "internet",
@@ -513,52 +98,6 @@ WellKnownBGPCommunities = Literal[
513
98
  "no-export",
514
99
  ]
515
100
 
516
-
517
- MultiRegionRole = Literal[
518
- "border-router",
519
- "edge-router",
520
- ]
521
-
522
- OriginProtocol = Literal[
523
- "aggregate",
524
- "bgp",
525
- "bgp-external",
526
- "bgp-internal",
527
- "connected",
528
- "eigrp",
529
- "ospf",
530
- "ospf-inter-area",
531
- "ospf-intra-area",
532
- "ospf-external1",
533
- "ospf-external2",
534
- "rip",
535
- "static",
536
- "eigrp-summary",
537
- "eigrp-internal",
538
- "eigrp-external",
539
- "lisp",
540
- "nat-dia",
541
- "natpool",
542
- "isis",
543
- "isis-level1",
544
- "isis-level2",
545
- "egp",
546
- "igp",
547
- "incomplete",
548
- ]
549
-
550
- ServiceType = Literal[
551
- "appqoe",
552
- "FW",
553
- "IDP",
554
- "IDS",
555
- "netsvc1",
556
- "netsvc2",
557
- "netsvc3",
558
- "netsvc4",
559
- "netsvc5",
560
- ]
561
-
562
101
  ServiceChainNumber = Literal[
563
102
  "SC1",
564
103
  "SC2",
@@ -577,1438 +116,3 @@ ServiceChainNumber = Literal[
577
116
  "SC15",
578
117
  "SC16",
579
118
  ]
580
-
581
- SequenceIpType = Literal[
582
- "ipv4",
583
- "ipv6",
584
- "all",
585
- ]
586
-
587
- TLOCActionType = Literal[
588
- "strict",
589
- "primary",
590
- "backup",
591
- "ecmp",
592
- ]
593
-
594
- IcmpMsgType = Literal[
595
- "administratively-prohibited",
596
- "dod-host-prohibited",
597
- "dod-net-prohibited",
598
- "echo",
599
- "echo-reply",
600
- "echo-reply-no-error",
601
- "extended-echo",
602
- "extended-echo-reply",
603
- "general-parameter-problem",
604
- "host-isolated",
605
- "host-precedence-unreachable",
606
- "host-redirect",
607
- "host-tos-redirect",
608
- "host-tos-unreachable",
609
- "host-unknown",
610
- "host-unreachable",
611
- "interface-error",
612
- "malformed-query",
613
- "multiple-interface-match",
614
- "net-redirect",
615
- "net-tos-redirect",
616
- "net-tos-unreachable",
617
- "net-unreachable",
618
- "network-unknown",
619
- "no-room-for-option",
620
- "option-missing",
621
- "packet-too-big",
622
- "parameter-problem",
623
- "photuris",
624
- "port-unreachable",
625
- "precedence-unreachable",
626
- "protocol-unreachable",
627
- "reassembly-timeout",
628
- "redirect",
629
- "router-advertisement",
630
- "router-solicitation",
631
- "source-route-failed",
632
- "table-entry-error",
633
- "time-exceeded",
634
- "timestamp-reply",
635
- "timestamp-request",
636
- "ttl-exceeded",
637
- "unreachable",
638
- ]
639
-
640
- Icmp6MsgType = Literal[
641
- "beyond-scope",
642
- "cp-advertisement",
643
- "cp-solicitation",
644
- "destination-unreachable",
645
- "dhaad-reply",
646
- "dhaad-request",
647
- "echo-reply",
648
- "echo-request",
649
- "header",
650
- "hop-limit",
651
- "ind-advertisement",
652
- "ind-solicitation",
653
- "mld-query",
654
- "mld-reduction",
655
- "mld-report",
656
- "mldv2-report",
657
- "mpd-advertisement",
658
- "mpd-solicitation",
659
- "mr-advertisement",
660
- "mr-solicitation",
661
- "mr-termination",
662
- "nd-na",
663
- "nd-ns",
664
- "next-header-type",
665
- "ni-query",
666
- "ni-query-name",
667
- "ni-query-v4-address",
668
- "ni-query-v6-address",
669
- "ni-response",
670
- "ni-response-qtype-unknown",
671
- "ni-response-refuse",
672
- "ni-response-success",
673
- "no-admin",
674
- "no-route",
675
- "packet-too-big",
676
- "parameter-option",
677
- "parameter-problem",
678
- "port-unreachable",
679
- "reassembly-timeout",
680
- "redirect",
681
- "reject-route",
682
- "renum-command",
683
- "renum-result",
684
- "renum-seq-number",
685
- "router-advertisement",
686
- "router-renumbering",
687
- "router-solicitation",
688
- "rpl-control",
689
- "source-policy",
690
- "source-route-header",
691
- "time-exceeded",
692
- "unreachable",
693
- ]
694
-
695
- MetricType = Literal["type1", "type2"]
696
-
697
- SubnetMask = Literal[
698
- "255.255.255.255",
699
- "255.255.255.254",
700
- "255.255.255.252",
701
- "255.255.255.248",
702
- "255.255.255.240",
703
- "255.255.255.224",
704
- "255.255.255.192",
705
- "255.255.255.128",
706
- "255.255.255.0",
707
- "255.255.254.0",
708
- "255.255.252.0",
709
- "255.255.248.0",
710
- "255.255.240.0",
711
- "255.255.224.0",
712
- "255.255.192.0",
713
- "255.255.128.0",
714
- "255.255.0.0",
715
- "255.254.0.0",
716
- "255.252.0.0",
717
- "255.240.0.0",
718
- "255.224.0.0",
719
- "255.192.0.0",
720
- "255.128.0.0",
721
- "255.0.0.0",
722
- "254.0.0.0",
723
- "252.0.0.0",
724
- "248.0.0.0",
725
- "240.0.0.0",
726
- "224.0.0.0",
727
- "192.0.0.0",
728
- "128.0.0.0",
729
- "0.0.0.0",
730
- ]
731
-
732
- AmpFileReputationServer = Literal["nam", "eur", "apjc"]
733
- AmpFileAlertLevel = Literal["critical", "warning", "info"]
734
- AmpFileAnalysisServer = Literal["nam", "eur"]
735
- AmpFileAnalysisFileTypes = Literal[
736
- "pdf", "ms-exe", "new-office", "rtf", "mdb", "mscab", "msole2", "wri", "xlw", "flv", "swf"
737
- ]
738
-
739
- VpnId = Annotated[
740
- IntStr,
741
- Ge(0),
742
- Le(65530),
743
- ]
744
-
745
- DNSTypeEntryType = Literal[
746
- "host",
747
- "umbrella",
748
- ]
749
-
750
- _PolicyModeType = Literal["security", "unified"]
751
-
752
-
753
- def parse_policy_mode(val: Optional[str]) -> _PolicyModeType:
754
- if isinstance(val, str) and val == "unified":
755
- return "unified"
756
- return "security"
757
-
758
-
759
- PolicyModeType = Annotated[_PolicyModeType, BeforeValidator(parse_policy_mode)]
760
-
761
-
762
- CoreRegion = Literal[
763
- "core",
764
- "core-shared",
765
- ]
766
-
767
- SecondaryRegion = Literal[
768
- "secondary-only",
769
- "secondary-shared",
770
- ]
771
-
772
- WebReputation = Literal["low-risk", "moderate-risk", "high-risk", "suspicious", "trustworthy"]
773
-
774
- WebCategory = Literal[
775
- "abused-drugs",
776
- "abortion",
777
- "adult-and-pornography",
778
- "alcohol-and-tobacco",
779
- "auctions",
780
- "bot-nets",
781
- "business-and-economy",
782
- "cdns",
783
- "cheating",
784
- "computer-and-internet-info",
785
- "computer-and-internet-security",
786
- "games",
787
- "gambling",
788
- "financial-services",
789
- "fashion-and-beauty",
790
- "entertainment-and-arts",
791
- "educational-institutions",
792
- "dynamic-content",
793
- "dead-sites",
794
- "confirmed-spam-sources",
795
- "cult-and-occult",
796
- "dating",
797
- "government",
798
- "gross",
799
- "hacking",
800
- "hate-and-racism",
801
- "health-and-medicine",
802
- "home",
803
- "hunting-and-fishing",
804
- "illegal",
805
- "image-and-video-search",
806
- "individual-stock-advice-and-tools",
807
- "internet-communications",
808
- "internet-portals",
809
- "job-search",
810
- "keyloggers-and-monitoring",
811
- "kids",
812
- "legal",
813
- "local-information",
814
- "malware-sites",
815
- "marijuana",
816
- "p2p",
817
- "parked-sites",
818
- "pay-to-surf",
819
- "personal-sites-and-blogs",
820
- "philosophy-and-political-advocacy",
821
- "phishing-and-other-frauds",
822
- "private-ip-addresses",
823
- "proxy-avoid-and-anonymizers",
824
- "questionable",
825
- "real-estate",
826
- "recreation-and-hobbies",
827
- "reference-and-research",
828
- "religion",
829
- "search-engines",
830
- "sex-education",
831
- "shareware-and-freeware",
832
- "shopping",
833
- "social-network",
834
- "society",
835
- "sports",
836
- "spam-urls",
837
- "spyware-and-adware",
838
- "streaming-media",
839
- "swimsuits-and-intimate-apparel",
840
- "training-and-tools",
841
- "translation",
842
- "travel",
843
- "uncategorized",
844
- "unconfirmed-spam-sources",
845
- "violence",
846
- "weapons",
847
- "web-advertisements",
848
- "web-based-email",
849
- "web-hosting",
850
- "open-http-proxies",
851
- "online-personal-storage",
852
- "online-greeting-cards",
853
- "nudity",
854
- "news-and-media",
855
- "music",
856
- "motor-vehicles",
857
- "military",
858
- ]
859
-
860
- IkeMode = Literal[
861
- "main",
862
- "aggresive",
863
- ]
864
-
865
- IkeCiphersuite = Literal[
866
- "aes256-cbc-sha1",
867
- "aes256-cbc-sha2",
868
- "aes128-cbc-sha1",
869
- "aes128-cbc-sha2",
870
- ]
871
-
872
- IkeGroup = Literal[
873
- "2",
874
- "14",
875
- "15",
876
- "16",
877
- "19",
878
- "20",
879
- "21",
880
- "24",
881
- ]
882
-
883
- IpsecCiphersuite = Literal[
884
- "aes256-cbc-sha1",
885
- "aes256-cbc-sha384",
886
- "aes256-cbc-sha256",
887
- "aes256-cbc-sha512",
888
- "aes256-gcm",
889
- "null-sha1",
890
- "null-sha384",
891
- "null-sha256",
892
- "null-sha512",
893
- ]
894
-
895
- IpsecTunnelMode = Literal[
896
- "ipv4",
897
- "ipv6",
898
- "ipv4-v6overlay",
899
- ]
900
-
901
- LossProtectionType = Literal[
902
- "fecAdaptive",
903
- "fecAlways",
904
- "packetDuplication",
905
- ]
906
-
907
- PfsGroup = Literal[
908
- "group-1",
909
- "group-2",
910
- "group-5",
911
- "group-14",
912
- "group-15",
913
- "group-16",
914
- "group-19",
915
- "group-20",
916
- "group-21",
917
- "group-24",
918
- "none",
919
- ]
920
-
921
- VrrpTrackerAction = Literal[
922
- "Decrement",
923
- "Shutdown",
924
- ]
925
-
926
- TunnelMode = Literal[
927
- "hub",
928
- "spoke",
929
- ]
930
-
931
- Duplex = Literal[
932
- "full",
933
- "half",
934
- ]
935
-
936
- EthernetDuplexMode = Literal[
937
- "full",
938
- "half",
939
- "auto",
940
- ]
941
-
942
- MediaType = Literal[
943
- "auto-select",
944
- "rj45",
945
- "sfp",
946
- ]
947
-
948
- Speed = Literal[
949
- "10",
950
- "100",
951
- "1000",
952
- "10000",
953
- "2500",
954
- ]
955
-
956
- EthernetNatType = Literal["pool", "loopback", "interface"]
957
-
958
- EthernetDirection = Literal[
959
- "inside",
960
- "outside",
961
- ]
962
-
963
- ClockRate = Literal[
964
- "1000000",
965
- "115200",
966
- "1200",
967
- "125000",
968
- "14400",
969
- "148000",
970
- "19200",
971
- "192000",
972
- "2000000",
973
- "2400",
974
- "250000",
975
- "256000",
976
- "28800",
977
- "32000",
978
- "38400",
979
- "384000",
980
- "4000000",
981
- "4800",
982
- "48000",
983
- "500000",
984
- "512000",
985
- "5300000",
986
- "56000",
987
- "57600",
988
- "64000",
989
- "72000",
990
- "768000",
991
- "800000",
992
- "8000000",
993
- "9600",
994
- ]
995
-
996
- LineMode = Literal[
997
- "primary",
998
- "secondary",
999
- ]
1000
-
1001
- T1Framing = Literal[
1002
- "esf",
1003
- "sf",
1004
- ]
1005
-
1006
- T1Linecode = Literal[
1007
- "ami",
1008
- "b8zs",
1009
- ]
1010
-
1011
- E1Framing = Literal[
1012
- "crc4",
1013
- "no-crc4",
1014
- ]
1015
-
1016
- E1Linecode = Literal[
1017
- "ami",
1018
- "hdb3",
1019
- ]
1020
-
1021
- CableLengthShortValue = Literal[
1022
- "110ft",
1023
- "220ft",
1024
- "330ft",
1025
- "440ft",
1026
- "550ft",
1027
- "660ft",
1028
- ]
1029
-
1030
- CableLengthLongValue = Literal[
1031
- "-15db",
1032
- "-22.5db",
1033
- "-7.5db",
1034
- "0db",
1035
- ]
1036
-
1037
-
1038
- Timezone = Literal[
1039
- "Europe/Andorra",
1040
- "Asia/Dubai",
1041
- "Asia/Kabul",
1042
- "America/Antigua",
1043
- "America/Anguilla",
1044
- "Europe/Tirane",
1045
- "Asia/Yerevan",
1046
- "Africa/Luanda",
1047
- "Antarctica/McMurdo",
1048
- "Antarctica/Rothera",
1049
- "Antarctica/Palmer",
1050
- "Antarctica/Mawson",
1051
- "Antarctica/Davis",
1052
- "Antarctica/Casey",
1053
- "Antarctica/Vostok",
1054
- "Antarctica/DumontDUrville",
1055
- "Antarctica/Syowa",
1056
- "America/Argentina/Buenos_Aires",
1057
- "America/Argentina/Cordoba",
1058
- "America/Argentina/Salta",
1059
- "America/Argentina/Jujuy",
1060
- "America/Argentina/Tucuman",
1061
- "America/Argentina/Catamarca",
1062
- "America/Argentina/La_Rioja",
1063
- "America/Argentina/San_Juan",
1064
- "America/Argentina/Mendoza",
1065
- "America/Argentina/San_Luis",
1066
- "America/Argentina/Rio_Gallegos",
1067
- "America/Argentina/Ushuaia",
1068
- "Pacific/Pago_Pago",
1069
- "Europe/Vienna",
1070
- "Australia/Lord_Howe",
1071
- "Antarctica/Macquarie",
1072
- "Australia/Hobart",
1073
- "Australia/Currie",
1074
- "Australia/Melbourne",
1075
- "Australia/Sydney",
1076
- "Australia/Broken_Hill",
1077
- "Australia/Brisbane",
1078
- "Australia/Lindeman",
1079
- "Australia/Adelaide",
1080
- "Australia/Darwin",
1081
- "Australia/Perth",
1082
- "Australia/Eucla",
1083
- "America/Aruba",
1084
- "Europe/Mariehamn",
1085
- "Asia/Baku",
1086
- "Europe/Sarajevo",
1087
- "America/Barbados",
1088
- "Asia/Dhaka",
1089
- "Europe/Brussels",
1090
- "Africa/Ouagadougou",
1091
- "Europe/Sofia",
1092
- "Asia/Bahrain",
1093
- "Africa/Bujumbura",
1094
- "Africa/Porto-Novo",
1095
- "America/St_Barthelemy",
1096
- "Atlantic/Bermuda",
1097
- "Asia/Brunei",
1098
- "America/La_Paz",
1099
- "America/Kralendijk",
1100
- "America/Noronha",
1101
- "America/Belem",
1102
- "America/Fortaleza",
1103
- "America/Recife",
1104
- "America/Araguaina",
1105
- "America/Maceio",
1106
- "America/Bahia",
1107
- "America/Sao_Paulo",
1108
- "America/Campo_Grande",
1109
- "America/Cuiaba",
1110
- "America/Santarem",
1111
- "America/Porto_Velho",
1112
- "America/Boa_Vista",
1113
- "America/Manaus",
1114
- "America/Eirunepe",
1115
- "America/Rio_Branco",
1116
- "America/Nassau",
1117
- "Asia/Thimphu",
1118
- "Africa/Gaborone",
1119
- "Europe/Minsk",
1120
- "America/Belize",
1121
- "America/St_Johns",
1122
- "America/Halifax",
1123
- "America/Glace_Bay",
1124
- "America/Moncton",
1125
- "America/Goose_Bay",
1126
- "America/Blanc-Sablon",
1127
- "America/Toronto",
1128
- "America/Nipigon",
1129
- "America/Thunder_Bay",
1130
- "America/Iqaluit",
1131
- "America/Pangnirtung",
1132
- "America/Resolute",
1133
- "America/Atikokan",
1134
- "America/Rankin_Inlet",
1135
- "America/Winnipeg",
1136
- "America/Rainy_River",
1137
- "America/Regina",
1138
- "America/Swift_Current",
1139
- "America/Edmonton",
1140
- "America/Cambridge_Bay",
1141
- "America/Yellowknife",
1142
- "America/Inuvik",
1143
- "America/Creston",
1144
- "America/Dawson_Creek",
1145
- "America/Vancouver",
1146
- "America/Whitehorse",
1147
- "America/Dawson",
1148
- "Indian/Cocos",
1149
- "Africa/Kinshasa",
1150
- "Africa/Lubumbashi",
1151
- "Africa/Bangui",
1152
- "Africa/Brazzaville",
1153
- "Europe/Zurich",
1154
- "Africa/Abidjan",
1155
- "Pacific/Rarotonga",
1156
- "America/Santiago",
1157
- "Pacific/Easter",
1158
- "Africa/Douala",
1159
- "Asia/Shanghai",
1160
- "Asia/Harbin",
1161
- "Asia/Chongqing",
1162
- "Asia/Urumqi",
1163
- "Asia/Kashgar",
1164
- "America/Bogota",
1165
- "America/Costa_Rica",
1166
- "America/Havana",
1167
- "Atlantic/Cape_Verde",
1168
- "America/Curacao",
1169
- "Indian/Christmas",
1170
- "Asia/Nicosia",
1171
- "Europe/Prague",
1172
- "Europe/Berlin",
1173
- "Europe/Busingen",
1174
- "Africa/Djibouti",
1175
- "Europe/Copenhagen",
1176
- "America/Dominica",
1177
- "America/Santo_Domingo",
1178
- "Africa/Algiers",
1179
- "America/Guayaquil",
1180
- "Pacific/Galapagos",
1181
- "Europe/Tallinn",
1182
- "Africa/Cairo",
1183
- "Africa/El_Aaiun",
1184
- "Africa/Asmara",
1185
- "Europe/Madrid",
1186
- "Africa/Ceuta",
1187
- "Atlantic/Canary",
1188
- "Africa/Addis_Ababa",
1189
- "Europe/Helsinki",
1190
- "Pacific/Fiji",
1191
- "Atlantic/Stanley",
1192
- "Pacific/Chuuk",
1193
- "Pacific/Pohnpei",
1194
- "Pacific/Kosrae",
1195
- "Atlantic/Faroe",
1196
- "Europe/Paris",
1197
- "Africa/Libreville",
1198
- "Europe/London",
1199
- "America/Grenada",
1200
- "Asia/Tbilisi",
1201
- "America/Cayenne",
1202
- "Europe/Guernsey",
1203
- "Africa/Accra",
1204
- "Europe/Gibraltar",
1205
- "America/Godthab",
1206
- "America/Danmarkshavn",
1207
- "America/Scoresbysund",
1208
- "America/Thule",
1209
- "Africa/Banjul",
1210
- "Africa/Conakry",
1211
- "America/Guadeloupe",
1212
- "Africa/Malabo",
1213
- "Europe/Athens",
1214
- "Atlantic/South_Georgia",
1215
- "America/Guatemala",
1216
- "Pacific/Guam",
1217
- "Africa/Bissau",
1218
- "America/Guyana",
1219
- "Asia/Hong_Kong",
1220
- "America/Tegucigalpa",
1221
- "Europe/Zagreb",
1222
- "America/Port-au-Prince",
1223
- "Europe/Budapest",
1224
- "Asia/Jakarta",
1225
- "Asia/Pontianak",
1226
- "Asia/Makassar",
1227
- "Asia/Jayapura",
1228
- "Europe/Dublin",
1229
- "Asia/Jerusalem",
1230
- "Europe/Isle_of_Man",
1231
- "Asia/Kolkata",
1232
- "Indian/Chagos",
1233
- "Asia/Baghdad",
1234
- "Asia/Tehran",
1235
- "Atlantic/Reykjavik",
1236
- "Europe/Rome",
1237
- "Europe/Jersey",
1238
- "America/Jamaica",
1239
- "Asia/Amman",
1240
- "Asia/Tokyo",
1241
- "Africa/Nairobi",
1242
- "Asia/Bishkek",
1243
- "Asia/Phnom_Penh",
1244
- "Pacific/Tarawa",
1245
- "Pacific/Enderbury",
1246
- "Pacific/Kiritimati",
1247
- "Indian/Comoro",
1248
- "America/St_Kitts",
1249
- "Asia/Pyongyang",
1250
- "Asia/Seoul",
1251
- "Asia/Kuwait",
1252
- "America/Cayman",
1253
- "Asia/Almaty",
1254
- "Asia/Qyzylorda",
1255
- "Asia/Aqtobe",
1256
- "Asia/Aqtau",
1257
- "Asia/Oral",
1258
- "Asia/Vientiane",
1259
- "Asia/Beirut",
1260
- "America/St_Lucia",
1261
- "Europe/Vaduz",
1262
- "Asia/Colombo",
1263
- "Africa/Monrovia",
1264
- "Africa/Maseru",
1265
- "Europe/Vilnius",
1266
- "Europe/Luxembourg",
1267
- "Europe/Riga",
1268
- "Africa/Tripoli",
1269
- "Africa/Casablanca",
1270
- "Europe/Monaco",
1271
- "Europe/Chisinau",
1272
- "Europe/Podgorica",
1273
- "America/Marigot",
1274
- "Indian/Antananarivo",
1275
- "Pacific/Majuro",
1276
- "Pacific/Kwajalein",
1277
- "Europe/Skopje",
1278
- "Africa/Bamako",
1279
- "Asia/Rangoon",
1280
- "Asia/Ulaanbaatar",
1281
- "Asia/Hovd",
1282
- "Asia/Choibalsan",
1283
- "Asia/Macau",
1284
- "Pacific/Saipan",
1285
- "America/Martinique",
1286
- "Africa/Nouakchott",
1287
- "America/Montserrat",
1288
- "Europe/Malta",
1289
- "Indian/Mauritius",
1290
- "Indian/Maldives",
1291
- "Africa/Blantyre",
1292
- "America/Mexico_City",
1293
- "America/Cancun",
1294
- "America/Merida",
1295
- "America/Monterrey",
1296
- "America/Matamoros",
1297
- "America/Mazatlan",
1298
- "America/Chihuahua",
1299
- "America/Ojinaga",
1300
- "America/Hermosillo",
1301
- "America/Tijuana",
1302
- "America/Santa_Isabel",
1303
- "America/Bahia_Banderas",
1304
- "Asia/Kuala_Lumpur",
1305
- "Asia/Kuching",
1306
- "Africa/Maputo",
1307
- "Africa/Windhoek",
1308
- "Pacific/Noumea",
1309
- "Africa/Niamey",
1310
- "Pacific/Norfolk",
1311
- "Africa/Lagos",
1312
- "America/Managua",
1313
- "Europe/Amsterdam",
1314
- "Europe/Oslo",
1315
- "Asia/Kathmandu",
1316
- "Pacific/Nauru",
1317
- "Pacific/Niue",
1318
- "Pacific/Auckland",
1319
- "Pacific/Chatham",
1320
- "Asia/Muscat",
1321
- "America/Panama",
1322
- "America/Lima",
1323
- "Pacific/Tahiti",
1324
- "Pacific/Marquesas",
1325
- "Pacific/Gambier",
1326
- "Pacific/Port_Moresby",
1327
- "Asia/Manila",
1328
- "Asia/Karachi",
1329
- "Europe/Warsaw",
1330
- "America/Miquelon",
1331
- "Pacific/Pitcairn",
1332
- "America/Puerto_Rico",
1333
- "Asia/Gaza",
1334
- "Asia/Hebron",
1335
- "Europe/Lisbon",
1336
- "Atlantic/Madeira",
1337
- "Atlantic/Azores",
1338
- "Pacific/Palau",
1339
- "America/Asuncion",
1340
- "Asia/Qatar",
1341
- "Indian/Reunion",
1342
- "Europe/Bucharest",
1343
- "Europe/Belgrade",
1344
- "Europe/Kaliningrad",
1345
- "Europe/Moscow",
1346
- "Europe/Volgograd",
1347
- "Europe/Samara",
1348
- "Asia/Yekaterinburg",
1349
- "Asia/Omsk",
1350
- "Asia/Novosibirsk",
1351
- "Asia/Novokuznetsk",
1352
- "Asia/Krasnoyarsk",
1353
- "Asia/Irkutsk",
1354
- "Asia/Yakutsk",
1355
- "Asia/Khandyga",
1356
- "Asia/Vladivostok",
1357
- "Asia/Sakhalin",
1358
- "Asia/Ust-Nera",
1359
- "Asia/Magadan",
1360
- "Asia/Kamchatka",
1361
- "Asia/Anadyr",
1362
- "Africa/Kigali",
1363
- "Asia/Riyadh",
1364
- "Pacific/Guadalcanal",
1365
- "Indian/Mahe",
1366
- "Africa/Khartoum",
1367
- "Europe/Stockholm",
1368
- "Asia/Singapore",
1369
- "Atlantic/St_Helena",
1370
- "Europe/Ljubljana",
1371
- "Arctic/Longyearbyen",
1372
- "Europe/Bratislava",
1373
- "Africa/Freetown",
1374
- "Europe/San_Marino",
1375
- "Africa/Dakar",
1376
- "Africa/Mogadishu",
1377
- "America/Paramaribo",
1378
- "Africa/Juba",
1379
- "Africa/Sao_Tome",
1380
- "America/El_Salvador",
1381
- "America/Lower_Princes",
1382
- "Asia/Damascus",
1383
- "Africa/Mbabane",
1384
- "America/Grand_Turk",
1385
- "Africa/Ndjamena",
1386
- "Indian/Kerguelen",
1387
- "Africa/Lome",
1388
- "Asia/Bangkok",
1389
- "Asia/Dushanbe",
1390
- "Pacific/Fakaofo",
1391
- "Asia/Dili",
1392
- "Asia/Ashgabat",
1393
- "Africa/Tunis",
1394
- "Pacific/Tongatapu",
1395
- "Europe/Istanbul",
1396
- "America/Port_of_Spain",
1397
- "Pacific/Funafuti",
1398
- "Asia/Taipei",
1399
- "Africa/Dar_es_Salaam",
1400
- "Europe/Kiev",
1401
- "Europe/Uzhgorod",
1402
- "Europe/Zaporozhye",
1403
- "Europe/Simferopol",
1404
- "Africa/Kampala",
1405
- "Pacific/Johnston",
1406
- "Pacific/Midway",
1407
- "Pacific/Wake",
1408
- "America/New_York",
1409
- "America/Detroit",
1410
- "America/Kentucky/Louisville",
1411
- "America/Kentucky/Monticello",
1412
- "America/Indiana/Indianapolis",
1413
- "America/Indiana/Vincennes",
1414
- "America/Indiana/Winamac",
1415
- "America/Indiana/Marengo",
1416
- "America/Indiana/Petersburg",
1417
- "America/Indiana/Vevay",
1418
- "America/Chicago",
1419
- "America/Indiana/Tell_City",
1420
- "America/Indiana/Knox",
1421
- "America/Menominee",
1422
- "America/North_Dakota/Center",
1423
- "America/North_Dakota/New_Salem",
1424
- "America/North_Dakota/Beulah",
1425
- "America/Denver",
1426
- "America/Boise",
1427
- "America/Phoenix",
1428
- "America/Los_Angeles",
1429
- "America/Anchorage",
1430
- "America/Juneau",
1431
- "America/Sitka",
1432
- "America/Yakutat",
1433
- "America/Nome",
1434
- "America/Adak",
1435
- "America/Metlakatla",
1436
- "Pacific/Honolulu",
1437
- "America/Montevideo",
1438
- "Asia/Samarkand",
1439
- "Asia/Tashkent",
1440
- "Europe/Vatican",
1441
- "America/St_Vincent",
1442
- "America/Caracas",
1443
- "America/Tortola",
1444
- "America/St_Thomas",
1445
- "Asia/Ho_Chi_Minh",
1446
- "Pacific/Efate",
1447
- "Pacific/Wallis",
1448
- "Pacific/Apia",
1449
- "Asia/Aden",
1450
- "Indian/Mayotte",
1451
- "Africa/Johannesburg",
1452
- "Africa/Lusaka",
1453
- "Africa/Harare",
1454
- "UTC",
1455
- ]
1456
-
1457
- TrafficTargetType = Literal[
1458
- "access",
1459
- "core",
1460
- "service",
1461
- ]
1462
-
1463
- DeviceModel = Literal[
1464
- "None",
1465
- "vsmart",
1466
- "vedge-cloud",
1467
- "vmanage",
1468
- "vedge-ISR1100-6G",
1469
- "vedge-ISR1100X-6G",
1470
- "vedge-ISR1100-4G",
1471
- "vedge-ISR1100X-4G",
1472
- "vedge-ISR1100-4GLTE",
1473
- "vedge-cloud",
1474
- "vedge-1000",
1475
- "vedge-2000",
1476
- "vedge-100",
1477
- "vedge-100-B",
1478
- "vedge-100-WM",
1479
- "vedge-100-M",
1480
- "vedge-5000",
1481
- "vedge-IR-1101",
1482
- "vedge-ESR-6300",
1483
- "vedge-IR-1821",
1484
- "vedge-IR-1831",
1485
- "vedge-IR-1833",
1486
- "vedge-IR-1835",
1487
- "vedge-ASR-1001-X",
1488
- "vedge-ASR-1002-X",
1489
- "vedge-ASR-1002-HX",
1490
- "vedge-ASR-1001-HX",
1491
- "vedge-C8500L-8G4X",
1492
- "vedge-C8500-12X4QC",
1493
- "vedge-C8500-12X",
1494
- "vedge-C8500L-8S4X",
1495
- "vedge-ASR-1006-X",
1496
- "vedge-C8500-20X6C",
1497
- "vedge-CSR-1000v",
1498
- "vedge-C8000V",
1499
- "vedge-ISR-4331",
1500
- "vedge-ISR-4431",
1501
- "vedge-ISR-4461",
1502
- "vedge-ISR-4451-X",
1503
- "vedge-ISR-4321",
1504
- "vedge-ISR-4351",
1505
- "vedge-ISR-4221",
1506
- "vedge-ISR-4221X",
1507
- "vedge-C1111-8PW",
1508
- "vedge-C1111-8PLTELAW",
1509
- "vedge-C1111-8PLTEEAW",
1510
- "vedge-C1113-8PMLTEEA",
1511
- "vedge-C1116-4P",
1512
- "vedge-C1116-4PLTEEA",
1513
- "vedge-C1117-4P",
1514
- "vedge-C1117-4PM",
1515
- "vedge-C1117-4PLTEEA",
1516
- "vedge-C1111-8PLTELA",
1517
- "vedge-C1111-8PLTEEA",
1518
- "vedge-C1121-8PLTEPW",
1519
- "vedge-C1121-8PLTEP",
1520
- "vedge-C1121X-8PLTEP",
1521
- "vedge-C1111-4PLTEEA",
1522
- "vedge-C1161X-8PLTEP",
1523
- "vedge-C8300-2N2S-6T",
1524
- "vedge-C8300-1N1S-6T",
1525
- "vedge-C8300-1N1S-4T2X",
1526
- "vedge-C8300-2N2S-4T2X",
1527
- "vedge-C8200-1N-4T",
1528
- "vedge-C8200L-1N-4T",
1529
- "vedge-ISRv",
1530
- ]
1531
-
1532
- SLAClassCriteria = Literal[
1533
- "loss",
1534
- "latency",
1535
- "jitter",
1536
- "loss-latency",
1537
- "loss-jitter",
1538
- "latency-loss",
1539
- "latency-jitter",
1540
- "jitter-latency",
1541
- "jitter-loss",
1542
- "loss-latency-jitter",
1543
- "loss-jitter-latency",
1544
- "latency-loss-jitter",
1545
- "latency-jitter-loss",
1546
- "jitter-latency-loss",
1547
- "jitter-loss-latency",
1548
- ]
1549
-
1550
- ServiceAreaValue = Literal[
1551
- "common",
1552
- "exchange",
1553
- "sharepoint",
1554
- "skype",
1555
- ]
1556
-
1557
- TrafficCategory = Literal[
1558
- "all",
1559
- "optimize",
1560
- "optimize-allow",
1561
- ]
1562
-
1563
- GeoLocation = Literal[
1564
- "AF",
1565
- "AN",
1566
- "AS",
1567
- "EU",
1568
- "NA",
1569
- "OC",
1570
- "SA",
1571
- "AFG",
1572
- "ALB",
1573
- "ATA",
1574
- "DZA",
1575
- "ASM",
1576
- "AND",
1577
- "AGO",
1578
- "ATG",
1579
- "AZE",
1580
- "ARG",
1581
- "AUS",
1582
- "AUT",
1583
- "BHS",
1584
- "BHR",
1585
- "BGD",
1586
- "ARM",
1587
- "BRB",
1588
- "BEL",
1589
- "BMU",
1590
- "BTN",
1591
- "BOL",
1592
- "BIH",
1593
- "BWA",
1594
- "BVT",
1595
- "BRA",
1596
- "BLZ",
1597
- "IOT",
1598
- "SLB",
1599
- "VGB",
1600
- "BRN",
1601
- "BGR",
1602
- "MMR",
1603
- "BDI",
1604
- "BLR",
1605
- "KHM",
1606
- "CMR",
1607
- "CAN",
1608
- "CPV",
1609
- "CYM",
1610
- "CAF",
1611
- "LKA",
1612
- "TCD",
1613
- "CHL",
1614
- "CHN",
1615
- "TWN",
1616
- "CXR",
1617
- "CCK",
1618
- "COL",
1619
- "COM",
1620
- "MYT",
1621
- "COG",
1622
- "COD",
1623
- "COK",
1624
- "CRI",
1625
- "HRV",
1626
- "CUB",
1627
- "CYP",
1628
- "CZE",
1629
- "BEN",
1630
- "DNK",
1631
- "DMA",
1632
- "DOM",
1633
- "ECU",
1634
- "SLV",
1635
- "GNQ",
1636
- "ETH",
1637
- "ERI",
1638
- "EST",
1639
- "FRO",
1640
- "FLK",
1641
- "SGS",
1642
- "FJI",
1643
- "FIN",
1644
- "ALA",
1645
- "FRA",
1646
- "GUF",
1647
- "PYF",
1648
- "ATF",
1649
- "DJI",
1650
- "GAB",
1651
- "GEO",
1652
- "GMB",
1653
- "PSE",
1654
- "DEU",
1655
- "GHA",
1656
- "GIB",
1657
- "KIR",
1658
- "GRC",
1659
- "GRL",
1660
- "GRD",
1661
- "GLP",
1662
- "GUM",
1663
- "GTM",
1664
- "GIN",
1665
- "GUY",
1666
- "HTI",
1667
- "HMD",
1668
- "VAT",
1669
- "HND",
1670
- "HKG",
1671
- "HUN",
1672
- "ISL",
1673
- "IND",
1674
- "IDN",
1675
- "IRN",
1676
- "IRQ",
1677
- "IRL",
1678
- "ISR",
1679
- "ITA",
1680
- "CIV",
1681
- "JAM",
1682
- "JPN",
1683
- "KAZ",
1684
- "JOR",
1685
- "KEN",
1686
- "PRK",
1687
- "KOR",
1688
- "KWT",
1689
- "KGZ",
1690
- "LAO",
1691
- "LBN",
1692
- "LSO",
1693
- "LVA",
1694
- "LBR",
1695
- "LBY",
1696
- "LIE",
1697
- "LTU",
1698
- "LUX",
1699
- "MAC",
1700
- "MDG",
1701
- "MWI",
1702
- "MYS",
1703
- "MDV",
1704
- "MLI",
1705
- "MLT",
1706
- "MTQ",
1707
- "MRT",
1708
- "MUS",
1709
- "MEX",
1710
- "MCO",
1711
- "MNG",
1712
- "MDA",
1713
- "MNE",
1714
- "MSR",
1715
- "MAR",
1716
- "MOZ",
1717
- "OMN",
1718
- "NAM",
1719
- "NRU",
1720
- "NPL",
1721
- "NLD",
1722
- "ANT",
1723
- "CUW",
1724
- "ABW",
1725
- "SXM",
1726
- "BES",
1727
- "NCL",
1728
- "VUT",
1729
- "NZL",
1730
- "NIC",
1731
- "NER",
1732
- "NGA",
1733
- "NIU",
1734
- "NFK",
1735
- "NOR",
1736
- "MNP",
1737
- "UMI",
1738
- "FSM",
1739
- "MHL",
1740
- "PLW",
1741
- "PAK",
1742
- "PAN",
1743
- "PNG",
1744
- "PRY",
1745
- "PER",
1746
- "PHL",
1747
- "PCN",
1748
- "POL",
1749
- "PRT",
1750
- "GNB",
1751
- "TLS",
1752
- "PRI",
1753
- "QAT",
1754
- "REU",
1755
- "ROU",
1756
- "RUS",
1757
- "RWA",
1758
- "BLM",
1759
- "SHN",
1760
- "KNA",
1761
- "AIA",
1762
- "LCA",
1763
- "MAF",
1764
- "SPM",
1765
- "VCT",
1766
- "SMR",
1767
- "STP",
1768
- "SAU",
1769
- "SEN",
1770
- "SRB",
1771
- "SYC",
1772
- "SLE",
1773
- "SGP",
1774
- "SVK",
1775
- "VNM",
1776
- "SVN",
1777
- "SOM",
1778
- "ZAF",
1779
- "ZWE",
1780
- "ESP",
1781
- "SSD",
1782
- "ESH",
1783
- "SDN",
1784
- "SUR",
1785
- "SJM",
1786
- "SWZ",
1787
- "SWE",
1788
- "CHE",
1789
- "SYR",
1790
- "TJK",
1791
- "THA",
1792
- "TGO",
1793
- "TKL",
1794
- "TON",
1795
- "TTO",
1796
- "ARE",
1797
- "TUN",
1798
- "TUR",
1799
- "TKM",
1800
- "TCA",
1801
- "TUV",
1802
- "UGA",
1803
- "UKR",
1804
- "MKD",
1805
- "EGY",
1806
- "GBR",
1807
- "GGY",
1808
- "JEY",
1809
- "IMN",
1810
- "TZA",
1811
- "USA",
1812
- "VIR",
1813
- "BFA",
1814
- "URY",
1815
- "UZB",
1816
- "VEN",
1817
- "WLF",
1818
- "WSM",
1819
- "YEM",
1820
- "ZMB",
1821
- ]
1822
- ProtocolName = Literal[
1823
- "snmp",
1824
- "icmp",
1825
- "tcp",
1826
- "udp",
1827
- "echo",
1828
- "telnet",
1829
- "wins",
1830
- "n2h2server",
1831
- "nntp",
1832
- "pptp",
1833
- "rtsp",
1834
- "bootpc",
1835
- "gdoi",
1836
- "tacacs",
1837
- "gopher",
1838
- "icabrowser",
1839
- "skinny",
1840
- "sunrpc",
1841
- "biff",
1842
- "router",
1843
- "ircs",
1844
- "orasrv",
1845
- "ms-cluster-net",
1846
- "kermit",
1847
- "isakmp",
1848
- "sshell",
1849
- "realsecure",
1850
- "ircu",
1851
- "appleqtc",
1852
- "pwdgen",
1853
- "rdb-dbs-disp",
1854
- "creativepartnr",
1855
- "finger",
1856
- "ftps",
1857
- "giop",
1858
- "rsvd",
1859
- "hp-alarm-mgr",
1860
- "uucp",
1861
- "kerberos",
1862
- "imap",
1863
- "time",
1864
- "bootps",
1865
- "tftp",
1866
- "oracle",
1867
- "snmptrap",
1868
- "http",
1869
- "qmtp",
1870
- "radius",
1871
- "oracle-em-vp",
1872
- "tarantella",
1873
- "pcanywheredata",
1874
- "ldap",
1875
- "mgcp",
1876
- "sqlsrv",
1877
- "hsrp",
1878
- "cisco-net-mgmt",
1879
- "smtp",
1880
- "pcanywherestat",
1881
- "exec",
1882
- "send",
1883
- "stun",
1884
- "syslog",
1885
- "ms-sql-m",
1886
- "citrix",
1887
- "creativeserver",
1888
- "cifs",
1889
- "cisco-sys",
1890
- "cisco-tna",
1891
- "ms-dotnetster",
1892
- "gtpv1",
1893
- "gtpv0",
1894
- "imap3",
1895
- "fcip-port",
1896
- "netbios-dgm",
1897
- "sip-tls",
1898
- "pop3s",
1899
- "cisco-fna",
1900
- "802-11-iapp",
1901
- "oem-agent",
1902
- "cisco-tdp",
1903
- "tr-rsrb",
1904
- "r-winsock",
1905
- "sql-net",
1906
- "syslog-conn",
1907
- "tacacs-ds",
1908
- "h225ras",
1909
- "ace-svr",
1910
- "dhcp-failover",
1911
- "igmpv3lite",
1912
- "irc-serv",
1913
- "entrust-svcs",
1914
- "dbcontrol_agent",
1915
- "cisco-svcs",
1916
- "ipsec-msft",
1917
- "microsoft-ds",
1918
- "ms-sna",
1919
- "rsvp_tunnel",
1920
- "rsvp-encap",
1921
- "hp-collector",
1922
- "netbios-ns",
1923
- "msexch-routing",
1924
- "h323",
1925
- "l2tp",
1926
- "ldap-admin",
1927
- "pop3",
1928
- "h323callsigalt",
1929
- "ms-sql",
1930
- "iscsi-target",
1931
- "webster",
1932
- "lotusnote",
1933
- "ipx",
1934
- "entrust-svc-hand",
1935
- "citriximaclient",
1936
- "rtc-pm-port",
1937
- "ftp",
1938
- "aol",
1939
- "xdmcp",
1940
- "oraclenames",
1941
- "login",
1942
- "iscsi",
1943
- "ttc",
1944
- "imaps",
1945
- "socks",
1946
- "ssh",
1947
- "dnsix",
1948
- "daytime",
1949
- "sip",
1950
- "discard",
1951
- "ntp",
1952
- "ldaps",
1953
- "https",
1954
- "vdolive",
1955
- "ica",
1956
- "net8-cman",
1957
- "cuseeme",
1958
- "netstat",
1959
- "sms",
1960
- "streamworks",
1961
- "rtelnet",
1962
- "who",
1963
- "kazaa",
1964
- "ssp",
1965
- "dbase",
1966
- "timed",
1967
- "cddbp",
1968
- "telnets",
1969
- "ymsgr",
1970
- "ident",
1971
- "bgp",
1972
- "ddns-v3",
1973
- "vqp",
1974
- "irc",
1975
- "ipass",
1976
- "x11",
1977
- "dns",
1978
- "lotusmtap",
1979
- "mysql",
1980
- "nfs",
1981
- "msnmsgr",
1982
- "netshow",
1983
- "sqlserv",
1984
- "hp-managed-node",
1985
- "ncp",
1986
- "shell",
1987
- "realmedia",
1988
- "msrpc",
1989
- "clp",
1990
- ]
1991
-
1992
- SecurityBaseAction = Literal[
1993
- "drop",
1994
- "inspect",
1995
- "pass",
1996
- ]
1997
-
1998
- SecuritySequenceIpType = Literal[
1999
- "ipv4",
2000
- "ipv6",
2001
- ]
2002
-
2003
-
2004
- def str_as_service_area_list(val: Union[str, Sequence[ServiceAreaValue]]) -> Sequence[ServiceAreaValue]:
2005
- if isinstance(val, str):
2006
- return [cast(ServiceAreaValue, item) for item in val.split() if item in get_args(ServiceAreaValue)]
2007
- return val
2008
-
2009
-
2010
- SpaceSeparatedServiceAreaList = Annotated[
2011
- List[ServiceAreaValue],
2012
- PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),
2013
- BeforeValidator(str_as_service_area_list),
2014
- ]