catalystwan 0.33.4.dev2__tar.gz → 0.33.4.dev5__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 (471) hide show
  1. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/PKG-INFO +1 -1
  2. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/builders/feature_profiles/builder_factory.py +8 -1
  3. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/builders/feature_profiles/other.py +10 -4
  4. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/builders/feature_profiles/service.py +13 -10
  5. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/builders/feature_profiles/system.py +10 -2
  6. catalystwan-0.33.4.dev5/catalystwan/api/builders/feature_profiles/transport.py +116 -0
  7. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/configuration_groups/parcel.py +22 -5
  8. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/feature_profile_api.py +65 -2
  9. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/policy_api.py +42 -0
  10. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/feature_profile/sdwan/transport.py +38 -11
  11. catalystwan-0.33.4.dev5/catalystwan/endpoints/configuration/policy/definition/aip.py +52 -0
  12. catalystwan-0.33.4.dev5/catalystwan/endpoints/configuration/policy/definition/intrusion_prevention.py +52 -0
  13. catalystwan-0.33.4.dev5/catalystwan/endpoints/configuration/policy/definition/url_filtering.py +50 -0
  14. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_group.py +5 -2
  15. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/exceptions.py +11 -0
  16. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/integration_tests/feature_profile/sdwan/test_system.py +12 -0
  17. catalystwan-0.33.4.dev5/catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +349 -0
  18. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/common.py +61 -15
  19. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/config_migration.py +1 -0
  20. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/parcel.py +5 -1
  21. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/expanded_community_list.py +4 -4
  22. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/appqoe.py +1 -1
  23. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/route_policy.py +1 -1
  24. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/aaa.py +3 -1
  25. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/omp.py +2 -2
  26. catalystwan-0.33.4.dev5/catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +43 -0
  27. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/transport/bgp.py +3 -36
  28. catalystwan-0.33.4.dev5/catalystwan/models/configuration/feature_profile/sdwan/transport/t1e1controller.py +161 -0
  29. catalystwan-0.33.4.dev2/catalystwan/models/configuration/feature_profile/sdwan/transport/vpn_management.py → catalystwan-0.33.4.dev5/catalystwan/models/configuration/feature_profile/sdwan/transport/vpn.py +85 -41
  30. catalystwan-0.33.4.dev5/catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/t1e1serial.py +283 -0
  31. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/__init__.py +12 -0
  32. catalystwan-0.33.4.dev5/catalystwan/models/policy/definition/aip.py +60 -0
  33. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/amp.py +2 -11
  34. catalystwan-0.33.4.dev5/catalystwan/models/policy/definition/intrusion_prevention.py +53 -0
  35. catalystwan-0.33.4.dev5/catalystwan/models/policy/definition/url_filtering.py +152 -0
  36. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/session.py +1 -1
  37. catalystwan-0.33.4.dev5/catalystwan/tests/config_migration/test_transform.py +136 -0
  38. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/test_serialize_model.py +0 -1
  39. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_endpoints.py +1 -1
  40. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_feature_profile_api.py +8 -2
  41. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_models_common.py +1 -1
  42. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_templates.py +1 -1
  43. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/multicast.py +1 -1
  44. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/parcel_factory.py +7 -4
  45. catalystwan-0.33.4.dev5/catalystwan/utils/config_migration/converters/feature_template/t1e1serial.py +136 -0
  46. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/vpn.py +228 -21
  47. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/creators/config_pusher.py +6 -8
  48. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/creators/strategy/parcels.py +37 -3
  49. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/factories/feature_profile_api.py +7 -1
  50. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/factories/parcel_pusher.py +3 -0
  51. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/steps/transform.py +24 -1
  52. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/workflows/config_migration.py +33 -4
  53. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/pyproject.toml +1 -1
  54. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/setup.py +2 -1
  55. catalystwan-0.33.4.dev2/catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +0 -78
  56. catalystwan-0.33.4.dev2/catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +0 -18
  57. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/LICENSE +0 -0
  58. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/README.md +0 -0
  59. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/__init__.py +0 -0
  60. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/abstractions.py +0 -0
  61. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/__init__.py +0 -0
  62. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/admin_tech_api.py +0 -0
  63. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/administration.py +0 -0
  64. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/alarms_api.py +0 -0
  65. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/api_container.py +0 -0
  66. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/basic_api.py +0 -0
  67. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/builders/__init__.py +0 -0
  68. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/config_device_inventory_api.py +0 -0
  69. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/config_group_api.py +0 -0
  70. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/configuration_groups/parcels/cellular_controller.py +0 -0
  71. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/dashboard_api.py +0 -0
  72. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/device_action_api.py +0 -0
  73. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/logs_api.py +0 -0
  74. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/monitoring_status_api.py +0 -0
  75. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/mtt_aaa_api.py +0 -0
  76. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/omp_api.py +0 -0
  77. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/packet_capture_api.py +0 -0
  78. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/parcel_api.py +0 -0
  79. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/partition_manager_api.py +0 -0
  80. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/resource_pool_api.py +0 -0
  81. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/software_action_api.py +0 -0
  82. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/speedtest_api.py +0 -0
  83. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/task_status_api.py +0 -0
  84. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/template_api.py +0 -0
  85. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/README.md +0 -0
  86. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/bool_str.py +0 -0
  87. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/cli_template.py +0 -0
  88. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/device_template/device_template.py +0 -0
  89. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/device_template/device_template_payload.json.j2 +0 -0
  90. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/device_variable.py +0 -0
  91. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/feature_template.py +0 -0
  92. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/feature_template_field.py +0 -0
  93. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/feature_template_payload.py +0 -0
  94. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_aaa_model.py +0 -0
  95. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_banner_model.py +0 -0
  96. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_bfd_model.py +0 -0
  97. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_bgp_model.py +0 -0
  98. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_logging_model.py +0 -0
  99. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_ntp_model.py +0 -0
  100. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_omp_model.py +0 -0
  101. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_ospf.py +0 -0
  102. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_ospfv3.py +0 -0
  103. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_secure_internet_gateway.py +0 -0
  104. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_snmp_model.py +0 -0
  105. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_system.py +0 -0
  106. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_vpn_interface_model.py +0 -0
  107. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_vpn_model.py +0 -0
  108. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cli_template.py +0 -0
  109. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/omp_vsmart_model.py +0 -0
  110. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/security_vsmart_model.py +0 -0
  111. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/supported.py +0 -0
  112. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/system_vsmart_model.py +0 -0
  113. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/aaa/aaa_model.py +0 -0
  114. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/aaa/feature/aaa.json.j2 +0 -0
  115. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/aaa/feature/accounting.json.j2 +0 -0
  116. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/aaa/feature/radius.json.j2 +0 -0
  117. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/aaa/feature/tacacs.json.j2 +0 -0
  118. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/aaa/feature/user.json.j2 +0 -0
  119. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/cisco_vpn/cisco_vpn_model.py +0 -0
  120. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/cisco_vpn/feature/cisco_vpn.json.j2 +0 -0
  121. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/cisco_vpn/feature/dns.json.j2 +0 -0
  122. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/cisco_vpn/feature/ipv4route.json.j2 +0 -0
  123. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/cisco_vpn/feature/ipv6route.json.j2 +0 -0
  124. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/cisco_vpn/feature/mapping.json.j2 +0 -0
  125. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/tenant/tenant.json.j2 +0 -0
  126. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/tenant/tenant_model.py +0 -0
  127. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/tenant_backup_restore_api.py +0 -0
  128. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/tenant_management_api.py +0 -0
  129. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/tenant_migration_api.py +0 -0
  130. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/versions_utils.py +0 -0
  131. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/dataclasses.py +0 -0
  132. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/__init__.py +0 -0
  133. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/administration_user_and_group.py +0 -0
  134. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/certificate_management_device.py +0 -0
  135. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/certificate_management_vmanage.py +0 -0
  136. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/client.py +0 -0
  137. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/cluster_management.py +0 -0
  138. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/device/software_update.py +0 -0
  139. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/disaster_recovery.py +0 -0
  140. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/feature_profile/sdwan/other.py +0 -0
  141. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/feature_profile/sdwan/policy_object.py +0 -0
  142. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/feature_profile/sdwan/service.py +0 -0
  143. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/feature_profile/sdwan/system.py +0 -0
  144. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/abstractions.py +0 -0
  145. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/access_control_list.py +0 -0
  146. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/access_control_list_ipv6.py +0 -0
  147. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/amp.py +0 -0
  148. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/control.py +0 -0
  149. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/device_access.py +0 -0
  150. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/device_access_ipv6.py +0 -0
  151. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/hub_and_spoke.py +0 -0
  152. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/mesh.py +0 -0
  153. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/qos_map.py +0 -0
  154. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/rewrite.py +0 -0
  155. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/rule_set.py +0 -0
  156. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/security_group.py +0 -0
  157. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/traffic_data.py +0 -0
  158. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/vpn_membership.py +0 -0
  159. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/zone_based_firewall.py +0 -0
  160. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/app.py +0 -0
  161. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/app_probe.py +0 -0
  162. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/as_path.py +0 -0
  163. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/class_map.py +0 -0
  164. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/color.py +0 -0
  165. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/community.py +0 -0
  166. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/data_ipv6_prefix.py +0 -0
  167. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/data_prefix.py +0 -0
  168. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/expanded_community.py +0 -0
  169. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/fqdn.py +0 -0
  170. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/geo_location.py +0 -0
  171. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/ips_signature.py +0 -0
  172. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/ipv6_prefix.py +0 -0
  173. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/local_app.py +0 -0
  174. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/local_domain.py +0 -0
  175. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/mirror.py +0 -0
  176. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/policer.py +0 -0
  177. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/port.py +0 -0
  178. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/preferred_color_group.py +0 -0
  179. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/prefix.py +0 -0
  180. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/protocol_name.py +0 -0
  181. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/region.py +0 -0
  182. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/site.py +0 -0
  183. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/sla.py +0 -0
  184. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/threat_grid_api_key.py +0 -0
  185. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/tloc.py +0 -0
  186. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/trunkgroup.py +0 -0
  187. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/url_allow_list.py +0 -0
  188. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/url_block_list.py +0 -0
  189. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/vpn.py +0 -0
  190. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/zone.py +0 -0
  191. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/security_template.py +0 -0
  192. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/vedge_template.py +0 -0
  193. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/vsmart_template.py +0 -0
  194. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/software_actions.py +0 -0
  195. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_dashboard_status.py +0 -0
  196. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_device_actions.py +0 -0
  197. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_device_inventory.py +0 -0
  198. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_device_template.py +0 -0
  199. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_feature_profile.py +0 -0
  200. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_settings.py +0 -0
  201. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/endpoints_container.py +0 -0
  202. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/misc.py +0 -0
  203. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/monitoring/device_details.py +0 -0
  204. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/monitoring/server_info.py +0 -0
  205. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/monitoring/status.py +0 -0
  206. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/real_time_monitoring/reboot_history.py +0 -0
  207. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/sdavc_cloud_connector.py +0 -0
  208. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/tenant_backup_restore.py +0 -0
  209. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/tenant_management.py +0 -0
  210. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/tenant_migration.py +0 -0
  211. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/troubleshooting_tools/device_connectivity.py +0 -0
  212. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/integration_tests/feature_profile/sdwan/base.py +0 -0
  213. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/integration_tests/feature_profile/sdwan/test_other.py +0 -0
  214. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/integration_tests/feature_profile/sdwan/test_service.py +0 -0
  215. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/integration_tests/test_config_migration.py +0 -0
  216. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/integration_tests/test_find_template_values.py +0 -0
  217. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/logging.conf +0 -0
  218. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/common.py +0 -0
  219. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/docs/README.md +0 -0
  220. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/docs/diagram.png +0 -0
  221. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/README.md +0 -0
  222. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/builder.py +0 -0
  223. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/common.py +0 -0
  224. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py +0 -0
  225. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/other/thousandeyes.py +0 -0
  226. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py +0 -0
  227. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/__init__.py +0 -0
  228. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py +0 -0
  229. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py +0 -0
  230. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/as_path.py +0 -0
  231. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/color_list.py +0 -0
  232. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/data_prefix.py +0 -0
  233. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/fowarding_class.py +0 -0
  234. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_data_prefix.py +0 -0
  235. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_prefix_list.py +0 -0
  236. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/mirror.py +0 -0
  237. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/policer.py +0 -0
  238. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefered_group_color.py +0 -0
  239. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefix_list.py +0 -0
  240. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/sla_class.py +0 -0
  241. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/standard_community.py +0 -0
  242. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/tloc_list.py +0 -0
  243. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/aip.py +0 -0
  244. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/amp.py +0 -0
  245. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/application_list.py +0 -0
  246. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/data_prefix.py +0 -0
  247. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/fqdn.py +0 -0
  248. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/geolocation_list.py +0 -0
  249. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/intrusion_prevention.py +0 -0
  250. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ips_signature.py +0 -0
  251. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/local_domain.py +0 -0
  252. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/protocol_list.py +0 -0
  253. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/security_port.py +0 -0
  254. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption.py +0 -0
  255. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption_profile.py +0 -0
  256. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url.py +0 -0
  257. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url_filtering.py +0 -0
  258. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/zone.py +0 -0
  259. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/__init__.py +0 -0
  260. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/acl.py +0 -0
  261. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py +0 -0
  262. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/dhcp_server.py +0 -0
  263. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/eigrp.py +0 -0
  264. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/common.py +0 -0
  265. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py +0 -0
  266. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/gre.py +0 -0
  267. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/ipsec.py +0 -0
  268. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/svi.py +0 -0
  269. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/vpn.py +0 -0
  270. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/multicast.py +0 -0
  271. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/object_tracker.py +0 -0
  272. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/ospf.py +0 -0
  273. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/ospfv3.py +0 -0
  274. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/service_insertion_attachment.py +0 -0
  275. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/switchport.py +0 -0
  276. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/tracker.py +0 -0
  277. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/wireless_lan.py +0 -0
  278. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/__init__.py +0 -0
  279. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/banner.py +0 -0
  280. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/basic.py +0 -0
  281. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/bfd.py +0 -0
  282. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/global_parcel.py +0 -0
  283. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/logging_parcel.py +0 -0
  284. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/mrf.py +0 -0
  285. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/ntp.py +0 -0
  286. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/security.py +0 -0
  287. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/snmp.py +0 -0
  288. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_controller.py +0 -0
  289. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/profile_type.py +0 -0
  290. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/topology_group.py +0 -0
  291. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/device_inventory.py +0 -0
  292. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/feature_profile_parcel.py +0 -0
  293. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/misc/application_protocols.py +0 -0
  294. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/monitoring/server_info.py +0 -0
  295. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/centralized.py +0 -0
  296. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/access_control_list.py +0 -0
  297. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/access_control_list_ipv6.py +0 -0
  298. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/control.py +0 -0
  299. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/device_access.py +0 -0
  300. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/device_access_ipv6.py +0 -0
  301. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/hub_and_spoke.py +0 -0
  302. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/mesh.py +0 -0
  303. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/qos_map.py +0 -0
  304. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/rewrite.py +0 -0
  305. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/rule_set.py +0 -0
  306. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/security_group.py +0 -0
  307. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/traffic_data.py +0 -0
  308. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/vpn_membership.py +0 -0
  309. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/zone_based_firewall.py +0 -0
  310. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/app.py +0 -0
  311. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/app_probe.py +0 -0
  312. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/as_path.py +0 -0
  313. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/class_map.py +0 -0
  314. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/color.py +0 -0
  315. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/communities.py +0 -0
  316. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/data_ipv6_prefix.py +0 -0
  317. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/data_prefix.py +0 -0
  318. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/fqdn.py +0 -0
  319. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/geo_location.py +0 -0
  320. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/ips_signature.py +0 -0
  321. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/ipv6_prefix.py +0 -0
  322. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/local_app.py +0 -0
  323. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/local_domain.py +0 -0
  324. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/mirror.py +0 -0
  325. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/policer.py +0 -0
  326. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/port.py +0 -0
  327. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/preferred_color_group.py +0 -0
  328. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/prefix.py +0 -0
  329. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/protocol_name.py +0 -0
  330. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/region.py +0 -0
  331. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/site.py +0 -0
  332. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/sla.py +0 -0
  333. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/threat_grid_api_key.py +0 -0
  334. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/tloc.py +0 -0
  335. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/trunkgroup.py +0 -0
  336. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/url.py +0 -0
  337. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/vpn.py +0 -0
  338. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/zone.py +0 -0
  339. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/localized.py +0 -0
  340. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/policy.py +0 -0
  341. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/policy_definition.py +0 -0
  342. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/policy_list.py +0 -0
  343. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/security.py +0 -0
  344. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/templates.py +0 -0
  345. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/tenant.py +0 -0
  346. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/response.py +0 -0
  347. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/config_migration/test_converter_chooser.py +0 -0
  348. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/config_migration/test_device_template_with_info.py +0 -0
  349. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/config_migration/test_merge_parcels.py +0 -0
  350. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/config_migration/test_normalizer.py +0 -0
  351. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/Basic_Cisco_VPN_Model.json +0 -0
  352. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/banner_1.json +0 -0
  353. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/alias.json +0 -0
  354. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/basic.json +0 -0
  355. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/basic_no_value.json +0 -0
  356. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/children.json +0 -0
  357. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/children_nested.json +0 -0
  358. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/children_nested_datapath.json +0 -0
  359. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/data_path.json +0 -0
  360. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/cisco_bfd.json +0 -0
  361. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/complex_aaa.json +0 -0
  362. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/complex_cisco_vpn.json +0 -0
  363. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/default_cisco_system.json +0 -0
  364. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/iuo.json +0 -0
  365. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/omp_1.json +0 -0
  366. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/omp_2.json +0 -0
  367. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/omp_3.json +0 -0
  368. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/__init__.py +0 -0
  369. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/cisco_aaa.py +0 -0
  370. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/cisco_banner.py +0 -0
  371. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/cisco_bfd.py +0 -0
  372. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/cisco_system.py +0 -0
  373. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/cisco_vpn.py +0 -0
  374. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/omp_vsmart.py +0 -0
  375. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/basic/alias.json +0 -0
  376. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/basic/basic.json +0 -0
  377. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/basic/children.json +0 -0
  378. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/basic/children_nested.json +0 -0
  379. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/basic/children_nested_datapath.json +0 -0
  380. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/basic/data_path.json +0 -0
  381. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/cedge_aaa.json +0 -0
  382. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/cisco_banner.json +0 -0
  383. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/cisco_bfd.json +0 -0
  384. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/cisco_system.json +0 -0
  385. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/cisco_vpn.json +0 -0
  386. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/omp-vsmart.json +0 -0
  387. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/test_chose_model.py +0 -0
  388. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/test_deserialize_model.py +0 -0
  389. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/test_generate_payload.py +0 -0
  390. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_admin_tech_api.py +0 -0
  391. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_administration.py +0 -0
  392. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_alarms_api.py +0 -0
  393. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_cli_template.py +0 -0
  394. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_creation_tools.py +0 -0
  395. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_device_action_api.py +0 -0
  396. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_devices_api.py +0 -0
  397. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_feature_template_field.py +0 -0
  398. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_logs_api.py +0 -0
  399. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_monitoring_server_info.py +0 -0
  400. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_monitoring_status_api.py +0 -0
  401. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_mtt_aaa_api.py +0 -0
  402. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_omp_api.py +0 -0
  403. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_packet_capture.py +0 -0
  404. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_partition_manager_api.py +0 -0
  405. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_response.py +0 -0
  406. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_session.py +0 -0
  407. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_software_action_api.py +0 -0
  408. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_speed_test_api.py +0 -0
  409. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_task_status_api.py +0 -0
  410. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_tenant_backup_restore_api.py +0 -0
  411. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_tenant_management_api.py +0 -0
  412. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_tenant_migration_api.py +0 -0
  413. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_typed_list.py +0 -0
  414. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_version.py +0 -0
  415. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_version_utils.py +0 -0
  416. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_vmanage_auth.py +0 -0
  417. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/typed_list.py +0 -0
  418. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/__init__.py +0 -0
  419. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/alarm_status.py +0 -0
  420. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/certificate_status.py +0 -0
  421. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/colors.py +0 -0
  422. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/exceptions.py +0 -0
  423. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/__init__.py +0 -0
  424. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/aaa.py +0 -0
  425. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/appqoe.py +0 -0
  426. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/banner.py +0 -0
  427. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/base.py +0 -0
  428. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/basic.py +0 -0
  429. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/bfd.py +0 -0
  430. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/bgp.py +0 -0
  431. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/dhcp.py +0 -0
  432. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/eigrp.py +0 -0
  433. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/ethernet.py +0 -0
  434. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/global_.py +0 -0
  435. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/gre.py +0 -0
  436. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/ipsec.py +0 -0
  437. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/logging_.py +0 -0
  438. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/normalizer.py +0 -0
  439. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/ntp.py +0 -0
  440. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/omp.py +0 -0
  441. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/ospf.py +0 -0
  442. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/ospfv3.py +0 -0
  443. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/security.py +0 -0
  444. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/snmp.py +0 -0
  445. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/svi.py +0 -0
  446. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/switchport.py +0 -0
  447. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/thousandeyes.py +0 -0
  448. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/ucse.py +0 -0
  449. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/wireless_lan.py +0 -0
  450. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/policy/policy_lists.py +0 -0
  451. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/reverters/config_reverter.py +0 -0
  452. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/steps/__init__.py +0 -0
  453. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_status.py +0 -0
  454. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/creation_tools.py +0 -0
  455. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/dashboard.py +0 -0
  456. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/device_model.py +0 -0
  457. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/dict.py +0 -0
  458. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/feature_template/choose_model.py +0 -0
  459. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/feature_template/find_template_values.py +0 -0
  460. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/operation_status.py +0 -0
  461. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/personality.py +0 -0
  462. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/pydantic_field.py +0 -0
  463. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/reachability.py +0 -0
  464. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/session_type.py +0 -0
  465. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/template_type.py +0 -0
  466. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/timezone.py +0 -0
  467. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/upgrades_helper.py +0 -0
  468. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/validate_status.py +0 -0
  469. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/version.py +0 -0
  470. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/vmanage_auth.py +0 -0
  471. {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/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.dev5
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
@@ -5,18 +5,25 @@ from typing import TYPE_CHECKING, Callable, Mapping, Union
5
5
  from catalystwan.api.builders.feature_profiles.other import OtherFeatureProfileBuilder
6
6
  from catalystwan.api.builders.feature_profiles.service import ServiceFeatureProfileBuilder
7
7
  from catalystwan.api.builders.feature_profiles.system import SystemFeatureProfileBuilder
8
+ from catalystwan.api.builders.feature_profiles.transport import TransportAndManagementProfileBuilder
8
9
  from catalystwan.exceptions import CatalystwanException
9
10
  from catalystwan.models.configuration.feature_profile.common import ProfileType
10
11
 
11
12
  if TYPE_CHECKING:
12
13
  from catalystwan.session import ManagerSession
13
14
 
14
- FeatureProfileBuilder = Union[ServiceFeatureProfileBuilder, SystemFeatureProfileBuilder, OtherFeatureProfileBuilder]
15
+ FeatureProfileBuilder = Union[
16
+ ServiceFeatureProfileBuilder,
17
+ SystemFeatureProfileBuilder,
18
+ OtherFeatureProfileBuilder,
19
+ TransportAndManagementProfileBuilder,
20
+ ]
15
21
 
16
22
  BUILDER_MAPPING: Mapping[ProfileType, Callable] = {
17
23
  "service": ServiceFeatureProfileBuilder,
18
24
  "system": SystemFeatureProfileBuilder,
19
25
  "other": OtherFeatureProfileBuilder,
26
+ "transport": TransportAndManagementProfileBuilder,
20
27
  }
21
28
 
22
29
 
@@ -1,13 +1,17 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import logging
3
4
  from typing import TYPE_CHECKING, List
4
5
  from uuid import UUID
5
6
 
6
7
  from catalystwan.api.feature_profile_api import OtherFeatureProfileAPI
7
8
  from catalystwan.endpoints.configuration.feature_profile.sdwan.other import OtherFeatureProfile
9
+ from catalystwan.exceptions import ManagerHTTPError
8
10
  from catalystwan.models.configuration.feature_profile.common import FeatureProfileCreationPayload
9
11
  from catalystwan.models.configuration.feature_profile.sdwan.other import AnyOtherParcel
10
12
 
13
+ logger = logging.getLogger(__name__)
14
+
11
15
  if TYPE_CHECKING:
12
16
  from catalystwan.session import ManagerSession
13
17
 
@@ -62,8 +66,10 @@ class OtherFeatureProfileBuilder:
62
66
  Returns:
63
67
  UUID: The UUID of the created feature profile.
64
68
  """
65
-
66
- profile_uuid = self._endpoints.create_sdwan_other_feature_profile(self._profile).id
67
- for parcel in self._independent_items:
68
- self._api.create_parcel(profile_uuid, parcel)
69
+ try:
70
+ profile_uuid = self._endpoints.create_sdwan_other_feature_profile(self._profile).id
71
+ for parcel in self._independent_items:
72
+ self._api.create_parcel(profile_uuid, parcel)
73
+ except ManagerHTTPError as e:
74
+ logger.error(f"Error occured during building profile: {e.info}")
69
75
  return profile_uuid
@@ -10,6 +10,7 @@ from typing_extensions import Annotated
10
10
 
11
11
  from catalystwan.api.feature_profile_api import ServiceFeatureProfileAPI
12
12
  from catalystwan.endpoints.configuration.feature_profile.sdwan.service import ServiceFeatureProfile
13
+ from catalystwan.exceptions import ManagerHTTPError
13
14
  from catalystwan.models.configuration.feature_profile.common import FeatureProfileCreationPayload
14
15
  from catalystwan.models.configuration.feature_profile.sdwan.service import (
15
16
  AppqoeParcel,
@@ -117,15 +118,17 @@ class ServiceFeatureProfileBuilder:
117
118
  Service feature profile UUID
118
119
  """
119
120
  profile_uuid = self._endpoints.create_sdwan_service_feature_profile(self._profile).id
120
-
121
- for parcel in self._independent_items:
122
- self._api.create_parcel(profile_uuid, parcel)
123
-
124
- for vpn_tag, vpn_parcel in self._independent_items_vpns.items():
125
- vpn_uuid = self._api.create_parcel(profile_uuid, vpn_parcel).id
126
-
127
- for sub_parcel in self._depended_items_on_vpns[vpn_tag]:
128
- logger.debug(f"Creating subparcel parcel {sub_parcel.parcel_name} to VPN {vpn_uuid}")
129
- self._api.create_parcel(profile_uuid, sub_parcel, vpn_uuid)
121
+ try:
122
+ for parcel in self._independent_items:
123
+ self._api.create_parcel(profile_uuid, parcel)
124
+
125
+ for vpn_tag, vpn_parcel in self._independent_items_vpns.items():
126
+ vpn_uuid = self._api.create_parcel(profile_uuid, vpn_parcel).id
127
+
128
+ for sub_parcel in self._depended_items_on_vpns[vpn_tag]:
129
+ logger.debug(f"Creating subparcel parcel {sub_parcel.parcel_name} to VPN {vpn_uuid}")
130
+ self._api.create_parcel(profile_uuid, sub_parcel, vpn_uuid)
131
+ except ManagerHTTPError as e:
132
+ logger.error(f"Error occured during building profile: {e.info}")
130
133
 
131
134
  return profile_uuid
@@ -1,13 +1,18 @@
1
+ # Copyright 2023 Cisco Systems, Inc. and its affiliates
1
2
  from __future__ import annotations
2
3
 
4
+ import logging
3
5
  from typing import TYPE_CHECKING, List
4
6
  from uuid import UUID
5
7
 
6
8
  from catalystwan.api.feature_profile_api import SystemFeatureProfileAPI
7
9
  from catalystwan.endpoints.configuration.feature_profile.sdwan.system import SystemFeatureProfile
10
+ from catalystwan.exceptions import ManagerHTTPError
8
11
  from catalystwan.models.configuration.feature_profile.common import FeatureProfileCreationPayload
9
12
  from catalystwan.models.configuration.feature_profile.sdwan.system import AnySystemParcel
10
13
 
14
+ logger = logging.getLogger(__name__)
15
+
11
16
  if TYPE_CHECKING:
12
17
  from catalystwan.session import ManagerSession
13
18
 
@@ -64,6 +69,9 @@ class SystemFeatureProfileBuilder:
64
69
  """
65
70
 
66
71
  profile_uuid = self._endpoints.create_sdwan_system_feature_profile(self._profile).id
67
- for parcel in self._independent_items:
68
- self._api.create_parcel(profile_uuid, parcel)
72
+ try:
73
+ for parcel in self._independent_items:
74
+ self._api.create_parcel(profile_uuid, parcel)
75
+ except ManagerHTTPError as e:
76
+ logger.error(f"Error occured during building profile: {e.info}")
69
77
  return profile_uuid
@@ -0,0 +1,116 @@
1
+ # Copyright 2023 Cisco Systems, Inc. and its affiliates
2
+ from __future__ import annotations
3
+
4
+ import logging
5
+ from collections import defaultdict
6
+ from typing import TYPE_CHECKING, Dict, List
7
+ from uuid import UUID, uuid4
8
+
9
+ from catalystwan.api.feature_profile_api import TransportFeatureProfileAPI
10
+ from catalystwan.endpoints.configuration.feature_profile.sdwan.transport import TransportFeatureProfile
11
+ from catalystwan.exceptions import ManagerHTTPError
12
+ from catalystwan.models.configuration.feature_profile.common import FeatureProfileCreationPayload
13
+ from catalystwan.models.configuration.feature_profile.sdwan.transport import (
14
+ AnyTransportSuperParcel,
15
+ AnyTransportVpnParcel,
16
+ AnyTransportVpnSubParcel,
17
+ )
18
+
19
+ logger = logging.getLogger(__name__)
20
+
21
+ if TYPE_CHECKING:
22
+ from catalystwan.session import ManagerSession
23
+
24
+
25
+ class TransportAndManagementProfileBuilder:
26
+ """
27
+ A class for building system feature profiles.
28
+ """
29
+
30
+ def __init__(self, session: ManagerSession) -> None:
31
+ """
32
+ Initialize a new instance of the Service class.
33
+
34
+ Args:
35
+ session (ManagerSession): The ManagerSession object used for API communication.
36
+ profile_uuid (UUID): The UUID of the profile.
37
+ """
38
+ self._profile: FeatureProfileCreationPayload
39
+ self._api = TransportFeatureProfileAPI(session)
40
+ self._endpoints = TransportFeatureProfile(session)
41
+ self._independent_items: List[AnyTransportSuperParcel] = []
42
+ self._independent_items_vpns: Dict[UUID, AnyTransportVpnParcel] = {}
43
+ self._dependent_items_on_vpns: Dict[UUID, List[AnyTransportVpnSubParcel]] = defaultdict(list)
44
+
45
+ def add_profile_name_and_description(self, feature_profile: FeatureProfileCreationPayload) -> None:
46
+ """
47
+ Adds a name and description to the feature profile.
48
+
49
+ Args:
50
+ name (str): The name of the feature profile.
51
+ description (str): The description of the feature profile.
52
+
53
+ Returns:
54
+ None
55
+ """
56
+ self._profile = feature_profile
57
+
58
+ def add_parcel(self, parcel: AnyTransportSuperParcel) -> None:
59
+ """
60
+ Adds a parcel to the feature profile.
61
+
62
+ Args:
63
+ parcel (AnyTransportSuperParcel): The parcel to add.
64
+
65
+ Returns:
66
+ None
67
+ """
68
+ self._independent_items.append(parcel)
69
+
70
+ def add_parcel_vpn(self, parcel: AnyTransportVpnParcel) -> UUID:
71
+ """
72
+ Adds a VPN parcel to the builder.
73
+
74
+ Args:
75
+ parcel (LanVpnParcel): The VPN parcel to add.
76
+
77
+ Returns:
78
+ UUID: The UUID tag of the added VPN parcel.
79
+ """
80
+ vpn_tag = uuid4()
81
+ logger.debug(f"Adding VPN parcel {parcel.parcel_name} with tag {vpn_tag}")
82
+ self._independent_items_vpns[vpn_tag] = parcel
83
+ return vpn_tag
84
+
85
+ def add_vpn_subparcel(self, parcel: AnyTransportVpnSubParcel, vpn_tag: UUID) -> None:
86
+ """
87
+ Adds a parcel to the feature profile.
88
+
89
+ Args:
90
+ parcel (AnyTransportVpnSubParcel): The parcel to add.
91
+
92
+ Returns:
93
+ None
94
+ """
95
+ self._dependent_items_on_vpns[vpn_tag].append(parcel)
96
+
97
+ def build(self) -> UUID:
98
+ """
99
+ Builds the feature profile.
100
+
101
+ Returns:
102
+ UUID: The UUID of the created feature profile.
103
+ """
104
+
105
+ profile_uuid = self._endpoints.create_transport_feature_profile(self._profile).id
106
+ try:
107
+ for parcel in self._independent_items:
108
+ self._api.create_parcel(profile_uuid, parcel)
109
+ for vpn_tag, vpn_parcel in self._independent_items_vpns.items():
110
+ # TODO: Add subparcels to VPN
111
+ vpn_uuid = self._api.create_parcel(profile_uuid, vpn_parcel).id
112
+ for subparcel in self._dependent_items_on_vpns[vpn_tag]:
113
+ self._api.create_parcel(profile_uuid, subparcel, vpn_uuid)
114
+ except ManagerHTTPError as e:
115
+ logger.error(f"Error occured during building profile: {e.info}")
116
+ return profile_uuid
@@ -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")
@@ -11,11 +11,18 @@ from catalystwan.endpoints.configuration.feature_profile.sdwan.other import Othe
11
11
  from catalystwan.endpoints.configuration.feature_profile.sdwan.service import ServiceFeatureProfile
12
12
  from catalystwan.endpoints.configuration.feature_profile.sdwan.system import SystemFeatureProfile
13
13
  from catalystwan.endpoints.configuration.feature_profile.sdwan.transport import TransportFeatureProfile
14
+ from catalystwan.exceptions import ManagerHTTPError
14
15
  from catalystwan.models.configuration.feature_profile.sdwan.other import AnyOtherParcel
15
16
  from catalystwan.models.configuration.feature_profile.sdwan.policy_object.security.url import URLParcel
16
17
  from catalystwan.models.configuration.feature_profile.sdwan.service import AnyServiceParcel
17
18
  from catalystwan.models.configuration.feature_profile.sdwan.service.multicast import MulticastParcel
18
19
  from catalystwan.models.configuration.feature_profile.sdwan.transport import AnyTransportParcel
20
+ from catalystwan.models.configuration.feature_profile.sdwan.transport.bgp import WanRoutingBgpParcel
21
+ from catalystwan.models.configuration.feature_profile.sdwan.transport.cellular_controller import (
22
+ CellularControllerParcel,
23
+ )
24
+ from catalystwan.models.configuration.feature_profile.sdwan.transport.t1e1controller import T1E1ControllerParcel
25
+ from catalystwan.models.configuration.feature_profile.sdwan.transport.vpn import ManagementVpnParcel, TransportVpnParcel
19
26
  from catalystwan.typed_list import DataSequence
20
27
 
21
28
  if TYPE_CHECKING:
@@ -172,13 +179,69 @@ class TransportFeatureProfileAPI:
172
179
  """
173
180
  self.endpoint.delete_transport_feature_profile(profile_id)
174
181
 
175
- def create_parcel(self, profile_id: UUID, payload: AnyTransportParcel) -> ParcelCreationResponse:
182
+ def create_parcel(
183
+ self, profile_id: UUID, payload: AnyTransportParcel, vpn_uuid: Optional[UUID] = None
184
+ ) -> ParcelCreationResponse:
176
185
  """
177
186
  Create Transport Parcel for selected profile_id based on payload type
178
187
  """
179
-
188
+ if vpn_uuid is not None:
189
+ vpn_parcel = self._get_vpn_parcel(profile_id, vpn_uuid).payload
190
+ if vpn_parcel._get_parcel_type() == TransportVpnParcel._get_parcel_type():
191
+ return self.endpoint.create_transport_vpn_sub_parcel(
192
+ profile_id, vpn_uuid, payload._get_parcel_type(), payload
193
+ )
194
+ else:
195
+ return self.endpoint.create_management_vpn_sub_parcel(
196
+ profile_id, vpn_uuid, payload._get_parcel_type(), payload
197
+ )
180
198
  return self.endpoint.create_transport_parcel(profile_id, payload._get_parcel_type(), payload)
181
199
 
200
+ def _get_vpn_parcel(
201
+ self, profile_id: UUID, vpn_uuid: UUID
202
+ ) -> Union[Parcel[TransportVpnParcel], Parcel[ManagementVpnParcel]]:
203
+ """Resolve the VPN parcel type based on the VPN UUID."""
204
+ try:
205
+ return self.endpoint.get_transport_parcel(profile_id, TransportVpnParcel._get_parcel_type(), vpn_uuid)
206
+ except ManagerHTTPError:
207
+ return self.endpoint.get_transport_parcel(profile_id, ManagementVpnParcel._get_parcel_type(), vpn_uuid)
208
+
209
+ @overload
210
+ def get_parcel(
211
+ self, profile_id: UUID, parcel_type: Type[CellularControllerParcel], parcel_id: UUID
212
+ ) -> Parcel[CellularControllerParcel]:
213
+ ...
214
+
215
+ @overload
216
+ def get_parcel(
217
+ self, profile_id: UUID, parcel_type: Type[T1E1ControllerParcel], parcel_id: UUID
218
+ ) -> Parcel[T1E1ControllerParcel]:
219
+ ...
220
+
221
+ @overload
222
+ def get_parcel(
223
+ self, profile_id: UUID, parcel_type: Type[WanRoutingBgpParcel], parcel_id: UUID
224
+ ) -> Parcel[WanRoutingBgpParcel]:
225
+ ...
226
+
227
+ @overload
228
+ def get_parcel(
229
+ self, profile_id: UUID, parcel_type: Type[TransportVpnParcel], parcel_id: UUID
230
+ ) -> Parcel[TransportVpnParcel]:
231
+ ...
232
+
233
+ @overload
234
+ def get_parcel(
235
+ self, profile_id: UUID, parcel_type: Type[ManagementVpnParcel], parcel_id: UUID
236
+ ) -> Parcel[ManagementVpnParcel]:
237
+ ...
238
+
239
+ def get_parcel(self, profile_id: UUID, parcel_type: Type[AnyTransportParcel], parcel_id: UUID) -> Parcel:
240
+ """
241
+ Get one Transport Parcel given profile id, parcel type and parcel id
242
+ """
243
+ return self.endpoint.get_transport_parcel(profile_id, parcel_type._get_parcel_type(), parcel_id)
244
+
182
245
 
183
246
  class OtherFeatureProfileAPI:
184
247
  """
@@ -11,6 +11,7 @@ from catalystwan.endpoints.configuration.policy.definition.access_control_list i
11
11
  from catalystwan.endpoints.configuration.policy.definition.access_control_list_ipv6 import (
12
12
  ConfigurationPolicyAclIPv6Definition,
13
13
  )
14
+ from catalystwan.endpoints.configuration.policy.definition.aip import ConfigurationPolicyAIPDefinition
14
15
  from catalystwan.endpoints.configuration.policy.definition.amp import ConfigurationPolicyAMPDefinition
15
16
  from catalystwan.endpoints.configuration.policy.definition.control import ConfigurationPolicyControlDefinition
16
17
  from catalystwan.endpoints.configuration.policy.definition.device_access import (
@@ -20,6 +21,9 @@ from catalystwan.endpoints.configuration.policy.definition.device_access_ipv6 im
20
21
  ConfigurationPolicyDeviceAccessIPv6Definition,
21
22
  )
22
23
  from catalystwan.endpoints.configuration.policy.definition.hub_and_spoke import ConfigurationPolicyHubAndSpokeDefinition
24
+ from catalystwan.endpoints.configuration.policy.definition.intrusion_prevention import (
25
+ ConfigurationPolicyIntrusionPreventionDefinition,
26
+ )
23
27
  from catalystwan.endpoints.configuration.policy.definition.mesh import ConfigurationPolicyMeshDefinition
24
28
  from catalystwan.endpoints.configuration.policy.definition.qos_map import ConfigurationPolicyQoSMapDefinition
25
29
  from catalystwan.endpoints.configuration.policy.definition.rewrite import ConfigurationPolicyRewriteRuleDefinition
@@ -28,6 +32,9 @@ from catalystwan.endpoints.configuration.policy.definition.security_group import
28
32
  ConfigurationPolicySecurityGroupDefinition,
29
33
  )
30
34
  from catalystwan.endpoints.configuration.policy.definition.traffic_data import ConfigurationPolicyDataDefinition
35
+ from catalystwan.endpoints.configuration.policy.definition.url_filtering import (
36
+ ConfigurationPolicyUrlFilteringDefinition,
37
+ )
31
38
  from catalystwan.endpoints.configuration.policy.definition.vpn_membership import (
32
39
  ConfigurationPolicyVPNMembershipGroupDefinition,
33
40
  )
@@ -120,6 +127,10 @@ from catalystwan.models.policy import (
120
127
  from catalystwan.models.policy.centralized import CentralizedPolicy, CentralizedPolicyEditPayload, CentralizedPolicyInfo
121
128
  from catalystwan.models.policy.definition.access_control_list import AclPolicy, AclPolicyGetResponse
122
129
  from catalystwan.models.policy.definition.access_control_list_ipv6 import AclIPv6Policy, AclIPv6PolicyGetResponse
130
+ from catalystwan.models.policy.definition.aip import (
131
+ AdvancedInspectionProfilePolicy,
132
+ AdvancedInspectionProfilePolicyGetResponse,
133
+ )
123
134
  from catalystwan.models.policy.definition.amp import (
124
135
  AdvancedMalwareProtectionPolicy,
125
136
  AdvancedMalwareProtectionPolicyGetResponse,
@@ -131,12 +142,17 @@ from catalystwan.models.policy.definition.device_access_ipv6 import (
131
142
  DeviceAccessIPv6PolicyGetResponse,
132
143
  )
133
144
  from catalystwan.models.policy.definition.hub_and_spoke import HubAndSpokePolicy, HubAndSpokePolicyGetResponse
145
+ from catalystwan.models.policy.definition.intrusion_prevention import (
146
+ IntrusionPreventionPolicy,
147
+ IntrusionPreventionPolicyGetResponse,
148
+ )
134
149
  from catalystwan.models.policy.definition.mesh import MeshPolicy, MeshPolicyGetResponse
135
150
  from catalystwan.models.policy.definition.qos_map import QoSMapPolicy, QoSMapPolicyGetResponse
136
151
  from catalystwan.models.policy.definition.rewrite import RewritePolicy, RewritePolicyGetResponse
137
152
  from catalystwan.models.policy.definition.rule_set import RuleSet, RuleSetGetResponse
138
153
  from catalystwan.models.policy.definition.security_group import SecurityGroup, SecurityGroupGetResponse
139
154
  from catalystwan.models.policy.definition.traffic_data import TrafficDataPolicy, TrafficDataPolicyGetResponse
155
+ from catalystwan.models.policy.definition.url_filtering import UrlFilteringPolicy, UrlFilteringPolicyGetResponse
140
156
  from catalystwan.models.policy.definition.vpn_membership import VPNMembershipPolicy, VPNMembershipPolicyGetResponse
141
157
  from catalystwan.models.policy.definition.zone_based_firewall import ZoneBasedFWPolicy, ZoneBasedFWPolicyGetResponse
142
158
  from catalystwan.models.policy.list.app_probe import AppProbeClassListInfo
@@ -224,7 +240,10 @@ POLICY_DEFINITION_ENDPOINTS_MAP: Mapping[type, type] = {
224
240
  AclIPv6Policy: ConfigurationPolicyAclIPv6Definition,
225
241
  DeviceAccessPolicy: ConfigurationPolicyDeviceAccessDefinition,
226
242
  DeviceAccessIPv6Policy: ConfigurationPolicyDeviceAccessIPv6Definition,
243
+ AdvancedInspectionProfilePolicy: ConfigurationPolicyAIPDefinition,
227
244
  AdvancedMalwareProtectionPolicy: ConfigurationPolicyAMPDefinition,
245
+ IntrusionPreventionPolicy: ConfigurationPolicyIntrusionPreventionDefinition,
246
+ UrlFilteringPolicy: ConfigurationPolicyUrlFilteringDefinition,
228
247
  }
229
248
 
230
249
 
@@ -648,10 +667,22 @@ class PolicyDefinitionsAPI:
648
667
  endpoints = self.__get_definition_endpoints_instance(type)
649
668
  endpoints.delete_policy_definition(id=id)
650
669
 
670
+ @overload
671
+ def get(self, type: Type[IntrusionPreventionPolicy]) -> DataSequence[PolicyDefinitionInfo]:
672
+ ...
673
+
651
674
  @overload
652
675
  def get(self, type: Type[TrafficDataPolicy]) -> DataSequence[PolicyDefinitionInfo]:
653
676
  ...
654
677
 
678
+ @overload
679
+ def get(self, type: Type[UrlFilteringPolicy]) -> DataSequence[PolicyDefinitionInfo]:
680
+ ...
681
+
682
+ @overload
683
+ def get(self, type: Type[AdvancedInspectionProfilePolicy]) -> DataSequence[PolicyDefinitionInfo]:
684
+ ...
685
+
655
686
  @overload
656
687
  def get(self, type: Type[AdvancedMalwareProtectionPolicy]) -> DataSequence[PolicyDefinitionInfo]:
657
688
  ...
@@ -709,11 +740,22 @@ class PolicyDefinitionsAPI:
709
740
  ...
710
741
 
711
742
  # get by id
743
+ @overload
744
+ def get(self, type: Type[IntrusionPreventionPolicy], id: UUID) -> IntrusionPreventionPolicyGetResponse:
745
+ ...
712
746
 
713
747
  @overload
714
748
  def get(self, type: Type[TrafficDataPolicy], id: UUID) -> TrafficDataPolicyGetResponse:
715
749
  ...
716
750
 
751
+ @overload
752
+ def get(self, type: Type[UrlFilteringPolicy], id: UUID) -> UrlFilteringPolicyGetResponse:
753
+ ...
754
+
755
+ @overload
756
+ def get(self, type: Type[AdvancedInspectionProfilePolicy], id: UUID) -> AdvancedInspectionProfilePolicyGetResponse:
757
+ ...
758
+
717
759
  @overload
718
760
  def get(self, type: Type[AdvancedMalwareProtectionPolicy], id: UUID) -> AdvancedMalwareProtectionPolicyGetResponse:
719
761
  ...
@@ -2,6 +2,7 @@
2
2
 
3
3
  # mypy: disable-error-code="empty-body"
4
4
  from typing import Optional
5
+ from uuid import UUID
5
6
 
6
7
  from catalystwan.api.configuration_groups.parcel import _ParcelBase
7
8
  from catalystwan.endpoints import JSON, APIEndpoints, delete, get, post, put, versions
@@ -14,12 +15,12 @@ from catalystwan.models.configuration.feature_profile.common import (
14
15
  GetFeatureProfilesPayload,
15
16
  SchemaTypeQuery,
16
17
  )
17
- from catalystwan.models.configuration.feature_profile.parcel import ParcelCreationResponse, ParcelId
18
+ from catalystwan.models.configuration.feature_profile.parcel import Parcel, ParcelCreationResponse, ParcelId
18
19
  from catalystwan.models.configuration.feature_profile.sdwan.transport import (
19
20
  AnyTransportParcel,
20
21
  CellularControllerParcel,
21
22
  )
22
- from catalystwan.models.configuration.feature_profile.sdwan.transport.vpn_management import ManagementVpn
23
+ from catalystwan.models.configuration.feature_profile.sdwan.transport.vpn import ManagementVpnParcel
23
24
  from catalystwan.typed_list import DataSequence
24
25
 
25
26
 
@@ -38,56 +39,82 @@ class TransportFeatureProfile(APIEndpoints):
38
39
 
39
40
  @versions(supported_versions=(">=20.13"), raises=False)
40
41
  @get("/v1/feature-profile/sdwan/transport/{profile_id}")
41
- def get_transport_feature_profile(self, profile_id: str, params: GetFeatureProfilesPayload) -> FeatureProfileDetail:
42
+ def get_transport_feature_profile(
43
+ self, profile_id: UUID, params: GetFeatureProfilesPayload
44
+ ) -> FeatureProfileDetail:
42
45
  ...
43
46
 
44
47
  @versions(supported_versions=(">=20.13"), raises=False)
45
48
  @put("/v1/feature-profile/sdwan/transport/{profile_id}")
46
49
  def edit_transport_feature_profile(
47
- self, profile_id: str, payload: FeatureProfileEditPayload
50
+ self, profile_id: UUID, payload: FeatureProfileEditPayload
48
51
  ) -> FeatureProfileCreationResponse:
49
52
  ...
50
53
 
51
54
  @versions(supported_versions=(">=20.13"), raises=False)
52
55
  @delete("/v1/feature-profile/sdwan/transport/{profile_id}")
53
- def delete_transport_feature_profile(self, profile_id: str) -> None:
56
+ def delete_transport_feature_profile(self, profile_id: UUID) -> None:
54
57
  ...
55
58
 
56
59
  @versions(supported_versions=(">=20.13"), raises=False)
57
60
  @post("/v1/feature-profile/sdwan/transport/{profile_id}/{parcel_type}")
58
61
  def create_transport_parcel(
59
- self, profile_id: str, parcel_type: str, payload: AnyTransportParcel
62
+ self, profile_id: UUID, parcel_type: str, payload: _ParcelBase
60
63
  ) -> ParcelCreationResponse:
61
64
  ...
62
65
 
66
+ @versions(supported_versions=(">=20.13"), raises=False)
67
+ @post("/v1/feature-profile/sdwan/transport/{profile_id}/wan/vpn/{vpn_id}/{parcel_type}")
68
+ def create_transport_vpn_sub_parcel(
69
+ self, profile_id: UUID, vpn_id: UUID, parcel_type: str, payload: _ParcelBase
70
+ ) -> ParcelCreationResponse:
71
+ ...
72
+
73
+ @versions(supported_versions=(">=20.13"), raises=False)
74
+ @post("/v1/feature-profile/sdwan/transport/{profile_id}/management/vpn/{vpn_id}/{parcel_type}")
75
+ def create_management_vpn_sub_parcel(
76
+ self, profile_id: UUID, vpn_id: UUID, parcel_type: str, payload: _ParcelBase
77
+ ) -> ParcelCreationResponse:
78
+ ...
79
+
80
+ @versions(supported_versions=(">=20.13"), raises=False)
81
+ @get("/v1/feature-profile/sdwan/transport/{profile_id}/{parcel_type}")
82
+ def get_transport_parcels(self, profile_id: UUID, parcel_type: str) -> DataSequence[Parcel[AnyTransportParcel]]:
83
+ ...
84
+
85
+ @versions(supported_versions=(">=20.13"), raises=False)
86
+ @get("/v1/feature-profile/sdwan/transport/{profile_id}/{parcel_type}/{parcel_id}")
87
+ def get_transport_parcel(self, profile_id: UUID, parcel_type: str, parcel_id: UUID) -> Parcel[AnyTransportParcel]:
88
+ ...
89
+
63
90
  #
64
91
  # ManagementVPN parcel
65
92
  #
66
93
  @versions(supported_versions=(">=20.13"), raises=False)
67
94
  @post("/v1/feature-profile/sdwan/transport/{profile_id}/management/vpn")
68
- def create_management_vpn_parcel(self, profile_id: str, payload: _ParcelBase) -> ParcelCreationResponse:
95
+ def create_management_vpn_parcel(self, profile_id: UUID, payload: _ParcelBase) -> ParcelCreationResponse:
69
96
  ...
70
97
 
71
98
  # @versions(supported_versions=(">=20.13"), raises=False)
72
99
  # @get("/v1/feature-profile/sdwan/transport/{profile_id}/management/vpn")
73
- # def get_management_vpn_parcels(self, profile_id: str) -> ParcelSequence[ManagementVPN]:
100
+ # def get_management_vpn_parcels(self, profile_id: UUID) -> ParcelSequence[ManagementVPN]:
74
101
  # ...
75
102
 
76
103
  # @versions(supported_versions=(">=20.13"), raises=False)
77
104
  # @get("/v1/feature-profile/sdwan/transport/{profile_id}/management/vpn/{parcel_id}")
78
- # def get_management_vpn_parcel(self, profile_id: str, parcel_id: str) -> Parcel[ManagementVPN]:
105
+ # def get_management_vpn_parcel(self, profile_id: UUID, parcel_id: str) -> Parcel[ManagementVPN]:
79
106
  # ...
80
107
 
81
108
  @versions(supported_versions=(">=20.13"), raises=False)
82
109
  @put("/v1/feature-profile/sdwan/transport/{profile_id}/management/vpn/{parcel_id}")
83
110
  def edit_management_vpn_parcel(
84
- self, profile_id: str, parcel_id: str, payload: ManagementVpn
111
+ self, profile_id: UUID, parcel_id: str, payload: ManagementVpnParcel
85
112
  ) -> ParcelCreationResponse:
86
113
  ...
87
114
 
88
115
  @versions(supported_versions=(">=20.13"), raises=False)
89
116
  @delete("/v1/feature-profile/sdwan/transport/{profile_id}/management/vpn/{parcel_id}")
90
- def delete_management_vpn_parcel(self, profile_id: str, parcel_id: str) -> None:
117
+ def delete_management_vpn_parcel(self, profile_id: UUID, parcel_id: str) -> None:
91
118
  ...
92
119
 
93
120
  @versions(supported_versions=(">=20.9"), raises=False)