catalystwan 0.35.4.dev2__tar.gz → 0.35.4.dev4__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 (567) hide show
  1. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/PKG-INFO +1 -1
  2. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/feature_profile_api.py +4 -5
  3. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/test_service.py +1 -1
  4. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/acl/ipv4acl.py +26 -15
  5. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/acl/ipv6acl.py +25 -14
  6. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/application_priority/traffic_policy.py +15 -3
  7. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/vpn.py +1 -1
  8. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/bfd.py +1 -1
  9. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/pyproject.toml +1 -1
  10. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/setup.py +1 -1
  11. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/LICENSE +0 -0
  12. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/README.md +0 -0
  13. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/__init__.py +0 -0
  14. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/abstractions.py +0 -0
  15. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/__init__.py +0 -0
  16. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/admin_tech_api.py +0 -0
  17. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/administration.py +0 -0
  18. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/alarms_api.py +0 -0
  19. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/api_container.py +0 -0
  20. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/basic_api.py +0 -0
  21. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/builders/__init__.py +0 -0
  22. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/builders/feature_profiles/__init__.py +0 -0
  23. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/builders/feature_profiles/application_priority.py +0 -0
  24. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/builders/feature_profiles/builder_factory.py +0 -0
  25. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/builders/feature_profiles/cli.py +0 -0
  26. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/builders/feature_profiles/other.py +0 -0
  27. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/builders/feature_profiles/report.py +0 -0
  28. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/builders/feature_profiles/service.py +0 -0
  29. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/builders/feature_profiles/system.py +0 -0
  30. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/builders/feature_profiles/transport.py +0 -0
  31. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/config_device_inventory_api.py +0 -0
  32. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/config_group_api.py +0 -0
  33. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/configuration_groups/parcel.py +0 -0
  34. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/dashboard_api.py +0 -0
  35. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/device_action_api.py +0 -0
  36. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/logs_api.py +0 -0
  37. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/monitoring_status_api.py +0 -0
  38. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/mtt_aaa_api.py +0 -0
  39. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/omp_api.py +0 -0
  40. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/packet_capture_api.py +0 -0
  41. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/parcel_api.py +0 -0
  42. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/partition_manager_api.py +0 -0
  43. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/policy_api.py +0 -0
  44. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/resource_pool_api.py +0 -0
  45. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/software_action_api.py +0 -0
  46. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/speedtest_api.py +0 -0
  47. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/task_status_api.py +0 -0
  48. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/template_api.py +0 -0
  49. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/README.md +0 -0
  50. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/bool_str.py +0 -0
  51. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/cli_template.py +0 -0
  52. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/device_template/device_template.py +0 -0
  53. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/device_variable.py +0 -0
  54. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/feature_template.py +0 -0
  55. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/feature_template_field.py +0 -0
  56. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/feature_template_payload.py +0 -0
  57. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/aaa_model.py +0 -0
  58. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_aaa_model.py +0 -0
  59. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_banner_model.py +0 -0
  60. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_bfd_model.py +0 -0
  61. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_bgp_model.py +0 -0
  62. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_logging_model.py +0 -0
  63. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_ntp_model.py +0 -0
  64. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_omp_model.py +0 -0
  65. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_ospf.py +0 -0
  66. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_ospfv3.py +0 -0
  67. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_secure_internet_gateway.py +0 -0
  68. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_snmp_model.py +0 -0
  69. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_system.py +0 -0
  70. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_vpn_interface_model.py +0 -0
  71. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cisco_vpn_model.py +0 -0
  72. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/cli_template.py +0 -0
  73. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/omp_vsmart_model.py +0 -0
  74. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/security_vsmart_model.py +0 -0
  75. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/supported.py +0 -0
  76. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/system_vsmart_model.py +0 -0
  77. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/vpn_vsmart_interface_model.py +0 -0
  78. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/models/vpn_vsmart_model.py +0 -0
  79. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/aaa/aaa_model.py +0 -0
  80. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/aaa/feature/aaa.json.j2 +0 -0
  81. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/aaa/feature/accounting.json.j2 +0 -0
  82. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/aaa/feature/radius.json.j2 +0 -0
  83. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/aaa/feature/tacacs.json.j2 +0 -0
  84. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/aaa/feature/user.json.j2 +0 -0
  85. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/cisco_vpn/cisco_vpn_model.py +0 -0
  86. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/cisco_vpn/feature/cisco_vpn.json.j2 +0 -0
  87. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/cisco_vpn/feature/dns.json.j2 +0 -0
  88. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/cisco_vpn/feature/ipv4route.json.j2 +0 -0
  89. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/cisco_vpn/feature/ipv6route.json.j2 +0 -0
  90. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/cisco_vpn/feature/mapping.json.j2 +0 -0
  91. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/tenant/tenant.json.j2 +0 -0
  92. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/templates/payloads/tenant/tenant_model.py +0 -0
  93. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/tenant_backup_restore_api.py +0 -0
  94. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/tenant_management_api.py +0 -0
  95. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/tenant_migration_api.py +0 -0
  96. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/versions_utils.py +0 -0
  97. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/api/virtual_image_action_api.py +0 -0
  98. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/apigw_auth.py +0 -0
  99. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/dataclasses.py +0 -0
  100. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/__init__.py +0 -0
  101. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/administration_user_and_group.py +0 -0
  102. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/api_gateway.py +0 -0
  103. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/certificate_management_device.py +0 -0
  104. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/certificate_management_vmanage.py +0 -0
  105. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/client.py +0 -0
  106. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/cluster_management.py +0 -0
  107. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/device/software_update.py +0 -0
  108. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/disaster_recovery.py +0 -0
  109. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/feature_profile/sdwan/application_priority.py +0 -0
  110. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/feature_profile/sdwan/cli.py +0 -0
  111. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/feature_profile/sdwan/dns_security.py +0 -0
  112. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/feature_profile/sdwan/embedded_security.py +0 -0
  113. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/feature_profile/sdwan/other.py +0 -0
  114. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/feature_profile/sdwan/policy_object.py +0 -0
  115. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/feature_profile/sdwan/service.py +0 -0
  116. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/feature_profile/sdwan/sig_security.py +0 -0
  117. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/feature_profile/sdwan/system.py +0 -0
  118. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/feature_profile/sdwan/topology.py +0 -0
  119. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/feature_profile/sdwan/transport.py +0 -0
  120. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/network_hierarchy.py +0 -0
  121. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/abstractions.py +0 -0
  122. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/access_control_list.py +0 -0
  123. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/access_control_list_ipv6.py +0 -0
  124. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/aip.py +0 -0
  125. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/amp.py +0 -0
  126. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/cflowd.py +0 -0
  127. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/control.py +0 -0
  128. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/device_access.py +0 -0
  129. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/device_access_ipv6.py +0 -0
  130. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/dns_security.py +0 -0
  131. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/hub_and_spoke.py +0 -0
  132. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/intrusion_prevention.py +0 -0
  133. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/mesh.py +0 -0
  134. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/qos_map.py +0 -0
  135. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/rewrite.py +0 -0
  136. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/route_policy.py +0 -0
  137. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/rule_set.py +0 -0
  138. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/security_group.py +0 -0
  139. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/ssl_decryption.py +0 -0
  140. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/ssl_decryption_utd_profile.py +0 -0
  141. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/traffic_data.py +0 -0
  142. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/url_filtering.py +0 -0
  143. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/vpn_membership.py +0 -0
  144. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/definition/zone_based_firewall.py +0 -0
  145. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/app.py +0 -0
  146. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/app_probe.py +0 -0
  147. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/as_path.py +0 -0
  148. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/class_map.py +0 -0
  149. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/color.py +0 -0
  150. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/community.py +0 -0
  151. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/data_ipv6_prefix.py +0 -0
  152. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/data_prefix.py +0 -0
  153. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/expanded_community.py +0 -0
  154. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/extended_community.py +0 -0
  155. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/fqdn.py +0 -0
  156. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/geo_location.py +0 -0
  157. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/identity.py +0 -0
  158. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/ips_signature.py +0 -0
  159. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/ipv6_prefix.py +0 -0
  160. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/local_app.py +0 -0
  161. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/local_domain.py +0 -0
  162. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/mirror.py +0 -0
  163. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/policer.py +0 -0
  164. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/port.py +0 -0
  165. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/preferred_color_group.py +0 -0
  166. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/prefix.py +0 -0
  167. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/protocol_name.py +0 -0
  168. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/region.py +0 -0
  169. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/scalable_group_tag.py +0 -0
  170. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/site.py +0 -0
  171. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/sla.py +0 -0
  172. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/threat_grid_api_key.py +0 -0
  173. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/tloc.py +0 -0
  174. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/trunkgroup.py +0 -0
  175. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/umbrella_data.py +0 -0
  176. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/url_allow_list.py +0 -0
  177. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/url_block_list.py +0 -0
  178. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/vpn.py +0 -0
  179. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/list/zone.py +0 -0
  180. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/security_template.py +0 -0
  181. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/vedge_template.py +0 -0
  182. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy/vsmart_template.py +0 -0
  183. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/policy_group.py +0 -0
  184. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/software_actions.py +0 -0
  185. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration/topology_group.py +0 -0
  186. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration_dashboard_status.py +0 -0
  187. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration_device_actions.py +0 -0
  188. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration_device_inventory.py +0 -0
  189. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration_device_template.py +0 -0
  190. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration_feature_profile.py +0 -0
  191. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration_general_template.py +0 -0
  192. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration_group.py +0 -0
  193. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration_settings.py +0 -0
  194. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/configuration_template_master.py +0 -0
  195. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/endpoints_container.py +0 -0
  196. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/misc.py +0 -0
  197. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/monitoring/device_details.py +0 -0
  198. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/monitoring/security_policy.py +0 -0
  199. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/monitoring/server_info.py +0 -0
  200. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/monitoring/status.py +0 -0
  201. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/real_time_monitoring/reboot_history.py +0 -0
  202. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/sdavc_cloud_connector.py +0 -0
  203. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/tenant_backup_restore.py +0 -0
  204. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/tenant_management.py +0 -0
  205. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/tenant_migration.py +0 -0
  206. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/troubleshooting_tools/device_connectivity.py +0 -0
  207. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/endpoints/url_monitoring.py +0 -0
  208. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/exceptions.py +0 -0
  209. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/__init__.py +0 -0
  210. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/base.py +0 -0
  211. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/__init__.py +0 -0
  212. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/policy/__init__.py +0 -0
  213. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/policy/base.py +0 -0
  214. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/policy/test_extended_community.py +0 -0
  215. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/policy/test_security_app_list.py +0 -0
  216. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/test_application_priority.py +0 -0
  217. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/test_cli.py +0 -0
  218. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/test_dns_security.py +0 -0
  219. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/test_other.py +0 -0
  220. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/test_sig_security.py +0 -0
  221. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/test_ssl_decryption.py +0 -0
  222. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/test_system.py +0 -0
  223. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +0 -0
  224. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/feature_profile/sdwan/topology/test_topology.py +0 -0
  225. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/profile_builder/__init__.py +0 -0
  226. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/profile_builder/test_pb_service.py +0 -0
  227. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/profile_builder/test_pb_transport.py +0 -0
  228. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/test_data/__init__.py +0 -0
  229. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/test_find_template_values.py +0 -0
  230. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/test_network_hierarchy.py +0 -0
  231. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/integration_tests/test_settings.py +0 -0
  232. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/logging.conf +0 -0
  233. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/common.py +0 -0
  234. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/common.py +0 -0
  235. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/README.md +0 -0
  236. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/builder.py +0 -0
  237. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/common.py +0 -0
  238. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/parcel.py +0 -0
  239. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/acl/__init__.py +0 -0
  240. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/application_priority/__init__.py +0 -0
  241. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/application_priority/policy_settings.py +0 -0
  242. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/application_priority/qos_policy.py +0 -0
  243. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/cli/__init__.py +0 -0
  244. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/cli/config.py +0 -0
  245. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/dns_security/__init__.py +0 -0
  246. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/dns_security/dns.py +0 -0
  247. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/embedded_security/__init__.py +0 -0
  248. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/embedded_security/ngfirewall.py +0 -0
  249. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/embedded_security/policy.py +0 -0
  250. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py +0 -0
  251. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/other/thousandeyes.py +0 -0
  252. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py +0 -0
  253. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/__init__.py +0 -0
  254. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py +0 -0
  255. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py +0 -0
  256. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/as_path.py +0 -0
  257. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/color_list.py +0 -0
  258. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/data_prefix.py +0 -0
  259. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/expanded_community_list.py +0 -0
  260. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/extended_community.py +0 -0
  261. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/fowarding_class.py +0 -0
  262. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_data_prefix.py +0 -0
  263. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_prefix_list.py +0 -0
  264. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/mirror.py +0 -0
  265. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/policer.py +0 -0
  266. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefered_group_color.py +0 -0
  267. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefix_list.py +0 -0
  268. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/sla_class.py +0 -0
  269. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/standard_community.py +0 -0
  270. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/tloc_list.py +0 -0
  271. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/aip.py +0 -0
  272. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/amp.py +0 -0
  273. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/application_list.py +0 -0
  274. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/data_prefix.py +0 -0
  275. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/fqdn.py +0 -0
  276. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/geolocation_list.py +0 -0
  277. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/identity.py +0 -0
  278. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/intrusion_prevention.py +0 -0
  279. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ips_signature.py +0 -0
  280. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/local_domain.py +0 -0
  281. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/protocol_list.py +0 -0
  282. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/scalable_group_tag.py +0 -0
  283. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/security_port.py +0 -0
  284. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption.py +0 -0
  285. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption_profile.py +0 -0
  286. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url.py +0 -0
  287. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url_filtering.py +0 -0
  288. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/zone.py +0 -0
  289. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/routing/__init__.py +0 -0
  290. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/routing/bgp.py +0 -0
  291. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/routing/ospf.py +0 -0
  292. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/routing/ospfv3.py +0 -0
  293. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/__init__.py +0 -0
  294. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/appqoe.py +0 -0
  295. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/dhcp_server.py +0 -0
  296. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/eigrp.py +0 -0
  297. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/common.py +0 -0
  298. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py +0 -0
  299. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/gre.py +0 -0
  300. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/ipsec.py +0 -0
  301. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/multilink.py +0 -0
  302. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/svi.py +0 -0
  303. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/multicast.py +0 -0
  304. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/object_tracker.py +0 -0
  305. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/route_policy.py +0 -0
  306. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/service_insertion_attachment.py +0 -0
  307. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/switchport.py +0 -0
  308. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/tracker.py +0 -0
  309. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/service/wireless_lan.py +0 -0
  310. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/sig_security/__init__.py +0 -0
  311. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/sig_security/sig_security.py +0 -0
  312. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/__init__.py +0 -0
  313. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/aaa.py +0 -0
  314. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/banner.py +0 -0
  315. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/basic.py +0 -0
  316. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/device_access.py +0 -0
  317. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/device_access_ipv6.py +0 -0
  318. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/global_parcel.py +0 -0
  319. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/logging_parcel.py +0 -0
  320. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/mrf.py +0 -0
  321. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/ntp.py +0 -0
  322. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/omp.py +0 -0
  323. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/security.py +0 -0
  324. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/system/snmp.py +0 -0
  325. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/topology/__init__.py +0 -0
  326. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/topology/custom_control.py +0 -0
  327. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/topology/hubspoke.py +0 -0
  328. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/topology/mesh.py +0 -0
  329. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +0 -0
  330. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_controller.py +0 -0
  331. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_profile.py +0 -0
  332. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/gps.py +0 -0
  333. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/management/ethernet.py +0 -0
  334. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/t1e1controller.py +0 -0
  335. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/vpn.py +0 -0
  336. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/cellular.py +0 -0
  337. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ethernet.py +0 -0
  338. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/gre.py +0 -0
  339. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ipsec.py +0 -0
  340. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/multilink.py +0 -0
  341. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/protocol_over.py +0 -0
  342. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/t1e1serial.py +0 -0
  343. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/network_hierarchy/__init__.py +0 -0
  344. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/network_hierarchy/cflowd.py +0 -0
  345. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/network_hierarchy/node.py +0 -0
  346. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/policy_group.py +0 -0
  347. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/profile_type.py +0 -0
  348. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/configuration/topology_group.py +0 -0
  349. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/device_inventory.py +0 -0
  350. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/feature_profile_parcel.py +0 -0
  351. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/misc/application_protocols.py +0 -0
  352. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/monitoring/security_policy.py +0 -0
  353. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/monitoring/server_info.py +0 -0
  354. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/__init__.py +0 -0
  355. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/centralized.py +0 -0
  356. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/access_control_list.py +0 -0
  357. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/access_control_list_ipv6.py +0 -0
  358. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/aip.py +0 -0
  359. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/amp.py +0 -0
  360. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/cflowd.py +0 -0
  361. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/control.py +0 -0
  362. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/device_access.py +0 -0
  363. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/device_access_ipv6.py +0 -0
  364. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/dns_security.py +0 -0
  365. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/hub_and_spoke.py +0 -0
  366. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/intrusion_prevention.py +0 -0
  367. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/mesh.py +0 -0
  368. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/qos_map.py +0 -0
  369. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/rewrite.py +0 -0
  370. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/route_policy.py +0 -0
  371. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/rule_set.py +0 -0
  372. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/security_group.py +0 -0
  373. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/ssl_decryption.py +0 -0
  374. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/ssl_decryption_utd_profile.py +0 -0
  375. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/traffic_data.py +0 -0
  376. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/url_filtering.py +0 -0
  377. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/vpn_membership.py +0 -0
  378. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/definition/zone_based_firewall.py +0 -0
  379. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/app.py +0 -0
  380. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/app_probe.py +0 -0
  381. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/as_path.py +0 -0
  382. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/class_map.py +0 -0
  383. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/color.py +0 -0
  384. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/communities.py +0 -0
  385. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/data_ipv6_prefix.py +0 -0
  386. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/data_prefix.py +0 -0
  387. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/fqdn.py +0 -0
  388. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/geo_location.py +0 -0
  389. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/identity.py +0 -0
  390. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/ips_signature.py +0 -0
  391. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/ipv6_prefix.py +0 -0
  392. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/local_app.py +0 -0
  393. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/local_domain.py +0 -0
  394. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/mirror.py +0 -0
  395. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/policer.py +0 -0
  396. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/port.py +0 -0
  397. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/preferred_color_group.py +0 -0
  398. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/prefix.py +0 -0
  399. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/protocol_name.py +0 -0
  400. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/region.py +0 -0
  401. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/scalable_group_tag.py +0 -0
  402. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/site.py +0 -0
  403. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/sla.py +0 -0
  404. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/threat_grid_api_key.py +0 -0
  405. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/tloc.py +0 -0
  406. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/trunkgroup.py +0 -0
  407. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/umbrella_data.py +0 -0
  408. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/url.py +0 -0
  409. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/vpn.py +0 -0
  410. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/list/zone.py +0 -0
  411. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/localized.py +0 -0
  412. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/policy.py +0 -0
  413. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/policy_definition.py +0 -0
  414. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/policy_list.py +0 -0
  415. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/policy/security.py +0 -0
  416. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/settings.py +0 -0
  417. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/templates.py +0 -0
  418. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/tenant.py +0 -0
  419. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/models/url_monitoring.py +0 -0
  420. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/response.py +0 -0
  421. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/session.py +0 -0
  422. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/__init__.py +0 -0
  423. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/models/__init__.py +0 -0
  424. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/__init__.py +0 -0
  425. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/__init__.py +0 -0
  426. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/aaa_basic.json +0 -0
  427. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/aaa_complex.json +0 -0
  428. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/basic/__init__.py +0 -0
  429. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/basic/alias.json +0 -0
  430. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/basic/basic.json +0 -0
  431. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/basic/basic_no_value.json +0 -0
  432. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/basic/children.json +0 -0
  433. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/basic/children_nested.json +0 -0
  434. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/basic/children_nested_datapath.json +0 -0
  435. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/basic/data_path.json +0 -0
  436. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_aaa.json +0 -0
  437. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_aaa_complex.json +0 -0
  438. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_banner.json +0 -0
  439. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_bfd.json +0 -0
  440. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_logging_complex.json +0 -0
  441. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_ntp_complex.json +0 -0
  442. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_omp_complex.json +0 -0
  443. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_ospf_complex.json +0 -0
  444. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_sig.json +0 -0
  445. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_snmp_complex.json +0 -0
  446. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_system_complex.json +0 -0
  447. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_vpn_basic.json +0 -0
  448. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_vpn_complex.json +0 -0
  449. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/cisco_vpn_interface_complex.json +0 -0
  450. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/default_cisco_system.json +0 -0
  451. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/omp_vsmart_1.json +0 -0
  452. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/omp_vsmart_2.json +0 -0
  453. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/omp_vsmart_3.json +0 -0
  454. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/omp_vsmart_complex.json +0 -0
  455. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/security_vsmart_complex.json +0 -0
  456. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/system_vsmart_complex.json +0 -0
  457. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/vpn_vsmart_basic.json +0 -0
  458. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/vpn_vsmart_complex.json +0 -0
  459. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/vpn_vsmart_interface_basic.json +0 -0
  460. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/definitions/vpn_vsmart_interface_complex.json +0 -0
  461. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/__init__.py +0 -0
  462. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/aaa.py +0 -0
  463. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/cisco_aaa.py +0 -0
  464. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/cisco_banner.py +0 -0
  465. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/cisco_bfd.py +0 -0
  466. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/cisco_logging.py +0 -0
  467. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/cisco_ntp.py +0 -0
  468. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/cisco_omp.py +0 -0
  469. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/cisco_ospf.py +0 -0
  470. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/cisco_secure_internet_gateway.py +0 -0
  471. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/cisco_snmp.py +0 -0
  472. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/cisco_system.py +0 -0
  473. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/cisco_vpn.py +0 -0
  474. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/cisco_vpn_interface.py +0 -0
  475. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/omp_vsmart.py +0 -0
  476. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/security_vsmart.py +0 -0
  477. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/system_vsmart.py +0 -0
  478. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/vpn_vsmart.py +0 -0
  479. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/models/vpn_vsmart_interface.py +0 -0
  480. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/aaa.json +0 -0
  481. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/basic/alias.json +0 -0
  482. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/basic/basic.json +0 -0
  483. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/basic/children.json +0 -0
  484. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/basic/children_nested.json +0 -0
  485. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/basic/children_nested_datapath.json +0 -0
  486. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/basic/data_path.json +0 -0
  487. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/cedge_aaa.json +0 -0
  488. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/cisco_banner.json +0 -0
  489. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/cisco_bfd.json +0 -0
  490. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/cisco_logging.json +0 -0
  491. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/cisco_ntp.json +0 -0
  492. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/cisco_omp.json +0 -0
  493. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/cisco_ospf.json +0 -0
  494. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/cisco_secure_internet_gateway.json +0 -0
  495. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/cisco_snmp.json +0 -0
  496. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/cisco_system.json +0 -0
  497. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/cisco_vpn.json +0 -0
  498. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/cisco_vpn_interface.json +0 -0
  499. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/omp-vsmart.json +0 -0
  500. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/security-vsmart.json +0 -0
  501. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/system-vsmart.json +0 -0
  502. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/vpn-vsmart-interface.json +0 -0
  503. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/schemas/vpn-vsmart.json +0 -0
  504. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/test_chose_model.py +0 -0
  505. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/test_deserialize_model.py +0 -0
  506. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/test_find_template_values.py +0 -0
  507. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/test_find_template_values_2.py +0 -0
  508. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/test_generate_payload.py +0 -0
  509. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/templates/test_serialize_model.py +0 -0
  510. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_admin_tech_api.py +0 -0
  511. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_administration.py +0 -0
  512. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_alarms_api.py +0 -0
  513. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_cli_template.py +0 -0
  514. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_creation_tools.py +0 -0
  515. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_device_action_api.py +0 -0
  516. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_devices_api.py +0 -0
  517. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_endpoints.py +0 -0
  518. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_feature_profile_api.py +0 -0
  519. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_feature_template_field.py +0 -0
  520. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_logs_api.py +0 -0
  521. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_models_common.py +0 -0
  522. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_monitoring_security_policy.py +0 -0
  523. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_monitoring_server_info.py +0 -0
  524. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_monitoring_status_api.py +0 -0
  525. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_mtt_aaa_api.py +0 -0
  526. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_omp_api.py +0 -0
  527. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_packet_capture.py +0 -0
  528. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_partition_manager_api.py +0 -0
  529. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_response.py +0 -0
  530. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_session.py +0 -0
  531. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_software_action_api.py +0 -0
  532. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_speed_test_api.py +0 -0
  533. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_task_status_api.py +0 -0
  534. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_templates.py +0 -0
  535. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_tenant_backup_restore_api.py +0 -0
  536. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_tenant_management_api.py +0 -0
  537. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_tenant_migration_api.py +0 -0
  538. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_typed_list.py +0 -0
  539. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_url_monitoring.py +0 -0
  540. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_version.py +0 -0
  541. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_version_utils.py +0 -0
  542. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/tests/test_vmanage_auth.py +0 -0
  543. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/typed_list.py +0 -0
  544. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/__init__.py +0 -0
  545. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/alarm_status.py +0 -0
  546. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/certificate_status.py +0 -0
  547. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/colors.py +0 -0
  548. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/config_status.py +0 -0
  549. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/creation_tools.py +0 -0
  550. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/dashboard.py +0 -0
  551. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/dict.py +0 -0
  552. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/feature_template/choose_model.py +0 -0
  553. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/feature_template/find_template_values.py +0 -0
  554. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/model.py +0 -0
  555. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/operation_status.py +0 -0
  556. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/personality.py +0 -0
  557. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/pydantic_field.py +0 -0
  558. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/reachability.py +0 -0
  559. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/session_type.py +0 -0
  560. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/template_type.py +0 -0
  561. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/type_check.py +0 -0
  562. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/upgrades_helper.py +0 -0
  563. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/utils/validate_status.py +0 -0
  564. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/version.py +0 -0
  565. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/vmanage_auth.py +0 -0
  566. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/workflows/backup_restore_device_templates.py +0 -0
  567. {catalystwan-0.35.4.dev2 → catalystwan-0.35.4.dev4}/catalystwan/workflows/tenant_migration.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: catalystwan
3
- Version: 0.35.4.dev2
3
+ Version: 0.35.4.dev4
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
@@ -909,9 +909,8 @@ class ServiceFeatureProfileAPI:
909
909
  def update_parcel(
910
910
  self,
911
911
  profile_id: UUID,
912
- parcel_type: Type[AnyServiceParcel],
913
- parcel_id: UUID,
914
912
  payload: AnyServiceParcel,
913
+ parcel_id: UUID,
915
914
  vpn_uuid: Optional[UUID] = None,
916
915
  ) -> ParcelCreationResponse:
917
916
  """
@@ -919,9 +918,9 @@ class ServiceFeatureProfileAPI:
919
918
  """
920
919
  if vpn_uuid is not None:
921
920
  return self.endpoint.update_lan_vpn_sub_parcel(
922
- profile_id, vpn_uuid, removeprefix(parcel_type._get_parcel_type(), "lan/vpn/"), parcel_id, payload
921
+ profile_id, vpn_uuid, removeprefix(payload._get_parcel_type(), "lan/vpn/"), parcel_id, payload
923
922
  )
924
- return self.endpoint.update(profile_id, parcel_type._get_parcel_type(), parcel_id, payload)
923
+ return self.endpoint.update(profile_id, payload._get_parcel_type(), parcel_id, payload)
925
924
 
926
925
 
927
926
  class SystemFeatureProfileAPI:
@@ -1869,7 +1868,7 @@ class CliFeatureProfileAPI:
1869
1868
  """
1870
1869
  return self.endpoint.create(profile_id, config)
1871
1870
 
1872
- def update_parcel(self, profile_id: UUID, parcel_id: UUID, config: ConfigParcel) -> ParcelCreationResponse:
1871
+ def update_parcel(self, profile_id: UUID, config: ConfigParcel, parcel_id: UUID) -> ParcelCreationResponse:
1873
1872
  """
1874
1873
  Update CLI Parcel for selected profile_id
1875
1874
  """
@@ -147,7 +147,7 @@ class TestServiceFeatureProfileModels(TestCaseBase):
147
147
 
148
148
  dhcp_server_parcel.address_pool.network_address = Global[IPv4Address](value=IPv4Address("10.3.2.1"))
149
149
  dhcp_server_parcel.address_pool.subnet_mask = Global[SubnetMask](value="248.0.0.0")
150
- parcel_id = self.api.update_parcel(self.profile_uuid, LanVpnDhcpServerParcel, parcel_id, dhcp_server_parcel).id
150
+ parcel_id = self.api.update_parcel(self.profile_uuid, dhcp_server_parcel, parcel_id).id
151
151
  parcel = self.api.get_parcel(self.profile_uuid, LanVpnDhcpServerParcel, parcel_id)
152
152
  assert isinstance(parcel.payload, LanVpnDhcpServerParcel)
153
153
  assert parcel.payload == dhcp_server_parcel
@@ -3,10 +3,10 @@ from ipaddress import IPv4Address, IPv4Interface
3
3
  from typing import List, Literal, Optional, Tuple, Union
4
4
  from uuid import UUID
5
5
 
6
- from pydantic import AliasPath, BaseModel, ConfigDict, Field
6
+ from pydantic import AliasPath, BaseModel, ConfigDict, Field, model_validator
7
7
 
8
8
  from catalystwan.api.configuration_groups.parcel import Default, Global, Variable, _ParcelBase, as_global, as_variable
9
- from catalystwan.models.common import AcceptDropActionType
9
+ from catalystwan.models.common import AcceptDropActionType, check_fields_exclusive
10
10
  from catalystwan.models.configuration.feature_profile.common import RefIdItem
11
11
 
12
12
  IcmpIPv4Messages = Literal[
@@ -162,7 +162,7 @@ class DropAction(BaseModel):
162
162
 
163
163
 
164
164
  class Sequence(BaseModel):
165
- model_config = ConfigDict(populate_by_name=True, validate_assignment=True)
165
+ model_config = ConfigDict(populate_by_name=True)
166
166
  actions: Optional[List[Union[AcceptAction, DropAction]]] = Field(
167
167
  default=None, description="Define list of actions", max_length=1, min_length=1
168
168
  )
@@ -184,26 +184,33 @@ class Sequence(BaseModel):
184
184
  default=None, validation_alias="sequenceName", serialization_alias="sequenceName"
185
185
  )
186
186
 
187
- @property
188
- def _action(self) -> Union[AcceptAction, DropAction]:
187
+ @model_validator(mode="after")
188
+ def check_base_action_xor_actions(self):
189
+ check_fields_exclusive(self.__dict__, {"base_action", "actions"}, True)
190
+ return self
191
+
192
+ def _action(self, mode: Optional[AcceptDropActionType] = None) -> Union[AcceptAction, DropAction]:
193
+ if mode is None and self.base_action is not None:
194
+ _mode = self.base_action.value
195
+ else:
196
+ _mode = mode
197
+ self.base_action = None
189
198
  if self.actions is None:
190
- if self.base_action is None:
191
- self.base_action = Global[AcceptDropActionType](value="accept")
192
- if self.base_action.value == "accept":
193
- self.actions = [(AcceptAction(accept=Accept()))]
194
- else:
199
+ if _mode == "drop":
195
200
  self.actions = [(DropAction(drop=Drop()))]
201
+ else:
202
+ self.actions = [(AcceptAction(accept=Accept()))]
196
203
  return self.actions[0]
197
204
 
198
205
  @property
199
206
  def _accept_action(self) -> Accept:
200
- action = self._action
207
+ action = self._action("accept")
201
208
  assert isinstance(action, AcceptAction), "Sequence action must be set to accept"
202
209
  return action.accept
203
210
 
204
211
  @property
205
212
  def _drop_action(self) -> Drop:
206
- action = self._action
213
+ action = self._action("drop")
207
214
  assert isinstance(action, DropAction), "Sequence action must be set to drop"
208
215
  return action.drop
209
216
 
@@ -283,13 +290,13 @@ class Sequence(BaseModel):
283
290
  self._entry.tcp = as_global("syn", Literal["syn"])
284
291
 
285
292
  def associate_log_action(self):
286
- if isinstance(self._action, DropAction):
293
+ if isinstance(self._action(), DropAction):
287
294
  self._drop_action.log = as_global(True)
288
295
  else:
289
296
  self._accept_action.log = as_global(True)
290
297
 
291
298
  def associate_counter_action(self, name: str):
292
- if isinstance(self._action, DropAction):
299
+ if isinstance(self._action(), DropAction):
293
300
  self._drop_action.counter_name = as_global(name)
294
301
  else:
295
302
  self._accept_action.counter_name = as_global(name)
@@ -321,8 +328,12 @@ class Ipv4AclParcel(_ParcelBase):
321
328
  self.default_action = as_global(action, AcceptDropActionType)
322
329
 
323
330
  def add_sequence(self, name: str, id_: int, base_action: Optional[AcceptDropActionType] = None) -> Sequence:
331
+ if base_action is not None:
332
+ _base_action = as_global(base_action, AcceptDropActionType)
333
+ else:
334
+ _base_action = Default[Literal["accept"]](value="accept")
324
335
  seq = Sequence(
325
- base_action=as_global(base_action, AcceptDropActionType) if base_action is not None else None,
336
+ base_action=_base_action,
326
337
  sequence_id=as_global(id_),
327
338
  sequence_name=as_global(name),
328
339
  )
@@ -2,10 +2,10 @@ from ipaddress import IPv6Address, IPv6Interface
2
2
  from typing import List, Literal, Optional, Tuple, Union
3
3
  from uuid import UUID
4
4
 
5
- from pydantic import AliasPath, BaseModel, ConfigDict, Field
5
+ from pydantic import AliasPath, BaseModel, ConfigDict, Field, model_validator
6
6
 
7
7
  from catalystwan.api.configuration_groups.parcel import Default, Global, _ParcelBase, as_global
8
- from catalystwan.models.common import AcceptDropActionType
8
+ from catalystwan.models.common import AcceptDropActionType, check_fields_exclusive
9
9
  from catalystwan.models.configuration.feature_profile.common import RefIdItem
10
10
 
11
11
 
@@ -192,26 +192,33 @@ class Sequence(BaseModel):
192
192
  default=None, validation_alias="sequenceName", serialization_alias="sequenceName"
193
193
  )
194
194
 
195
- @property
196
- def _action(self) -> Union[AcceptAction, DropAction]:
195
+ @model_validator(mode="after")
196
+ def check_base_action_xor_actions(self):
197
+ check_fields_exclusive(self.__dict__, {"base_action", "actions"}, True)
198
+ return self
199
+
200
+ def _action(self, mode: Optional[AcceptDropActionType] = None) -> Union[AcceptAction, DropAction]:
201
+ if mode is None and self.base_action is not None:
202
+ _mode = self.base_action.value
203
+ else:
204
+ _mode = mode
205
+ self.base_action = None
197
206
  if self.actions is None:
198
- if self.base_action is None:
199
- self.base_action = Global[AcceptDropActionType](value="accept")
200
- if self.base_action.value == "accept":
201
- self.actions = [(AcceptAction(accept=Accept()))]
202
- else:
207
+ if _mode == "drop":
203
208
  self.actions = [(DropAction(drop=Drop()))]
209
+ else:
210
+ self.actions = [(AcceptAction(accept=Accept()))]
204
211
  return self.actions[0]
205
212
 
206
213
  @property
207
214
  def _accept_action(self) -> Accept:
208
- action = self._action
215
+ action = self._action("accept")
209
216
  assert isinstance(action, AcceptAction), "Sequence action must be set to accept"
210
217
  return action.accept
211
218
 
212
219
  @property
213
220
  def _drop_action(self) -> Drop:
214
- action = self._action
221
+ action = self._action("drop")
215
222
  assert isinstance(action, DropAction), "Sequence action must be set to drop"
216
223
  return action.drop
217
224
 
@@ -282,13 +289,13 @@ class Sequence(BaseModel):
282
289
  self._entry.traffic_class = as_global(classes)
283
290
 
284
291
  def associate_log_action(self):
285
- if isinstance(self._action, DropAction):
292
+ if isinstance(self._action(), DropAction):
286
293
  self._drop_action.log = as_global(True)
287
294
  else:
288
295
  self._accept_action.log = as_global(True)
289
296
 
290
297
  def associate_counter_action(self, name: str):
291
- if isinstance(self._action, DropAction):
298
+ if isinstance(self._action(), DropAction):
292
299
  self._drop_action.counter_name = as_global(name)
293
300
  else:
294
301
  self._accept_action.counter_name = as_global(name)
@@ -320,8 +327,12 @@ class Ipv6AclParcel(_ParcelBase):
320
327
  self.default_action = as_global(action, AcceptDropActionType)
321
328
 
322
329
  def add_sequence(self, name: str, id_: int, base_action: Optional[AcceptDropActionType] = None) -> Sequence:
330
+ if base_action is not None:
331
+ _base_action = as_global(base_action, AcceptDropActionType)
332
+ else:
333
+ _base_action = Default[Literal["accept"]](value="accept")
323
334
  seq = Sequence(
324
- base_action=as_global(base_action, AcceptDropActionType) if base_action is not None else None,
335
+ base_action=_base_action,
325
336
  sequence_id=as_global(id_),
326
337
  sequence_name=as_global(name),
327
338
  )
@@ -294,9 +294,15 @@ class SlaClass(BaseModel):
294
294
  class LocalTlocList(BaseModel):
295
295
  model_config = ConfigDict(populate_by_name=True, extra="forbid")
296
296
  color: Global[List[TLOCColor]] = Field(default=None)
297
- encap: Optional[Global[EncapType]] = Field(default=None)
297
+ encap: Optional[Union[Global[EncapType], Global[List[EncapType]]]] = Field(
298
+ default=None, description="encap is list <=20.12"
299
+ )
298
300
  restrict: Optional[Global[bool]] = Field(default=None)
299
301
 
302
+ def make_encap_list(self):
303
+ if self.encap is not None and self.encap.value is not None and not isinstance(self.encap.value, List):
304
+ self.encap = Global[List[EncapType]](value=[self.encap.value])
305
+
300
306
 
301
307
  class PreferredRemoteColor(BaseModel):
302
308
  model_config = ConfigDict(populate_by_name=True, extra="forbid")
@@ -355,6 +361,10 @@ class SetLocalTlocList(BaseModel):
355
361
  default=None, validation_alias="localTlocList", serialization_alias="localTlocList"
356
362
  )
357
363
 
364
+ def make_encap_list(self):
365
+ if self.local_tloc_list is not None:
366
+ self.local_tloc_list.make_encap_list()
367
+
358
368
 
359
369
  class SetNextHop(BaseModel):
360
370
  model_config = ConfigDict(populate_by_name=True, extra="forbid")
@@ -845,13 +855,15 @@ class Sequence(BaseModel):
845
855
 
846
856
  def associate_local_tloc_list_action(
847
857
  self, color: List[TLOCColor], encap: Optional[EncapType] = None, restrict: bool = False
848
- ) -> None:
858
+ ) -> SetLocalTlocList:
849
859
  tloc_list = LocalTlocList(
850
860
  color=Global[List[TLOCColor]](value=color),
851
861
  encap=as_optional_global(encap, EncapType),
852
862
  restrict=as_global(restrict),
853
863
  )
854
- self._insert_action_in_set(SetLocalTlocList(local_tloc_list=tloc_list))
864
+ set_local_tloc_list = SetLocalTlocList(local_tloc_list=tloc_list)
865
+ self._insert_action_in_set(set_local_tloc_list)
866
+ return set_local_tloc_list
855
867
 
856
868
  def associate_next_hop_action(self, ip: IPv4Address) -> None:
857
869
  self._insert_action_in_set(SetNextHop(next_hop=as_global(ip)))
@@ -329,7 +329,7 @@ class StaticRouteIPv4(BaseModel):
329
329
  class StaticRouteIPv6(BaseModel):
330
330
  model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True)
331
331
 
332
- prefix: RoutePrefix
332
+ prefix: Union[Global[IPv6Interface], Variable] = Field()
333
333
  one_of_ip_route: Union[NextHopRouteIPv6Container, Null0IPv6, NAT, InterfaceRouteIPv6Container] = Field(
334
334
  serialization_alias="oneOfIpRoute", validation_alias="oneOfIpRoute"
335
335
  )
@@ -12,7 +12,7 @@ class Color(BaseModel):
12
12
  default=as_default(1000), validation_alias="helloInterval", serialization_alias="helloInterval"
13
13
  )
14
14
  multiplier: Optional[Union[Global[int], Default[int]]] = as_default(7)
15
- pmtu_discovery: Optional[Union[Global[bool], Default[int]]] = Field(
15
+ pmtu_discovery: Optional[Union[Global[bool], Default[bool]]] = Field(
16
16
  default=as_default(True), validation_alias="pmtuDiscovery", serialization_alias="pmtuDiscovery"
17
17
  )
18
18
  dscp: Optional[Union[Global[int], Default[int]]] = as_default(48)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "catalystwan"
3
- version = "0.35.4dev2"
3
+ version = "0.35.4dev4"
4
4
  description = "Cisco Catalyst WAN SDK for Python"
5
5
  authors = ["kagorski <kagorski@cisco.com>"]
6
6
  readme = "README.md"
@@ -88,7 +88,7 @@ install_requires = \
88
88
 
89
89
  setup_kwargs = {
90
90
  'name': 'catalystwan',
91
- 'version': '0.35.4.dev2',
91
+ 'version': '0.35.4.dev4',
92
92
  'description': 'Cisco Catalyst WAN SDK for Python',
93
93
  'long_description': '<p align="center">\n <a href="#"><img src="docs/images/catalystwan.svg" alt="Cisco Catalyst WAN SDK Logo" style="height:150px" />\n</p>\n\n[![Python-Supported](https://img.shields.io/static/v1?label=Python&logo=Python&color=3776AB&message=3.8%20|%203.9%20|%203.10%20|%203.11%20|%203.12)](https://www.python.org/)\n\nCisco Catalyst WAN SDK is a package for creating simple and parallel automatic requests via official SD-WAN Manager API. It is intended to serve as a multiple session handler (provider, provider as a tenant, tenant). The library is not dependent on environment which is being run in, you just need a connection to any SD-WAN Manager.\n\n## Important Notice: Early Beta Release\n\nWelcome to the Cisco Catalyst WAN SDK!\n\nWe are thrilled to announce that Cisco Catalyst WAN SDK is now available in early beta. This is an exciting step forward in enabling developers to harness the full potential of Cisco\'s networking solutions. Please be aware that, as an early beta release, this version of the SDK is still undergoing development and testing. As such, it is provided "as is" and support to address any issues are limited and best effort.\n\n## Not recommend to use in production environments.\nWe encourage developers to explore and test the SDK\'s capabilities, but please exercise caution when using it in production environments. We are dedicated to improving the Cisco Catalyst WAN SDK and we value your input. Your feedback is crucial to us-it will guide us in refining and enhancing the SDK to better meet your needs.\nTo report any issues, share your insights, or suggest improvements, please visit our Issues page on GitHub or reach out to us through the provided communication channels.\n\nThank you for being a part of our development journey!\n\n## Installation\n```console\npip install catalystwan\n```\n\n## Manager Session\nIn order to execute SDK APIs **ManagerSession** needs to be created. The fastest way to get started is to use `create_manager_session()` method which configures session, performs authentication for given credentials and returns **ManagerSession** instance in operational state. **ManagerSession** provides a collection of supported APIs in `api` instance variable.\nPlease check example below:\n\n```python\nfrom catalystwan.session import create_manager_session\n\nurl = "example.com"\nusername = "admin"\npassword = "password123"\n\nwith create_manager_session(url=url, username=username, password=password) as session:\n devices = session.api.devices.get()\n print(devices)\n```\n\n**ManagerSession** extends [requests.Session](https://requests.readthedocs.io/en/latest/user/advanced/#session-objects) so all functionality from [requests](https://requests.readthedocs.io/en/latest/) library is avaiable to user, it also implements python [contextmanager](https://docs.python.org/3.8/library/contextlib.html#contextlib.contextmanager) and automatically frees server resources on exit.\n\n<details>\n <summary> <b>Configure Manager Session before using</b> <i>(click to expand)</i></summary>\n\nIt is possible to configure **ManagerSession** prior sending any request.\n\n```python\nfrom catalystwan.session import ManagerSession\nfrom catalystwan.vmanage_auth import vManageAuth\n\nurl = "example.com"\nusername = "admin"\npassword = "password123"\n\n# configure session using constructor - nothing will be sent to target server yet\nauth = vManageAuth(username, password)\nsession = ManagerSession(url=url, auth=auth)\n# login and send requests\nsession.login()\nsession.get("/dataservice/device")\nsession.close()\n```\nWhen interacting with the SDWAN Manager API without using a context manager, it\'s important \nto manually execute the `close()` method to release the user session resource.\nEnsure that the `close()` method is called after you have finished using the session to maintain optimal resource management and avoid potential errors.\n\n</details>\n\n<details>\n <summary> <b>Login as Tenant</b> <i>(click to expand)</i></summary>\n\nTenant domain needs to be provided in url together with Tenant credentials.\n\n```python\nfrom catalystwan.session import create_manager_session\n\nurl = "tenant.example.com"\nusername = "tenant_user"\npassword = "password123"\n\nwith create_manager_session(url=url, username=username, password=password) as session:\n print(session.session_type)\n```\n\n</details>\n\n<details>\n <summary> <b>Login as Provider-as-Tenant</b> <i>(click to expand)</i></summary>\n\nTenant `subdomain` needs to be provided as additional argument together with Provider credentials.\n\n```python\nfrom catalystwan.session import create_manager_session\n\nurl = "example.com"\nusername = "provider"\npassword = "password123"\nsubdomain = "tenant.example.com"\n\nwith create_manager_session(url=url, username=username, password=password, subdomain=subdomain) as session:\n print(session.session_type)\n```\n\n</details>\n\n<details>\n <summary> <b>Login using Api Gateway</b> <i>(click to expand)</i></summary>\n\n```python\nfrom catalystwan.session import create_apigw_session\n\nwith create_apigw_session(\n url="example.com",\n client_id="client_id",\n client_secret="client_secret",\n org_name="Org-Name",\n username="user",\n mode="user",\n token_duration=10,\n) as session:\n devices = session.api.devices.get()\n print(devices)\n```\n</details>\n\n\n## API usage examples\nAll examples below assumes `session` variable contains logged-in [Manager Session](#Manager-Session) instance.\n\n<details>\n <summary> <b>Get devices</b> <i>(click to expand)</i></summary>\n\n```python\ndevices = session.api.devices.get()\n```\n\n</details>\n\n<details>\n <summary> <b>Admin Tech</b> <i>(click to expand)</i></summary>\n\n```Python\nadmin_tech_file = session.api.admin_tech.generate("172.16.255.11")\nsession.api.admin_tech.download(admin_tech_file)\nsession.api.admin_tech.delete(admin_tech_file)\n```\n</details>\n\n<details>\n <summary> <b>Speed test</b> <i>(click to expand)</i></summary>\n\n```python\ndevices = session.api.devices.get()\nspeedtest = session.api.speedtest.speedtest(devices[0], devices[1])\n```\n\n</details>\n\n<details>\n <summary> <b>Upgrade device</b> <i>(click to expand)</i></summary>\n\n```python\n# Prepare devices list\ncontrollers = session.endpoints.configuration_device_inventory.get_device_details(\'controllers\')\nvsmarts = controllers.filter(personality=Personality.VSMART)\nimage = "viptela-20.7.2-x86_64.tar.gz"\n\n# Upload image\nsession.api.repository.upload_image(image)\n\n# Install software\n\ninstall_task = session.api.software.install(devices=vsmarts, image=image)\n\n# Check action status\ninstall_task.wait_for_completed()\n```\n\n</details>\n\n<details>\n <summary> <b>Get alarms</b> <i>(click to expand)</i></summary>\nTo get all alarms:\n\n```python\nalarms = session.api.alarms.get()\n```\n\nTo get all not viewed alarms:\n\n```python\nnot_viewed_alarms = session.api.alarms.get().filter(viewed=False)\n```\n\nTo get all alarms from past `n` hours:\n\n```python\nn = 24\nalarms_from_n_hours = session.api.alarms.get(from_time=n)\n```\n\nTo get all critical alarms from past `n` hours:\n\n```python\nfrom catalystwan.utils.alarm_status import Severity\nn = 48\ncritical_alarms = session.api.alarms.get(from_time=n).filter(severity=Severity.CRITICAL)\n```\n\n</details>\n\n<details>\n <summary> <b>Users</b> <i>(click to expand)</i></summary>\n\n```python\n# Get all users\nsession.api.users.get()\n\n# Create user\nfrom catalystwan.endpoints.administration_user_and_group import User\nnew_user = User(username="new_user", password="new_user", group=["netadmin"], description="new user")\nsession.api.users.create(new_user)\n\n# Update user data\nnew_user_update = UserUpdateRequest(username="new_user", group=["netadmin", "netops"], locale="en_US", description="updated-new_user-description")\nsession.api.users.update(new_user_update)\n\n# Update user password\nsession.api.users.update_password("new_user", "n3W-P4s$w0rd")\n\n# Reset user\nsession.api.users.reset("new_user")\n\n# Delete user\nsession.api.users.delete("new_user")\n\n# Get current user authentication type and role\nsession.api.users.get_auth_type()\nsession.api.users.get_role()\n```\n\n</details>\n\n<details>\n <summary> <b>User Groups</b> <i>(click to expand)</i></summary>\n\n```python\n# Get all user groups\nsession.api.user_groups.get()\n\n# Create user group\ngroup = UserGroup("new_user_group", [])\ngroup.enable_read({"Audit Log", "Alarms"})\ngroup.enable_read_and_write({"Device Inventory"})\nsession.api.user_groups.create(group)\n\n# Update user group\ngroup.disable({"Alarms"})\nsession.api.user_groups.update(group)\n\n# Delete user group\nsession.api.user_groups.delete(group.group_name)\n```\n\n</details>\n\n</details>\n\n<details>\n <summary> <b>Sessions</b> <i>(click to expand)</i></summary>\n\n```python\n# Get all active sessions\nactive_sessions = session.api.sessions.get()\n\n# Invalidate sessions for given user\nnew_user_sessions = active_sessions.filter(raw_username="new_user")\nsession.api.sessions.invalidate(new_user_sessions)\n```\n\n</details>\n\n<details>\n <summary> <b>Resource Groups</b> <i>(click to expand)</i></summary>\n\n```python\n# get resource groups\nsession.api.resource_groups.get()\n\n# create resource group\nnew_resource_group = ResourceGroup(\n name="new_resource_group",\n desc="Custom Resource Group #1",\n siteIds=[]\n)\nsession.api.resource_groups.create(new_resource_group)\n\n# update resource group\nresource_group = session.api.resource_groups.get().filter(name="new_resource_group").single_or_default()\nupdated_resource_group = ResourceGroupUpdateRequest(\n id=resource_group.id,\n name=resource_group.name,\n desc="Custom Resource Group #1 with updated description and site ids",\n siteIds=[200]\n)\n\n# switch to resource group view\nsession.api.resource_groups.switch("new_resource_group")\n\n# delete resource group\nsession.api.resource_groups.delete(resource_group.id)\n```\n\n</details>\n\n<details>\n <summary> <b>Tenant management</b> <i>(click to expand)</i></summary>\n\n```python\napi = session.api.tenant_management\n# create tenants\ntenants = [\n Tenant(\n name="tenant1",\n org_name="CiscoDevNet",\n subdomain="alpha.bravo.net",\n desc="This is tenant for unit tests",\n edge_connector_enable=True,\n edge_connector_system_ip="172.16.255.81",\n edge_connector_tunnel_interface_name="GigabitEthernet1",\n wan_edge_forecast=1,\n )\n]\ncreate_task = api.create(tenants)\ncreate_task.wait_for_completed()\n# list all tenants\ntenants_data = api.get_all()\n# pick tenant from list by name\ntenant = tenants_data.filter(name="tenant1").single_or_default()\n# get selected tenant id\ntenant_id = tenant.tenant_id\n# get vsession id of selected tenant\nvsessionid = api.vsession_id(tenant_id)\n# delete tenant by ids\ndelete_task = api.delete([tenant_id])\ndelete_task.wait_for_completed()\n# others\napi.get_hosting_capacity_on_vsmarts()\napi.get_statuses()\napi.get_vsmart_mapping()\n```\n</details>\n\n<details>\n <summary> <b>Tenant migration</b> <i>(click to expand)</i></summary>\n\n```python\nfrom pathlib import Path\nfrom catalystwan.session import create_manager_session\nfrom catalystwan.models.tenant import TenantExport\nfrom catalystwan.workflows.tenant_migration import migration_workflow\n\ntenant = TenantExport(\n name="mango",\n desc="Mango tenant description",\n org_name="Provider Org-Mango Inc",\n subdomain="mango.fruits.com",\n wan_edge_forecast=100,\n migration_key="MangoTenantMigrationKey", # only for SDWAN Manager >= 20.13\n is_destination_overlay_mt=True, # only for SDWAN Manager >= 20.13\n)\n\nwith create_manager_session(url="10.0.1.15", username="st-admin", password="") as origin_session, \\\n create_manager_session(url="10.9.0.16", username="mt-provider-admin", password="") as target_session:\n migration_workflow(\n origin_session=origin_session,\n target_session=target_session,\n workdir=Path("workdir"),\n tenant=tenant,\n validator="10.9.12.26"\n )\n```\n\n`migration_workflow` performs multi-step migration procedure according to [Migrate Single-Tenant Cisco SD-WAN Overlay to Multitenant Cisco SD-WAN Deployment](https://www.cisco.com/c/en/us/td/docs/routers/sdwan/configuration/system-interface/vedge-20-x/systems-interfaces-book/sdwan-multitenancy.html#concept_sjj_jmm_z4b)\n\n\nSince 20.13 also MT to ST is supported (just provide suitable origin/target sessions, and `is_destination_overlay_mt` parameter)\n\n\nEach step of the `migration_workflow` procedure can be executed independently using api methods: `export_tenant`, `download`, `import_tenant`, `store_token`, `migrate_network`\n\n```python\norigin_api = origin_session.api.tenant_migration_api\ntarget_api = target_session.api.tenant_migration_api\ntenant_file = Path("~/tenant.tar.gz")\ntoken_file = Path("~/tenant-token.txt")\n# export\nexport_task = origin_api.export_tenant(tenant=tenant)\nremote_filename = export_task.wait_for_file()\n# download\norigin_api.download(export_path, remote_filename)\n# import\nimport_task = target_api.import_tenant(export_path, tenant.migration_key)\nimport_task.wait_for_completed()\n# get token\nmigration_id = import_task.import_info.migration_token_query_params.migration_id\ntarget_api.store_token(migration_id, token_path)\n# migrate network\nmigrate_task = origin_api.migrate_network(token_path)\nmigrate_task.wait_for_completed()\n```\n</details>\n\n<details>\n <summary> <b>Feature Templates</b> <i>(click to expand)</i></summary>\n\n```python\nfrom catalystwan.api.templates.models.omp_vsmart_model import OMPvSmart\n\nomp_vsmart = OMPvSmart(\n name="my_first_template",\n description="NA",\n device_models=["vsmart"]\n\n)\n\nsession.api.templates.create(omp_vsmart)\n```\n\nMore details about how to use and how to add new: [Feature Templates README.md](https://github.com/cisco-open/cisco-catalyst-wan-sdk/blob/main/catalystwan/api/templates/README.md)\n</details>\n\n### Note:\nTo remove `InsecureRequestWarning`, you can include in your scripts (warning is suppressed when `catalystwan_devel` environment variable is set):\n```Python\nimport urllib3\nurllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)\n```\n\n## Catching Exceptions\n```python\ntry:\n session.api.users.delete("bogus-user-name")\nexcept ManagerHTTPError as error:\n # Process an error.\n print(error.response.status_code)\n print(error.info.code)\n print(error.info.message)\n print(error.info.details)\n\n```\n\n## [Supported API endpoints](https://github.com/cisco-open/cisco-catalyst-wan-sdk/blob/main/ENDPOINTS.md)\n\n## [Contributing, bug reporting and feature requests](https://github.com/cisco-open/cisco-catalyst-wan-sdk/blob/main/CONTRIBUTING.md)\n\n## Seeking support\n\nYou can contact us by submitting [issues](https://github.com/cisco-open/cisco-catalyst-wan-sdk/issues), or directly via mail on catalystwan@cisco.com.\n',
94
94
  'author': 'kagorski',