catalystwan 0.33.4.dev2__tar.gz → 0.33.4.dev5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/PKG-INFO +1 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/builders/feature_profiles/builder_factory.py +8 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/builders/feature_profiles/other.py +10 -4
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/builders/feature_profiles/service.py +13 -10
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/builders/feature_profiles/system.py +10 -2
- catalystwan-0.33.4.dev5/catalystwan/api/builders/feature_profiles/transport.py +116 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/configuration_groups/parcel.py +22 -5
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/feature_profile_api.py +65 -2
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/policy_api.py +42 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/feature_profile/sdwan/transport.py +38 -11
- catalystwan-0.33.4.dev5/catalystwan/endpoints/configuration/policy/definition/aip.py +52 -0
- catalystwan-0.33.4.dev5/catalystwan/endpoints/configuration/policy/definition/intrusion_prevention.py +52 -0
- catalystwan-0.33.4.dev5/catalystwan/endpoints/configuration/policy/definition/url_filtering.py +50 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_group.py +5 -2
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/exceptions.py +11 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/integration_tests/feature_profile/sdwan/test_system.py +12 -0
- catalystwan-0.33.4.dev5/catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +349 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/common.py +61 -15
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/config_migration.py +1 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/parcel.py +5 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/expanded_community_list.py +4 -4
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/appqoe.py +1 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/route_policy.py +1 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/aaa.py +3 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/omp.py +2 -2
- catalystwan-0.33.4.dev5/catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +43 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/transport/bgp.py +3 -36
- catalystwan-0.33.4.dev5/catalystwan/models/configuration/feature_profile/sdwan/transport/t1e1controller.py +161 -0
- catalystwan-0.33.4.dev2/catalystwan/models/configuration/feature_profile/sdwan/transport/vpn_management.py → catalystwan-0.33.4.dev5/catalystwan/models/configuration/feature_profile/sdwan/transport/vpn.py +85 -41
- catalystwan-0.33.4.dev5/catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/t1e1serial.py +283 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/__init__.py +12 -0
- catalystwan-0.33.4.dev5/catalystwan/models/policy/definition/aip.py +60 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/amp.py +2 -11
- catalystwan-0.33.4.dev5/catalystwan/models/policy/definition/intrusion_prevention.py +53 -0
- catalystwan-0.33.4.dev5/catalystwan/models/policy/definition/url_filtering.py +152 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/session.py +1 -1
- catalystwan-0.33.4.dev5/catalystwan/tests/config_migration/test_transform.py +136 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/test_serialize_model.py +0 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_endpoints.py +1 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_feature_profile_api.py +8 -2
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_models_common.py +1 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_templates.py +1 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/multicast.py +1 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/parcel_factory.py +7 -4
- catalystwan-0.33.4.dev5/catalystwan/utils/config_migration/converters/feature_template/t1e1serial.py +136 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/vpn.py +228 -21
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/creators/config_pusher.py +6 -8
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/creators/strategy/parcels.py +37 -3
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/factories/feature_profile_api.py +7 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/factories/parcel_pusher.py +3 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/steps/transform.py +24 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/workflows/config_migration.py +33 -4
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/pyproject.toml +1 -1
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/setup.py +2 -1
- catalystwan-0.33.4.dev2/catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +0 -78
- catalystwan-0.33.4.dev2/catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +0 -18
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/LICENSE +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/README.md +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/__init__.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/abstractions.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/__init__.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/admin_tech_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/administration.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/alarms_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/api_container.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/basic_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/builders/__init__.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/config_device_inventory_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/config_group_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/configuration_groups/parcels/cellular_controller.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/dashboard_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/device_action_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/logs_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/monitoring_status_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/mtt_aaa_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/omp_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/packet_capture_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/parcel_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/partition_manager_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/resource_pool_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/software_action_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/speedtest_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/task_status_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/template_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/README.md +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/bool_str.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/cli_template.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/device_template/device_template.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/device_template/device_template_payload.json.j2 +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/device_variable.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/feature_template.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/feature_template_field.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/feature_template_payload.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_aaa_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_banner_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_bfd_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_bgp_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_logging_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_ntp_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_omp_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_ospf.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_ospfv3.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_secure_internet_gateway.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_snmp_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_system.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_vpn_interface_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cisco_vpn_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/cli_template.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/omp_vsmart_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/security_vsmart_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/supported.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/models/system_vsmart_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/aaa/aaa_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/aaa/feature/aaa.json.j2 +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/aaa/feature/accounting.json.j2 +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/aaa/feature/radius.json.j2 +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/aaa/feature/tacacs.json.j2 +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/aaa/feature/user.json.j2 +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/cisco_vpn/cisco_vpn_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/cisco_vpn/feature/cisco_vpn.json.j2 +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/cisco_vpn/feature/dns.json.j2 +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/cisco_vpn/feature/ipv4route.json.j2 +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/cisco_vpn/feature/ipv6route.json.j2 +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/cisco_vpn/feature/mapping.json.j2 +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/tenant/tenant.json.j2 +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/templates/payloads/tenant/tenant_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/tenant_backup_restore_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/tenant_management_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/tenant_migration_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/versions_utils.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/dataclasses.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/__init__.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/administration_user_and_group.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/certificate_management_device.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/certificate_management_vmanage.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/client.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/cluster_management.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/device/software_update.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/disaster_recovery.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/feature_profile/sdwan/other.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/feature_profile/sdwan/policy_object.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/feature_profile/sdwan/service.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/feature_profile/sdwan/system.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/abstractions.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/access_control_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/access_control_list_ipv6.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/amp.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/control.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/device_access.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/device_access_ipv6.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/hub_and_spoke.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/mesh.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/qos_map.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/rewrite.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/rule_set.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/security_group.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/traffic_data.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/vpn_membership.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/definition/zone_based_firewall.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/app.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/app_probe.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/as_path.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/class_map.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/color.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/community.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/data_ipv6_prefix.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/data_prefix.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/expanded_community.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/fqdn.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/geo_location.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/ips_signature.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/ipv6_prefix.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/local_app.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/local_domain.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/mirror.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/policer.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/port.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/preferred_color_group.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/prefix.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/protocol_name.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/region.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/site.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/sla.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/threat_grid_api_key.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/tloc.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/trunkgroup.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/url_allow_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/url_block_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/vpn.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/list/zone.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/security_template.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/vedge_template.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/policy/vsmart_template.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration/software_actions.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_dashboard_status.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_device_actions.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_device_inventory.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_device_template.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_feature_profile.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/configuration_settings.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/endpoints_container.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/misc.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/monitoring/device_details.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/monitoring/server_info.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/monitoring/status.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/real_time_monitoring/reboot_history.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/sdavc_cloud_connector.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/tenant_backup_restore.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/tenant_management.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/tenant_migration.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/endpoints/troubleshooting_tools/device_connectivity.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/integration_tests/feature_profile/sdwan/base.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/integration_tests/feature_profile/sdwan/test_other.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/integration_tests/feature_profile/sdwan/test_service.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/integration_tests/test_config_migration.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/integration_tests/test_find_template_values.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/logging.conf +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/common.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/docs/README.md +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/docs/diagram.png +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/README.md +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/builder.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/common.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/other/thousandeyes.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/__init__.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/as_path.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/color_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/data_prefix.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/fowarding_class.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_data_prefix.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_prefix_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/mirror.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/policer.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefered_group_color.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefix_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/sla_class.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/standard_community.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/tloc_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/aip.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/amp.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/application_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/data_prefix.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/fqdn.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/geolocation_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/intrusion_prevention.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ips_signature.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/local_domain.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/protocol_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/security_port.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption_profile.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url_filtering.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/zone.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/__init__.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/acl.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/dhcp_server.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/eigrp.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/common.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/gre.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/ipsec.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/svi.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/lan/vpn.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/multicast.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/object_tracker.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/ospf.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/ospfv3.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/service_insertion_attachment.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/switchport.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/tracker.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/service/wireless_lan.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/__init__.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/banner.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/basic.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/bfd.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/global_parcel.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/logging_parcel.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/mrf.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/ntp.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/security.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/system/snmp.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_controller.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/profile_type.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/configuration/topology_group.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/device_inventory.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/feature_profile_parcel.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/misc/application_protocols.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/monitoring/server_info.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/centralized.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/access_control_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/access_control_list_ipv6.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/control.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/device_access.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/device_access_ipv6.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/hub_and_spoke.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/mesh.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/qos_map.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/rewrite.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/rule_set.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/security_group.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/traffic_data.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/vpn_membership.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/definition/zone_based_firewall.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/app.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/app_probe.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/as_path.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/class_map.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/color.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/communities.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/data_ipv6_prefix.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/data_prefix.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/fqdn.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/geo_location.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/ips_signature.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/ipv6_prefix.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/local_app.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/local_domain.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/mirror.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/policer.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/port.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/preferred_color_group.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/prefix.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/protocol_name.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/region.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/site.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/sla.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/threat_grid_api_key.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/tloc.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/trunkgroup.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/url.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/vpn.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/list/zone.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/localized.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/policy.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/policy_definition.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/policy_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/policy/security.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/templates.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/models/tenant.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/response.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/config_migration/test_converter_chooser.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/config_migration/test_device_template_with_info.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/config_migration/test_merge_parcels.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/config_migration/test_normalizer.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/Basic_Cisco_VPN_Model.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/banner_1.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/alias.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/basic.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/basic_no_value.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/children.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/children_nested.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/children_nested_datapath.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/basic/data_path.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/cisco_bfd.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/complex_aaa.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/complex_cisco_vpn.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/default_cisco_system.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/iuo.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/omp_1.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/omp_2.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/definitions/omp_3.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/__init__.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/cisco_aaa.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/cisco_banner.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/cisco_bfd.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/cisco_system.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/cisco_vpn.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/models/omp_vsmart.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/basic/alias.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/basic/basic.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/basic/children.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/basic/children_nested.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/basic/children_nested_datapath.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/basic/data_path.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/cedge_aaa.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/cisco_banner.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/cisco_bfd.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/cisco_system.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/cisco_vpn.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/schemas/omp-vsmart.json +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/test_chose_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/test_deserialize_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/templates/test_generate_payload.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_admin_tech_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_administration.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_alarms_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_cli_template.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_creation_tools.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_device_action_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_devices_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_feature_template_field.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_logs_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_monitoring_server_info.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_monitoring_status_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_mtt_aaa_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_omp_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_packet_capture.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_partition_manager_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_response.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_session.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_software_action_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_speed_test_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_task_status_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_tenant_backup_restore_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_tenant_management_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_tenant_migration_api.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_typed_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_version.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_version_utils.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/tests/test_vmanage_auth.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/typed_list.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/__init__.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/alarm_status.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/certificate_status.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/colors.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/exceptions.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/__init__.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/aaa.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/appqoe.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/banner.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/base.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/basic.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/bfd.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/bgp.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/dhcp.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/eigrp.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/ethernet.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/global_.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/gre.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/ipsec.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/logging_.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/normalizer.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/ntp.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/omp.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/ospf.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/ospfv3.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/security.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/snmp.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/svi.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/switchport.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/thousandeyes.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/ucse.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/feature_template/wireless_lan.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/converters/policy/policy_lists.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/reverters/config_reverter.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_migration/steps/__init__.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/config_status.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/creation_tools.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/dashboard.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/device_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/dict.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/feature_template/choose_model.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/feature_template/find_template_values.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/operation_status.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/personality.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/pydantic_field.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/reachability.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/session_type.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/template_type.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/timezone.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/upgrades_helper.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/utils/validate_status.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/version.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/vmanage_auth.py +0 -0
- {catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/workflows/tenant_migration.py +0 -0
|
@@ -5,18 +5,25 @@ from typing import TYPE_CHECKING, Callable, Mapping, Union
|
|
|
5
5
|
from catalystwan.api.builders.feature_profiles.other import OtherFeatureProfileBuilder
|
|
6
6
|
from catalystwan.api.builders.feature_profiles.service import ServiceFeatureProfileBuilder
|
|
7
7
|
from catalystwan.api.builders.feature_profiles.system import SystemFeatureProfileBuilder
|
|
8
|
+
from catalystwan.api.builders.feature_profiles.transport import TransportAndManagementProfileBuilder
|
|
8
9
|
from catalystwan.exceptions import CatalystwanException
|
|
9
10
|
from catalystwan.models.configuration.feature_profile.common import ProfileType
|
|
10
11
|
|
|
11
12
|
if TYPE_CHECKING:
|
|
12
13
|
from catalystwan.session import ManagerSession
|
|
13
14
|
|
|
14
|
-
FeatureProfileBuilder = Union[
|
|
15
|
+
FeatureProfileBuilder = Union[
|
|
16
|
+
ServiceFeatureProfileBuilder,
|
|
17
|
+
SystemFeatureProfileBuilder,
|
|
18
|
+
OtherFeatureProfileBuilder,
|
|
19
|
+
TransportAndManagementProfileBuilder,
|
|
20
|
+
]
|
|
15
21
|
|
|
16
22
|
BUILDER_MAPPING: Mapping[ProfileType, Callable] = {
|
|
17
23
|
"service": ServiceFeatureProfileBuilder,
|
|
18
24
|
"system": SystemFeatureProfileBuilder,
|
|
19
25
|
"other": OtherFeatureProfileBuilder,
|
|
26
|
+
"transport": TransportAndManagementProfileBuilder,
|
|
20
27
|
}
|
|
21
28
|
|
|
22
29
|
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import logging
|
|
3
4
|
from typing import TYPE_CHECKING, List
|
|
4
5
|
from uuid import UUID
|
|
5
6
|
|
|
6
7
|
from catalystwan.api.feature_profile_api import OtherFeatureProfileAPI
|
|
7
8
|
from catalystwan.endpoints.configuration.feature_profile.sdwan.other import OtherFeatureProfile
|
|
9
|
+
from catalystwan.exceptions import ManagerHTTPError
|
|
8
10
|
from catalystwan.models.configuration.feature_profile.common import FeatureProfileCreationPayload
|
|
9
11
|
from catalystwan.models.configuration.feature_profile.sdwan.other import AnyOtherParcel
|
|
10
12
|
|
|
13
|
+
logger = logging.getLogger(__name__)
|
|
14
|
+
|
|
11
15
|
if TYPE_CHECKING:
|
|
12
16
|
from catalystwan.session import ManagerSession
|
|
13
17
|
|
|
@@ -62,8 +66,10 @@ class OtherFeatureProfileBuilder:
|
|
|
62
66
|
Returns:
|
|
63
67
|
UUID: The UUID of the created feature profile.
|
|
64
68
|
"""
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
try:
|
|
70
|
+
profile_uuid = self._endpoints.create_sdwan_other_feature_profile(self._profile).id
|
|
71
|
+
for parcel in self._independent_items:
|
|
72
|
+
self._api.create_parcel(profile_uuid, parcel)
|
|
73
|
+
except ManagerHTTPError as e:
|
|
74
|
+
logger.error(f"Error occured during building profile: {e.info}")
|
|
69
75
|
return profile_uuid
|
|
@@ -10,6 +10,7 @@ from typing_extensions import Annotated
|
|
|
10
10
|
|
|
11
11
|
from catalystwan.api.feature_profile_api import ServiceFeatureProfileAPI
|
|
12
12
|
from catalystwan.endpoints.configuration.feature_profile.sdwan.service import ServiceFeatureProfile
|
|
13
|
+
from catalystwan.exceptions import ManagerHTTPError
|
|
13
14
|
from catalystwan.models.configuration.feature_profile.common import FeatureProfileCreationPayload
|
|
14
15
|
from catalystwan.models.configuration.feature_profile.sdwan.service import (
|
|
15
16
|
AppqoeParcel,
|
|
@@ -117,15 +118,17 @@ class ServiceFeatureProfileBuilder:
|
|
|
117
118
|
Service feature profile UUID
|
|
118
119
|
"""
|
|
119
120
|
profile_uuid = self._endpoints.create_sdwan_service_feature_profile(self._profile).id
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
121
|
+
try:
|
|
122
|
+
for parcel in self._independent_items:
|
|
123
|
+
self._api.create_parcel(profile_uuid, parcel)
|
|
124
|
+
|
|
125
|
+
for vpn_tag, vpn_parcel in self._independent_items_vpns.items():
|
|
126
|
+
vpn_uuid = self._api.create_parcel(profile_uuid, vpn_parcel).id
|
|
127
|
+
|
|
128
|
+
for sub_parcel in self._depended_items_on_vpns[vpn_tag]:
|
|
129
|
+
logger.debug(f"Creating subparcel parcel {sub_parcel.parcel_name} to VPN {vpn_uuid}")
|
|
130
|
+
self._api.create_parcel(profile_uuid, sub_parcel, vpn_uuid)
|
|
131
|
+
except ManagerHTTPError as e:
|
|
132
|
+
logger.error(f"Error occured during building profile: {e.info}")
|
|
130
133
|
|
|
131
134
|
return profile_uuid
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
+
# Copyright 2023 Cisco Systems, Inc. and its affiliates
|
|
1
2
|
from __future__ import annotations
|
|
2
3
|
|
|
4
|
+
import logging
|
|
3
5
|
from typing import TYPE_CHECKING, List
|
|
4
6
|
from uuid import UUID
|
|
5
7
|
|
|
6
8
|
from catalystwan.api.feature_profile_api import SystemFeatureProfileAPI
|
|
7
9
|
from catalystwan.endpoints.configuration.feature_profile.sdwan.system import SystemFeatureProfile
|
|
10
|
+
from catalystwan.exceptions import ManagerHTTPError
|
|
8
11
|
from catalystwan.models.configuration.feature_profile.common import FeatureProfileCreationPayload
|
|
9
12
|
from catalystwan.models.configuration.feature_profile.sdwan.system import AnySystemParcel
|
|
10
13
|
|
|
14
|
+
logger = logging.getLogger(__name__)
|
|
15
|
+
|
|
11
16
|
if TYPE_CHECKING:
|
|
12
17
|
from catalystwan.session import ManagerSession
|
|
13
18
|
|
|
@@ -64,6 +69,9 @@ class SystemFeatureProfileBuilder:
|
|
|
64
69
|
"""
|
|
65
70
|
|
|
66
71
|
profile_uuid = self._endpoints.create_sdwan_system_feature_profile(self._profile).id
|
|
67
|
-
|
|
68
|
-
self.
|
|
72
|
+
try:
|
|
73
|
+
for parcel in self._independent_items:
|
|
74
|
+
self._api.create_parcel(profile_uuid, parcel)
|
|
75
|
+
except ManagerHTTPError as e:
|
|
76
|
+
logger.error(f"Error occured during building profile: {e.info}")
|
|
69
77
|
return profile_uuid
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Copyright 2023 Cisco Systems, Inc. and its affiliates
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
import logging
|
|
5
|
+
from collections import defaultdict
|
|
6
|
+
from typing import TYPE_CHECKING, Dict, List
|
|
7
|
+
from uuid import UUID, uuid4
|
|
8
|
+
|
|
9
|
+
from catalystwan.api.feature_profile_api import TransportFeatureProfileAPI
|
|
10
|
+
from catalystwan.endpoints.configuration.feature_profile.sdwan.transport import TransportFeatureProfile
|
|
11
|
+
from catalystwan.exceptions import ManagerHTTPError
|
|
12
|
+
from catalystwan.models.configuration.feature_profile.common import FeatureProfileCreationPayload
|
|
13
|
+
from catalystwan.models.configuration.feature_profile.sdwan.transport import (
|
|
14
|
+
AnyTransportSuperParcel,
|
|
15
|
+
AnyTransportVpnParcel,
|
|
16
|
+
AnyTransportVpnSubParcel,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
logger = logging.getLogger(__name__)
|
|
20
|
+
|
|
21
|
+
if TYPE_CHECKING:
|
|
22
|
+
from catalystwan.session import ManagerSession
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class TransportAndManagementProfileBuilder:
|
|
26
|
+
"""
|
|
27
|
+
A class for building system feature profiles.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
def __init__(self, session: ManagerSession) -> None:
|
|
31
|
+
"""
|
|
32
|
+
Initialize a new instance of the Service class.
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
session (ManagerSession): The ManagerSession object used for API communication.
|
|
36
|
+
profile_uuid (UUID): The UUID of the profile.
|
|
37
|
+
"""
|
|
38
|
+
self._profile: FeatureProfileCreationPayload
|
|
39
|
+
self._api = TransportFeatureProfileAPI(session)
|
|
40
|
+
self._endpoints = TransportFeatureProfile(session)
|
|
41
|
+
self._independent_items: List[AnyTransportSuperParcel] = []
|
|
42
|
+
self._independent_items_vpns: Dict[UUID, AnyTransportVpnParcel] = {}
|
|
43
|
+
self._dependent_items_on_vpns: Dict[UUID, List[AnyTransportVpnSubParcel]] = defaultdict(list)
|
|
44
|
+
|
|
45
|
+
def add_profile_name_and_description(self, feature_profile: FeatureProfileCreationPayload) -> None:
|
|
46
|
+
"""
|
|
47
|
+
Adds a name and description to the feature profile.
|
|
48
|
+
|
|
49
|
+
Args:
|
|
50
|
+
name (str): The name of the feature profile.
|
|
51
|
+
description (str): The description of the feature profile.
|
|
52
|
+
|
|
53
|
+
Returns:
|
|
54
|
+
None
|
|
55
|
+
"""
|
|
56
|
+
self._profile = feature_profile
|
|
57
|
+
|
|
58
|
+
def add_parcel(self, parcel: AnyTransportSuperParcel) -> None:
|
|
59
|
+
"""
|
|
60
|
+
Adds a parcel to the feature profile.
|
|
61
|
+
|
|
62
|
+
Args:
|
|
63
|
+
parcel (AnyTransportSuperParcel): The parcel to add.
|
|
64
|
+
|
|
65
|
+
Returns:
|
|
66
|
+
None
|
|
67
|
+
"""
|
|
68
|
+
self._independent_items.append(parcel)
|
|
69
|
+
|
|
70
|
+
def add_parcel_vpn(self, parcel: AnyTransportVpnParcel) -> UUID:
|
|
71
|
+
"""
|
|
72
|
+
Adds a VPN parcel to the builder.
|
|
73
|
+
|
|
74
|
+
Args:
|
|
75
|
+
parcel (LanVpnParcel): The VPN parcel to add.
|
|
76
|
+
|
|
77
|
+
Returns:
|
|
78
|
+
UUID: The UUID tag of the added VPN parcel.
|
|
79
|
+
"""
|
|
80
|
+
vpn_tag = uuid4()
|
|
81
|
+
logger.debug(f"Adding VPN parcel {parcel.parcel_name} with tag {vpn_tag}")
|
|
82
|
+
self._independent_items_vpns[vpn_tag] = parcel
|
|
83
|
+
return vpn_tag
|
|
84
|
+
|
|
85
|
+
def add_vpn_subparcel(self, parcel: AnyTransportVpnSubParcel, vpn_tag: UUID) -> None:
|
|
86
|
+
"""
|
|
87
|
+
Adds a parcel to the feature profile.
|
|
88
|
+
|
|
89
|
+
Args:
|
|
90
|
+
parcel (AnyTransportVpnSubParcel): The parcel to add.
|
|
91
|
+
|
|
92
|
+
Returns:
|
|
93
|
+
None
|
|
94
|
+
"""
|
|
95
|
+
self._dependent_items_on_vpns[vpn_tag].append(parcel)
|
|
96
|
+
|
|
97
|
+
def build(self) -> UUID:
|
|
98
|
+
"""
|
|
99
|
+
Builds the feature profile.
|
|
100
|
+
|
|
101
|
+
Returns:
|
|
102
|
+
UUID: The UUID of the created feature profile.
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
profile_uuid = self._endpoints.create_transport_feature_profile(self._profile).id
|
|
106
|
+
try:
|
|
107
|
+
for parcel in self._independent_items:
|
|
108
|
+
self._api.create_parcel(profile_uuid, parcel)
|
|
109
|
+
for vpn_tag, vpn_parcel in self._independent_items_vpns.items():
|
|
110
|
+
# TODO: Add subparcels to VPN
|
|
111
|
+
vpn_uuid = self._api.create_parcel(profile_uuid, vpn_parcel).id
|
|
112
|
+
for subparcel in self._dependent_items_on_vpns[vpn_tag]:
|
|
113
|
+
self._api.create_parcel(profile_uuid, subparcel, vpn_uuid)
|
|
114
|
+
except ManagerHTTPError as e:
|
|
115
|
+
logger.error(f"Error occured during building profile: {e.info}")
|
|
116
|
+
return profile_uuid
|
{catalystwan-0.33.4.dev2 → catalystwan-0.33.4.dev5}/catalystwan/api/configuration_groups/parcel.py
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Copyright 2023 Cisco Systems, Inc. and its affiliates
|
|
2
2
|
|
|
3
3
|
from enum import Enum
|
|
4
|
-
from typing import Any, Dict, Generic, Literal, Optional, TypeVar, get_origin
|
|
4
|
+
from typing import Any, Dict, Generic, List, Literal, Optional, Tuple, TypeVar, get_origin
|
|
5
5
|
|
|
6
6
|
from pydantic import (
|
|
7
7
|
AliasPath,
|
|
@@ -9,11 +9,13 @@ from pydantic import (
|
|
|
9
9
|
ConfigDict,
|
|
10
10
|
Field,
|
|
11
11
|
PrivateAttr,
|
|
12
|
+
SerializationInfo,
|
|
12
13
|
SerializerFunctionWrapHandler,
|
|
13
14
|
model_serializer,
|
|
14
15
|
)
|
|
15
16
|
|
|
16
17
|
from catalystwan.exceptions import CatalystwanException
|
|
18
|
+
from catalystwan.models.common import VersionedField
|
|
17
19
|
|
|
18
20
|
T = TypeVar("T")
|
|
19
21
|
|
|
@@ -38,7 +40,7 @@ class _ParcelBase(BaseModel):
|
|
|
38
40
|
_parcel_data_key: str = PrivateAttr(default="data")
|
|
39
41
|
|
|
40
42
|
@model_serializer(mode="wrap")
|
|
41
|
-
def envelope_parcel_data(self, handler: SerializerFunctionWrapHandler) -> Dict[str, Any]:
|
|
43
|
+
def envelope_parcel_data(self, handler: SerializerFunctionWrapHandler, info: SerializationInfo) -> Dict[str, Any]:
|
|
42
44
|
"""
|
|
43
45
|
serializes model fields with respect to field validation_alias,
|
|
44
46
|
sub-classing parcel fields can be defined like following:
|
|
@@ -50,16 +52,23 @@ class _ParcelBase(BaseModel):
|
|
|
50
52
|
model_dict = handler(self)
|
|
51
53
|
model_dict[self._parcel_data_key] = {}
|
|
52
54
|
remove_keys = []
|
|
55
|
+
replaced_keys: Dict[str, Tuple[str, str]] = {}
|
|
53
56
|
|
|
57
|
+
# enveloping
|
|
54
58
|
for key in model_dict.keys():
|
|
55
59
|
field_info = self.model_fields.get(key)
|
|
56
60
|
if field_info and isinstance(field_info.validation_alias, AliasPath):
|
|
57
61
|
aliases = field_info.validation_alias.convert_to_aliases()
|
|
58
62
|
if aliases and aliases[0] == self._parcel_data_key and len(aliases) == 2:
|
|
59
63
|
model_dict[self._parcel_data_key][aliases[1]] = model_dict[key]
|
|
64
|
+
replaced_keys[key] = (self._parcel_data_key, str(aliases[1]))
|
|
60
65
|
remove_keys.append(key)
|
|
61
66
|
for key in remove_keys:
|
|
62
67
|
del model_dict[key]
|
|
68
|
+
|
|
69
|
+
# versioned field update
|
|
70
|
+
model_dict = VersionedField.dump(self.model_fields, model_dict, info, replaced_keys)
|
|
71
|
+
|
|
63
72
|
return model_dict
|
|
64
73
|
|
|
65
74
|
@classmethod
|
|
@@ -120,7 +129,7 @@ class Default(ParcelAttribute, Generic[T]):
|
|
|
120
129
|
option_type: OptionType = Field(
|
|
121
130
|
default=OptionType.DEFAULT, serialization_alias="optionType", validation_alias="optionType"
|
|
122
131
|
)
|
|
123
|
-
value: Optional[
|
|
132
|
+
value: Optional[T] = None
|
|
124
133
|
|
|
125
134
|
|
|
126
135
|
def as_global(value: Any, generic_alias: Any = None):
|
|
@@ -134,10 +143,14 @@ def as_global(value: Any, generic_alias: Any = None):
|
|
|
134
143
|
Global[Any]: global option type object
|
|
135
144
|
"""
|
|
136
145
|
if generic_alias is None:
|
|
146
|
+
if isinstance(value, list):
|
|
147
|
+
if len(value) == 0:
|
|
148
|
+
return Global[List](value=list()) # type: ignore
|
|
149
|
+
return Global[List[type(value[0])]](value=value) # type: ignore
|
|
137
150
|
return Global[type(value)](value=value) # type: ignore
|
|
138
151
|
elif get_origin(generic_alias) is Literal:
|
|
139
152
|
return Global[generic_alias](value=value) # type: ignore
|
|
140
|
-
TypeError("Inappropriate type for argument generic_alias")
|
|
153
|
+
raise TypeError("Inappropriate type for argument generic_alias")
|
|
141
154
|
|
|
142
155
|
|
|
143
156
|
def as_variable(value: str):
|
|
@@ -163,7 +176,11 @@ def as_default(value: Any, generic_alias: Any = None):
|
|
|
163
176
|
Default[Any]: default option type object
|
|
164
177
|
"""
|
|
165
178
|
if generic_alias is None:
|
|
179
|
+
if isinstance(value, list):
|
|
180
|
+
if len(value) == 0:
|
|
181
|
+
return Default[List](value=list()) # type: ignore
|
|
182
|
+
return Default[List[type(value[0])]](value=value) # type: ignore
|
|
166
183
|
return Default[type(value)](value=value) # type: ignore
|
|
167
184
|
elif get_origin(generic_alias) is Literal:
|
|
168
185
|
return Default[generic_alias](value=value) # type: ignore
|
|
169
|
-
TypeError("Inappropriate type for argument generic_alias")
|
|
186
|
+
raise TypeError("Inappropriate type for argument generic_alias")
|
|
@@ -11,11 +11,18 @@ from catalystwan.endpoints.configuration.feature_profile.sdwan.other import Othe
|
|
|
11
11
|
from catalystwan.endpoints.configuration.feature_profile.sdwan.service import ServiceFeatureProfile
|
|
12
12
|
from catalystwan.endpoints.configuration.feature_profile.sdwan.system import SystemFeatureProfile
|
|
13
13
|
from catalystwan.endpoints.configuration.feature_profile.sdwan.transport import TransportFeatureProfile
|
|
14
|
+
from catalystwan.exceptions import ManagerHTTPError
|
|
14
15
|
from catalystwan.models.configuration.feature_profile.sdwan.other import AnyOtherParcel
|
|
15
16
|
from catalystwan.models.configuration.feature_profile.sdwan.policy_object.security.url import URLParcel
|
|
16
17
|
from catalystwan.models.configuration.feature_profile.sdwan.service import AnyServiceParcel
|
|
17
18
|
from catalystwan.models.configuration.feature_profile.sdwan.service.multicast import MulticastParcel
|
|
18
19
|
from catalystwan.models.configuration.feature_profile.sdwan.transport import AnyTransportParcel
|
|
20
|
+
from catalystwan.models.configuration.feature_profile.sdwan.transport.bgp import WanRoutingBgpParcel
|
|
21
|
+
from catalystwan.models.configuration.feature_profile.sdwan.transport.cellular_controller import (
|
|
22
|
+
CellularControllerParcel,
|
|
23
|
+
)
|
|
24
|
+
from catalystwan.models.configuration.feature_profile.sdwan.transport.t1e1controller import T1E1ControllerParcel
|
|
25
|
+
from catalystwan.models.configuration.feature_profile.sdwan.transport.vpn import ManagementVpnParcel, TransportVpnParcel
|
|
19
26
|
from catalystwan.typed_list import DataSequence
|
|
20
27
|
|
|
21
28
|
if TYPE_CHECKING:
|
|
@@ -172,13 +179,69 @@ class TransportFeatureProfileAPI:
|
|
|
172
179
|
"""
|
|
173
180
|
self.endpoint.delete_transport_feature_profile(profile_id)
|
|
174
181
|
|
|
175
|
-
def create_parcel(
|
|
182
|
+
def create_parcel(
|
|
183
|
+
self, profile_id: UUID, payload: AnyTransportParcel, vpn_uuid: Optional[UUID] = None
|
|
184
|
+
) -> ParcelCreationResponse:
|
|
176
185
|
"""
|
|
177
186
|
Create Transport Parcel for selected profile_id based on payload type
|
|
178
187
|
"""
|
|
179
|
-
|
|
188
|
+
if vpn_uuid is not None:
|
|
189
|
+
vpn_parcel = self._get_vpn_parcel(profile_id, vpn_uuid).payload
|
|
190
|
+
if vpn_parcel._get_parcel_type() == TransportVpnParcel._get_parcel_type():
|
|
191
|
+
return self.endpoint.create_transport_vpn_sub_parcel(
|
|
192
|
+
profile_id, vpn_uuid, payload._get_parcel_type(), payload
|
|
193
|
+
)
|
|
194
|
+
else:
|
|
195
|
+
return self.endpoint.create_management_vpn_sub_parcel(
|
|
196
|
+
profile_id, vpn_uuid, payload._get_parcel_type(), payload
|
|
197
|
+
)
|
|
180
198
|
return self.endpoint.create_transport_parcel(profile_id, payload._get_parcel_type(), payload)
|
|
181
199
|
|
|
200
|
+
def _get_vpn_parcel(
|
|
201
|
+
self, profile_id: UUID, vpn_uuid: UUID
|
|
202
|
+
) -> Union[Parcel[TransportVpnParcel], Parcel[ManagementVpnParcel]]:
|
|
203
|
+
"""Resolve the VPN parcel type based on the VPN UUID."""
|
|
204
|
+
try:
|
|
205
|
+
return self.endpoint.get_transport_parcel(profile_id, TransportVpnParcel._get_parcel_type(), vpn_uuid)
|
|
206
|
+
except ManagerHTTPError:
|
|
207
|
+
return self.endpoint.get_transport_parcel(profile_id, ManagementVpnParcel._get_parcel_type(), vpn_uuid)
|
|
208
|
+
|
|
209
|
+
@overload
|
|
210
|
+
def get_parcel(
|
|
211
|
+
self, profile_id: UUID, parcel_type: Type[CellularControllerParcel], parcel_id: UUID
|
|
212
|
+
) -> Parcel[CellularControllerParcel]:
|
|
213
|
+
...
|
|
214
|
+
|
|
215
|
+
@overload
|
|
216
|
+
def get_parcel(
|
|
217
|
+
self, profile_id: UUID, parcel_type: Type[T1E1ControllerParcel], parcel_id: UUID
|
|
218
|
+
) -> Parcel[T1E1ControllerParcel]:
|
|
219
|
+
...
|
|
220
|
+
|
|
221
|
+
@overload
|
|
222
|
+
def get_parcel(
|
|
223
|
+
self, profile_id: UUID, parcel_type: Type[WanRoutingBgpParcel], parcel_id: UUID
|
|
224
|
+
) -> Parcel[WanRoutingBgpParcel]:
|
|
225
|
+
...
|
|
226
|
+
|
|
227
|
+
@overload
|
|
228
|
+
def get_parcel(
|
|
229
|
+
self, profile_id: UUID, parcel_type: Type[TransportVpnParcel], parcel_id: UUID
|
|
230
|
+
) -> Parcel[TransportVpnParcel]:
|
|
231
|
+
...
|
|
232
|
+
|
|
233
|
+
@overload
|
|
234
|
+
def get_parcel(
|
|
235
|
+
self, profile_id: UUID, parcel_type: Type[ManagementVpnParcel], parcel_id: UUID
|
|
236
|
+
) -> Parcel[ManagementVpnParcel]:
|
|
237
|
+
...
|
|
238
|
+
|
|
239
|
+
def get_parcel(self, profile_id: UUID, parcel_type: Type[AnyTransportParcel], parcel_id: UUID) -> Parcel:
|
|
240
|
+
"""
|
|
241
|
+
Get one Transport Parcel given profile id, parcel type and parcel id
|
|
242
|
+
"""
|
|
243
|
+
return self.endpoint.get_transport_parcel(profile_id, parcel_type._get_parcel_type(), parcel_id)
|
|
244
|
+
|
|
182
245
|
|
|
183
246
|
class OtherFeatureProfileAPI:
|
|
184
247
|
"""
|
|
@@ -11,6 +11,7 @@ from catalystwan.endpoints.configuration.policy.definition.access_control_list i
|
|
|
11
11
|
from catalystwan.endpoints.configuration.policy.definition.access_control_list_ipv6 import (
|
|
12
12
|
ConfigurationPolicyAclIPv6Definition,
|
|
13
13
|
)
|
|
14
|
+
from catalystwan.endpoints.configuration.policy.definition.aip import ConfigurationPolicyAIPDefinition
|
|
14
15
|
from catalystwan.endpoints.configuration.policy.definition.amp import ConfigurationPolicyAMPDefinition
|
|
15
16
|
from catalystwan.endpoints.configuration.policy.definition.control import ConfigurationPolicyControlDefinition
|
|
16
17
|
from catalystwan.endpoints.configuration.policy.definition.device_access import (
|
|
@@ -20,6 +21,9 @@ from catalystwan.endpoints.configuration.policy.definition.device_access_ipv6 im
|
|
|
20
21
|
ConfigurationPolicyDeviceAccessIPv6Definition,
|
|
21
22
|
)
|
|
22
23
|
from catalystwan.endpoints.configuration.policy.definition.hub_and_spoke import ConfigurationPolicyHubAndSpokeDefinition
|
|
24
|
+
from catalystwan.endpoints.configuration.policy.definition.intrusion_prevention import (
|
|
25
|
+
ConfigurationPolicyIntrusionPreventionDefinition,
|
|
26
|
+
)
|
|
23
27
|
from catalystwan.endpoints.configuration.policy.definition.mesh import ConfigurationPolicyMeshDefinition
|
|
24
28
|
from catalystwan.endpoints.configuration.policy.definition.qos_map import ConfigurationPolicyQoSMapDefinition
|
|
25
29
|
from catalystwan.endpoints.configuration.policy.definition.rewrite import ConfigurationPolicyRewriteRuleDefinition
|
|
@@ -28,6 +32,9 @@ from catalystwan.endpoints.configuration.policy.definition.security_group import
|
|
|
28
32
|
ConfigurationPolicySecurityGroupDefinition,
|
|
29
33
|
)
|
|
30
34
|
from catalystwan.endpoints.configuration.policy.definition.traffic_data import ConfigurationPolicyDataDefinition
|
|
35
|
+
from catalystwan.endpoints.configuration.policy.definition.url_filtering import (
|
|
36
|
+
ConfigurationPolicyUrlFilteringDefinition,
|
|
37
|
+
)
|
|
31
38
|
from catalystwan.endpoints.configuration.policy.definition.vpn_membership import (
|
|
32
39
|
ConfigurationPolicyVPNMembershipGroupDefinition,
|
|
33
40
|
)
|
|
@@ -120,6 +127,10 @@ from catalystwan.models.policy import (
|
|
|
120
127
|
from catalystwan.models.policy.centralized import CentralizedPolicy, CentralizedPolicyEditPayload, CentralizedPolicyInfo
|
|
121
128
|
from catalystwan.models.policy.definition.access_control_list import AclPolicy, AclPolicyGetResponse
|
|
122
129
|
from catalystwan.models.policy.definition.access_control_list_ipv6 import AclIPv6Policy, AclIPv6PolicyGetResponse
|
|
130
|
+
from catalystwan.models.policy.definition.aip import (
|
|
131
|
+
AdvancedInspectionProfilePolicy,
|
|
132
|
+
AdvancedInspectionProfilePolicyGetResponse,
|
|
133
|
+
)
|
|
123
134
|
from catalystwan.models.policy.definition.amp import (
|
|
124
135
|
AdvancedMalwareProtectionPolicy,
|
|
125
136
|
AdvancedMalwareProtectionPolicyGetResponse,
|
|
@@ -131,12 +142,17 @@ from catalystwan.models.policy.definition.device_access_ipv6 import (
|
|
|
131
142
|
DeviceAccessIPv6PolicyGetResponse,
|
|
132
143
|
)
|
|
133
144
|
from catalystwan.models.policy.definition.hub_and_spoke import HubAndSpokePolicy, HubAndSpokePolicyGetResponse
|
|
145
|
+
from catalystwan.models.policy.definition.intrusion_prevention import (
|
|
146
|
+
IntrusionPreventionPolicy,
|
|
147
|
+
IntrusionPreventionPolicyGetResponse,
|
|
148
|
+
)
|
|
134
149
|
from catalystwan.models.policy.definition.mesh import MeshPolicy, MeshPolicyGetResponse
|
|
135
150
|
from catalystwan.models.policy.definition.qos_map import QoSMapPolicy, QoSMapPolicyGetResponse
|
|
136
151
|
from catalystwan.models.policy.definition.rewrite import RewritePolicy, RewritePolicyGetResponse
|
|
137
152
|
from catalystwan.models.policy.definition.rule_set import RuleSet, RuleSetGetResponse
|
|
138
153
|
from catalystwan.models.policy.definition.security_group import SecurityGroup, SecurityGroupGetResponse
|
|
139
154
|
from catalystwan.models.policy.definition.traffic_data import TrafficDataPolicy, TrafficDataPolicyGetResponse
|
|
155
|
+
from catalystwan.models.policy.definition.url_filtering import UrlFilteringPolicy, UrlFilteringPolicyGetResponse
|
|
140
156
|
from catalystwan.models.policy.definition.vpn_membership import VPNMembershipPolicy, VPNMembershipPolicyGetResponse
|
|
141
157
|
from catalystwan.models.policy.definition.zone_based_firewall import ZoneBasedFWPolicy, ZoneBasedFWPolicyGetResponse
|
|
142
158
|
from catalystwan.models.policy.list.app_probe import AppProbeClassListInfo
|
|
@@ -224,7 +240,10 @@ POLICY_DEFINITION_ENDPOINTS_MAP: Mapping[type, type] = {
|
|
|
224
240
|
AclIPv6Policy: ConfigurationPolicyAclIPv6Definition,
|
|
225
241
|
DeviceAccessPolicy: ConfigurationPolicyDeviceAccessDefinition,
|
|
226
242
|
DeviceAccessIPv6Policy: ConfigurationPolicyDeviceAccessIPv6Definition,
|
|
243
|
+
AdvancedInspectionProfilePolicy: ConfigurationPolicyAIPDefinition,
|
|
227
244
|
AdvancedMalwareProtectionPolicy: ConfigurationPolicyAMPDefinition,
|
|
245
|
+
IntrusionPreventionPolicy: ConfigurationPolicyIntrusionPreventionDefinition,
|
|
246
|
+
UrlFilteringPolicy: ConfigurationPolicyUrlFilteringDefinition,
|
|
228
247
|
}
|
|
229
248
|
|
|
230
249
|
|
|
@@ -648,10 +667,22 @@ class PolicyDefinitionsAPI:
|
|
|
648
667
|
endpoints = self.__get_definition_endpoints_instance(type)
|
|
649
668
|
endpoints.delete_policy_definition(id=id)
|
|
650
669
|
|
|
670
|
+
@overload
|
|
671
|
+
def get(self, type: Type[IntrusionPreventionPolicy]) -> DataSequence[PolicyDefinitionInfo]:
|
|
672
|
+
...
|
|
673
|
+
|
|
651
674
|
@overload
|
|
652
675
|
def get(self, type: Type[TrafficDataPolicy]) -> DataSequence[PolicyDefinitionInfo]:
|
|
653
676
|
...
|
|
654
677
|
|
|
678
|
+
@overload
|
|
679
|
+
def get(self, type: Type[UrlFilteringPolicy]) -> DataSequence[PolicyDefinitionInfo]:
|
|
680
|
+
...
|
|
681
|
+
|
|
682
|
+
@overload
|
|
683
|
+
def get(self, type: Type[AdvancedInspectionProfilePolicy]) -> DataSequence[PolicyDefinitionInfo]:
|
|
684
|
+
...
|
|
685
|
+
|
|
655
686
|
@overload
|
|
656
687
|
def get(self, type: Type[AdvancedMalwareProtectionPolicy]) -> DataSequence[PolicyDefinitionInfo]:
|
|
657
688
|
...
|
|
@@ -709,11 +740,22 @@ class PolicyDefinitionsAPI:
|
|
|
709
740
|
...
|
|
710
741
|
|
|
711
742
|
# get by id
|
|
743
|
+
@overload
|
|
744
|
+
def get(self, type: Type[IntrusionPreventionPolicy], id: UUID) -> IntrusionPreventionPolicyGetResponse:
|
|
745
|
+
...
|
|
712
746
|
|
|
713
747
|
@overload
|
|
714
748
|
def get(self, type: Type[TrafficDataPolicy], id: UUID) -> TrafficDataPolicyGetResponse:
|
|
715
749
|
...
|
|
716
750
|
|
|
751
|
+
@overload
|
|
752
|
+
def get(self, type: Type[UrlFilteringPolicy], id: UUID) -> UrlFilteringPolicyGetResponse:
|
|
753
|
+
...
|
|
754
|
+
|
|
755
|
+
@overload
|
|
756
|
+
def get(self, type: Type[AdvancedInspectionProfilePolicy], id: UUID) -> AdvancedInspectionProfilePolicyGetResponse:
|
|
757
|
+
...
|
|
758
|
+
|
|
717
759
|
@overload
|
|
718
760
|
def get(self, type: Type[AdvancedMalwareProtectionPolicy], id: UUID) -> AdvancedMalwareProtectionPolicyGetResponse:
|
|
719
761
|
...
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# mypy: disable-error-code="empty-body"
|
|
4
4
|
from typing import Optional
|
|
5
|
+
from uuid import UUID
|
|
5
6
|
|
|
6
7
|
from catalystwan.api.configuration_groups.parcel import _ParcelBase
|
|
7
8
|
from catalystwan.endpoints import JSON, APIEndpoints, delete, get, post, put, versions
|
|
@@ -14,12 +15,12 @@ from catalystwan.models.configuration.feature_profile.common import (
|
|
|
14
15
|
GetFeatureProfilesPayload,
|
|
15
16
|
SchemaTypeQuery,
|
|
16
17
|
)
|
|
17
|
-
from catalystwan.models.configuration.feature_profile.parcel import ParcelCreationResponse, ParcelId
|
|
18
|
+
from catalystwan.models.configuration.feature_profile.parcel import Parcel, ParcelCreationResponse, ParcelId
|
|
18
19
|
from catalystwan.models.configuration.feature_profile.sdwan.transport import (
|
|
19
20
|
AnyTransportParcel,
|
|
20
21
|
CellularControllerParcel,
|
|
21
22
|
)
|
|
22
|
-
from catalystwan.models.configuration.feature_profile.sdwan.transport.
|
|
23
|
+
from catalystwan.models.configuration.feature_profile.sdwan.transport.vpn import ManagementVpnParcel
|
|
23
24
|
from catalystwan.typed_list import DataSequence
|
|
24
25
|
|
|
25
26
|
|
|
@@ -38,56 +39,82 @@ class TransportFeatureProfile(APIEndpoints):
|
|
|
38
39
|
|
|
39
40
|
@versions(supported_versions=(">=20.13"), raises=False)
|
|
40
41
|
@get("/v1/feature-profile/sdwan/transport/{profile_id}")
|
|
41
|
-
def get_transport_feature_profile(
|
|
42
|
+
def get_transport_feature_profile(
|
|
43
|
+
self, profile_id: UUID, params: GetFeatureProfilesPayload
|
|
44
|
+
) -> FeatureProfileDetail:
|
|
42
45
|
...
|
|
43
46
|
|
|
44
47
|
@versions(supported_versions=(">=20.13"), raises=False)
|
|
45
48
|
@put("/v1/feature-profile/sdwan/transport/{profile_id}")
|
|
46
49
|
def edit_transport_feature_profile(
|
|
47
|
-
self, profile_id:
|
|
50
|
+
self, profile_id: UUID, payload: FeatureProfileEditPayload
|
|
48
51
|
) -> FeatureProfileCreationResponse:
|
|
49
52
|
...
|
|
50
53
|
|
|
51
54
|
@versions(supported_versions=(">=20.13"), raises=False)
|
|
52
55
|
@delete("/v1/feature-profile/sdwan/transport/{profile_id}")
|
|
53
|
-
def delete_transport_feature_profile(self, profile_id:
|
|
56
|
+
def delete_transport_feature_profile(self, profile_id: UUID) -> None:
|
|
54
57
|
...
|
|
55
58
|
|
|
56
59
|
@versions(supported_versions=(">=20.13"), raises=False)
|
|
57
60
|
@post("/v1/feature-profile/sdwan/transport/{profile_id}/{parcel_type}")
|
|
58
61
|
def create_transport_parcel(
|
|
59
|
-
self, profile_id:
|
|
62
|
+
self, profile_id: UUID, parcel_type: str, payload: _ParcelBase
|
|
60
63
|
) -> ParcelCreationResponse:
|
|
61
64
|
...
|
|
62
65
|
|
|
66
|
+
@versions(supported_versions=(">=20.13"), raises=False)
|
|
67
|
+
@post("/v1/feature-profile/sdwan/transport/{profile_id}/wan/vpn/{vpn_id}/{parcel_type}")
|
|
68
|
+
def create_transport_vpn_sub_parcel(
|
|
69
|
+
self, profile_id: UUID, vpn_id: UUID, parcel_type: str, payload: _ParcelBase
|
|
70
|
+
) -> ParcelCreationResponse:
|
|
71
|
+
...
|
|
72
|
+
|
|
73
|
+
@versions(supported_versions=(">=20.13"), raises=False)
|
|
74
|
+
@post("/v1/feature-profile/sdwan/transport/{profile_id}/management/vpn/{vpn_id}/{parcel_type}")
|
|
75
|
+
def create_management_vpn_sub_parcel(
|
|
76
|
+
self, profile_id: UUID, vpn_id: UUID, parcel_type: str, payload: _ParcelBase
|
|
77
|
+
) -> ParcelCreationResponse:
|
|
78
|
+
...
|
|
79
|
+
|
|
80
|
+
@versions(supported_versions=(">=20.13"), raises=False)
|
|
81
|
+
@get("/v1/feature-profile/sdwan/transport/{profile_id}/{parcel_type}")
|
|
82
|
+
def get_transport_parcels(self, profile_id: UUID, parcel_type: str) -> DataSequence[Parcel[AnyTransportParcel]]:
|
|
83
|
+
...
|
|
84
|
+
|
|
85
|
+
@versions(supported_versions=(">=20.13"), raises=False)
|
|
86
|
+
@get("/v1/feature-profile/sdwan/transport/{profile_id}/{parcel_type}/{parcel_id}")
|
|
87
|
+
def get_transport_parcel(self, profile_id: UUID, parcel_type: str, parcel_id: UUID) -> Parcel[AnyTransportParcel]:
|
|
88
|
+
...
|
|
89
|
+
|
|
63
90
|
#
|
|
64
91
|
# ManagementVPN parcel
|
|
65
92
|
#
|
|
66
93
|
@versions(supported_versions=(">=20.13"), raises=False)
|
|
67
94
|
@post("/v1/feature-profile/sdwan/transport/{profile_id}/management/vpn")
|
|
68
|
-
def create_management_vpn_parcel(self, profile_id:
|
|
95
|
+
def create_management_vpn_parcel(self, profile_id: UUID, payload: _ParcelBase) -> ParcelCreationResponse:
|
|
69
96
|
...
|
|
70
97
|
|
|
71
98
|
# @versions(supported_versions=(">=20.13"), raises=False)
|
|
72
99
|
# @get("/v1/feature-profile/sdwan/transport/{profile_id}/management/vpn")
|
|
73
|
-
# def get_management_vpn_parcels(self, profile_id:
|
|
100
|
+
# def get_management_vpn_parcels(self, profile_id: UUID) -> ParcelSequence[ManagementVPN]:
|
|
74
101
|
# ...
|
|
75
102
|
|
|
76
103
|
# @versions(supported_versions=(">=20.13"), raises=False)
|
|
77
104
|
# @get("/v1/feature-profile/sdwan/transport/{profile_id}/management/vpn/{parcel_id}")
|
|
78
|
-
# def get_management_vpn_parcel(self, profile_id:
|
|
105
|
+
# def get_management_vpn_parcel(self, profile_id: UUID, parcel_id: str) -> Parcel[ManagementVPN]:
|
|
79
106
|
# ...
|
|
80
107
|
|
|
81
108
|
@versions(supported_versions=(">=20.13"), raises=False)
|
|
82
109
|
@put("/v1/feature-profile/sdwan/transport/{profile_id}/management/vpn/{parcel_id}")
|
|
83
110
|
def edit_management_vpn_parcel(
|
|
84
|
-
self, profile_id:
|
|
111
|
+
self, profile_id: UUID, parcel_id: str, payload: ManagementVpnParcel
|
|
85
112
|
) -> ParcelCreationResponse:
|
|
86
113
|
...
|
|
87
114
|
|
|
88
115
|
@versions(supported_versions=(">=20.13"), raises=False)
|
|
89
116
|
@delete("/v1/feature-profile/sdwan/transport/{profile_id}/management/vpn/{parcel_id}")
|
|
90
|
-
def delete_management_vpn_parcel(self, profile_id:
|
|
117
|
+
def delete_management_vpn_parcel(self, profile_id: UUID, parcel_id: str) -> None:
|
|
91
118
|
...
|
|
92
119
|
|
|
93
120
|
@versions(supported_versions=(">=20.9"), raises=False)
|