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,14 +1,14 @@
1
1
  # Copyright 2023 Cisco Systems, Inc. and its affiliates
2
2
 
3
3
  import ipaddress
4
+ from enum import Enum
4
5
  from pathlib import Path
5
- from typing import ClassVar, List, Literal, Optional
6
+ from typing import ClassVar, List, Optional
6
7
 
7
8
  from pydantic import ConfigDict, Field
8
9
 
9
10
  from catalystwan.api.templates.bool_str import BoolStr
10
11
  from catalystwan.api.templates.feature_template import FeatureTemplate, FeatureTemplateValidator
11
- from catalystwan.models.common import Protocol, StaticNatDirection, TLOCColor
12
12
 
13
13
  DEFAULT_STATIC_NAT64_SOURCE_VPN_ID = 0
14
14
  DEFAULT_STATIC_NAT_SOURCE_VPN_ID = 0
@@ -22,800 +22,443 @@ DEFAULT_IPV6_VRRP_PRIORITY = 100
22
22
  DEFAULT_IPV6_VRRP_TIMER = 1000
23
23
 
24
24
 
25
- Direction = Literal["in", "out"]
26
- NatChoice = Literal["Interface", "Pool", "Loopback"]
27
- CoreRegion = Literal["core", "core-shared"]
28
- SecondaryRegion = Literal["off", "secondary-only", "secondary-shared"]
29
- Encap = Literal["gre", "ipsec"]
30
- Mode = Literal["hub", "spoke"]
31
- Carrier = Literal[
32
- "default", "carrier1", "carrier2", "carrier3", "carrier4", "carrier5", "carrier6", "carrier7", "carrier8"
33
- ]
34
- MediaType = Literal["auto-select", "rj45", "sfp"]
35
- Speed = Literal["10", "100", "1000", "2500", "10000"]
36
- Duplex = Literal["full", "half", "auto"]
37
- TrackAction = Literal["Decrement", "Shutdown"]
38
-
39
-
40
25
  class SecondaryIPv4Address(FeatureTemplateValidator):
41
- address: Optional[ipaddress.IPv4Interface] = Field(
42
- default=None, description="IPv4 address with CIDR notation for the secondary interface."
43
- )
26
+ address: Optional[ipaddress.IPv4Interface] = None
44
27
 
45
28
 
46
29
  class SecondaryIPv6Address(FeatureTemplateValidator):
47
- address: Optional[ipaddress.IPv6Interface] = Field(
48
- default=None, description="IPv6 address with CIDR notation for the secondary interface."
49
- )
30
+ address: Optional[ipaddress.IPv6Interface] = None
31
+
32
+
33
+ class Direction(str, Enum):
34
+ IN = "in"
35
+ OUT = "out"
50
36
 
51
37
 
52
38
  class AccessList(FeatureTemplateValidator):
53
- direction: Direction = Field(..., description="Direction of the traffic flow for applying the ACL ('in' or 'out').")
54
- acl_name: str = Field(
55
- ..., json_schema_extra={"vmanage_key": "acl-name"}, description="Name of the access control list."
56
- )
57
- model_config: ClassVar[ConfigDict] = ConfigDict(populate_by_name=True)
39
+ direction: Direction
40
+ acl_name: str = Field(json_schema_extra={"vmanage_key": "acl-name"})
41
+ model_config = ConfigDict(populate_by_name=True)
58
42
 
59
43
 
60
44
  class DhcpHelperV6(FeatureTemplateValidator):
61
- address: ipaddress.IPv6Address = Field(..., description="IPv6 address of the DHCP server or relay.")
62
- vpn: Optional[int] = Field(default=None, description="Optional VPN ID where the DHCP helper is configured.")
45
+ address: ipaddress.IPv6Address
46
+ vpn: Optional[int] = None
47
+
48
+
49
+ class NatChoice(str, Enum):
50
+ INTERFACE = "Interface"
51
+ POOL = "Pool"
52
+ LOOPBACK = "Loopback"
63
53
 
64
54
 
65
55
  class StaticNat66(FeatureTemplateValidator):
66
- source_prefix: ipaddress.IPv6Interface = Field(
67
- ...,
68
- json_schema_extra={"vmanage_key": "source-prefix"},
69
- description="IPv6 network prefix that is to be translated.",
70
- )
71
- translated_source_prefix: str = Field(
72
- ...,
73
- json_schema_extra={"vmanage_key": "translated-source-prefix"},
74
- description="IPv6 network prefix to which the source prefix is translated.",
75
- )
76
- source_vpn_id: int = Field(
77
- default=DEFAULT_STATIC_NAT64_SOURCE_VPN_ID,
78
- json_schema_extra={"vmanage_key": "source-vpn-id"},
79
- description="VPN ID associated with the source network prefix.",
80
- )
81
- model_config: ClassVar[ConfigDict] = ConfigDict(populate_by_name=True)
56
+ source_prefix: ipaddress.IPv6Interface = Field(json_schema_extra={"vmanage_key": "source-prefix"})
57
+ translated_source_prefix: str = Field(json_schema_extra={"vmanage_key": "translated-source-prefix"})
58
+ source_vpn_id: int = Field(DEFAULT_STATIC_NAT64_SOURCE_VPN_ID, json_schema_extra={"vmanage_key": "source-vpn-id"})
59
+ model_config = ConfigDict(populate_by_name=True)
60
+
61
+
62
+ class StaticNatDirection(str, Enum):
63
+ INSIDE = "inside"
64
+ OUTSIDE = "outside"
82
65
 
83
66
 
84
67
  class Static(FeatureTemplateValidator):
85
- source_ip: ipaddress.IPv4Address = Field(
86
- ..., json_schema_extra={"vmanage_key": "source-ip"}, description="IPv4 address of the source IP for static NAT."
87
- )
88
- translate_ip: ipaddress.IPv4Address = Field(
89
- ...,
90
- json_schema_extra={"vmanage_key": "translate-ip"},
91
- description="IPv4 address used for translation in static NAT.",
92
- )
68
+ source_ip: ipaddress.IPv4Address = Field(json_schema_extra={"vmanage_key": "source-ip"})
69
+ translate_ip: ipaddress.IPv4Address = Field(json_schema_extra={"vmanage_key": "translate-ip"})
93
70
  static_nat_direction: StaticNatDirection = Field(
94
- default="inside",
95
- json_schema_extra={"vmanage_key": "static-nat-direction"},
96
- description="Direction of static NAT mapping ('inside' or 'outside').",
97
- )
98
- source_vpn: int = Field(
99
- default=DEFAULT_STATIC_NAT_SOURCE_VPN_ID,
100
- json_schema_extra={"vmanage_key": "source-vpn"},
101
- description="VPN ID associated with the source IP for static NAT.",
71
+ StaticNatDirection.INSIDE, json_schema_extra={"vmanage_key": "static-nat-direction"}
102
72
  )
103
- model_config: ClassVar[ConfigDict] = ConfigDict(populate_by_name=True)
73
+ source_vpn: int = Field(DEFAULT_STATIC_NAT_SOURCE_VPN_ID, json_schema_extra={"vmanage_key": "source-vpn"})
74
+ model_config = ConfigDict(populate_by_name=True)
75
+
76
+
77
+ class Proto(str, Enum):
78
+ TCP = "tcp"
79
+ UDP = "udp"
104
80
 
105
81
 
106
82
  class StaticPortForward(FeatureTemplateValidator):
107
- source_ip: ipaddress.IPv4Address = Field(
108
- ...,
109
- json_schema_extra={"vmanage_key": "source-ip"},
110
- description="IPv4 address of the source IP for port forwarding.",
111
- )
112
- translate_ip: ipaddress.IPv4Address = Field(
113
- ...,
114
- json_schema_extra={"vmanage_key": "translate-ip"},
115
- description="IPv4 address used for translation in port forwarding.",
116
- )
83
+ source_ip: ipaddress.IPv4Address = Field(json_schema_extra={"vmanage_key": "source-ip"})
84
+ translate_ip: ipaddress.IPv4Address = Field(json_schema_extra={"vmanage_key": "translate-ip"})
117
85
  static_nat_direction: StaticNatDirection = Field(
118
- default="inside",
119
- json_schema_extra={"vmanage_key": "static-nat-direction"},
120
- description="Direction of port forwarding mapping ('inside' or 'outside').",
121
- )
122
- source_port: int = Field(
123
- default=DEFAULT_STATIC_PORT_FORWARD_SOURCE_PORT,
124
- json_schema_extra={"vmanage_key": "source-port"},
125
- description="Source port number for port forwarding.",
86
+ StaticNatDirection.INSIDE, json_schema_extra={"vmanage_key": "static-nat-direction"}
126
87
  )
88
+ source_port: int = Field(DEFAULT_STATIC_PORT_FORWARD_SOURCE_PORT, json_schema_extra={"vmanage_key": "source-port"})
127
89
  translate_port: int = Field(
128
- default=DEFAULT_STATIC_PORT_FORWARD_TRANSLATE_PORT,
129
- json_schema_extra={"vmanage_key": "translate-port"},
130
- description="Translated port number for port forwarding.",
131
- )
132
- proto: Protocol = Field(..., description="Protocol used for port forwarding (TCP/UDP).")
133
- source_vpn: int = Field(
134
- default=DEFAULT_STATIC_PORT_FORWARD_SOURCE_VPN,
135
- json_schema_extra={"vmanage_key": "source-vpn"},
136
- description="VPN ID associated with the source IP for port forwarding.",
90
+ DEFAULT_STATIC_PORT_FORWARD_TRANSLATE_PORT, json_schema_extra={"vmanage_key": "translate-port"}
137
91
  )
138
- model_config: ClassVar[ConfigDict] = ConfigDict(populate_by_name=True)
92
+ proto: Proto
93
+ source_vpn: int = Field(DEFAULT_STATIC_PORT_FORWARD_SOURCE_VPN, json_schema_extra={"vmanage_key": "source-vpn"})
94
+ model_config = ConfigDict(populate_by_name=True)
95
+
96
+
97
+ class CoreRegion(str, Enum):
98
+ CORE = "core"
99
+ CORE_SHARED = "core-shared"
100
+
101
+
102
+ class SecondaryRegion(str, Enum):
103
+ OFF = "off"
104
+ SECONDARY_ONLY = "secondary-only"
105
+ SECONDARY_SHARED = "secondary-shared"
106
+
107
+
108
+ class Encap(str, Enum):
109
+ GRE = "gre"
110
+ IPSEC = "ipsec"
139
111
 
140
112
 
141
113
  class Encapsulation(FeatureTemplateValidator):
142
- encap: Encap = Field(..., description="Type of encapsulation used for the VPN tunnel (GRE/IPsec).")
143
- preference: Optional[int] = Field(
144
- default=None, description="Preference value for the encapsulation type (lower values have higher priority)."
145
- )
146
- weight: int = Field(
147
- default=DEFAULT_ENCAPSULATION_WEIGHT,
148
- description="Weight for the encapsulation type used in load balancing decisions.",
149
- )
114
+ encap: Encap
115
+ preference: Optional[int] = None
116
+ weight: int = DEFAULT_ENCAPSULATION_WEIGHT
117
+
118
+
119
+ class Mode(str, Enum):
120
+ HUB = "hub"
121
+ SPOKE = "spoke"
122
+
123
+
124
+ class Value(str, Enum):
125
+ DEFAULT = "default"
126
+ MPLS = "mpls"
127
+ METRO_ETHERNET = "metro-ethernet"
128
+ BIZ_INTERNET = "biz-internet"
129
+ PUBLIC_INTERNET = "public-internet"
130
+ LTE = "lte"
131
+ THREEG = "3g"
132
+ RED = "red"
133
+ GREEN = "green"
134
+ BLUE = "blue"
135
+ GOLD = "gold"
136
+ SILVER = "silver"
137
+ BRONZE = "bronze"
138
+ CUSTOM1 = "custom1"
139
+ CUSTOM2 = "custom2"
140
+ CUSTOM3 = "custom3"
141
+ PRIVATE1 = "private1"
142
+ PRIVATE2 = "private2"
143
+ PRIVATE3 = "private3"
144
+ PRIVATE4 = "private4"
145
+ PRIVATE5 = "private5"
146
+ PRIVATE6 = "private6"
147
+
148
+
149
+ class Carrier(str, Enum):
150
+ DEFAULT = "default"
151
+ CARRIER1 = "carrier1"
152
+ CARRIER2 = "carrier2"
153
+ CARRIER3 = "carrier3"
154
+ CARRIER4 = "carrier4"
155
+ CARRIER5 = "carrier5"
156
+ CARRIER6 = "carrier6"
157
+ CARRIER7 = "carrier7"
158
+ CARRIER8 = "carrier8"
159
+
160
+
161
+ class MediaType(str, Enum):
162
+ AUTO_SELECT = "auto-select"
163
+ RJ45 = "rj45"
164
+ SFP = "sfp"
165
+
166
+
167
+ class Speed(str, Enum):
168
+ TEN = "10"
169
+ HUNDRED = "100"
170
+ THOUSAND = "1000"
171
+ TWOANDAHALFTHOUSAND = "2500"
172
+ TENTHOUSAND = "10000"
173
+
174
+
175
+ class Duplex(str, Enum):
176
+ FULL = "full"
177
+ HALF = "half"
178
+ AUTO = "auto"
150
179
 
151
180
 
152
181
  class Ip(FeatureTemplateValidator):
153
- addr: ipaddress.IPv4Address = Field(..., description="IPv4 address for the interface.")
154
- mac: str = Field(..., description="MAC address associated with the IPv4 address.")
182
+ addr: ipaddress.IPv4Address
183
+ mac: str
155
184
 
156
185
 
157
186
  class Ipv4Secondary(FeatureTemplateValidator):
158
- address: ipaddress.IPv4Address = Field(..., description="IPv4 address for the secondary interface.")
187
+ address: ipaddress.IPv4Address
188
+
189
+
190
+ class TrackAction(str, Enum):
191
+ DECREMENT = "Decrement"
192
+ SHUTDOWN = "Shutdown"
159
193
 
160
194
 
161
195
  class TrackingObject(FeatureTemplateValidator):
162
- name: int = Field(..., description="Unique identifier for the tracking object.")
163
- track_action: TrackAction = Field(
164
- default="Decrement",
165
- json_schema_extra={"vmanage_key": "track-action"},
166
- description="Action to take when the tracked object state changes (e.g., decrement priority or shutdown).",
167
- )
168
- decrement: int = Field(
169
- ..., description="Value by which to decrement the VRRP priority when the tracked object is down."
170
- )
171
- model_config: ClassVar[ConfigDict] = ConfigDict(populate_by_name=True)
196
+ name: int
197
+ track_action: TrackAction = Field(TrackAction.DECREMENT, json_schema_extra={"vmanage_key": "track-action"})
198
+ decrement: int
199
+ model_config = ConfigDict(populate_by_name=True)
172
200
 
173
201
 
174
202
  class Vrrp(FeatureTemplateValidator):
175
- grp_id: int = Field(..., json_schema_extra={"vmanage_key": "grp-id"}, description="VRRP group ID.")
176
- priority: int = Field(
177
- default=DEFAULT_VRRP_PRIORITY, description="Priority value for the VRRP group (higher values take precedence)."
178
- )
179
- timer: int = Field(default=DEFAULT_VRRP_TIMER, description="VRRP advertisement interval timer in milliseconds.")
180
- track_omp: BoolStr = Field(
181
- default=False,
182
- json_schema_extra={"vmanage_key": "track-omp"},
183
- description="Flag to track Overlay Management Protocol (OMP) session state.",
184
- )
185
- track_prefix_list: Optional[str] = Field(
186
- default=None,
187
- json_schema_extra={"vmanage_key": "track-prefix-list"},
188
- description="Name of the prefix-list used for tracking specific routes.",
189
- )
203
+ grp_id: int = Field(json_schema_extra={"vmanage_key": "grp-id"})
204
+ priority: int = DEFAULT_VRRP_PRIORITY
205
+ timer: int = DEFAULT_VRRP_TIMER
206
+ track_omp: BoolStr = Field(default=False, json_schema_extra={"vmanage_key": "track-omp"})
207
+ track_prefix_list: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "track-prefix-list"})
190
208
  address: Optional[ipaddress.IPv4Address] = Field(
191
- default=None,
192
- json_schema_extra={"data_path": ["ipv4"], "vmanage_key": "address"},
193
- description="Virtual IP address used by the VRRP group.",
209
+ default=None, json_schema_extra={"data_path": ["ipv4"], "vmanage_key": "address"}
194
210
  )
195
211
  ipv4_secondary: Optional[List[Ipv4Secondary]] = Field(
196
- default=None,
197
- json_schema_extra={"vmanage_key": "ipv4-secondary"},
198
- description="List of secondary IPv4 addresses for the VRRP group.",
199
- )
200
- tloc_change_pref: BoolStr = Field(
201
- default=False,
202
- json_schema_extra={"vmanage_key": "tloc-change-pref"},
203
- description="Flag to change preference based on TLOC status.",
212
+ default=None, json_schema_extra={"vmanage_key": "ipv4-secondary"}
204
213
  )
205
- value: int = Field(..., description="VRRP value to determine the primary node for the VRRP group.")
214
+ tloc_change_pref: BoolStr = Field(default=False, json_schema_extra={"vmanage_key": "tloc-change-pref"})
215
+ value: int
206
216
  tracking_object: Optional[List[TrackingObject]] = Field(
207
- default=None,
208
- json_schema_extra={"vmanage_key": "tracking-object"},
209
- description="List of tracking objects associated with the VRRP configuration.",
217
+ default=None, json_schema_extra={"vmanage_key": "tracking-object"}
210
218
  )
211
- model_config: ClassVar[ConfigDict] = ConfigDict(populate_by_name=True)
219
+ model_config = ConfigDict(populate_by_name=True)
212
220
 
213
221
 
214
222
  class Ipv6(FeatureTemplateValidator):
215
- ipv6_link_local: ipaddress.IPv6Address = Field(
216
- ...,
217
- json_schema_extra={"vmanage_key": "ipv6-link-local"},
218
- description="IPv6 link-local address for the interface.",
219
- )
220
- prefix: Optional[ipaddress.IPv6Interface] = Field(
221
- default=None, description="Optional IPv6 prefix for the interface, with CIDR notation."
222
- )
223
+ ipv6_link_local: ipaddress.IPv6Address = Field(json_schema_extra={"vmanage_key": "ipv6-link-local"})
224
+ prefix: Optional[ipaddress.IPv6Interface] = None
223
225
  model_config = ConfigDict(populate_by_name=True)
224
226
 
225
227
 
226
228
  class Ipv6Vrrp(FeatureTemplateValidator):
227
- grp_id: int = Field(..., json_schema_extra={"vmanage_key": "grp-id"}, description="IPv6 VRRP group ID.")
228
- priority: int = Field(
229
- default=DEFAULT_IPV6_VRRP_PRIORITY,
230
- description="Priority value for the IPv6 VRRP group (higher values take precedence).",
231
- )
232
- timer: int = Field(
233
- default=DEFAULT_IPV6_VRRP_TIMER, description="IPv6 VRRP advertisement interval timer in milliseconds."
234
- )
235
- track_omp: BoolStr = Field(
236
- default=False,
237
- json_schema_extra={"vmanage_key": "track-omp"},
238
- description="Flag to track Overlay Management Protocol (OMP) session state for IPv6.",
239
- )
240
- track_prefix_list: Optional[str] = Field(
241
- default=None,
242
- json_schema_extra={"vmanage_key": "track-prefix-list"},
243
- description="Name of the IPv6 prefix-list used for tracking specific routes.",
244
- )
245
- ipv6: Optional[List[Ipv6]] = Field(
246
- default=None, description="List of IPv6 configurations associated with the VRRP group."
247
- )
229
+ grp_id: int = Field(json_schema_extra={"vmanage_key": "grp-id"})
230
+ priority: int = DEFAULT_IPV6_VRRP_PRIORITY
231
+ timer: int = DEFAULT_IPV6_VRRP_TIMER
232
+ track_omp: BoolStr = Field(default=False, json_schema_extra={"vmanage_key": "track-omp"})
233
+ track_prefix_list: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "track-prefix-list"})
234
+ ipv6: Optional[List[Ipv6]] = None
248
235
  model_config = ConfigDict(populate_by_name=True)
249
236
 
250
237
 
251
238
  class CiscoVpnInterfaceModel(FeatureTemplate):
252
239
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
253
- _docs_description: str = "Cisco VPN Interface Feature Template configuration"
254
240
 
255
- if_name: Optional[str] = Field(
256
- default=None, description="The name of the interface.", json_schema_extra={"vmanage_key": "if-name"}
257
- )
258
- interface_description: Optional[str] = Field(
259
- default=None, description="A description for the interface.", json_schema_extra={"vmanage_key": "description"}
260
- )
261
- poe: Optional[BoolStr] = Field(
262
- default=None,
263
- description="Power over Ethernet setting for the interface. True if enabled, False otherwise.",
264
- )
265
- ipv4_address: Optional[str] = Field(
266
- default=None,
267
- description="The primary IPv4 address assigned to the interface.",
268
- json_schema_extra={"data_path": ["ip"], "vmanage_key": "address"},
269
- )
241
+ if_name: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "if-name"})
242
+ interface_description: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "description"})
243
+ poe: Optional[BoolStr] = None
244
+ ipv4_address: Optional[str] = Field(default=None, json_schema_extra={"data_path": ["ip"], "vmanage_key": "address"})
270
245
  secondary_ipv4_address: Optional[List[SecondaryIPv4Address]] = Field(
271
- default=None,
272
- description="A list of secondary IPv4 addresses assigned to the interface.",
273
- json_schema_extra={"data_path": ["ip"], "vmanage_key": "secondary-address"},
246
+ default=None, json_schema_extra={"data_path": ["ip"], "vmanage_key": "secondary-address"}
274
247
  )
275
248
  dhcp_ipv4_client: Optional[BoolStr] = Field(
276
- default=None,
277
- description=(
278
- "Whether DHCP client is enabled on the interface for IPv4 addressing. True if enabled, False otherwise."
279
- ),
280
- json_schema_extra={"data_path": ["ip"], "vmanage_key": "dhcp-client"},
281
- )
282
- dhcp_distance: Optional[int] = Field(
283
- default=None,
284
- description="Administrative distance for DHCP routes on the interface.",
285
- json_schema_extra={"vmanage_key": "dhcp-distance"},
249
+ default=None, json_schema_extra={"data_path": ["ip"], "vmanage_key": "dhcp-client"}
286
250
  )
251
+ dhcp_distance: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "dhcp-distance"})
287
252
  ipv6_address: Optional[ipaddress.IPv6Interface] = Field(
288
- default=None,
289
- description="The primary IPv6 address assigned to the interface.",
290
- json_schema_extra={"data_path": ["ipv6"], "vmanage_key": "address"},
253
+ default=None, json_schema_extra={"data_path": ["ipv6"], "vmanage_key": "address"}
291
254
  )
292
255
  dhcp_ipv6_client: Optional[BoolStr] = Field(
293
- default=None,
294
- description=(
295
- "Whether DHCP client is enabled on the interface for IPv6 addressing. True if enabled, False otherwise."
296
- ),
297
- json_schema_extra={"data_path": ["ipv6"], "vmanage_key": "dhcp-client"},
256
+ default=None, json_schema_extra={"data_path": ["ipv6"], "vmanage_key": "dhcp-client"}
298
257
  )
299
258
  secondary_ipv6_address: Optional[List[SecondaryIPv6Address]] = Field(
300
- default=None,
301
- description="A list of secondary IPv6 addresses assigned to the interface.",
302
- json_schema_extra={"data_path": ["ipv6"], "vmanage_key": "secondary-address"},
303
- )
304
- access_list_ipv4: Optional[List[AccessList]] = Field(
305
- default=None,
306
- description="A list of IPv4 access control lists (ACLs) applied to the interface.",
307
- json_schema_extra={"vmanage_key": "access-list"},
259
+ default=None, json_schema_extra={"data_path": ["ipv6"], "vmanage_key": "secondary-address"}
308
260
  )
261
+ access_list_ipv4: Optional[List[AccessList]] = Field(default=None, json_schema_extra={"vmanage_key": "access-list"})
309
262
  dhcp_helper: Optional[List[ipaddress.IPv4Address]] = Field(
310
- default=None,
311
- description="A list of DHCP helper addresses configured on the interface.",
312
- json_schema_extra={"vmanage_key": "dhcp-helper"},
263
+ default=None, json_schema_extra={"vmanage_key": "dhcp-helper"}
313
264
  )
314
265
  dhcp_helper_v6: Optional[List[DhcpHelperV6]] = Field(
315
- default=None,
316
- description="A list of DHCPv6 helper configurations applied to the interface.",
317
- json_schema_extra={"vmanage_key": "dhcp-helper-v6"},
318
- )
319
- tracker: Optional[List[str]] = Field(
320
- default=None,
321
- description="A list of tracker identifiers associated with the interface.",
266
+ default=None, json_schema_extra={"vmanage_key": "dhcp-helper-v6"}
322
267
  )
268
+ tracker: Optional[List[str]] = None
323
269
  auto_bandwidth_detect: Optional[BoolStr] = Field(
324
- default=None,
325
- description=(
326
- "Whether automatic bandwidth detection is enabled on the interface. True if enabled, False otherwise."
327
- ),
328
- json_schema_extra={"vmanage_key": "auto-bandwidth-detect"},
270
+ default=None, json_schema_extra={"vmanage_key": "auto-bandwidth-detect"}
329
271
  )
330
272
  iperf_server: Optional[ipaddress.IPv4Address] = Field(
331
- default=None,
332
- description="The IP address of the iPerf server used for performance testing from this interface.",
333
- json_schema_extra={"vmanage_key": "iperf-server"},
334
- )
335
- nat: Optional[BoolStr] = Field(
336
- default=None,
337
- description="Indicates whether Network Address Translation (NAT) is enabled on the interface.",
338
- )
339
- nat_choice: Optional[NatChoice] = Field(
340
- default=None,
341
- description="The type of NAT configured on the interface, if applicable.",
342
- json_schema_extra={"vmanage_key": "nat-choice"},
343
- )
344
- udp_timeout: Optional[int] = Field(
345
- default=None,
346
- description="The timeout value in seconds for UDP connections through the NAT on this interface.",
347
- json_schema_extra={"vmanage_key": "udp-timeout"},
348
- )
349
- tcp_timeout: Optional[int] = Field(
350
- default=None,
351
- description="The timeout value in seconds for TCP connections through the NAT on this interface.",
352
- json_schema_extra={"vmanage_key": "tcp-timeout"},
273
+ default=None, json_schema_extra={"vmanage_key": "iperf-server"}
353
274
  )
275
+ nat: Optional[BoolStr] = None
276
+ nat_choice: Optional[NatChoice] = Field(default=None, json_schema_extra={"vmanage_key": "nat-choice"})
277
+ udp_timeout: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "udp-timeout"})
278
+ tcp_timeout: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "tcp-timeout"})
354
279
  nat_range_start: Optional[ipaddress.IPv4Address] = Field(
355
- default=None,
356
- description="The starting IP address in the range used for NAT on this interface.",
357
- json_schema_extra={"vmanage_key": "range-start"},
358
- )
359
- nat_range_end: Optional[ipaddress.IPv4Address] = Field(
360
- default=None,
361
- description="The ending IP address in the range used for NAT on this interface.",
362
- json_schema_extra={"vmanage_key": "range-end"},
363
- )
364
- overload: Optional[BoolStr] = Field(
365
- default=None,
366
- description="Indicates if NAT overload (PAT - Port Address Translation) is enabled.",
367
- )
368
- loopback_interface: Optional[str] = Field(
369
- default=None,
370
- description="The associated loopback interface, if any, for the VPN interface.",
371
- json_schema_extra={"vmanage_key": "loopback-interface"},
372
- )
373
- prefix_length: Optional[int] = Field(
374
- default=None,
375
- description="The prefix length for the interface's IP address, indicating the size of the subnet.",
376
- json_schema_extra={"vmanage_key": "prefix-length"},
377
- )
378
- enable: Optional[BoolStr] = Field(
379
- default=None,
380
- description="Indicates whether the interface is enabled or disabled.",
381
- )
382
- nat64: Optional[BoolStr] = Field(
383
- default=None,
384
- description=(
385
- "Indicates whether NAT64 is enabled on the interface, "
386
- "allowing IPv6 addresses to communicate with IPv4 services."
387
- ),
388
- )
389
- nat66: Optional[BoolStr] = Field(
390
- default=None,
391
- description=(
392
- "Indicates whether NAT66 is enabled on the interface, translating IPv6 addresses into IPv6 addresses."
393
- ),
394
- )
395
- static_nat66: Optional[List[StaticNat66]] = Field(
396
- default=None,
397
- description="List of static NAT66 entries for translating IPv6 addresses into other IPv6 addresses.",
398
- json_schema_extra={"vmanage_key": "static-nat66"},
399
- )
400
-
280
+ default=None, json_schema_extra={"vmanage_key": "range-start"}
281
+ )
282
+ nat_range_end: Optional[ipaddress.IPv4Address] = Field(default=None, json_schema_extra={"vmanage_key": "range-end"})
283
+ overload: Optional[BoolStr] = None
284
+ loopback_interface: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "loopback-interface"})
285
+ prefix_length: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "prefix-length"})
286
+ enable: Optional[BoolStr] = None
287
+ nat64: Optional[BoolStr] = None
288
+ nat66: Optional[BoolStr] = None
289
+ static_nat66: Optional[List[StaticNat66]] = Field(default=None, json_schema_extra={"vmanage_key": "static-nat66"})
401
290
  static: Optional[List[Static]] = Field(
402
- default=None,
403
- description="List of static NAT entries for configuring one-to-one address mappings.",
404
- json_schema_extra={"data_path": ["nat"], "vmanage_key": "static"},
291
+ default=None, json_schema_extra={"data_path": ["nat"], "vmanage_key": "static"}
405
292
  )
406
293
  static_port_forward: Optional[List[StaticPortForward]] = Field(
407
- default=None,
408
- description="List of static port forwarding entries for the interface.",
409
- json_schema_extra={"vmanage_key": "static-port-forward"},
410
- )
411
- enable_core_region: Optional[BoolStr] = Field(
412
- default=None,
413
- description="Indicates if the interface is part of the core network region for centralized services.",
414
- json_schema_extra={"vmanage_key": "enable-core-region"},
415
- )
416
- core_region: Optional[CoreRegion] = Field(
417
- default=None,
418
- json_schema_extra={"vmanage_key": "core-region"},
419
- description="Configuration details for the core region.",
294
+ default=None, json_schema_extra={"vmanage_key": "static-port-forward"}
420
295
  )
296
+ enable_core_region: Optional[BoolStr] = Field(default=None, json_schema_extra={"vmanage_key": "enable-core-region"})
297
+ core_region: Optional[CoreRegion] = Field(default=None, json_schema_extra={"vmanage_key": "core-region"})
421
298
  secondary_region: Optional[SecondaryRegion] = Field(
422
- default=None,
423
- json_schema_extra={"vmanage_key": "secondary-region"},
424
- description="Configuration details for a secondary region.",
299
+ default=None, json_schema_extra={"vmanage_key": "secondary-region"}
425
300
  )
426
301
  tloc_encapsulation: Optional[List[Encapsulation]] = Field(
427
- default=None,
428
- json_schema_extra={"vmanage_key": "encapsulation", "data_path": ["tunnel-interface"]},
429
- description="Transport Location (TLOC) encapsulation settings.",
430
- )
431
- border: Optional[BoolStr] = Field(
432
- default=None,
433
- json_schema_extra={"data_path": ["tunnel-interface"]},
434
- description="Defines if the interface is at the border of a network segment.",
435
- )
436
- per_tunnel_qos: Optional[BoolStr] = Field(
437
- default=None,
438
- json_schema_extra={"vmanage_key": "per-tunnel-qos"},
439
- description="Enable or disable per-tunnel Quality of Service (QoS).",
302
+ default=None, json_schema_extra={"vmanage_key": "encapsulation", "data_path": ["tunnel-interface"]}
440
303
  )
304
+ border: Optional[BoolStr] = Field(default=None, json_schema_extra={"data_path": ["tunnel-interface"]})
305
+ per_tunnel_qos: Optional[BoolStr] = Field(default=None, json_schema_extra={"vmanage_key": "per-tunnel-qos"})
441
306
  per_tunnel_qos_aggregator: Optional[BoolStr] = Field(
442
- default=None,
443
- json_schema_extra={"vmanage_key": "per-tunnel-qos-aggregator"},
444
- description="Enable or disable per-tunnel QoS aggregator.",
445
- )
446
- mode: Optional[Mode] = Field(default=None, description="Defines the operating mode for the interface.")
447
- tunnels_bandwidth: Optional[int] = Field(
448
- default=None,
449
- json_schema_extra={"vmanage_key": "tunnels-bandwidth"},
450
- description="Specifies the total bandwidth available across all tunnels.",
451
- )
452
- group: Optional[List[int]] = Field(
453
- default=None,
454
- json_schema_extra={"data_path": ["tunnel-interface"]},
455
- description="Identifies the group or groups the interface belongs to.",
456
- )
457
- value: Optional[TLOCColor] = Field(
458
- default=None,
459
- json_schema_extra={"data_path": ["tunnel-interface", "color"]},
460
- description=(
461
- "The value field often corresponds to a specific attribute or setting, such as color in this context."
462
- ),
307
+ default=None, json_schema_extra={"vmanage_key": "per-tunnel-qos-aggregator"}
463
308
  )
309
+ mode: Optional[Mode] = None
310
+ tunnels_bandwidth: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "tunnels-bandwidth"})
311
+ group: Optional[List[int]] = Field(default=None, json_schema_extra={"data_path": ["tunnel-interface"]})
312
+ value: Optional[Value] = Field(default=None, json_schema_extra={"data_path": ["tunnel-interface", "color"]})
464
313
  max_control_connections: Optional[int] = Field(
465
- default=None,
466
- json_schema_extra={"vmanage_key": "max-control-connections", "data_path": ["tunnel-interface"]},
467
- description="Maximum number of control connections that can be established on the interface.",
314
+ default=None, json_schema_extra={"vmanage_key": "max-control-connections", "data_path": ["tunnel-interface"]}
468
315
  )
469
316
  control_connections: Optional[BoolStr] = Field(
470
- default=None,
471
- json_schema_extra={"vmanage_key": "control-connections", "data_path": ["tunnel-interface"]},
472
- description="Enables or disables control connections on the interface.",
317
+ default=None, json_schema_extra={"vmanage_key": "control-connections", "data_path": ["tunnel-interface"]}
473
318
  )
474
319
  vbond_as_stun_server: Optional[BoolStr] = Field(
475
- default=None,
476
- json_schema_extra={"vmanage_key": "vbond-as-stun-server", "data_path": ["tunnel-interface"]},
477
- description="Configures the vBond orchestrator to act as a STUN server for the interface.",
320
+ default=None, json_schema_extra={"vmanage_key": "vbond-as-stun-server", "data_path": ["tunnel-interface"]}
478
321
  )
479
322
  exclude_controller_group_list: Optional[List[int]] = Field(
480
323
  default=None,
481
324
  json_schema_extra={"vmanage_key": "exclude-controller-group-list", "data_path": ["tunnel-interface"]},
482
- description="List of controller groups to exclude from connections.",
483
325
  )
484
326
  vmanage_connection_preference: Optional[int] = Field(
485
327
  default=None,
486
328
  json_schema_extra={"vmanage_key": "vmanage-connection-preference", "data_path": ["tunnel-interface"]},
487
- description="Preference value for establishing vManage connections.",
488
329
  )
489
330
  port_hop: Optional[BoolStr] = Field(
490
- default=None,
491
- json_schema_extra={"vmanage_key": "port-hop", "data_path": ["tunnel-interface"]},
492
- description="Enables or disables port hopping for the interface to evade port blocking.",
493
- )
494
- restrict: Optional[BoolStr] = Field(
495
- default=None,
496
- json_schema_extra={"data_path": ["tunnel-interface", "color"]},
497
- description="Indicates whether the interface color is restricted for use.",
331
+ default=None, json_schema_extra={"vmanage_key": "port-hop", "data_path": ["tunnel-interface"]}
498
332
  )
333
+ restrict: Optional[BoolStr] = Field(default=None, json_schema_extra={"data_path": ["tunnel-interface", "color"]})
499
334
  dst_ip: Optional[ipaddress.IPv4Address] = Field(
500
335
  default=None,
501
336
  json_schema_extra={"vmanage_key": "dst-ip", "data_path": ["tunnel-interface", "tloc-extension-gre-to"]},
502
- description="Destination IP address for GRE (Generic Routing Encapsulation) tunnel extension.",
503
- )
504
- carrier: Optional[Carrier] = Field(
505
- default=None,
506
- json_schema_extra={"data_path": ["tunnel-interface"]},
507
- description="Specifies the carrier information for the tunnel interface.",
508
337
  )
338
+ carrier: Optional[Carrier] = Field(default=None, json_schema_extra={"data_path": ["tunnel-interface"]})
509
339
  nat_refresh_interval: Optional[int] = Field(
510
- default=None,
511
- json_schema_extra={"vmanage_key": "nat-refresh-interval", "data_path": ["tunnel-interface"]},
512
- description="Interval in seconds to refresh NAT (Network Address Translation) mappings.",
340
+ default=None, json_schema_extra={"vmanage_key": "nat-refresh-interval", "data_path": ["tunnel-interface"]}
513
341
  )
514
342
  hello_interval: Optional[int] = Field(
515
- default=None,
516
- json_schema_extra={"vmanage_key": "hello-interval", "data_path": ["tunnel-interface"]},
517
- description="Time interval in seconds between successive hello packets sent over the tunnel interface.",
343
+ default=None, json_schema_extra={"vmanage_key": "hello-interval", "data_path": ["tunnel-interface"]}
518
344
  )
519
345
  hello_tolerance: Optional[int] = Field(
520
- default=None,
521
- json_schema_extra={"vmanage_key": "hello-tolerance", "data_path": ["tunnel-interface"]},
522
- description="Time in seconds to wait before declaring a neighbor down due to missing hello packets.",
523
- )
524
- bind: Optional[str] = Field(
525
- default=None,
526
- json_schema_extra={"data_path": ["tunnel-interface"]},
527
- description="Interface or IP address to which the tunnel interface is bound.",
346
+ default=None, json_schema_extra={"vmanage_key": "hello-tolerance", "data_path": ["tunnel-interface"]}
528
347
  )
348
+ bind: Optional[str] = Field(default=None, json_schema_extra={"data_path": ["tunnel-interface"]})
529
349
  last_resort_circuit: Optional[BoolStr] = Field(
530
- default=None,
531
- json_schema_extra={"vmanage_key": "last-resort-circuit", "data_path": ["tunnel-interface"]},
532
- description="Marks the interface as a last resort circuit for traffic to fall back to.",
350
+ default=None, json_schema_extra={"vmanage_key": "last-resort-circuit", "data_path": ["tunnel-interface"]}
533
351
  )
534
352
  low_bandwidth_link: Optional[BoolStr] = Field(
535
- default=None,
536
- json_schema_extra={"vmanage_key": "low-bandwidth-link", "data_path": ["tunnel-interface"]},
537
- description="Indicates if the link is considered a low bandwidth link.",
353
+ default=None, json_schema_extra={"vmanage_key": "low-bandwidth-link", "data_path": ["tunnel-interface"]}
538
354
  )
539
355
  tunnel_tcp_mss_adjust: Optional[int] = Field(
540
- default=None,
541
- json_schema_extra={"vmanage_key": "tunnel-tcp-mss-adjust", "data_path": ["tunnel-interface"]},
542
- description="Adjusts the Maximum Segment Size (MSS) value for TCP connections over the tunnel.",
356
+ default=None, json_schema_extra={"vmanage_key": "tunnel-tcp-mss-adjust", "data_path": ["tunnel-interface"]}
543
357
  )
544
358
  clear_dont_fragment: Optional[BoolStr] = Field(
545
- default=None,
546
- json_schema_extra={"vmanage_key": "clear-dont-fragment", "data_path": ["tunnel-interface"]},
547
- description="Enables or disables the clearing of the 'Don't Fragment' (DF) bit in the IP header.",
359
+ default=None, json_schema_extra={"vmanage_key": "clear-dont-fragment", "data_path": ["tunnel-interface"]}
548
360
  )
549
361
  propagate_sgt: Optional[BoolStr] = Field(
550
- default=None,
551
- json_schema_extra={"data_path": ["tunnel-interface"], "vmanage_key": "propagate-sgt"},
552
- description="Enables or disables the propagation of Security Group Tags (SGTs) across the tunnel interface.",
362
+ default=None, json_schema_extra={"data_path": ["tunnel-interface"], "vmanage_key": "propagate-sgt"}
553
363
  )
554
364
  network_broadcast: Optional[BoolStr] = Field(
555
- default=None,
556
- json_schema_extra={"vmanage_key": "network-broadcast", "data_path": ["tunnel-interface"]},
557
- description="Allows or disallows network broadcast traffic through the tunnel interface.",
558
- )
559
- all: Optional[BoolStr] = Field(
560
- default=None,
561
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
562
- description="Permits or denies all services through the tunnel interface.",
563
- )
564
- bgp: Optional[BoolStr] = Field(
565
- default=None,
566
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
567
- description="Allows or disallows Border Gateway Protocol (BGP) traffic through the tunnel interface.",
365
+ default=None, json_schema_extra={"vmanage_key": "network-broadcast", "data_path": ["tunnel-interface"]}
568
366
  )
367
+ all: Optional[BoolStr] = Field(default=None, json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]})
368
+ bgp: Optional[BoolStr] = Field(default=None, json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]})
569
369
  dhcp: Optional[BoolStr] = Field(
570
- default=None,
571
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
572
- description="Enables or disables Dynamic Host Configuration Protocol (DHCP) on the tunnel interface.",
573
- )
574
- dns: Optional[BoolStr] = Field(
575
- default=None,
576
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
577
- description="Allows or disallows Domain Name System (DNS) queries through the tunnel interface.",
370
+ default=None, json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]}
578
371
  )
372
+ dns: Optional[BoolStr] = Field(default=None, json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]})
579
373
  icmp: Optional[BoolStr] = Field(
580
- default=None,
581
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
582
- description=(
583
- "Enables or disables Internet Control Message Protocol (ICMP) "
584
- "for ping and traceroute through the tunnel interface."
585
- ),
374
+ default=None, json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]}
586
375
  )
587
376
  sshd: Optional[BoolStr] = Field(
588
- default=None,
589
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
590
- description="Allows or disallows Secure Shell (SSH) daemon access through the tunnel interface.",
377
+ default=None, json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]}
591
378
  )
592
379
  netconf: Optional[BoolStr] = Field(
593
- default=None,
594
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
595
- description="Enables or disables NETCONF protocol support on the tunnel interface.",
596
- )
597
- ntp: Optional[BoolStr] = Field(
598
- default=None,
599
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
600
- description="Allows or disallows Network Time Protocol (NTP) synchronization through the tunnel interface.",
380
+ default=None, json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]}
601
381
  )
382
+ ntp: Optional[BoolStr] = Field(default=None, json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]})
602
383
  ospf: Optional[BoolStr] = Field(
603
- default=None,
604
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
605
- description=(
606
- "Permits or denies Open Shortest Path First (OSPF) routing protocol traffic through the tunnel interface."
607
- ),
384
+ default=None, json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]}
608
385
  )
609
386
  stun: Optional[BoolStr] = Field(
610
- default=None,
611
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
612
- description="Enables or disables Session Traversal Utilities for NAT (STUN) on the tunnel interface.",
387
+ default=None, json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]}
613
388
  )
614
389
  snmp: Optional[BoolStr] = Field(
615
- default=None,
616
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
617
- description="Allows or disallows Simple Network Management Protocol (SNMP) through the tunnel interface.",
390
+ default=None, json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]}
618
391
  )
619
392
  https: Optional[BoolStr] = Field(
620
- default=None,
621
- json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]},
622
- description="Permits or denies HTTPS traffic through the tunnel interface.",
623
- )
624
- media_type: Optional[MediaType] = Field(
625
- default=None,
626
- json_schema_extra={"vmanage_key": "media-type"},
627
- description="Specifies the media type used by the interface, such as copper or fiber.",
628
- )
629
- intrf_mtu: Optional[int] = Field(
630
- default=None,
631
- json_schema_extra={"vmanage_key": "intrf-mtu"},
632
- description="Sets the Maximum Transmission Unit (MTU) size for the interface.",
633
- )
634
- mtu: Optional[int] = Field(default=None, description="Specifies the MTU size for the tunnel or logical interface.")
635
- tcp_mss_adjust: Optional[int] = Field(
636
- default=None,
637
- json_schema_extra={"vmanage_key": "tcp-mss-adjust"},
638
- description="Adjusts the TCP Maximum Segment Size (MSS) value for connections over the interface.",
639
- )
640
- tloc_extension: Optional[str] = Field(
641
- default=None,
642
- json_schema_extra={"vmanage_key": "tloc-extension"},
643
- description="Defines the Transport Location (TLOC) extension for the interface.",
644
- )
645
- load_interval: Optional[int] = Field(
646
- default=None,
647
- json_schema_extra={"vmanage_key": "load-interval"},
648
- description="Sets the time interval in seconds for calculating interface load statistics.",
649
- )
393
+ default=None, json_schema_extra={"data_path": ["tunnel-interface", "allow-service"]}
394
+ )
395
+ media_type: Optional[MediaType] = Field(default=None, json_schema_extra={"vmanage_key": "media-type"})
396
+ intrf_mtu: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "intrf-mtu"})
397
+ mtu: Optional[int] = None
398
+ tcp_mss_adjust: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "tcp-mss-adjust"})
399
+ tloc_extension: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "tloc-extension"})
400
+ load_interval: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "load-interval"})
650
401
  src_ip: Optional[ipaddress.IPv4Address] = Field(
651
- default=None,
652
- json_schema_extra={"vmanage_key": "src-ip", "data_path": ["tloc-extension-gre-from"]},
653
- description="Source IP address for GRE tunnel extension.",
654
- )
655
- xconnect: Optional[str] = Field(
656
- default=None,
657
- json_schema_extra={"data_path": ["tloc-extension-gre-from"]},
658
- description="Cross-connect identifier for the GRE tunnel extension.",
659
- )
660
- mac_address: Optional[str] = Field(
661
- default=None,
662
- json_schema_extra={"vmanage_key": "mac-address"},
663
- description="Specifies the MAC address for the interface.",
664
- )
665
- speed: Optional[Speed] = Field(
666
- default=None, description="Defines the speed of the interface, such as 10Mbps, 100Mbps, or 1Gbps."
667
- )
668
- duplex: Optional[Duplex] = Field(
669
- default=None, description="Sets the duplex mode for the interface, such as full or half duplex."
670
- )
671
- shutdown: Optional[BoolStr] = Field(default=False, description="Enables or disables (shuts down) the interface.")
672
- arp_timeout: Optional[int] = Field(
673
- default=None,
674
- json_schema_extra={"vmanage_key": "arp-timeout"},
675
- description="Time in seconds before an ARP cache entry is timed out.",
676
- )
677
- autonegotiate: Optional[BoolStr] = Field(
678
- default=None, description="Enables or disables autonegotiation of speed and duplex settings on the interface."
679
- )
402
+ default=None, json_schema_extra={"vmanage_key": "src-ip", "data_path": ["tloc-extension-gre-from"]}
403
+ )
404
+ xconnect: Optional[str] = Field(default=None, json_schema_extra={"data_path": ["tloc-extension-gre-from"]})
405
+ mac_address: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "mac-address"})
406
+ speed: Optional[Speed] = None
407
+ duplex: Optional[Duplex] = None
408
+ shutdown: Optional[BoolStr] = False
409
+ arp_timeout: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "arp-timeout"})
410
+ autonegotiate: Optional[BoolStr] = None
680
411
  ip_directed_broadcast: Optional[BoolStr] = Field(
681
- default=None,
682
- json_schema_extra={"vmanage_key": "ip-directed-broadcast"},
683
- description="Allows or disallows IP directed broadcasts on the interface.",
412
+ default=None, json_schema_extra={"vmanage_key": "ip-directed-broadcast"}
684
413
  )
685
414
  icmp_redirect_disable: Optional[BoolStr] = Field(
686
- default=None,
687
- json_schema_extra={"vmanage_key": "icmp-redirect-disable"},
688
- description="Enables or disables ICMP redirect messages on the interface.",
689
- )
690
- qos_adaptive: Optional[BoolStr] = Field(
691
- default=None,
692
- json_schema_extra={"vmanage_key": "qos-adaptive"},
693
- description="Activates or deactivates adaptive QoS on the interface.",
694
- )
695
- period: Optional[int] = Field(
696
- default=None,
697
- json_schema_extra={"data_path": ["qos-adaptive"]},
698
- description="Time period in seconds for measuring and adapting QoS settings.",
415
+ default=None, json_schema_extra={"vmanage_key": "icmp-redirect-disable"}
699
416
  )
417
+ qos_adaptive: Optional[BoolStr] = Field(default=None, json_schema_extra={"vmanage_key": "qos-adaptive"})
418
+ period: Optional[int] = Field(default=None, json_schema_extra={"data_path": ["qos-adaptive"]})
700
419
  bandwidth_down: Optional[int] = Field(
701
- default=None,
702
- json_schema_extra={"vmanage_key": "bandwidth-down", "data_path": ["qos-adaptive", "downstream"]},
703
- description="Specifies the downstream bandwidth in Kbps for adaptive QoS calculations.",
704
- )
705
- dmin: Optional[int] = Field(
706
- default=None,
707
- json_schema_extra={"data_path": ["qos-adaptive", "downstream", "range"]},
708
- description="Specifies the minimum downstream bandwidth in Kbps for adaptive QoS.",
709
- )
710
- dmax: Optional[int] = Field(
711
- default=None,
712
- json_schema_extra={"data_path": ["qos-adaptive", "downstream", "range"]},
713
- description="Specifies the maximum downstream bandwidth in Kbps for adaptive QoS.",
420
+ default=None, json_schema_extra={"vmanage_key": "bandwidth-down", "data_path": ["qos-adaptive", "downstream"]}
714
421
  )
422
+ dmin: Optional[int] = Field(default=None, json_schema_extra={"data_path": ["qos-adaptive", "downstream", "range"]})
423
+ dmax: Optional[int] = Field(default=None, json_schema_extra={"data_path": ["qos-adaptive", "downstream", "range"]})
715
424
  bandwidth_up: Optional[int] = Field(
716
- default=None,
717
- json_schema_extra={"vmanage_key": "bandwidth-up", "data_path": ["qos-adaptive", "upstream"]},
718
- description="Specifies the upstream bandwidth in Kbps for adaptive QoS calculations.",
719
- )
720
- umin: Optional[int] = Field(
721
- default=None,
722
- json_schema_extra={"data_path": ["qos-adaptive", "upstream", "range"]},
723
- description="Specifies the minimum upstream bandwidth in Kbps for adaptive QoS.",
724
- )
725
- umax: Optional[int] = Field(
726
- default=None,
727
- json_schema_extra={"data_path": ["qos-adaptive", "upstream", "range"]},
728
- description="Specifies the maximum upstream bandwidth in Kbps for adaptive QoS.",
729
- )
730
- shaping_rate: Optional[int] = Field(
731
- default=None,
732
- json_schema_extra={"vmanage_key": "shaping-rate"},
733
- description="Defines the traffic shaping rate for the interface.",
734
- )
735
- qos_map: Optional[str] = Field(
736
- default=None,
737
- json_schema_extra={"vmanage_key": "qos-map"},
738
- description="Associates a QoS map with the interface for traffic classification and prioritization.",
739
- )
740
- qos_map_vpn: Optional[str] = Field(
741
- default=None,
742
- json_schema_extra={"vmanage_key": "qos-map-vpn"},
743
- description="Associates a QoS map with a VPN for traffic classification and prioritization within the VPN.",
744
- )
745
- service_provider: Optional[str] = Field(
746
- default=None,
747
- json_schema_extra={"vmanage_key": "service-provider"},
748
- description="Identifies the service provider associated with the interface.",
749
- )
750
- bandwidth_upstream: Optional[int] = Field(
751
- default=None,
752
- json_schema_extra={"vmanage_key": "bandwidth-upstream"},
753
- description="Specifies the upstream bandwidth in Kbps available on the interface.",
754
- )
755
- bandwidth_downstream: Optional[int] = Field(
756
- default=None,
757
- json_schema_extra={"vmanage_key": "bandwidth-downstream"},
758
- description="Specifies the downstream bandwidth in Kbps available on the interface.",
759
- )
425
+ default=None, json_schema_extra={"vmanage_key": "bandwidth-up", "data_path": ["qos-adaptive", "upstream"]}
426
+ )
427
+ umin: Optional[int] = Field(default=None, json_schema_extra={"data_path": ["qos-adaptive", "upstream", "range"]})
428
+ umax: Optional[int] = Field(default=None, json_schema_extra={"data_path": ["qos-adaptive", "upstream", "range"]})
429
+ shaping_rate: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "shaping-rate"})
430
+ qos_map: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "qos-map"})
431
+ qos_map_vpn: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "qos-map-vpn"})
432
+ service_provider: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "service-provider"})
433
+ bandwidth_upstream: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "bandwidth-upstream"})
434
+ bandwidth_downstream: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "bandwidth-downstream"})
760
435
  block_non_source_ip: Optional[BoolStr] = Field(
761
- default=None,
762
- json_schema_extra={"vmanage_key": "block-non-source-ip"},
763
- description="Enables or disables blocking of traffic with non-matching source IP addresses.",
436
+ default=None, json_schema_extra={"vmanage_key": "block-non-source-ip"}
764
437
  )
765
438
  rule_name: Optional[str] = Field(
766
- default=None,
767
- json_schema_extra={"vmanage_key": "rule-name", "data_path": ["rewrite-rule"]},
768
- description="Specifies the name of the rewrite rule applied to the interface.",
439
+ default=None, json_schema_extra={"vmanage_key": "rule-name", "data_path": ["rewrite-rule"]}
769
440
  )
770
441
  access_list_ipv6: Optional[List[AccessList]] = Field(
771
- default=None,
772
- json_schema_extra={"data_path": ["ipv6"], "vmanage_key": "access-list"},
773
- description="Defines a list of access control entries for IPv6 traffic filtering.",
774
- )
775
- ip: Optional[List[Ip]] = Field(
776
- default=None,
777
- json_schema_extra={"data_path": ["arp"]},
778
- description="A list of IP configurations for Address Resolution Protocol (ARP) settings.",
779
- )
780
- vrrp: Optional[List[Vrrp]] = Field(
781
- default=None,
782
- json_schema_extra={"vmanage_key": "vrrp"},
783
- description="A list of Virtual Router Redundancy Protocol (VRRP) configurations for IPv4.",
784
- )
785
- ipv6_vrrp: Optional[List[Ipv6Vrrp]] = Field(
786
- default=None,
787
- json_schema_extra={"vmanage_key": "ipv6-vrrp"},
788
- description="A list of Virtual Router Redundancy Protocol (VRRP) configurations for IPv6.",
442
+ default=None, json_schema_extra={"data_path": ["ipv6"], "vmanage_key": "access-list"}
789
443
  )
444
+ ip: Optional[List[Ip]] = Field(default=None, json_schema_extra={"data_path": ["arp"]})
445
+ vrrp: Optional[List[Vrrp]] = Field(default=None, json_schema_extra={"vmanage_key": "vrrp"})
446
+ ipv6_vrrp: Optional[List[Ipv6Vrrp]] = Field(default=None, json_schema_extra={"vmanage_key": "ipv6-vrrp"})
790
447
  enable_sgt_propagation: Optional[BoolStr] = Field(
791
- default=None,
792
- json_schema_extra={"data_path": ["trustsec", "propagate"], "vmanage_key": "sgt"},
793
- description="Enables or disables Security Group Tag (SGT) propagation.",
448
+ default=None, json_schema_extra={"data_path": ["trustsec", "propagate"], "vmanage_key": "sgt"}
794
449
  )
795
450
  security_group_tag: Optional[int] = Field(
796
- default=None,
797
- json_schema_extra={"data_path": ["trustsec", "static"], "vmanage_key": "sgt"},
798
- description="Specifies a static Security Group Tag (SGT) for the interface.",
799
- )
800
- trusted: Optional[BoolStr] = Field(
801
- default=None,
802
- json_schema_extra={"data_path": ["trustsec", "static"]},
803
- description="Marks the interface as trusted or untrusted for TrustSec.",
451
+ default=None, json_schema_extra={"data_path": ["trustsec", "static"], "vmanage_key": "sgt"}
804
452
  )
453
+ trusted: Optional[BoolStr] = Field(default=None, json_schema_extra={"data_path": ["trustsec", "static"]})
805
454
  enable_sgt_authorization_and_forwarding: Optional[BoolStr] = Field(
806
- default=None,
807
- json_schema_extra={"data_path": ["trustsec"], "vmanage_key": "enable"},
808
- description="Enables or disables Security Group Tag (SGT) authorization and forwarding.",
455
+ default=None, json_schema_extra={"data_path": ["trustsec"], "vmanage_key": "enable"}
809
456
  )
810
457
  enable_sgt_enforcement: Optional[BoolStr] = Field(
811
- default=None,
812
- json_schema_extra={"data_path": ["trustsec", "enforcement"], "vmanage_key": "enable"},
813
- description="Activates or deactivates Security Group Tag (SGT) enforcement.",
458
+ default=None, json_schema_extra={"data_path": ["trustsec", "enforcement"], "vmanage_key": "enable"}
814
459
  )
815
460
  enforcement_sgt: Optional[int] = Field(
816
- default=None,
817
- json_schema_extra={"data_path": ["trustsec", "enforcement"], "vmanage_key": "sgt"},
818
- description="Specifies the Security Group Tag (SGT) to be enforced on the interface.",
461
+ default=None, json_schema_extra={"data_path": ["trustsec", "enforcement"], "vmanage_key": "sgt"}
819
462
  )
820
463
 
821
464
  payload_path: ClassVar[Path] = Path(__file__).parent / "DEPRECATED"