catalystwan 0.33.4.dev2__tar.gz → 0.33.4.dev3__tar.gz

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 (460) hide show
  1. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/PKG-INFO +1 -1
  2. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/configuration_groups/parcel.py +22 -5
  3. catalystwan-0.33.4.dev3/catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +164 -0
  4. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/common.py +40 -15
  5. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/expanded_community_list.py +4 -4
  6. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/appqoe.py +1 -1
  7. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/route_policy.py +1 -1
  8. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/system/aaa.py +1 -1
  9. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +5 -2
  10. catalystwan-0.33.4.dev3/catalystwan/models/configuration/feature_profile/sdwan/transport/t1e1controller.py +161 -0
  11. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_endpoints.py +1 -1
  12. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_feature_profile_api.py +2 -1
  13. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_models_common.py +1 -1
  14. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/pyproject.toml +1 -1
  15. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/setup.py +1 -1
  16. catalystwan-0.33.4.dev2/catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +0 -78
  17. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/LICENSE +0 -0
  18. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/README.md +0 -0
  19. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/__init__.py +0 -0
  20. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/abstractions.py +0 -0
  21. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/__init__.py +0 -0
  22. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/admin_tech_api.py +0 -0
  23. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/administration.py +0 -0
  24. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/alarms_api.py +0 -0
  25. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/api_container.py +0 -0
  26. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/basic_api.py +0 -0
  27. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/builders/__init__.py +0 -0
  28. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/builders/feature_profiles/builder_factory.py +0 -0
  29. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/builders/feature_profiles/other.py +0 -0
  30. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/builders/feature_profiles/service.py +0 -0
  31. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/builders/feature_profiles/system.py +0 -0
  32. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/config_device_inventory_api.py +0 -0
  33. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/config_group_api.py +0 -0
  34. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/configuration_groups/parcels/cellular_controller.py +0 -0
  35. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/dashboard_api.py +0 -0
  36. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/device_action_api.py +0 -0
  37. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/feature_profile_api.py +0 -0
  38. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/logs_api.py +0 -0
  39. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/monitoring_status_api.py +0 -0
  40. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/mtt_aaa_api.py +0 -0
  41. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/omp_api.py +0 -0
  42. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/packet_capture_api.py +0 -0
  43. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/parcel_api.py +0 -0
  44. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/partition_manager_api.py +0 -0
  45. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/policy_api.py +0 -0
  46. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/resource_pool_api.py +0 -0
  47. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/software_action_api.py +0 -0
  48. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/speedtest_api.py +0 -0
  49. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/task_status_api.py +0 -0
  50. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/template_api.py +0 -0
  51. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/README.md +0 -0
  52. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/bool_str.py +0 -0
  53. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/cli_template.py +0 -0
  54. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/device_template/device_template.py +0 -0
  55. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/device_template/device_template_payload.json.j2 +0 -0
  56. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/device_variable.py +0 -0
  57. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/feature_template.py +0 -0
  58. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/feature_template_field.py +0 -0
  59. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/feature_template_payload.py +0 -0
  60. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_aaa_model.py +0 -0
  61. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_banner_model.py +0 -0
  62. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_bfd_model.py +0 -0
  63. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_bgp_model.py +0 -0
  64. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_logging_model.py +0 -0
  65. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_ntp_model.py +0 -0
  66. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_omp_model.py +0 -0
  67. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_ospf.py +0 -0
  68. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_ospfv3.py +0 -0
  69. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_secure_internet_gateway.py +0 -0
  70. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_snmp_model.py +0 -0
  71. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_system.py +0 -0
  72. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_vpn_interface_model.py +0 -0
  73. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cisco_vpn_model.py +0 -0
  74. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/cli_template.py +0 -0
  75. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/omp_vsmart_model.py +0 -0
  76. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/security_vsmart_model.py +0 -0
  77. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/supported.py +0 -0
  78. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/models/system_vsmart_model.py +0 -0
  79. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/aaa/aaa_model.py +0 -0
  80. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/aaa/feature/aaa.json.j2 +0 -0
  81. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/aaa/feature/accounting.json.j2 +0 -0
  82. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/aaa/feature/radius.json.j2 +0 -0
  83. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/aaa/feature/tacacs.json.j2 +0 -0
  84. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/aaa/feature/user.json.j2 +0 -0
  85. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/cisco_vpn/cisco_vpn_model.py +0 -0
  86. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/cisco_vpn/feature/cisco_vpn.json.j2 +0 -0
  87. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/cisco_vpn/feature/dns.json.j2 +0 -0
  88. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/cisco_vpn/feature/ipv4route.json.j2 +0 -0
  89. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/cisco_vpn/feature/ipv6route.json.j2 +0 -0
  90. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/cisco_vpn/feature/mapping.json.j2 +0 -0
  91. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/tenant/tenant.json.j2 +0 -0
  92. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/templates/payloads/tenant/tenant_model.py +0 -0
  93. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/tenant_backup_restore_api.py +0 -0
  94. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/tenant_management_api.py +0 -0
  95. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/tenant_migration_api.py +0 -0
  96. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/api/versions_utils.py +0 -0
  97. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/dataclasses.py +0 -0
  98. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/__init__.py +0 -0
  99. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/administration_user_and_group.py +0 -0
  100. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/certificate_management_device.py +0 -0
  101. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/certificate_management_vmanage.py +0 -0
  102. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/client.py +0 -0
  103. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/cluster_management.py +0 -0
  104. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/device/software_update.py +0 -0
  105. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/disaster_recovery.py +0 -0
  106. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/feature_profile/sdwan/other.py +0 -0
  107. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/feature_profile/sdwan/policy_object.py +0 -0
  108. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/feature_profile/sdwan/service.py +0 -0
  109. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/feature_profile/sdwan/system.py +0 -0
  110. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/feature_profile/sdwan/transport.py +0 -0
  111. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/abstractions.py +0 -0
  112. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/access_control_list.py +0 -0
  113. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/access_control_list_ipv6.py +0 -0
  114. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/amp.py +0 -0
  115. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/control.py +0 -0
  116. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/device_access.py +0 -0
  117. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/device_access_ipv6.py +0 -0
  118. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/hub_and_spoke.py +0 -0
  119. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/mesh.py +0 -0
  120. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/qos_map.py +0 -0
  121. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/rewrite.py +0 -0
  122. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/rule_set.py +0 -0
  123. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/security_group.py +0 -0
  124. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/traffic_data.py +0 -0
  125. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/vpn_membership.py +0 -0
  126. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/definition/zone_based_firewall.py +0 -0
  127. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/app.py +0 -0
  128. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/app_probe.py +0 -0
  129. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/as_path.py +0 -0
  130. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/class_map.py +0 -0
  131. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/color.py +0 -0
  132. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/community.py +0 -0
  133. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/data_ipv6_prefix.py +0 -0
  134. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/data_prefix.py +0 -0
  135. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/expanded_community.py +0 -0
  136. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/fqdn.py +0 -0
  137. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/geo_location.py +0 -0
  138. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/ips_signature.py +0 -0
  139. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/ipv6_prefix.py +0 -0
  140. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/local_app.py +0 -0
  141. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/local_domain.py +0 -0
  142. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/mirror.py +0 -0
  143. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/policer.py +0 -0
  144. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/port.py +0 -0
  145. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/preferred_color_group.py +0 -0
  146. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/prefix.py +0 -0
  147. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/protocol_name.py +0 -0
  148. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/region.py +0 -0
  149. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/site.py +0 -0
  150. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/sla.py +0 -0
  151. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/threat_grid_api_key.py +0 -0
  152. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/tloc.py +0 -0
  153. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/trunkgroup.py +0 -0
  154. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/url_allow_list.py +0 -0
  155. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/url_block_list.py +0 -0
  156. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/vpn.py +0 -0
  157. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/list/zone.py +0 -0
  158. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/security_template.py +0 -0
  159. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/vedge_template.py +0 -0
  160. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/policy/vsmart_template.py +0 -0
  161. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration/software_actions.py +0 -0
  162. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration_dashboard_status.py +0 -0
  163. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration_device_actions.py +0 -0
  164. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration_device_inventory.py +0 -0
  165. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration_device_template.py +0 -0
  166. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration_feature_profile.py +0 -0
  167. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration_group.py +0 -0
  168. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/configuration_settings.py +0 -0
  169. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/endpoints_container.py +0 -0
  170. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/misc.py +0 -0
  171. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/monitoring/device_details.py +0 -0
  172. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/monitoring/server_info.py +0 -0
  173. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/monitoring/status.py +0 -0
  174. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/real_time_monitoring/reboot_history.py +0 -0
  175. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/sdavc_cloud_connector.py +0 -0
  176. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/tenant_backup_restore.py +0 -0
  177. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/tenant_management.py +0 -0
  178. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/tenant_migration.py +0 -0
  179. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/endpoints/troubleshooting_tools/device_connectivity.py +0 -0
  180. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/exceptions.py +0 -0
  181. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/integration_tests/feature_profile/sdwan/base.py +0 -0
  182. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/integration_tests/feature_profile/sdwan/test_other.py +0 -0
  183. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/integration_tests/feature_profile/sdwan/test_service.py +0 -0
  184. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/integration_tests/feature_profile/sdwan/test_system.py +0 -0
  185. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/integration_tests/test_config_migration.py +0 -0
  186. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/integration_tests/test_find_template_values.py +0 -0
  187. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/logging.conf +0 -0
  188. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/common.py +0 -0
  189. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/config_migration.py +0 -0
  190. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/docs/README.md +0 -0
  191. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/docs/diagram.png +0 -0
  192. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/README.md +0 -0
  193. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/builder.py +0 -0
  194. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/common.py +0 -0
  195. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/parcel.py +0 -0
  196. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py +0 -0
  197. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/other/thousandeyes.py +0 -0
  198. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py +0 -0
  199. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/__init__.py +0 -0
  200. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py +0 -0
  201. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py +0 -0
  202. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/as_path.py +0 -0
  203. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/color_list.py +0 -0
  204. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/data_prefix.py +0 -0
  205. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/fowarding_class.py +0 -0
  206. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_data_prefix.py +0 -0
  207. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_prefix_list.py +0 -0
  208. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/mirror.py +0 -0
  209. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/policer.py +0 -0
  210. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefered_group_color.py +0 -0
  211. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefix_list.py +0 -0
  212. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/sla_class.py +0 -0
  213. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/standard_community.py +0 -0
  214. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/tloc_list.py +0 -0
  215. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/aip.py +0 -0
  216. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/amp.py +0 -0
  217. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/application_list.py +0 -0
  218. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/data_prefix.py +0 -0
  219. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/fqdn.py +0 -0
  220. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/geolocation_list.py +0 -0
  221. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/intrusion_prevention.py +0 -0
  222. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ips_signature.py +0 -0
  223. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/local_domain.py +0 -0
  224. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/protocol_list.py +0 -0
  225. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/security_port.py +0 -0
  226. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption.py +0 -0
  227. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption_profile.py +0 -0
  228. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url.py +0 -0
  229. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url_filtering.py +0 -0
  230. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/zone.py +0 -0
  231. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/__init__.py +0 -0
  232. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/acl.py +0 -0
  233. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py +0 -0
  234. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/dhcp_server.py +0 -0
  235. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/eigrp.py +0 -0
  236. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/common.py +0 -0
  237. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py +0 -0
  238. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/gre.py +0 -0
  239. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/ipsec.py +0 -0
  240. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/svi.py +0 -0
  241. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/vpn.py +0 -0
  242. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/multicast.py +0 -0
  243. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/object_tracker.py +0 -0
  244. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/ospf.py +0 -0
  245. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/ospfv3.py +0 -0
  246. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/service_insertion_attachment.py +0 -0
  247. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/switchport.py +0 -0
  248. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/tracker.py +0 -0
  249. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/service/wireless_lan.py +0 -0
  250. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/system/__init__.py +0 -0
  251. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/system/banner.py +0 -0
  252. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/system/basic.py +0 -0
  253. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/system/bfd.py +0 -0
  254. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/system/global_parcel.py +0 -0
  255. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/system/logging_parcel.py +0 -0
  256. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/system/mrf.py +0 -0
  257. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/system/ntp.py +0 -0
  258. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/system/omp.py +0 -0
  259. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/system/security.py +0 -0
  260. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/system/snmp.py +0 -0
  261. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/transport/bgp.py +0 -0
  262. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_controller.py +0 -0
  263. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/feature_profile/sdwan/transport/vpn_management.py +0 -0
  264. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/profile_type.py +0 -0
  265. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/configuration/topology_group.py +0 -0
  266. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/device_inventory.py +0 -0
  267. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/feature_profile_parcel.py +0 -0
  268. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/misc/application_protocols.py +0 -0
  269. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/monitoring/server_info.py +0 -0
  270. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/__init__.py +0 -0
  271. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/centralized.py +0 -0
  272. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/access_control_list.py +0 -0
  273. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/access_control_list_ipv6.py +0 -0
  274. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/amp.py +0 -0
  275. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/control.py +0 -0
  276. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/device_access.py +0 -0
  277. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/device_access_ipv6.py +0 -0
  278. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/hub_and_spoke.py +0 -0
  279. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/mesh.py +0 -0
  280. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/qos_map.py +0 -0
  281. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/rewrite.py +0 -0
  282. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/rule_set.py +0 -0
  283. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/security_group.py +0 -0
  284. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/traffic_data.py +0 -0
  285. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/vpn_membership.py +0 -0
  286. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/definition/zone_based_firewall.py +0 -0
  287. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/app.py +0 -0
  288. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/app_probe.py +0 -0
  289. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/as_path.py +0 -0
  290. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/class_map.py +0 -0
  291. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/color.py +0 -0
  292. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/communities.py +0 -0
  293. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/data_ipv6_prefix.py +0 -0
  294. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/data_prefix.py +0 -0
  295. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/fqdn.py +0 -0
  296. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/geo_location.py +0 -0
  297. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/ips_signature.py +0 -0
  298. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/ipv6_prefix.py +0 -0
  299. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/local_app.py +0 -0
  300. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/local_domain.py +0 -0
  301. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/mirror.py +0 -0
  302. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/policer.py +0 -0
  303. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/port.py +0 -0
  304. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/preferred_color_group.py +0 -0
  305. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/prefix.py +0 -0
  306. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/protocol_name.py +0 -0
  307. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/region.py +0 -0
  308. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/site.py +0 -0
  309. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/sla.py +0 -0
  310. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/threat_grid_api_key.py +0 -0
  311. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/tloc.py +0 -0
  312. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/trunkgroup.py +0 -0
  313. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/url.py +0 -0
  314. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/vpn.py +0 -0
  315. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/list/zone.py +0 -0
  316. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/localized.py +0 -0
  317. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/policy.py +0 -0
  318. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/policy_definition.py +0 -0
  319. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/policy_list.py +0 -0
  320. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/policy/security.py +0 -0
  321. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/templates.py +0 -0
  322. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/models/tenant.py +0 -0
  323. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/response.py +0 -0
  324. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/session.py +0 -0
  325. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/config_migration/test_converter_chooser.py +0 -0
  326. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/config_migration/test_device_template_with_info.py +0 -0
  327. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/config_migration/test_merge_parcels.py +0 -0
  328. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/config_migration/test_normalizer.py +0 -0
  329. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/Basic_Cisco_VPN_Model.json +0 -0
  330. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/banner_1.json +0 -0
  331. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/basic/alias.json +0 -0
  332. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/basic/basic.json +0 -0
  333. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/basic/basic_no_value.json +0 -0
  334. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/basic/children.json +0 -0
  335. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/basic/children_nested.json +0 -0
  336. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/basic/children_nested_datapath.json +0 -0
  337. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/basic/data_path.json +0 -0
  338. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/cisco_bfd.json +0 -0
  339. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/complex_aaa.json +0 -0
  340. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/complex_cisco_vpn.json +0 -0
  341. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/default_cisco_system.json +0 -0
  342. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/iuo.json +0 -0
  343. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/omp_1.json +0 -0
  344. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/omp_2.json +0 -0
  345. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/definitions/omp_3.json +0 -0
  346. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/models/__init__.py +0 -0
  347. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/models/cisco_aaa.py +0 -0
  348. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/models/cisco_banner.py +0 -0
  349. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/models/cisco_bfd.py +0 -0
  350. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/models/cisco_system.py +0 -0
  351. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/models/cisco_vpn.py +0 -0
  352. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/models/omp_vsmart.py +0 -0
  353. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/schemas/basic/alias.json +0 -0
  354. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/schemas/basic/basic.json +0 -0
  355. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/schemas/basic/children.json +0 -0
  356. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/schemas/basic/children_nested.json +0 -0
  357. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/schemas/basic/children_nested_datapath.json +0 -0
  358. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/schemas/basic/data_path.json +0 -0
  359. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/schemas/cedge_aaa.json +0 -0
  360. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/schemas/cisco_banner.json +0 -0
  361. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/schemas/cisco_bfd.json +0 -0
  362. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/schemas/cisco_system.json +0 -0
  363. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/schemas/cisco_vpn.json +0 -0
  364. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/schemas/omp-vsmart.json +0 -0
  365. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/test_chose_model.py +0 -0
  366. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/test_deserialize_model.py +0 -0
  367. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/test_generate_payload.py +0 -0
  368. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/templates/test_serialize_model.py +0 -0
  369. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_admin_tech_api.py +0 -0
  370. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_administration.py +0 -0
  371. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_alarms_api.py +0 -0
  372. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_cli_template.py +0 -0
  373. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_creation_tools.py +0 -0
  374. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_device_action_api.py +0 -0
  375. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_devices_api.py +0 -0
  376. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_feature_template_field.py +0 -0
  377. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_logs_api.py +0 -0
  378. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_monitoring_server_info.py +0 -0
  379. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_monitoring_status_api.py +0 -0
  380. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_mtt_aaa_api.py +0 -0
  381. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_omp_api.py +0 -0
  382. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_packet_capture.py +0 -0
  383. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_partition_manager_api.py +0 -0
  384. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_response.py +0 -0
  385. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_session.py +0 -0
  386. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_software_action_api.py +0 -0
  387. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_speed_test_api.py +0 -0
  388. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_task_status_api.py +0 -0
  389. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_templates.py +0 -0
  390. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_tenant_backup_restore_api.py +0 -0
  391. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_tenant_management_api.py +0 -0
  392. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_tenant_migration_api.py +0 -0
  393. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_typed_list.py +0 -0
  394. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_version.py +0 -0
  395. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_version_utils.py +0 -0
  396. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/tests/test_vmanage_auth.py +0 -0
  397. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/typed_list.py +0 -0
  398. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/__init__.py +0 -0
  399. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/alarm_status.py +0 -0
  400. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/certificate_status.py +0 -0
  401. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/colors.py +0 -0
  402. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/exceptions.py +0 -0
  403. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/__init__.py +0 -0
  404. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/aaa.py +0 -0
  405. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/appqoe.py +0 -0
  406. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/banner.py +0 -0
  407. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/base.py +0 -0
  408. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/basic.py +0 -0
  409. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/bfd.py +0 -0
  410. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/bgp.py +0 -0
  411. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/dhcp.py +0 -0
  412. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/eigrp.py +0 -0
  413. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/ethernet.py +0 -0
  414. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/global_.py +0 -0
  415. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/gre.py +0 -0
  416. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/ipsec.py +0 -0
  417. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/logging_.py +0 -0
  418. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/multicast.py +0 -0
  419. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/normalizer.py +0 -0
  420. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/ntp.py +0 -0
  421. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/omp.py +0 -0
  422. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/ospf.py +0 -0
  423. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/ospfv3.py +0 -0
  424. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/parcel_factory.py +0 -0
  425. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/security.py +0 -0
  426. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/snmp.py +0 -0
  427. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/svi.py +0 -0
  428. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/switchport.py +0 -0
  429. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/thousandeyes.py +0 -0
  430. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/ucse.py +0 -0
  431. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/vpn.py +0 -0
  432. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/feature_template/wireless_lan.py +0 -0
  433. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/converters/policy/policy_lists.py +0 -0
  434. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/creators/config_pusher.py +0 -0
  435. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/creators/strategy/parcels.py +0 -0
  436. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/factories/feature_profile_api.py +0 -0
  437. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/factories/parcel_pusher.py +0 -0
  438. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/reverters/config_reverter.py +0 -0
  439. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/steps/__init__.py +0 -0
  440. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_migration/steps/transform.py +0 -0
  441. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/config_status.py +0 -0
  442. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/creation_tools.py +0 -0
  443. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/dashboard.py +0 -0
  444. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/device_model.py +0 -0
  445. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/dict.py +0 -0
  446. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/feature_template/choose_model.py +0 -0
  447. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/feature_template/find_template_values.py +0 -0
  448. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/operation_status.py +0 -0
  449. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/personality.py +0 -0
  450. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/pydantic_field.py +0 -0
  451. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/reachability.py +0 -0
  452. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/session_type.py +0 -0
  453. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/template_type.py +0 -0
  454. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/timezone.py +0 -0
  455. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/upgrades_helper.py +0 -0
  456. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/utils/validate_status.py +0 -0
  457. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/version.py +0 -0
  458. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/vmanage_auth.py +0 -0
  459. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/workflows/config_migration.py +0 -0
  460. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev3}/catalystwan/workflows/tenant_migration.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: catalystwan
3
- Version: 0.33.4.dev2
3
+ Version: 0.33.4.dev3
4
4
  Summary: Cisco Catalyst WAN SDK for Python
5
5
  Home-page: https://github.com/cisco-open/cisco-catalyst-wan-sdk
6
6
  Author: kagorski
@@ -1,7 +1,7 @@
1
1
  # Copyright 2023 Cisco Systems, Inc. and its affiliates
2
2
 
3
3
  from enum import Enum
4
- from typing import Any, Dict, Generic, Literal, Optional, TypeVar, get_origin
4
+ from typing import Any, Dict, Generic, List, Literal, Optional, Tuple, TypeVar, get_origin
5
5
 
6
6
  from pydantic import (
7
7
  AliasPath,
@@ -9,11 +9,13 @@ from pydantic import (
9
9
  ConfigDict,
10
10
  Field,
11
11
  PrivateAttr,
12
+ SerializationInfo,
12
13
  SerializerFunctionWrapHandler,
13
14
  model_serializer,
14
15
  )
15
16
 
16
17
  from catalystwan.exceptions import CatalystwanException
18
+ from catalystwan.models.common import VersionedField
17
19
 
18
20
  T = TypeVar("T")
19
21
 
@@ -38,7 +40,7 @@ class _ParcelBase(BaseModel):
38
40
  _parcel_data_key: str = PrivateAttr(default="data")
39
41
 
40
42
  @model_serializer(mode="wrap")
41
- def envelope_parcel_data(self, handler: SerializerFunctionWrapHandler) -> Dict[str, Any]:
43
+ def envelope_parcel_data(self, handler: SerializerFunctionWrapHandler, info: SerializationInfo) -> Dict[str, Any]:
42
44
  """
43
45
  serializes model fields with respect to field validation_alias,
44
46
  sub-classing parcel fields can be defined like following:
@@ -50,16 +52,23 @@ class _ParcelBase(BaseModel):
50
52
  model_dict = handler(self)
51
53
  model_dict[self._parcel_data_key] = {}
52
54
  remove_keys = []
55
+ replaced_keys: Dict[str, Tuple[str, str]] = {}
53
56
 
57
+ # enveloping
54
58
  for key in model_dict.keys():
55
59
  field_info = self.model_fields.get(key)
56
60
  if field_info and isinstance(field_info.validation_alias, AliasPath):
57
61
  aliases = field_info.validation_alias.convert_to_aliases()
58
62
  if aliases and aliases[0] == self._parcel_data_key and len(aliases) == 2:
59
63
  model_dict[self._parcel_data_key][aliases[1]] = model_dict[key]
64
+ replaced_keys[key] = (self._parcel_data_key, str(aliases[1]))
60
65
  remove_keys.append(key)
61
66
  for key in remove_keys:
62
67
  del model_dict[key]
68
+
69
+ # versioned field update
70
+ model_dict = VersionedField.dump(self.model_fields, model_dict, info, replaced_keys)
71
+
63
72
  return model_dict
64
73
 
65
74
  @classmethod
@@ -120,7 +129,7 @@ class Default(ParcelAttribute, Generic[T]):
120
129
  option_type: OptionType = Field(
121
130
  default=OptionType.DEFAULT, serialization_alias="optionType", validation_alias="optionType"
122
131
  )
123
- value: Optional[Any] = None
132
+ value: Optional[T] = None
124
133
 
125
134
 
126
135
  def as_global(value: Any, generic_alias: Any = None):
@@ -134,10 +143,14 @@ def as_global(value: Any, generic_alias: Any = None):
134
143
  Global[Any]: global option type object
135
144
  """
136
145
  if generic_alias is None:
146
+ if isinstance(value, list):
147
+ if len(value) == 0:
148
+ return Global[List](value=list()) # type: ignore
149
+ return Global[List[type(value[0])]](value=value) # type: ignore
137
150
  return Global[type(value)](value=value) # type: ignore
138
151
  elif get_origin(generic_alias) is Literal:
139
152
  return Global[generic_alias](value=value) # type: ignore
140
- TypeError("Inappropriate type for argument generic_alias")
153
+ raise TypeError("Inappropriate type for argument generic_alias")
141
154
 
142
155
 
143
156
  def as_variable(value: str):
@@ -163,7 +176,11 @@ def as_default(value: Any, generic_alias: Any = None):
163
176
  Default[Any]: default option type object
164
177
  """
165
178
  if generic_alias is None:
179
+ if isinstance(value, list):
180
+ if len(value) == 0:
181
+ return Default[List](value=list()) # type: ignore
182
+ return Default[List[type(value[0])]](value=value) # type: ignore
166
183
  return Default[type(value)](value=value) # type: ignore
167
184
  elif get_origin(generic_alias) is Literal:
168
185
  return Default[generic_alias](value=value) # type: ignore
169
- TypeError("Inappropriate type for argument generic_alias")
186
+ raise TypeError("Inappropriate type for argument generic_alias")
@@ -0,0 +1,164 @@
1
+ from ipaddress import IPv4Address, IPv6Address
2
+
3
+ from catalystwan.api.configuration_groups.parcel import as_global
4
+ from catalystwan.integration_tests.feature_profile.sdwan.base import TestFeatureProfileModels
5
+ from catalystwan.models.configuration.feature_profile.sdwan.transport.t1e1controller import (
6
+ E1,
7
+ T1,
8
+ CableLengthLong,
9
+ ChannelGroup,
10
+ ClockSource,
11
+ ControllerTxExList,
12
+ ControllerType,
13
+ E1Basic,
14
+ E1Framing,
15
+ E1Linecode,
16
+ LengthLong,
17
+ LineMode,
18
+ T1Basic,
19
+ T1E1ControllerParcel,
20
+ T1Framing,
21
+ T1Linecode,
22
+ )
23
+ from catalystwan.models.configuration.feature_profile.sdwan.transport.vpn_management import (
24
+ DnsIpv4,
25
+ DnsIpv6,
26
+ Ipv4RouteItem,
27
+ Ipv6RouteItem,
28
+ ManagementVpn,
29
+ NewHostMappingItem,
30
+ NextHopItem,
31
+ OneOfIpRouteNull0,
32
+ Prefix,
33
+ SubnetMask,
34
+ )
35
+
36
+
37
+ class TestTransportFeatureProfileModels(TestFeatureProfileModels):
38
+ @classmethod
39
+ def setUpClass(cls) -> None:
40
+ super().setUpClass()
41
+ cls.api = cls.session.api.sdwan_feature_profiles.transport
42
+ cls.profile_uuid = cls.api.create_profile("TestProfileService", "Description").id
43
+
44
+ def test_when_fully_specified_management_vpn_parcel_expect_successful_post(self):
45
+ # Arrange
46
+ management_vpn_parcel = ManagementVpn(
47
+ parcel_name="FullySpecifiedManagementVpnParcel",
48
+ description="Description",
49
+ dns_ipv6=DnsIpv6(
50
+ primary_dns_address_ipv6=as_global(IPv6Address("67ca:c2df:edfe:c8ec:b6cb:f9f4:eab0:ece6")),
51
+ secondary_dns_address_ipv6=as_global(IPv6Address("8989:8d33:c00a:4d13:324d:8b23:8d77:a289")),
52
+ ),
53
+ dns_ipv4=DnsIpv4(
54
+ primary_dns_address_ipv4=as_global(IPv4Address("68.138.29.222")),
55
+ secondary_dns_address_ipv4=as_global(IPv4Address("122.89.114.112")),
56
+ ),
57
+ new_host_mapping=[
58
+ NewHostMappingItem(
59
+ host_name=as_global("FullySpecifiedHost"),
60
+ list_of_ip=as_global(
61
+ [
62
+ "165.16.181.116",
63
+ "7a4c:1d87:8587:a6ec:21a6:48a7:00e8:1fef",
64
+ ]
65
+ ),
66
+ )
67
+ ],
68
+ ipv6_route=[
69
+ Ipv6RouteItem(
70
+ prefix=as_global("0::/16"),
71
+ one_of_ip_route=OneOfIpRouteNull0(),
72
+ )
73
+ ],
74
+ ipv4_route=[
75
+ Ipv4RouteItem(
76
+ prefix=Prefix(
77
+ ip_address=as_global(IPv4Address("202.153.165.234")),
78
+ subnet_mask=as_global("255.255.255.0", SubnetMask),
79
+ ),
80
+ next_hop=[
81
+ NextHopItem(
82
+ address=as_global(IPv4Address("1.1.1.1")),
83
+ )
84
+ ],
85
+ )
86
+ ],
87
+ )
88
+ # Act
89
+ parcel_id = self.api.create_parcel(self.profile_uuid, management_vpn_parcel).id
90
+ # Assert
91
+ assert parcel_id
92
+
93
+ def test_when_fully_specified_t1e1controller_type_e1_parcel_expect_successful_post(self):
94
+ # Arrange
95
+ t1e1controller = T1E1ControllerParcel(
96
+ parcel_name="FullySpecifiedT1E1ControllerParcel_type_e1",
97
+ description="Description",
98
+ type=as_global("e1", ControllerType),
99
+ slot=as_global("TypeEOne"),
100
+ controller_tx_ex_list=[
101
+ ControllerTxExList(
102
+ basic=E1Basic(
103
+ e1=E1(
104
+ framing=as_global("crc4", E1Framing),
105
+ linecode=as_global("ami", E1Linecode),
106
+ )
107
+ ),
108
+ channel_group=[
109
+ ChannelGroup(
110
+ number=as_global(12),
111
+ timeslots=as_global("1"),
112
+ )
113
+ ],
114
+ clock_source=as_global("internal", ClockSource),
115
+ description=as_global("FullySpecifiedDescription"),
116
+ line_mode=as_global("primary", LineMode),
117
+ )
118
+ ],
119
+ )
120
+ # Act
121
+ parcel_id = self.api.create_parcel(self.profile_uuid, t1e1controller).id
122
+ # Assert
123
+ assert parcel_id
124
+
125
+ def test_when_fully_specified_t1e1controller_type_t1_parcel_expect_successful_post(self):
126
+ # Arrange
127
+ t1e1controller = T1E1ControllerParcel(
128
+ parcel_name="FullySpecifiedT1E1ControllerParcel_type_t1",
129
+ description="Description",
130
+ type=as_global("t1", ControllerType),
131
+ slot=as_global("TypeTOne"),
132
+ controller_tx_ex_list=[
133
+ ControllerTxExList(
134
+ basic=T1Basic(
135
+ t1=T1(
136
+ framing=as_global("esf", T1Framing),
137
+ linecode=as_global("b8zs", T1Linecode),
138
+ )
139
+ ),
140
+ cable=CableLengthLong(
141
+ cable_length=as_global("long", CableLengthLong),
142
+ length_long=as_global("-15db", LengthLong),
143
+ ),
144
+ channel_group=[
145
+ ChannelGroup(
146
+ number=as_global(12),
147
+ timeslots=as_global("1"),
148
+ )
149
+ ],
150
+ clock_source=as_global("internal", ClockSource),
151
+ description=as_global("FullySpecifiedDescription"),
152
+ line_mode=as_global("primary", LineMode),
153
+ )
154
+ ],
155
+ )
156
+ # Act
157
+ parcel_id = self.api.create_parcel(self.profile_uuid, t1e1controller).id
158
+ # Assert
159
+ assert parcel_id
160
+
161
+ @classmethod
162
+ def tearDownClass(cls) -> None:
163
+ cls.api.delete_profile(cls.profile_uuid)
164
+ super().tearDownClass()
@@ -1,12 +1,12 @@
1
1
  # Copyright 2023 Cisco Systems, Inc. and its affiliates
2
2
 
3
3
  from dataclasses import InitVar, dataclass, field
4
- from typing import Any, Dict, List, Literal, Optional, Sequence, Set, Tuple, Union
4
+ from typing import Any, Dict, Iterator, List, Literal, Mapping, Optional, Sequence, Set, Tuple, Union
5
5
  from uuid import UUID
6
6
 
7
7
  from packaging.specifiers import SpecifierSet # type: ignore
8
8
  from packaging.version import Version # type: ignore
9
- from pydantic import PlainSerializer, SerializationInfo
9
+ from pydantic import PlainSerializer, SerializationInfo, ValidationInfo
10
10
  from pydantic.fields import FieldInfo
11
11
  from pydantic.functional_validators import BeforeValidator
12
12
  from typing_extensions import Annotated
@@ -41,29 +41,54 @@ class VersionedField:
41
41
  self.versions_set = SpecifierSet(versions)
42
42
 
43
43
  @staticmethod
44
- def update_model_fields(
45
- model_fields: Dict[str, FieldInfo], model_dict: Dict[str, Any], serialization_info: SerializationInfo
44
+ def model_iterate(
45
+ model_fields: Dict[str, FieldInfo], info: Union[SerializationInfo, ValidationInfo]
46
+ ) -> Iterator[Tuple[str, FieldInfo, "VersionedField"]]:
47
+ """Itrerates over model fields that matches a version given in context (Serialization info or ValidationInfo)
48
+
49
+ Yields:
50
+ Tuple[str, FieldInfo, VersionedField]: a tuple containing field name, FieldInfo and VersionedField
51
+ """
52
+ if info.context is not None:
53
+ api_version: Optional[Version] = info.context.get("api_version")
54
+ if api_version is not None:
55
+ for field_name, field_info in model_fields.items():
56
+ versioned_fields = [meta for meta in field_info.metadata if isinstance(meta, VersionedField)]
57
+ for versioned_field in versioned_fields:
58
+ if api_version in versioned_field.versions_set:
59
+ yield (field_name, field_info, versioned_field)
60
+
61
+ @staticmethod
62
+ def dump(
63
+ model_fields: Dict[str, FieldInfo],
64
+ model_dict: Dict[str, Any],
65
+ info: SerializationInfo,
66
+ replaced_keys: Optional[Mapping[str, Tuple[Optional[str], str]]] = None,
46
67
  ) -> Dict[str, Any]:
47
68
  """To be reused in methods decorated with pydantic.model_serializer
48
69
  Args:
49
70
  model_fields (Dict[str, FieldInfo]): obtained from BaseModel class
50
71
  model_dict (Dict[str, Any]): obtained from serialized BaseModel instance
51
72
  serialization_info (SerializationInfo): passed from serializer
73
+ replaced_keys (Dict[str, Tuple(Optional[str], str)]): field names that were replaced
74
+ previously during serialization
75
+ (Tuple represent path and new field name - this currently supports up to 1 level deep alias path only)
52
76
 
53
77
  Returns:
54
78
  Dict[str, Any]: model_dict with updated field names according to matching runtime version
55
79
  """
56
- if serialization_info.context is not None:
57
- api_version: Optional[Version] = serialization_info.context.get("api_version")
58
- if api_version is not None:
59
- for field_name, field_info in model_fields.items():
60
- versioned_fields = [meta for meta in field_info.metadata if isinstance(meta, VersionedField)]
61
- for versioned_field in versioned_fields:
62
- if api_version in versioned_field.versions_set:
63
- current_field_name = field_info.serialization_alias or field_info.alias or field_name
64
- if model_dict.get(current_field_name) is not None:
65
- model_dict[versioned_field.serialization_alias] = model_dict[current_field_name]
66
- del model_dict[current_field_name]
80
+ for field_name, field_info, versioned_field in VersionedField.model_iterate(model_fields, info):
81
+ current_field_name = field_info.serialization_alias or field_info.alias or field_name
82
+ new_field_name = versioned_field.serialization_alias
83
+ if current_field_name in model_dict:
84
+ model_dict[new_field_name] = model_dict[current_field_name]
85
+ del model_dict[current_field_name]
86
+ elif replaced_keys is not None:
87
+ if current_field_path := replaced_keys.get(current_field_name):
88
+ path, name = current_field_path
89
+ dict_ = model_dict[path] if path is not None else model_dict
90
+ dict_[new_field_name] = dict_[name]
91
+ del dict_[name]
67
92
  return model_dict
68
93
 
69
94
 
@@ -1,17 +1,17 @@
1
1
  # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
2
 
3
- from typing import Literal
3
+ from typing import List, Literal
4
4
 
5
5
  from pydantic import AliasPath, ConfigDict, Field, field_validator
6
6
 
7
- from catalystwan.api.configuration_groups.parcel import Global, _ParcelBase, as_global
7
+ from catalystwan.api.configuration_groups.parcel import Global, _ParcelBase
8
8
 
9
9
 
10
10
  class ExpandedCommunityParcel(_ParcelBase):
11
11
  type_: Literal["expanded-community"] = Field(default="expanded-community", exclude=True)
12
12
  model_config = ConfigDict(populate_by_name=True)
13
- expanded_community_list: Global[list] = Field(
14
- default=as_global([]),
13
+ expanded_community_list: Global[List[str]] = Field(
14
+ default=Global[List[str]](value=list()),
15
15
  serialization_alias="expandedCommunityList",
16
16
  validation_alias=AliasPath("data", "expandedCommunityList"),
17
17
  )
@@ -223,7 +223,7 @@ class ServiceNodeInformationExternal(BaseModel):
223
223
 
224
224
  address: Default[ServiceNodeExternalAddress] = Default[ServiceNodeExternalAddress](value="192.168.2.2")
225
225
  vpg_ip: Default[ServiceNodeExternalVpgIp] = Field(
226
- default=Default[ServiceNodeExternalVpgIp](value="192.168.2.1"),
226
+ default=Default[ServiceNodeExternalVpgIp](value="192.168.2.1/24"),
227
227
  serialization_alias="vpgIp",
228
228
  validation_alias="vpgIp",
229
229
  )
@@ -227,7 +227,7 @@ class RoutePolicySequence(BaseModel):
227
227
  ..., serialization_alias="sequenceName", validation_alias="sequenceName", description="Sequence Name"
228
228
  )
229
229
  base_action: Union[Global[BaseAction], Default[BaseAction]] = Field(
230
- default=as_default("Reject", BaseAction),
230
+ default=as_default("reject", BaseAction),
231
231
  serialization_alias="baseAction",
232
232
  validation_alias="baseAction",
233
233
  description="Base Action",
@@ -37,7 +37,7 @@ class UserItem(BaseModel):
37
37
  )
38
38
  )
39
39
  privilege: Union[Global[str], Variable, Default[str], None] = Field(
40
- None, description="Set Privilege Level for this user"
40
+ default=None, description="Set Privilege Level for this user"
41
41
  )
42
42
  pubkey_chain: Optional[List[PubkeyChainItem]] = Field(
43
43
  default=None,
@@ -7,11 +7,14 @@ from typing_extensions import Annotated
7
7
 
8
8
  from .bgp import WanRoutingBgpParcel as BGPParcel
9
9
  from .cellular_controller import CellularControllerParcel
10
+ from .t1e1controller import T1E1ControllerParcel
10
11
  from .vpn_management import ManagementVpn
11
12
 
12
- AnyTransportParcel = Annotated[Union[BGPParcel, CellularControllerParcel, ManagementVpn], Field(discriminator="type_")]
13
+ AnyTransportParcel = Annotated[
14
+ Union[BGPParcel, CellularControllerParcel, ManagementVpn, T1E1ControllerParcel], Field(discriminator="type_")
15
+ ]
13
16
 
14
- __all__ = ["BGPParcel", "CellularControllerParcel", "ManagementVpn", "AnyTransportParcel"]
17
+ __all__ = ["BGPParcel", "CellularControllerParcel", "ManagementVpn", "AnyTransportParcel", "T1E1ControllerParcel"]
15
18
 
16
19
 
17
20
  def __dir__() -> "List[str]":
@@ -0,0 +1,161 @@
1
+ from typing import List, Literal, Optional, Union
2
+
3
+ from pydantic import AliasPath, BaseModel, ConfigDict, Field
4
+
5
+ from catalystwan.api.configuration_groups.parcel import Default, Global, Variable, _ParcelBase, as_global
6
+
7
+ ControllerType = Literal[
8
+ "e1",
9
+ "t1",
10
+ ]
11
+
12
+
13
+ T1Framing = Literal[
14
+ "esf",
15
+ "sf",
16
+ ]
17
+
18
+ T1Linecode = Literal[
19
+ "ami",
20
+ "b8zs",
21
+ ]
22
+
23
+ T1Name = Literal[
24
+ "T1",
25
+ # By default, the name is T1
26
+ ]
27
+
28
+
29
+ class T1(BaseModel):
30
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
31
+ framing: Optional[Union[Global[T1Framing], Variable, Default[None]]] = Field(default=None)
32
+ linecode: Optional[Union[Global[T1Linecode], Variable, Default[None]]] = Field(default=None)
33
+ name: Optional[Global[T1Name]] = Field(default=as_global("T1", T1Name))
34
+
35
+
36
+ class T1Basic(BaseModel):
37
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
38
+ t1: T1 = Field(validation_alias="T1", serialization_alias="T1")
39
+
40
+
41
+ E1Framing = Literal[
42
+ "crc4",
43
+ "no-crc4",
44
+ ]
45
+
46
+ E1Linecode = Literal[
47
+ "ami",
48
+ "hdb3",
49
+ ]
50
+
51
+ E1Name = Literal[
52
+ "E1",
53
+ # By default, the name is E1
54
+ ]
55
+
56
+
57
+ class E1(BaseModel):
58
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
59
+ framing: Optional[Union[Global[E1Framing], Variable, Default[None]]] = Field(default=None)
60
+ linecode: Optional[Union[Global[E1Linecode], Variable, Default[None]]] = Field(default=None)
61
+ name: Optional[Global[E1Name]] = Field(default=as_global("E1", E1Name))
62
+
63
+
64
+ class E1Basic(BaseModel):
65
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
66
+ e1: E1 = Field(validation_alias="E1", serialization_alias="E1")
67
+
68
+
69
+ class CableLength(BaseModel):
70
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
71
+ cable_length: Optional[Default[None]] = Field(
72
+ default=None, validation_alias="cableLength", serialization_alias="cableLength"
73
+ )
74
+
75
+
76
+ LengthShort = Literal[
77
+ "110ft",
78
+ "220ft",
79
+ "330ft",
80
+ "440ft",
81
+ "550ft",
82
+ "660ft",
83
+ ]
84
+
85
+
86
+ class CableLengthShort(BaseModel):
87
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
88
+ cable_length: Optional[Global[Literal["short"]]] = Field(
89
+ default=None, validation_alias="cableLength", serialization_alias="cableLength"
90
+ )
91
+ length_short: Optional[Union[Global[LengthShort], Variable]] = Field(
92
+ default=None, validation_alias="lengthShort", serialization_alias="lengthShort"
93
+ )
94
+
95
+
96
+ Long = Literal["long"]
97
+
98
+ LengthLong = Literal[
99
+ "-15db",
100
+ "-22.5db",
101
+ "-7.5db",
102
+ "0db",
103
+ ]
104
+
105
+
106
+ class CableLengthLong(BaseModel):
107
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
108
+ cable_length: Optional[Global[Long]] = Field(
109
+ default=as_global("long", Long), validation_alias="cableLength", serialization_alias="cableLength"
110
+ )
111
+ length_long: Optional[Union[Global[LengthLong], Variable]] = Field(
112
+ default=None, validation_alias="lengthLong", serialization_alias="lengthLong"
113
+ )
114
+
115
+
116
+ ClockSource = Literal[
117
+ "internal",
118
+ "line",
119
+ "loop-timed",
120
+ "network",
121
+ ]
122
+
123
+ LineMode = Literal[
124
+ "primary",
125
+ "secondary",
126
+ ]
127
+
128
+
129
+ class ChannelGroup(BaseModel):
130
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
131
+ number: Union[Global[int], Variable] = Field()
132
+ timeslots: Union[Global[str], Variable] = Field()
133
+
134
+
135
+ class ControllerTxExList(BaseModel):
136
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
137
+ basic: Union[T1Basic, E1Basic]
138
+ cable: Optional[Union[CableLength, CableLengthShort, CableLengthLong]] = Field(default=None)
139
+ channel_group: Optional[List[ChannelGroup]] = Field(
140
+ default=None,
141
+ validation_alias="channelGroup",
142
+ serialization_alias="channelGroup",
143
+ description="Channel Group List",
144
+ )
145
+ clock_source: Optional[Union[Global[ClockSource], Default[None]]] = Field(
146
+ default=None, validation_alias="clockSource", serialization_alias="clockSource"
147
+ )
148
+ description: Optional[Union[Global[str], Variable, Default[None]]] = Field(default=None)
149
+ line_mode: Optional[Union[Global[LineMode], Variable, Default[None]]] = Field(
150
+ default=None, validation_alias="lineMode", serialization_alias="lineMode"
151
+ )
152
+
153
+
154
+ class T1E1ControllerParcel(_ParcelBase):
155
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
156
+ type_: Literal["t1-e1-controller"] = Field(default="t1-e1-controller", exclude=True)
157
+ controller_tx_ex_list: List[ControllerTxExList] = Field(
158
+ validation_alias=AliasPath("data", "controllerTxExList"), description="Controller tx-ex List"
159
+ )
160
+ slot: Union[Global[str], Variable] = Field(validation_alias=AliasPath("data", "slot"))
161
+ type: Optional[Global[ControllerType]] = Field(default=None, validation_alias=AliasPath("data", "type"))
@@ -890,7 +890,7 @@ class TestAPIEndpoints(unittest.TestCase):
890
890
 
891
891
  @model_serializer(mode="wrap")
892
892
  def serialize(self, handler, info):
893
- return VersionedField.update_model_fields(self.model_fields, handler(self), info)
893
+ return VersionedField.dump(self.model_fields, handler(self), info)
894
894
 
895
895
  class ExampleAPI(APIEndpoints):
896
896
  @request("POST", "/v1/data")
@@ -47,7 +47,7 @@ from catalystwan.models.configuration.feature_profile.sdwan.system import (
47
47
  SecurityParcel,
48
48
  SNMPParcel,
49
49
  )
50
- from catalystwan.models.configuration.feature_profile.sdwan.transport import ManagementVpn
50
+ from catalystwan.models.configuration.feature_profile.sdwan.transport import ManagementVpn, T1E1ControllerParcel
51
51
 
52
52
  system_endpoint_mapping = {
53
53
  AAAParcel: "aaa",
@@ -242,6 +242,7 @@ class TestServiceFeatureProfileAPI(unittest.TestCase):
242
242
 
243
243
  transport_enpoint_mapping = {
244
244
  ManagementVpn: "management/vpn",
245
+ T1E1ControllerParcel: "t1-e1-controller",
245
246
  }
246
247
 
247
248
 
@@ -28,7 +28,7 @@ class VersionedFieldsModel(BaseModel):
28
28
 
29
29
  @model_serializer(mode="wrap")
30
30
  def dump(self, handler: SerializerFunctionWrapHandler, info: SerializationInfo) -> Dict[str, Any]:
31
- return VersionedField.update_model_fields(self.model_fields, handler(self), info)
31
+ return VersionedField.dump(self.model_fields, handler(self), info)
32
32
 
33
33
 
34
34
  class Payload(BaseModel):
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "catalystwan"
3
- version = "0.33.4dev2"
3
+ version = "0.33.4dev3"
4
4
  description = "Cisco Catalyst WAN SDK for Python"
5
5
  authors = ["kagorski <kagorski@cisco.com>"]
6
6
  readme = "README.md"