catalystwan 0.41.2__py3-none-any.whl → 0.41.2.dev0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- catalystwan/__init__.py +3 -2
- catalystwan/api/administration.py +13 -2
- catalystwan/api/api_container.py +4 -1
- catalystwan/api/builders/__init__.py +14 -0
- catalystwan/api/builders/feature_profiles/__init__.py +0 -0
- catalystwan/api/builders/feature_profiles/application_priority.py +58 -0
- catalystwan/api/builders/feature_profiles/builder_factory.py +59 -0
- catalystwan/api/builders/feature_profiles/cli.py +76 -0
- catalystwan/api/builders/feature_profiles/mixins.py +44 -0
- catalystwan/api/builders/feature_profiles/other.py +79 -0
- catalystwan/api/builders/feature_profiles/report.py +155 -0
- catalystwan/api/builders/feature_profiles/service.py +248 -0
- catalystwan/api/builders/feature_profiles/system.py +80 -0
- catalystwan/api/builders/feature_profiles/transport.py +256 -0
- catalystwan/api/builders/feature_profiles/uc_voice.py +287 -0
- catalystwan/api/config_group_api.py +41 -16
- catalystwan/api/configuration_groups/parcel.py +100 -30
- catalystwan/api/feature_profile_api.py +2021 -242
- catalystwan/api/policy_api.py +470 -116
- catalystwan/api/template_api.py +113 -44
- catalystwan/api/templates/README.md +61 -47
- catalystwan/api/templates/cli_template.py +17 -7
- catalystwan/api/templates/device_template/device_template.py +127 -32
- catalystwan/api/templates/feature_template.py +3 -3
- catalystwan/api/templates/models/aaa_model.py +387 -0
- catalystwan/api/templates/models/cisco_aaa_model.py +289 -42
- catalystwan/api/templates/models/cisco_banner_model.py +11 -2
- catalystwan/api/templates/models/cisco_bfd_model.py +31 -36
- catalystwan/api/templates/models/cisco_bgp_model.py +382 -131
- catalystwan/api/templates/models/cisco_logging_model.py +80 -43
- catalystwan/api/templates/models/cisco_ntp_model.py +34 -15
- catalystwan/api/templates/models/cisco_omp_model.py +70 -60
- catalystwan/api/templates/models/cisco_ospf.py +143 -74
- catalystwan/api/templates/models/cisco_ospfv3.py +217 -95
- catalystwan/api/templates/models/cisco_secure_internet_gateway.py +304 -142
- catalystwan/api/templates/models/cisco_snmp_model.py +66 -52
- catalystwan/api/templates/models/cisco_system.py +238 -129
- catalystwan/api/templates/models/cisco_vpn_interface_model.py +632 -275
- catalystwan/api/templates/models/cisco_vpn_model.py +433 -270
- catalystwan/api/templates/models/cli_template.py +3 -2
- catalystwan/api/templates/models/omp_vsmart_model.py +46 -10
- catalystwan/api/templates/models/security_vsmart_model.py +11 -8
- catalystwan/api/templates/models/supported.py +10 -4
- catalystwan/api/templates/models/system_vsmart_model.py +164 -27
- catalystwan/api/templates/models/vpn_vsmart_interface_model.py +198 -0
- catalystwan/api/templates/models/vpn_vsmart_model.py +124 -0
- catalystwan/apigw_auth.py +6 -2
- catalystwan/dataclasses.py +2 -53
- catalystwan/endpoints/__init__.py +41 -41
- catalystwan/endpoints/certificate_management_device.py +4 -0
- catalystwan/endpoints/cluster_management.py +27 -7
- catalystwan/endpoints/configuration/feature_profile/sdwan/application_priority.py +107 -0
- catalystwan/endpoints/configuration/feature_profile/sdwan/cli.py +60 -0
- catalystwan/endpoints/configuration/feature_profile/sdwan/dns_security.py +83 -0
- catalystwan/endpoints/configuration/feature_profile/sdwan/embedded_security.py +88 -0
- catalystwan/endpoints/configuration/feature_profile/sdwan/other.py +62 -0
- catalystwan/endpoints/configuration/feature_profile/sdwan/policy_object.py +35 -12
- catalystwan/endpoints/configuration/feature_profile/sdwan/service.py +154 -0
- catalystwan/endpoints/configuration/feature_profile/sdwan/sig_security.py +88 -0
- catalystwan/endpoints/configuration/feature_profile/sdwan/system.py +164 -11
- catalystwan/endpoints/configuration/feature_profile/sdwan/topology.py +93 -0
- catalystwan/endpoints/configuration/feature_profile/sdwan/transport.py +144 -26
- catalystwan/endpoints/configuration/feature_profile/sdwan/uc_voice.py +77 -0
- catalystwan/endpoints/configuration/network_hierarchy.py +32 -0
- catalystwan/endpoints/configuration/policy/abstractions.py +49 -0
- catalystwan/endpoints/configuration/policy/definition/access_control_list.py +6 -11
- catalystwan/endpoints/configuration/policy/definition/access_control_list_ipv6.py +6 -11
- catalystwan/endpoints/configuration/policy/definition/aip.py +52 -0
- catalystwan/endpoints/configuration/policy/definition/amp.py +52 -0
- catalystwan/endpoints/configuration/policy/definition/app_route.py +50 -0
- catalystwan/endpoints/configuration/policy/definition/cflowd.py +46 -0
- catalystwan/endpoints/configuration/policy/definition/control.py +6 -11
- catalystwan/endpoints/configuration/policy/definition/device_access.py +6 -11
- catalystwan/endpoints/configuration/policy/definition/device_access_ipv6.py +6 -11
- catalystwan/endpoints/configuration/policy/definition/dial_peer.py +57 -0
- catalystwan/endpoints/configuration/policy/definition/dns_security.py +50 -0
- catalystwan/endpoints/configuration/policy/definition/fxo_port.py +57 -0
- catalystwan/endpoints/configuration/policy/definition/fxs_did_port.py +57 -0
- catalystwan/endpoints/configuration/policy/definition/fxs_port.py +57 -0
- catalystwan/endpoints/configuration/policy/definition/hub_and_spoke.py +6 -11
- catalystwan/endpoints/configuration/policy/definition/intrusion_prevention.py +52 -0
- catalystwan/endpoints/configuration/policy/definition/mesh.py +2 -11
- catalystwan/endpoints/configuration/policy/definition/pri_isdn_port.py +57 -0
- catalystwan/endpoints/configuration/policy/definition/qos_map.py +2 -11
- catalystwan/endpoints/configuration/policy/definition/rewrite.py +6 -11
- catalystwan/endpoints/configuration/policy/definition/route_policy.py +50 -0
- catalystwan/endpoints/configuration/policy/definition/rule_set.py +2 -11
- catalystwan/endpoints/configuration/policy/definition/security_group.py +6 -11
- catalystwan/endpoints/configuration/policy/definition/srst_phone_profile.py +59 -0
- catalystwan/endpoints/configuration/policy/definition/ssl_decryption.py +50 -0
- catalystwan/endpoints/configuration/policy/definition/ssl_decryption_utd_profile.py +52 -0
- catalystwan/endpoints/configuration/policy/definition/traffic_data.py +6 -11
- catalystwan/endpoints/configuration/policy/definition/url_filtering.py +50 -0
- catalystwan/endpoints/configuration/policy/definition/vpn_membership.py +6 -11
- catalystwan/endpoints/configuration/policy/definition/vpn_qos_map.py +50 -0
- catalystwan/endpoints/configuration/policy/definition/zone_based_firewall.py +6 -11
- catalystwan/endpoints/configuration/policy/list/app.py +3 -16
- catalystwan/endpoints/configuration/policy/list/app_probe.py +6 -15
- catalystwan/endpoints/configuration/policy/list/as_path.py +3 -16
- catalystwan/endpoints/configuration/policy/list/class_map.py +3 -16
- catalystwan/endpoints/configuration/policy/list/color.py +3 -16
- catalystwan/endpoints/configuration/policy/list/community.py +3 -16
- catalystwan/endpoints/configuration/policy/list/data_ipv6_prefix.py +6 -15
- catalystwan/endpoints/configuration/policy/list/data_prefix.py +3 -16
- catalystwan/endpoints/configuration/policy/list/expanded_community.py +6 -15
- catalystwan/endpoints/configuration/policy/list/extended_community.py +52 -0
- catalystwan/endpoints/configuration/policy/list/fax_protocol.py +48 -0
- catalystwan/endpoints/configuration/policy/list/fqdn.py +3 -16
- catalystwan/endpoints/configuration/policy/list/geo_location.py +3 -16
- catalystwan/endpoints/configuration/policy/list/identity.py +48 -0
- catalystwan/endpoints/configuration/policy/list/ips_signature.py +6 -15
- catalystwan/endpoints/configuration/policy/list/ipv6_prefix.py +3 -16
- catalystwan/endpoints/configuration/policy/list/local_app.py +3 -16
- catalystwan/endpoints/configuration/policy/list/local_domain.py +3 -16
- catalystwan/endpoints/configuration/policy/list/media_profile.py +52 -0
- catalystwan/endpoints/configuration/policy/list/mirror.py +3 -16
- catalystwan/endpoints/configuration/policy/list/modem_pass_through.py +52 -0
- catalystwan/endpoints/configuration/policy/list/policer.py +3 -16
- catalystwan/endpoints/configuration/policy/list/port.py +3 -16
- catalystwan/endpoints/configuration/policy/list/preferred_color_group.py +6 -15
- catalystwan/endpoints/configuration/policy/list/prefix.py +4 -16
- catalystwan/endpoints/configuration/policy/list/protocol_name.py +6 -15
- catalystwan/endpoints/configuration/policy/list/region.py +2 -10
- catalystwan/endpoints/configuration/policy/list/scalable_group_tag.py +52 -0
- catalystwan/endpoints/configuration/policy/list/site.py +3 -16
- catalystwan/endpoints/configuration/policy/list/sla.py +3 -16
- catalystwan/endpoints/configuration/policy/list/supervisory_disconnect.py +52 -0
- catalystwan/endpoints/configuration/policy/list/threat_grid_api_key.py +52 -0
- catalystwan/endpoints/configuration/policy/list/tloc.py +3 -16
- catalystwan/endpoints/configuration/policy/list/translation_profile.py +52 -0
- catalystwan/endpoints/configuration/policy/list/translation_rules.py +52 -0
- catalystwan/endpoints/configuration/policy/list/trunkgroup.py +48 -0
- catalystwan/endpoints/configuration/policy/list/umbrella_data.py +52 -0
- catalystwan/endpoints/configuration/policy/list/url_allow_list.py +3 -16
- catalystwan/endpoints/configuration/policy/list/url_block_list.py +3 -16
- catalystwan/endpoints/configuration/policy/list/vpn.py +3 -16
- catalystwan/endpoints/configuration/policy/list/zone.py +3 -16
- catalystwan/endpoints/configuration/policy/security_template.py +2 -3
- catalystwan/endpoints/configuration/policy/voice_template.py +39 -0
- catalystwan/endpoints/configuration/policy_group.py +30 -0
- catalystwan/endpoints/configuration/software_actions.py +2 -4
- catalystwan/endpoints/configuration/topology_group.py +51 -0
- catalystwan/endpoints/configuration_dashboard_status.py +2 -2
- catalystwan/endpoints/configuration_device_template.py +15 -1
- catalystwan/endpoints/configuration_feature_profile.py +8 -11
- catalystwan/endpoints/configuration_general_template.py +31 -0
- catalystwan/endpoints/configuration_group.py +28 -5
- catalystwan/endpoints/configuration_settings.py +90 -1
- catalystwan/endpoints/configuration_template_master.py +48 -0
- catalystwan/endpoints/endpoints_container.py +79 -19
- catalystwan/endpoints/real_time_monitoring/reboot_history.py +1 -3
- catalystwan/endpoints/tenant_migration.py +2 -0
- catalystwan/exceptions.py +17 -0
- catalystwan/integration_tests/base.py +81 -0
- catalystwan/integration_tests/feature_profile/sdwan/__init__.py +0 -0
- catalystwan/integration_tests/feature_profile/sdwan/policy/__init__.py +0 -0
- catalystwan/integration_tests/feature_profile/sdwan/policy/base.py +33 -0
- catalystwan/integration_tests/feature_profile/sdwan/policy/test_extended_community.py +33 -0
- catalystwan/integration_tests/feature_profile/sdwan/policy/test_security_app_list.py +32 -0
- catalystwan/integration_tests/feature_profile/sdwan/test_application_priority.py +433 -0
- catalystwan/integration_tests/feature_profile/sdwan/test_cli.py +54 -0
- catalystwan/integration_tests/feature_profile/sdwan/test_dns_security.py +106 -0
- catalystwan/integration_tests/feature_profile/sdwan/test_other.py +49 -0
- catalystwan/integration_tests/feature_profile/sdwan/test_service.py +1078 -0
- catalystwan/integration_tests/feature_profile/sdwan/test_sig_security.py +322 -0
- catalystwan/integration_tests/feature_profile/sdwan/test_ssl_decryption.py +85 -0
- catalystwan/integration_tests/feature_profile/sdwan/test_system.py +368 -0
- catalystwan/integration_tests/feature_profile/sdwan/test_tracker.py +127 -0
- catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +1698 -0
- catalystwan/integration_tests/feature_profile/sdwan/topology/test_topology.py +93 -0
- catalystwan/integration_tests/profile_builder/__init__.py +0 -0
- catalystwan/integration_tests/profile_builder/test_pb_service.py +197 -0
- catalystwan/integration_tests/profile_builder/test_pb_transport.py +226 -0
- catalystwan/integration_tests/profile_builder/test_pb_uc_voice.py +277 -0
- catalystwan/integration_tests/test_data/__init__.py +117 -0
- catalystwan/integration_tests/test_find_template_values.py +7 -18
- catalystwan/integration_tests/test_network_hierarchy.py +82 -0
- catalystwan/integration_tests/test_settings.py +30 -0
- catalystwan/models/common.py +1898 -2
- catalystwan/models/configuration/common.py +1 -0
- catalystwan/models/configuration/feature_profile/common.py +634 -149
- catalystwan/models/configuration/feature_profile/parcel.py +238 -0
- catalystwan/models/configuration/feature_profile/sdwan/acl/__init__.py +13 -0
- catalystwan/models/configuration/feature_profile/sdwan/acl/ipv4acl.py +298 -0
- catalystwan/models/configuration/feature_profile/sdwan/acl/ipv6acl.py +344 -0
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/__init__.py +218 -0
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/cloud_probe.py +61 -0
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/policy_settings.py +31 -0
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/qos_policy.py +102 -0
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/traffic_policy.py +1057 -0
- catalystwan/models/configuration/feature_profile/sdwan/cli/__init__.py +23 -0
- catalystwan/models/configuration/feature_profile/sdwan/cli/config.py +18 -0
- catalystwan/models/configuration/feature_profile/sdwan/cli/full_config.py +15 -0
- catalystwan/models/configuration/feature_profile/sdwan/dns_security/__init__.py +13 -0
- catalystwan/models/configuration/feature_profile/sdwan/dns_security/dns.py +110 -0
- catalystwan/models/configuration/feature_profile/sdwan/embedded_security/__init__.py +23 -0
- catalystwan/models/configuration/feature_profile/sdwan/embedded_security/ngfirewall.py +493 -0
- catalystwan/models/configuration/feature_profile/sdwan/embedded_security/policy.py +171 -0
- catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py +25 -0
- catalystwan/models/configuration/feature_profile/sdwan/other/cybervision.py +44 -0
- catalystwan/models/configuration/feature_profile/sdwan/other/thousandeyes.py +147 -0
- catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py +110 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/__init__.py +62 -48
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py +34 -20
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py +8 -6
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/as_path.py +22 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/color_list.py +7 -5
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/data_prefix.py +13 -4
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/expanded_community_list.py +9 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/extended_community.py +34 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/fowarding_class.py +7 -5
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_network_object.py +15 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_service_object.py +254 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_data_prefix.py +11 -9
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_prefix_list.py +25 -10
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/mirror.py +27 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/network_object_group.py +15 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/object_group.py +15 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/{policier.py → policer.py} +12 -10
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefered_group_color.py +29 -10
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefix_list.py +23 -8
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/service_object_group.py +21 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/sla_class.py +12 -31
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/standard_community.py +16 -10
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/tloc_list.py +8 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/aip.py +64 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/amp.py +79 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/application_list.py +8 -6
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/data_prefix.py +7 -5
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/fqdn.py +7 -5
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/geolocation_list.py +7 -5
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/identity.py +30 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/intrusion_prevention.py +58 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ips_signature.py +7 -5
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/local_domain.py +7 -5
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/object_group.py +72 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/protocol_list.py +7 -5
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/rule_set.py +137 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/scalable_group_tag.py +26 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/security_port.py +21 -11
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption.py +126 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption_profile.py +165 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url.py +15 -10
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url_filtering.py +148 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/zone.py +14 -18
- catalystwan/models/configuration/feature_profile/sdwan/routing/__init__.py +26 -0
- catalystwan/models/configuration/feature_profile/sdwan/routing/bgp.py +609 -0
- catalystwan/models/configuration/feature_profile/sdwan/{service → routing}/ospf.py +55 -47
- catalystwan/models/configuration/feature_profile/sdwan/{service → routing}/ospfv3.py +74 -72
- catalystwan/models/configuration/feature_profile/sdwan/service/__init__.py +91 -0
- catalystwan/models/configuration/feature_profile/sdwan/service/appqoe.py +76 -41
- catalystwan/models/configuration/feature_profile/sdwan/service/dhcp_server.py +107 -64
- catalystwan/models/configuration/feature_profile/sdwan/service/dual_router_ha.py +26 -0
- catalystwan/models/configuration/feature_profile/sdwan/service/eigrp.py +39 -42
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/common.py +7 -88
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py +231 -155
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/gre.py +38 -108
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/ipsec.py +77 -84
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/multilink.py +101 -0
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/svi.py +62 -56
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/vpn.py +111 -120
- catalystwan/models/configuration/feature_profile/sdwan/service/multicast.py +56 -57
- catalystwan/models/configuration/feature_profile/sdwan/service/object_tracker.py +15 -21
- catalystwan/models/configuration/feature_profile/sdwan/service/route_policy.py +358 -110
- catalystwan/models/configuration/feature_profile/sdwan/service/service_chain.py +38 -0
- catalystwan/models/configuration/feature_profile/sdwan/service/service_insertion_attachment.py +17 -25
- catalystwan/models/configuration/feature_profile/sdwan/service/switchport.py +50 -58
- catalystwan/models/configuration/feature_profile/sdwan/service/tracker.py +12 -21
- catalystwan/models/configuration/feature_profile/sdwan/service/wireless_lan.py +27 -31
- catalystwan/models/configuration/feature_profile/sdwan/sig_security/__init__.py +19 -0
- catalystwan/models/configuration/feature_profile/sdwan/sig_security/sig_security.py +379 -0
- catalystwan/models/configuration/feature_profile/sdwan/system/__init__.py +59 -0
- catalystwan/models/configuration/feature_profile/sdwan/system/aaa.py +58 -10
- catalystwan/models/configuration/feature_profile/sdwan/system/banner.py +30 -0
- catalystwan/models/configuration/feature_profile/sdwan/system/basic.py +290 -0
- catalystwan/models/configuration/feature_profile/sdwan/system/bfd.py +69 -0
- catalystwan/models/configuration/feature_profile/sdwan/system/device_access.py +157 -0
- catalystwan/models/configuration/feature_profile/sdwan/system/device_access_ipv6.py +157 -0
- catalystwan/models/configuration/feature_profile/sdwan/system/global_parcel.py +163 -0
- catalystwan/models/configuration/feature_profile/sdwan/system/logging_parcel.py +162 -0
- catalystwan/models/configuration/feature_profile/sdwan/system/mrf.py +75 -0
- catalystwan/models/configuration/feature_profile/sdwan/system/ntp.py +103 -0
- catalystwan/models/configuration/feature_profile/sdwan/system/omp.py +120 -0
- catalystwan/models/configuration/feature_profile/sdwan/system/security.py +179 -0
- catalystwan/models/configuration/feature_profile/sdwan/system/snmp.py +173 -0
- catalystwan/models/configuration/feature_profile/sdwan/topology/__init__.py +29 -0
- catalystwan/models/configuration/feature_profile/sdwan/topology/custom_control.py +425 -0
- catalystwan/models/configuration/feature_profile/sdwan/topology/hubspoke.py +60 -0
- catalystwan/models/configuration/feature_profile/sdwan/topology/mesh.py +23 -0
- catalystwan/models/configuration/feature_profile/sdwan/trackers/__init__.py +36 -0
- catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker.py +96 -0
- catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker_group.py +63 -0
- catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +93 -0
- catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_controller.py +26 -23
- catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_profile.py +71 -0
- catalystwan/models/configuration/feature_profile/sdwan/transport/gps.py +37 -0
- catalystwan/models/configuration/feature_profile/sdwan/transport/management/ethernet.py +121 -0
- catalystwan/models/configuration/feature_profile/sdwan/transport/t1e1controller.py +124 -0
- catalystwan/models/configuration/feature_profile/sdwan/transport/vpn.py +285 -0
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/cellular.py +173 -0
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ethernet.py +389 -0
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/gre.py +46 -0
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ipsec.py +137 -0
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/multilink.py +219 -0
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/protocol_over.py +405 -0
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/t1e1serial.py +195 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/__init__.py +62 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/analog_interface.py +436 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/call_routing.py +179 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/digital_interface.py +380 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/dsp_farm.py +193 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/media_profile.py +17 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/server_group.py +51 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/srst.py +86 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/supervisory_disconnect.py +69 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_profile.py +42 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_rule.py +31 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/trunk_group.py +26 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_global.py +55 -0
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_tenant.py +40 -0
- catalystwan/models/configuration/network_hierarchy/__init__.py +22 -0
- catalystwan/models/configuration/network_hierarchy/cflowd.py +120 -0
- catalystwan/models/configuration/network_hierarchy/node.py +88 -0
- catalystwan/models/configuration/policy_group.py +74 -0
- catalystwan/models/configuration/profile_type.py +1 -6
- catalystwan/models/configuration/topology_group.py +52 -0
- catalystwan/models/policy/__init__.py +275 -69
- catalystwan/models/policy/centralized.py +26 -29
- catalystwan/models/policy/{definitions → definition}/access_control_list.py +47 -17
- catalystwan/models/policy/{definitions → definition}/access_control_list_ipv6.py +42 -18
- catalystwan/models/policy/definition/aip.py +60 -0
- catalystwan/models/policy/definition/amp.py +65 -0
- catalystwan/models/policy/definition/app_route.py +246 -0
- catalystwan/models/policy/definition/cflowd.py +95 -0
- catalystwan/models/policy/{definitions → definition}/control.py +48 -25
- catalystwan/models/policy/{definitions → definition}/device_access.py +22 -11
- catalystwan/models/policy/{definitions → definition}/device_access_ipv6.py +20 -11
- catalystwan/models/policy/definition/dial_peer.py +60 -0
- catalystwan/models/policy/definition/dns_security.py +130 -0
- catalystwan/models/policy/definition/fxo_port.py +63 -0
- catalystwan/models/policy/definition/fxs_did_port.py +58 -0
- catalystwan/models/policy/definition/fxs_port.py +56 -0
- catalystwan/models/policy/{definitions → definition}/hub_and_spoke.py +18 -4
- catalystwan/models/policy/definition/intrusion_prevention.py +55 -0
- catalystwan/models/policy/{definitions → definition}/mesh.py +13 -1
- catalystwan/models/policy/definition/pri_isdn_port.py +48 -0
- catalystwan/models/policy/{definitions → definition}/qos_map.py +39 -32
- catalystwan/models/policy/{definitions → definition}/rewrite.py +12 -2
- catalystwan/models/policy/definition/route_policy.py +187 -0
- catalystwan/models/policy/{definitions → definition}/rule_set.py +66 -48
- catalystwan/models/policy/{definitions → definition}/security_group.py +38 -14
- catalystwan/models/policy/definition/srst_phone_profile.py +37 -0
- catalystwan/models/policy/definition/ssl_decryption.py +209 -0
- catalystwan/models/policy/definition/ssl_decryption_utd_profile.py +87 -0
- catalystwan/models/policy/{definitions → definition}/traffic_data.py +184 -61
- catalystwan/models/policy/definition/url_filtering.py +70 -0
- catalystwan/models/policy/{definitions → definition}/vpn_membership.py +13 -1
- catalystwan/models/policy/definition/vpn_qos_map.py +46 -0
- catalystwan/models/policy/{definitions → definition}/zone_based_firewall.py +93 -32
- catalystwan/models/policy/list/app.py +44 -0
- catalystwan/models/policy/list/app_probe.py +42 -0
- catalystwan/models/policy/list/as_path.py +30 -0
- catalystwan/models/policy/list/class_map.py +30 -0
- catalystwan/models/policy/list/color.py +28 -0
- catalystwan/models/policy/list/communities.py +83 -0
- catalystwan/models/policy/list/data_ipv6_prefix.py +30 -0
- catalystwan/models/policy/list/data_prefix.py +30 -0
- catalystwan/models/policy/list/fax_protocol.py +45 -0
- catalystwan/models/policy/list/fqdn.py +24 -0
- catalystwan/models/policy/list/geo_location.py +33 -0
- catalystwan/models/policy/list/identity.py +29 -0
- catalystwan/models/policy/list/ips_signature.py +27 -0
- catalystwan/models/policy/list/ipv6_prefix.py +33 -0
- catalystwan/models/policy/list/local_app.py +45 -0
- catalystwan/models/policy/list/local_domain.py +36 -0
- catalystwan/models/policy/list/media_profile.py +44 -0
- catalystwan/models/policy/list/mirror.py +27 -0
- catalystwan/models/policy/list/modem_pass_through.py +27 -0
- catalystwan/models/policy/list/policer.py +39 -0
- catalystwan/models/policy/list/port.py +33 -0
- catalystwan/models/policy/list/preferred_color_group.py +82 -0
- catalystwan/models/policy/list/prefix.py +33 -0
- catalystwan/models/policy/list/protocol_name.py +26 -0
- catalystwan/models/policy/list/region.py +45 -0
- catalystwan/models/policy/list/scalable_group_tag.py +30 -0
- catalystwan/models/policy/list/site.py +34 -0
- catalystwan/models/policy/list/sla.py +77 -0
- catalystwan/models/policy/list/supervisory_disconnect.py +62 -0
- catalystwan/models/policy/list/threat_grid_api_key.py +32 -0
- catalystwan/models/policy/list/tloc.py +32 -0
- catalystwan/models/policy/list/translation_profile.py +32 -0
- catalystwan/models/policy/list/translation_rules.py +29 -0
- catalystwan/models/policy/list/trunkgroup.py +56 -0
- catalystwan/models/policy/list/umbrella_data.py +30 -0
- catalystwan/models/policy/list/url.py +39 -0
- catalystwan/models/policy/list/vpn.py +40 -0
- catalystwan/models/policy/list/zone.py +46 -0
- catalystwan/models/policy/localized.py +34 -16
- catalystwan/models/policy/policy.py +13 -9
- catalystwan/models/policy/policy_definition.py +673 -173
- catalystwan/models/policy/policy_list.py +38 -27
- catalystwan/models/policy/security.py +145 -46
- catalystwan/models/policy/voice.py +77 -0
- catalystwan/models/settings.py +41 -0
- catalystwan/models/templates.py +79 -0
- catalystwan/response.py +6 -2
- catalystwan/session.py +1 -1
- catalystwan/tests/builders/test_report.py +60 -0
- catalystwan/tests/builders/uc_voice.py +85 -0
- catalystwan/tests/models/__init__.py +0 -0
- catalystwan/tests/models/test_digital_interface.py +56 -0
- catalystwan/tests/templates/definitions/aaa_basic.json +96 -0
- catalystwan/tests/templates/definitions/aaa_complex.json +464 -0
- catalystwan/tests/templates/definitions/{iuo.json → cisco_aaa.json} +44 -15
- catalystwan/tests/templates/definitions/cisco_aaa_complex.json +361 -0
- catalystwan/tests/templates/definitions/cisco_logging_complex.json +268 -0
- catalystwan/tests/templates/definitions/cisco_ntp_complex.json +143 -0
- catalystwan/tests/templates/definitions/cisco_omp_complex.json +175 -0
- catalystwan/tests/templates/definitions/cisco_ospf_complex.json +302 -0
- catalystwan/tests/templates/definitions/cisco_sig.json +405 -0
- catalystwan/tests/templates/definitions/cisco_snmp_complex.json +258 -0
- catalystwan/tests/templates/definitions/cisco_system_complex.json +502 -0
- catalystwan/tests/templates/definitions/{Basic_Cisco_VPN_Model.json → cisco_vpn_basic.json} +2 -2
- catalystwan/tests/templates/definitions/{complex_cisco_vpn.json → cisco_vpn_complex.json} +27 -12
- catalystwan/tests/templates/definitions/cisco_vpn_interface_complex.json +821 -0
- catalystwan/tests/templates/definitions/omp_vsmart_1.json +26 -0
- catalystwan/tests/templates/definitions/{omp_2.json → omp_vsmart_2.json} +16 -2
- catalystwan/tests/templates/definitions/{omp_3.json → omp_vsmart_3.json} +16 -2
- catalystwan/tests/templates/definitions/omp_vsmart_complex.json +73 -0
- catalystwan/tests/templates/definitions/security_vsmart_complex.json +24 -0
- catalystwan/tests/templates/definitions/system_vsmart_complex.json +193 -0
- catalystwan/tests/templates/definitions/vpn_vsmart_basic.json +17 -0
- catalystwan/tests/templates/definitions/vpn_vsmart_complex.json +179 -0
- catalystwan/tests/templates/definitions/vpn_vsmart_interface_basic.json +42 -0
- catalystwan/tests/templates/definitions/vpn_vsmart_interface_complex.json +208 -0
- catalystwan/tests/templates/models/__init__.py +46 -13
- catalystwan/tests/templates/models/aaa.py +106 -0
- catalystwan/tests/templates/models/cisco_aaa.py +81 -48
- catalystwan/tests/templates/models/cisco_banner.py +2 -2
- catalystwan/tests/templates/models/cisco_bfd.py +4 -6
- catalystwan/tests/templates/models/cisco_logging.py +65 -0
- catalystwan/tests/templates/models/cisco_ntp.py +17 -0
- catalystwan/tests/templates/models/cisco_omp.py +37 -0
- catalystwan/tests/templates/models/cisco_ospf.py +60 -0
- catalystwan/tests/templates/models/cisco_secure_internet_gateway.py +95 -0
- catalystwan/tests/templates/models/cisco_snmp.py +40 -0
- catalystwan/tests/templates/models/cisco_system.py +108 -3
- catalystwan/tests/templates/models/cisco_vpn.py +42 -72
- catalystwan/tests/templates/models/cisco_vpn_interface.py +200 -0
- catalystwan/tests/templates/models/omp_vsmart.py +28 -8
- catalystwan/tests/templates/models/security_vsmart.py +11 -0
- catalystwan/tests/templates/models/system_vsmart.py +37 -0
- catalystwan/tests/templates/models/vpn_vsmart.py +32 -0
- catalystwan/tests/templates/models/vpn_vsmart_interface.py +54 -0
- catalystwan/tests/templates/schemas/aaa.json +1096 -0
- catalystwan/tests/templates/schemas/cedge_aaa.json +1 -1
- catalystwan/tests/templates/schemas/cisco_logging.json +577 -0
- catalystwan/tests/templates/schemas/cisco_ntp.json +265 -0
- catalystwan/tests/templates/schemas/cisco_omp.json +479 -0
- catalystwan/tests/templates/schemas/cisco_ospf.json +908 -0
- catalystwan/tests/templates/schemas/cisco_secure_internet_gateway.json +1520 -0
- catalystwan/tests/templates/schemas/cisco_snmp.json +561 -0
- catalystwan/tests/templates/schemas/cisco_system.json +242 -0
- catalystwan/tests/templates/schemas/cisco_vpn.json +53 -1
- catalystwan/tests/templates/schemas/cisco_vpn_interface.json +3348 -0
- catalystwan/tests/templates/schemas/omp-vsmart.json +20 -0
- catalystwan/tests/templates/schemas/security-vsmart.json +58 -0
- catalystwan/tests/templates/schemas/system-vsmart.json +2585 -0
- catalystwan/tests/templates/schemas/vpn-vsmart-interface.json +859 -0
- catalystwan/tests/templates/schemas/vpn-vsmart.json +445 -0
- catalystwan/tests/templates/test_chose_model.py +6 -10
- catalystwan/tests/templates/test_deserialize_model.py +4 -4
- catalystwan/tests/templates/test_find_template_values.py +229 -0
- catalystwan/tests/templates/test_find_template_values_2.py +193 -0
- catalystwan/tests/templates/test_serialize_model.py +1 -2
- catalystwan/tests/test_cli_template.py +8 -9
- catalystwan/tests/test_endpoints.py +42 -11
- catalystwan/tests/test_feature_profile_api.py +282 -0
- catalystwan/tests/test_models_common.py +53 -0
- catalystwan/tests/test_templates.py +16 -19
- catalystwan/utils/feature_template/find_template_values.py +17 -4
- catalystwan/utils/model.py +45 -0
- catalystwan/utils/persona.py +5 -0
- catalystwan/utils/type_check.py +22 -0
- catalystwan/workflows/backup_restore_device_templates.py +467 -0
- catalystwan/workflows/tenant_migration.py +1 -1
- {catalystwan-0.41.2.dist-info → catalystwan-0.41.2.dev0.dist-info}/METADATA +20 -1
- catalystwan-0.41.2.dev0.dist-info/RECORD +636 -0
- catalystwan/ENDPOINTS.md +0 -611
- catalystwan/api/configuration_groups/parcels/cellular_controller.py +0 -33
- catalystwan/api/templates/device_template/device_template_payload.json.j2 +0 -19
- catalystwan/models/configuration/config_migration.py +0 -36
- catalystwan/models/configuration/feature_profile/sdwan/management/vpn.py +0 -26
- catalystwan/models/configuration/feature_profile/sdwan/service/acl.py +0 -409
- catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py +0 -288
- catalystwan/models/policy/lists.py +0 -330
- catalystwan/models/policy/lists_entries.py +0 -444
- catalystwan/tests/templates/definitions/complex_aaa.json +0 -277
- catalystwan/tests/templates/definitions/omp_1.json +0 -11
- catalystwan/utils/timezone.py +0 -422
- catalystwan-0.41.2.dist-info/RECORD +0 -353
- /catalystwan/tests/templates/definitions/{banner_1.json → cisco_banner.json} +0 -0
- {catalystwan-0.41.2.dist-info → catalystwan-0.41.2.dev0.dist-info}/LICENSE +0 -0
- {catalystwan-0.41.2.dist-info → catalystwan-0.41.2.dev0.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Copyright 2024 Cisco Systems, Inc. and its affiliates
|
|
2
|
+
|
|
3
|
+
# mypy: disable-error-code="empty-body"
|
|
4
|
+
from uuid import UUID
|
|
5
|
+
|
|
6
|
+
from catalystwan.endpoints import APIEndpoints, delete, get, post, put
|
|
7
|
+
from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
|
|
8
|
+
from catalystwan.models.policy.list.translation_profile import (
|
|
9
|
+
TranslationProfileList,
|
|
10
|
+
TranslationProfileListEditPayload,
|
|
11
|
+
TranslationProfileListInfo,
|
|
12
|
+
)
|
|
13
|
+
from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
|
|
14
|
+
from catalystwan.typed_list import DataSequence
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class ConfigurationPolicyTranslationProfileList(APIEndpoints, PolicyListEndpoints):
|
|
18
|
+
@post("/template/policy/list/translationprofile")
|
|
19
|
+
def create_policy_list(self, payload: TranslationProfileList) -> PolicyListId:
|
|
20
|
+
...
|
|
21
|
+
|
|
22
|
+
@delete("/template/policy/list/translationprofile/{id}")
|
|
23
|
+
def delete_policy_list(self, id: UUID) -> None:
|
|
24
|
+
...
|
|
25
|
+
|
|
26
|
+
@delete("/template/policy/list/translationprofile")
|
|
27
|
+
def delete_policy_lists_with_info_tag(self, params: InfoTag) -> None:
|
|
28
|
+
...
|
|
29
|
+
|
|
30
|
+
@put("/template/policy/list/translationprofile/{id}")
|
|
31
|
+
def edit_policy_list(self, id: UUID, payload: TranslationProfileListEditPayload) -> None:
|
|
32
|
+
...
|
|
33
|
+
|
|
34
|
+
@get("/template/policy/list/translationprofile/{id}")
|
|
35
|
+
def get_lists_by_id(self, id: UUID) -> TranslationProfileListInfo:
|
|
36
|
+
...
|
|
37
|
+
|
|
38
|
+
@get("/template/policy/list/translationprofile", "data")
|
|
39
|
+
def get_policy_lists(self) -> DataSequence[TranslationProfileListInfo]:
|
|
40
|
+
...
|
|
41
|
+
|
|
42
|
+
@get("/template/policy/list/translationprofile/filtered", "data")
|
|
43
|
+
def get_policy_lists_with_info_tag(self, params: InfoTag) -> DataSequence[TranslationProfileListInfo]:
|
|
44
|
+
...
|
|
45
|
+
|
|
46
|
+
@post("/template/policy/list/translationprofile/preview")
|
|
47
|
+
def preview_policy_list(self, payload: TranslationProfileList) -> PolicyListPreview:
|
|
48
|
+
...
|
|
49
|
+
|
|
50
|
+
@get("/template/policy/list/translationprofile/preview/{id}")
|
|
51
|
+
def preview_policy_list_by_id(self, id: UUID) -> PolicyListPreview:
|
|
52
|
+
...
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Copyright 2024 Cisco Systems, Inc. and its affiliates
|
|
2
|
+
|
|
3
|
+
# mypy: disable-error-code="empty-body"
|
|
4
|
+
from uuid import UUID
|
|
5
|
+
|
|
6
|
+
from catalystwan.endpoints import APIEndpoints, delete, get, post, put
|
|
7
|
+
from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
|
|
8
|
+
from catalystwan.models.policy.list.translation_rules import (
|
|
9
|
+
TranslationRulesList,
|
|
10
|
+
TranslationRulesListEditPayload,
|
|
11
|
+
TranslationRulesListInfo,
|
|
12
|
+
)
|
|
13
|
+
from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
|
|
14
|
+
from catalystwan.typed_list import DataSequence
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class ConfigurationPolicyTranslationRulesList(APIEndpoints, PolicyListEndpoints):
|
|
18
|
+
@post("/template/policy/list/translationrules")
|
|
19
|
+
def create_policy_list(self, payload: TranslationRulesList) -> PolicyListId:
|
|
20
|
+
...
|
|
21
|
+
|
|
22
|
+
@delete("/template/policy/list/translationrules/{id}")
|
|
23
|
+
def delete_policy_list(self, id: UUID) -> None:
|
|
24
|
+
...
|
|
25
|
+
|
|
26
|
+
@delete("/template/policy/list/translationrules")
|
|
27
|
+
def delete_policy_lists_with_info_tag(self, params: InfoTag) -> None:
|
|
28
|
+
...
|
|
29
|
+
|
|
30
|
+
@put("/template/policy/list/translationrules/{id}")
|
|
31
|
+
def edit_policy_list(self, id: UUID, payload: TranslationRulesListEditPayload) -> None:
|
|
32
|
+
...
|
|
33
|
+
|
|
34
|
+
@get("/template/policy/list/translationrules/{id}")
|
|
35
|
+
def get_lists_by_id(self, id: UUID) -> TranslationRulesListInfo:
|
|
36
|
+
...
|
|
37
|
+
|
|
38
|
+
@get("/template/policy/list/translationrules", "data")
|
|
39
|
+
def get_policy_lists(self) -> DataSequence[TranslationRulesListInfo]:
|
|
40
|
+
...
|
|
41
|
+
|
|
42
|
+
@get("/template/policy/list/translationrules/filtered", "data")
|
|
43
|
+
def get_policy_lists_with_info_tag(self, params: InfoTag) -> DataSequence[TranslationRulesListInfo]:
|
|
44
|
+
...
|
|
45
|
+
|
|
46
|
+
@post("/template/policy/list/translationrules/preview")
|
|
47
|
+
def preview_policy_list(self, payload: TranslationRulesList) -> PolicyListPreview:
|
|
48
|
+
...
|
|
49
|
+
|
|
50
|
+
@get("/template/policy/list/translationrules/preview/{id}")
|
|
51
|
+
def preview_policy_list_by_id(self, id: UUID) -> PolicyListPreview:
|
|
52
|
+
...
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Copyright 2024 Cisco Systems, Inc. and its affiliates
|
|
2
|
+
|
|
3
|
+
# mypy: disable-error-code="empty-body"
|
|
4
|
+
from uuid import UUID
|
|
5
|
+
|
|
6
|
+
from catalystwan.endpoints import APIEndpoints, delete, get, post, put
|
|
7
|
+
from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
|
|
8
|
+
from catalystwan.models.policy.list.trunkgroup import TrunkGroupList, TrunkGroupListEditPayload, TrunkGroupListInfo
|
|
9
|
+
from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
|
|
10
|
+
from catalystwan.typed_list import DataSequence
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ConfigurationPolicyTrunkGroupList(APIEndpoints, PolicyListEndpoints):
|
|
14
|
+
@post("/template/policy/list/trunkgroup")
|
|
15
|
+
def create_policy_list(self, payload: TrunkGroupList) -> PolicyListId:
|
|
16
|
+
...
|
|
17
|
+
|
|
18
|
+
@delete("/template/policy/list/trunkgroup/{id}")
|
|
19
|
+
def delete_policy_list(self, id: UUID) -> None:
|
|
20
|
+
...
|
|
21
|
+
|
|
22
|
+
@delete("/template/policy/list/trunkgroup")
|
|
23
|
+
def delete_policy_lists_with_info_tag(self, params: InfoTag) -> None:
|
|
24
|
+
...
|
|
25
|
+
|
|
26
|
+
@put("/template/policy/list/trunkgroup/{id}")
|
|
27
|
+
def edit_policy_list(self, id: UUID, payload: TrunkGroupListEditPayload) -> None:
|
|
28
|
+
...
|
|
29
|
+
|
|
30
|
+
@get("/template/policy/list/trunkgroup/{id}")
|
|
31
|
+
def get_lists_by_id(self, id: UUID) -> TrunkGroupListInfo:
|
|
32
|
+
...
|
|
33
|
+
|
|
34
|
+
@get("/template/policy/list/trunkgroup", "data")
|
|
35
|
+
def get_policy_lists(self) -> DataSequence[TrunkGroupListInfo]:
|
|
36
|
+
...
|
|
37
|
+
|
|
38
|
+
@get("/template/policy/list/trunkgroup/filtered", "data")
|
|
39
|
+
def get_policy_lists_with_info_tag(self, params: InfoTag) -> DataSequence[TrunkGroupListInfo]:
|
|
40
|
+
...
|
|
41
|
+
|
|
42
|
+
@post("/template/policy/list/trunkgroup/preview")
|
|
43
|
+
def preview_policy_list(self, payload: TrunkGroupList) -> PolicyListPreview:
|
|
44
|
+
...
|
|
45
|
+
|
|
46
|
+
@get("/template/policy/list/trunkgroup/preview/{id}")
|
|
47
|
+
def preview_policy_list_by_id(self, id: UUID) -> PolicyListPreview:
|
|
48
|
+
...
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Copyright 2024 Cisco Systems, Inc. and its affiliates
|
|
2
|
+
|
|
3
|
+
# mypy: disable-error-code="empty-body"
|
|
4
|
+
from uuid import UUID
|
|
5
|
+
|
|
6
|
+
from catalystwan.endpoints import APIEndpoints, delete, get, post, put
|
|
7
|
+
from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
|
|
8
|
+
from catalystwan.models.policy.list.umbrella_data import (
|
|
9
|
+
UmbrellaDataList,
|
|
10
|
+
UmbrellaDataListEditPayload,
|
|
11
|
+
UmbrellaDataListInfo,
|
|
12
|
+
)
|
|
13
|
+
from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
|
|
14
|
+
from catalystwan.typed_list import DataSequence
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class ConfigurationPolicyUmbrellaDataList(APIEndpoints, PolicyListEndpoints):
|
|
18
|
+
@post("/template/policy/list/umbrelladata")
|
|
19
|
+
def create_policy_list(self, payload: UmbrellaDataList) -> PolicyListId:
|
|
20
|
+
...
|
|
21
|
+
|
|
22
|
+
@delete("/template/policy/list/umbrelladata/{id}")
|
|
23
|
+
def delete_policy_list(self, id: UUID) -> None:
|
|
24
|
+
...
|
|
25
|
+
|
|
26
|
+
@delete("/template/policy/list/umbrelladata")
|
|
27
|
+
def delete_policy_lists_with_info_tag(self, params: InfoTag) -> None:
|
|
28
|
+
...
|
|
29
|
+
|
|
30
|
+
@put("/template/policy/list/umbrelladata/{id}")
|
|
31
|
+
def edit_policy_list(self, id: UUID, payload: UmbrellaDataListEditPayload) -> None:
|
|
32
|
+
...
|
|
33
|
+
|
|
34
|
+
@get("/template/policy/list/umbrelladata/{id}")
|
|
35
|
+
def get_lists_by_id(self, id: UUID) -> UmbrellaDataListInfo:
|
|
36
|
+
...
|
|
37
|
+
|
|
38
|
+
@get("/template/policy/list/umbrelladata", "data")
|
|
39
|
+
def get_policy_lists(self) -> DataSequence[UmbrellaDataListInfo]:
|
|
40
|
+
...
|
|
41
|
+
|
|
42
|
+
@get("/template/policy/list/umbrelladata/filtered", "data")
|
|
43
|
+
def get_policy_lists_with_info_tag(self, params: InfoTag) -> DataSequence[UmbrellaDataListInfo]:
|
|
44
|
+
...
|
|
45
|
+
|
|
46
|
+
@post("/template/policy/list/umbrelladata/preview")
|
|
47
|
+
def preview_policy_list(self, payload: UmbrellaDataList) -> PolicyListPreview:
|
|
48
|
+
...
|
|
49
|
+
|
|
50
|
+
@get("/template/policy/list/umbrelladata/preview/{id}")
|
|
51
|
+
def preview_policy_list_by_id(self, id: UUID) -> PolicyListPreview:
|
|
52
|
+
...
|
|
@@ -4,25 +4,12 @@
|
|
|
4
4
|
from uuid import UUID
|
|
5
5
|
|
|
6
6
|
from catalystwan.endpoints import APIEndpoints, delete, get, post, put
|
|
7
|
-
from catalystwan.
|
|
8
|
-
from catalystwan.models.policy.
|
|
9
|
-
|
|
10
|
-
PolicyListEndpoints,
|
|
11
|
-
PolicyListId,
|
|
12
|
-
PolicyListInfo,
|
|
13
|
-
PolicyListPreview,
|
|
14
|
-
)
|
|
7
|
+
from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
|
|
8
|
+
from catalystwan.models.policy.list.url import URLAllowList, URLAllowListEditPayload, URLAllowListInfo
|
|
9
|
+
from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
|
|
15
10
|
from catalystwan.typed_list import DataSequence
|
|
16
11
|
|
|
17
12
|
|
|
18
|
-
class URLAllowListEditPayload(URLAllowList, PolicyListId):
|
|
19
|
-
pass
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class URLAllowListInfo(URLAllowList, PolicyListInfo):
|
|
23
|
-
pass
|
|
24
|
-
|
|
25
|
-
|
|
26
13
|
class ConfigurationPolicyURLAllowList(APIEndpoints, PolicyListEndpoints):
|
|
27
14
|
@post("/template/policy/list/urlwhitelist")
|
|
28
15
|
def create_policy_list(self, payload: URLAllowList) -> PolicyListId:
|
|
@@ -4,25 +4,12 @@
|
|
|
4
4
|
from uuid import UUID
|
|
5
5
|
|
|
6
6
|
from catalystwan.endpoints import APIEndpoints, delete, get, post, put
|
|
7
|
-
from catalystwan.
|
|
8
|
-
from catalystwan.models.policy.
|
|
9
|
-
|
|
10
|
-
PolicyListEndpoints,
|
|
11
|
-
PolicyListId,
|
|
12
|
-
PolicyListInfo,
|
|
13
|
-
PolicyListPreview,
|
|
14
|
-
)
|
|
7
|
+
from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
|
|
8
|
+
from catalystwan.models.policy.list.url import URLBlockList, URLBlockListEditPayload, URLBlockListInfo
|
|
9
|
+
from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
|
|
15
10
|
from catalystwan.typed_list import DataSequence
|
|
16
11
|
|
|
17
12
|
|
|
18
|
-
class URLBlockListEditPayload(URLBlockList, PolicyListId):
|
|
19
|
-
pass
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class URLBlockListInfo(URLBlockList, PolicyListInfo):
|
|
23
|
-
pass
|
|
24
|
-
|
|
25
|
-
|
|
26
13
|
class ConfigurationPolicyURLBlockList(APIEndpoints, PolicyListEndpoints):
|
|
27
14
|
@post("/template/policy/list/urlblacklist")
|
|
28
15
|
def create_policy_list(self, payload: URLBlockList) -> PolicyListId:
|
|
@@ -6,25 +6,12 @@
|
|
|
6
6
|
from uuid import UUID
|
|
7
7
|
|
|
8
8
|
from catalystwan.endpoints import APIEndpoints, delete, get, post, put
|
|
9
|
-
from catalystwan.
|
|
10
|
-
from catalystwan.models.policy.
|
|
11
|
-
|
|
12
|
-
PolicyListEndpoints,
|
|
13
|
-
PolicyListId,
|
|
14
|
-
PolicyListInfo,
|
|
15
|
-
PolicyListPreview,
|
|
16
|
-
)
|
|
9
|
+
from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
|
|
10
|
+
from catalystwan.models.policy.list.vpn import VPNList, VPNListEditPayload, VPNListInfo
|
|
11
|
+
from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
|
|
17
12
|
from catalystwan.typed_list import DataSequence
|
|
18
13
|
|
|
19
14
|
|
|
20
|
-
class VPNListEditPayload(VPNList, PolicyListId):
|
|
21
|
-
pass
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class VPNListInfo(VPNList, PolicyListInfo):
|
|
25
|
-
pass
|
|
26
|
-
|
|
27
|
-
|
|
28
15
|
class ConfigurationPolicyVPNList(APIEndpoints, PolicyListEndpoints):
|
|
29
16
|
@post("/template/policy/list/vpn")
|
|
30
17
|
def create_policy_list(self, payload: VPNList) -> PolicyListId:
|
|
@@ -4,25 +4,12 @@
|
|
|
4
4
|
from uuid import UUID
|
|
5
5
|
|
|
6
6
|
from catalystwan.endpoints import APIEndpoints, delete, get, post, put
|
|
7
|
-
from catalystwan.
|
|
8
|
-
from catalystwan.models.policy.
|
|
9
|
-
|
|
10
|
-
PolicyListEndpoints,
|
|
11
|
-
PolicyListId,
|
|
12
|
-
PolicyListInfo,
|
|
13
|
-
PolicyListPreview,
|
|
14
|
-
)
|
|
7
|
+
from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
|
|
8
|
+
from catalystwan.models.policy.list.zone import ZoneList, ZoneListEditPayload, ZoneListInfo
|
|
9
|
+
from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
|
|
15
10
|
from catalystwan.typed_list import DataSequence
|
|
16
11
|
|
|
17
12
|
|
|
18
|
-
class ZoneListEditPayload(ZoneList, PolicyListId):
|
|
19
|
-
pass
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class ZoneListInfo(ZoneList, PolicyListInfo):
|
|
23
|
-
pass
|
|
24
|
-
|
|
25
|
-
|
|
26
13
|
class ConfigurationPolicyZoneList(APIEndpoints, PolicyListEndpoints):
|
|
27
14
|
@post("/template/policy/list/zone")
|
|
28
15
|
def create_policy_list(self, payload: ZoneList) -> PolicyListId:
|
|
@@ -6,11 +6,10 @@ from uuid import UUID
|
|
|
6
6
|
from catalystwan.endpoints import JSON, APIEndpoints, delete, get, post, put
|
|
7
7
|
from catalystwan.models.policy.security import (
|
|
8
8
|
AnySecurityPolicy,
|
|
9
|
+
AnySecurityPolicyInfoList,
|
|
9
10
|
SecurityPolicyEditResponse,
|
|
10
|
-
SecurityPolicyInfoRoot,
|
|
11
11
|
SecurityPolicyRoot,
|
|
12
12
|
)
|
|
13
|
-
from catalystwan.typed_list import DataSequence
|
|
14
13
|
|
|
15
14
|
|
|
16
15
|
class ConfigurationSecurityTemplatePolicy(APIEndpoints):
|
|
@@ -36,7 +35,7 @@ class ConfigurationSecurityTemplatePolicy(APIEndpoints):
|
|
|
36
35
|
...
|
|
37
36
|
|
|
38
37
|
@get("/template/policy/security", "data")
|
|
39
|
-
def generate_security_template_list(self) ->
|
|
38
|
+
def generate_security_template_list(self) -> AnySecurityPolicyInfoList:
|
|
40
39
|
...
|
|
41
40
|
|
|
42
41
|
def get_device_list_by_id(self):
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Copyright 2024 Cisco Systems, Inc. and its affiliates
|
|
2
|
+
|
|
3
|
+
# mypy: disable-error-code="empty-body"
|
|
4
|
+
from uuid import UUID
|
|
5
|
+
|
|
6
|
+
from catalystwan.endpoints import JSON, APIEndpoints, delete, get, post, put
|
|
7
|
+
from catalystwan.models.policy.voice import VoicePolicy, VoicePolicyEditResponse, VoicePolicyInfo
|
|
8
|
+
from catalystwan.typed_list import DataSequence
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ConfigurationVoiceTemplatePolicy(APIEndpoints):
|
|
12
|
+
@post("/template/policy/voice")
|
|
13
|
+
def create_voice_template(self, payload: VoicePolicy) -> None:
|
|
14
|
+
...
|
|
15
|
+
|
|
16
|
+
@delete("/template/policy/voice/{id}")
|
|
17
|
+
def delete_voice_template(self, id: UUID, payload: JSON = {}) -> None:
|
|
18
|
+
...
|
|
19
|
+
|
|
20
|
+
@put("/template/policy/voice/{id}")
|
|
21
|
+
def edit_voice_template(self, id: UUID, payload: VoicePolicy) -> VoicePolicyEditResponse:
|
|
22
|
+
# PUT /template/policy/voice/{policyId}
|
|
23
|
+
...
|
|
24
|
+
|
|
25
|
+
def generate_voice_policy_summary(self):
|
|
26
|
+
# GET /template/policy/voice/summary
|
|
27
|
+
...
|
|
28
|
+
|
|
29
|
+
@get("/template/policy/voice", "data")
|
|
30
|
+
def generate_voice_template_list(self) -> DataSequence[VoicePolicyInfo]:
|
|
31
|
+
...
|
|
32
|
+
|
|
33
|
+
@get("/template/policy/voice/definition/{id}")
|
|
34
|
+
def get_voice_template(self, id: UUID) -> VoicePolicy:
|
|
35
|
+
...
|
|
36
|
+
|
|
37
|
+
def get_voice_templates_for_device(self):
|
|
38
|
+
# GET /template/policy/voice/{deviceModel}
|
|
39
|
+
...
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Copyright 2024 Cisco Systems, Inc. and its affiliates
|
|
2
|
+
|
|
3
|
+
# mypy: disable-error-code="empty-body"
|
|
4
|
+
from uuid import UUID
|
|
5
|
+
|
|
6
|
+
from catalystwan.endpoints import APIEndpoints, delete, get, post, put, versions
|
|
7
|
+
from catalystwan.models.configuration.policy_group import PolicyGroup, PolicyGroupId, PolicyGroupInfo
|
|
8
|
+
from catalystwan.typed_list import DataSequence
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class PolicyGroupEndpoints(APIEndpoints):
|
|
12
|
+
@post("/v1/policy-group")
|
|
13
|
+
@versions(">=20.12")
|
|
14
|
+
def create_policy_group(self, payload: PolicyGroup) -> PolicyGroupId:
|
|
15
|
+
...
|
|
16
|
+
|
|
17
|
+
@get("/v1/policy-group")
|
|
18
|
+
@versions(">=20.12")
|
|
19
|
+
def get_all(self) -> DataSequence[PolicyGroupInfo]:
|
|
20
|
+
...
|
|
21
|
+
|
|
22
|
+
@put("/v1/policy-group/{group_id}")
|
|
23
|
+
@versions(">=20.12")
|
|
24
|
+
def update(self, group_id: UUID, payload: PolicyGroup) -> None:
|
|
25
|
+
...
|
|
26
|
+
|
|
27
|
+
@delete("/v1/policy-group/{group_id}")
|
|
28
|
+
@versions(">=20.12")
|
|
29
|
+
def delete(self, group_id: UUID) -> None:
|
|
30
|
+
...
|
|
@@ -100,10 +100,8 @@ class RemoteServerInfo(BaseModel):
|
|
|
100
100
|
class SoftwareRemoteServer(BaseModel):
|
|
101
101
|
model_config = ConfigDict(populate_by_name=True)
|
|
102
102
|
|
|
103
|
-
filename:
|
|
104
|
-
remote_server_id:
|
|
105
|
-
default=None, serialization_alias="remoteServerId", validation_alias="remoteServerId"
|
|
106
|
-
)
|
|
103
|
+
filename: str = Field(serialization_alias="fileName", validation_alias="fileName")
|
|
104
|
+
remote_server_id: str = Field(serialization_alias="remoteServerId", validation_alias="remoteServerId")
|
|
107
105
|
smu_defect_id: Optional[str] = Field(
|
|
108
106
|
default=None, serialization_alias="smuDefectId", validation_alias="smuDefectId"
|
|
109
107
|
)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Copyright 2024 Cisco Systems, Inc. and its affiliates
|
|
2
|
+
|
|
3
|
+
# mypy: disable-error-code="empty-body"
|
|
4
|
+
from uuid import UUID
|
|
5
|
+
|
|
6
|
+
from catalystwan.endpoints import APIEndpoints, delete, get, post, put, versions
|
|
7
|
+
from catalystwan.models.configuration.topology_group import (
|
|
8
|
+
ActivateRequest,
|
|
9
|
+
DeployResponse,
|
|
10
|
+
Preview,
|
|
11
|
+
TopologyGroup,
|
|
12
|
+
TopologyGroupId,
|
|
13
|
+
)
|
|
14
|
+
from catalystwan.typed_list import DataSequence
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class TopologyGroupEndpoints(APIEndpoints):
|
|
18
|
+
@post("/v1/topology-group")
|
|
19
|
+
@versions(">=20.12")
|
|
20
|
+
def create(self, payload: TopologyGroup) -> TopologyGroupId:
|
|
21
|
+
...
|
|
22
|
+
|
|
23
|
+
@put("/v1/topology-group/{group_id}")
|
|
24
|
+
@versions(">=20.12")
|
|
25
|
+
def edit(self, group_id: UUID, payload: TopologyGroup) -> TopologyGroupId:
|
|
26
|
+
...
|
|
27
|
+
|
|
28
|
+
@get("/v1/topology-group/{group_id}")
|
|
29
|
+
@versions(">=20.12")
|
|
30
|
+
def get_by_id(self, group_id: UUID) -> TopologyGroup:
|
|
31
|
+
...
|
|
32
|
+
|
|
33
|
+
@get("/v1/topology-group")
|
|
34
|
+
@versions(">=20.12")
|
|
35
|
+
def get_all(self) -> DataSequence[TopologyGroupId]:
|
|
36
|
+
...
|
|
37
|
+
|
|
38
|
+
@delete("/v1/topology-group/{group_id}")
|
|
39
|
+
@versions(">=20.12")
|
|
40
|
+
def delete(self, group_id: UUID) -> None:
|
|
41
|
+
...
|
|
42
|
+
|
|
43
|
+
@post("/v1/topology-group/{group_id}/device/{device_id}/preview")
|
|
44
|
+
@versions(">=20.12")
|
|
45
|
+
def preview(self, group_id: UUID, device_id: UUID, payload: ActivateRequest) -> Preview:
|
|
46
|
+
...
|
|
47
|
+
|
|
48
|
+
@post("/v1/topology-group/{group_id}/device/deploy")
|
|
49
|
+
@versions(">=20.12")
|
|
50
|
+
def deploy(self, group_id: UUID, payload: ActivateRequest) -> DeployResponse:
|
|
51
|
+
...
|
|
@@ -61,7 +61,7 @@ class Validation(BaseModel):
|
|
|
61
61
|
device_id: Optional[str] = Field(default=None, serialization_alias="deviceID", validation_alias="deviceID")
|
|
62
62
|
uuid: Optional[str] = Field(default=None, serialization_alias="uuid", validation_alias="uuid")
|
|
63
63
|
rid: Optional[int] = Field(default=None, serialization_alias="@rid", validation_alias="@rid")
|
|
64
|
-
status_id:
|
|
64
|
+
status_id: str = Field(serialization_alias="statusId", validation_alias="statusId")
|
|
65
65
|
process_id: Optional[str] = Field(default=None, serialization_alias="processId", validation_alias="processId")
|
|
66
66
|
action_config: Optional[Union[str, Dict]] = Field(
|
|
67
67
|
default=None, serialization_alias="actionConfig", validation_alias="actionConfig"
|
|
@@ -74,7 +74,7 @@ class Validation(BaseModel):
|
|
|
74
74
|
request_status: Optional[str] = Field(
|
|
75
75
|
default=None, serialization_alias="requestStatus", validation_alias="requestStatus"
|
|
76
76
|
)
|
|
77
|
-
status:
|
|
77
|
+
status: OperationStatus = Field(serialization_alias="status", validation_alias="status")
|
|
78
78
|
order: Optional[int] = Field(default=None, serialization_alias="order", validation_alias="order")
|
|
79
79
|
|
|
80
80
|
|
|
@@ -5,7 +5,13 @@ from typing import Dict
|
|
|
5
5
|
|
|
6
6
|
from pydantic import BaseModel, ConfigDict, Field
|
|
7
7
|
|
|
8
|
-
from catalystwan.
|
|
8
|
+
from catalystwan.api.templates.device_template.device_template import (
|
|
9
|
+
CreateDeviceInputPayload,
|
|
10
|
+
DeviceInputValues,
|
|
11
|
+
DeviceTemplateConfigAttached,
|
|
12
|
+
)
|
|
13
|
+
from catalystwan.endpoints import APIEndpoints, get, post, view
|
|
14
|
+
from catalystwan.typed_list import DataSequence
|
|
9
15
|
from catalystwan.utils.session_type import ProviderView
|
|
10
16
|
|
|
11
17
|
|
|
@@ -23,3 +29,11 @@ class ConfigurationDeviceTemplate(APIEndpoints):
|
|
|
23
29
|
@post("/template/device/config/config/")
|
|
24
30
|
def get_device_configuration_preview(self, payload: FeatureToCLIPayload) -> str:
|
|
25
31
|
...
|
|
32
|
+
|
|
33
|
+
@get("/template/device/config/attached/{template_id}", resp_json_key="data")
|
|
34
|
+
def get_device_config_attached(self, template_id: str) -> DataSequence[DeviceTemplateConfigAttached]:
|
|
35
|
+
...
|
|
36
|
+
|
|
37
|
+
@post("/template/device/config/input/", resp_json_key="data")
|
|
38
|
+
def create_device_input(self, payload: CreateDeviceInputPayload) -> DataSequence[DeviceInputValues]:
|
|
39
|
+
...
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2024 Cisco Systems, Inc. and its affiliates
|
|
2
2
|
|
|
3
3
|
# mypy: disable-error-code="empty-body"
|
|
4
4
|
from enum import Enum
|
|
@@ -13,6 +13,7 @@ from catalystwan.models.configuration.feature_profile.common import (
|
|
|
13
13
|
FeatureProfileCreationResponse,
|
|
14
14
|
FeatureProfileInfo,
|
|
15
15
|
)
|
|
16
|
+
from catalystwan.models.configuration.feature_profile.parcel import ParcelId
|
|
16
17
|
from catalystwan.models.feature_profile_parcel import FullConfigParcel
|
|
17
18
|
from catalystwan.typed_list import DataSequence
|
|
18
19
|
|
|
@@ -28,10 +29,6 @@ class SchemaTypeQuery(BaseModel):
|
|
|
28
29
|
schema_type: SchemaType = Field(alias="schemaType")
|
|
29
30
|
|
|
30
31
|
|
|
31
|
-
class ParcelId(BaseModel):
|
|
32
|
-
id: str = Field(alias="parcelId")
|
|
33
|
-
|
|
34
|
-
|
|
35
32
|
class GetFeatureProfilesPayload(BaseModel):
|
|
36
33
|
limit: Optional[int]
|
|
37
34
|
offset: Optional[int]
|
|
@@ -105,32 +102,32 @@ class ConfigurationFeatureProfile(APIEndpoints):
|
|
|
105
102
|
|
|
106
103
|
|
|
107
104
|
class SDRoutingConfigurationFeatureProfile(APIEndpoints):
|
|
108
|
-
@versions(supported_versions=(">=20.
|
|
105
|
+
@versions(supported_versions=(">=20.12"), raises=False)
|
|
109
106
|
@post("/v1/feature-profile/sd-routing/cli")
|
|
110
107
|
def create_cli_feature_profile(self, payload: FeatureProfileCreationPayload) -> FeatureProfileCreationResponse:
|
|
111
108
|
...
|
|
112
109
|
|
|
113
|
-
@versions(supported_versions=(">=20.
|
|
110
|
+
@versions(supported_versions=(">=20.12"), raises=False)
|
|
114
111
|
@post("/v1/feature-profile/sd-routing/cli/{cli_fp_id}/full-config")
|
|
115
112
|
def create_cli_full_config_parcel(self, cli_fp_id: str, payload: FullConfigParcel) -> ParcelId:
|
|
116
113
|
...
|
|
117
114
|
|
|
118
|
-
@versions(supported_versions=(">=20.
|
|
115
|
+
@versions(supported_versions=(">=20.12"), raises=False)
|
|
119
116
|
@delete("/v1/feature-profile/sd-routing/cli/{cli_fp_id}")
|
|
120
117
|
def delete_cli_feature_profile(self, cli_fp_id: str) -> None:
|
|
121
118
|
...
|
|
122
119
|
|
|
123
|
-
@versions(supported_versions=(">=20.
|
|
120
|
+
@versions(supported_versions=(">=20.12"), raises=False)
|
|
124
121
|
@delete("/v1/feature-profile/sd-routing/cli/{cli_fp_id}/full-config/{parcel_id}")
|
|
125
122
|
def delete_cli_full_config_parcel(self, cli_fp_id: str, parcel_id: str) -> None:
|
|
126
123
|
...
|
|
127
124
|
|
|
128
|
-
@versions(supported_versions=(">=20.
|
|
125
|
+
@versions(supported_versions=(">=20.12"), raises=False)
|
|
129
126
|
@put("/v1/feature-profile/sd-routing/cli/{cli_fp_id}/full-config/{parcel_id}")
|
|
130
127
|
def edit_cli_full_config_parcel(self, cli_fp_id: str, parcel_id: str, payload: FullConfigParcel) -> None:
|
|
131
128
|
...
|
|
132
129
|
|
|
133
|
-
@versions(supported_versions=(">=20.
|
|
130
|
+
@versions(supported_versions=(">=20.12"), raises=False)
|
|
134
131
|
@get("/v1/feature-profile/sd-routing/cli")
|
|
135
132
|
def get_cli_feature_profiles(
|
|
136
133
|
self, payload: Optional[GetFeatureProfilesPayload]
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright 2023 Cisco Systems, Inc. and its affiliates
|
|
2
|
+
|
|
3
|
+
# mypy: disable-error-code="empty-body"
|
|
4
|
+
from typing import Literal, Optional
|
|
5
|
+
from uuid import UUID
|
|
6
|
+
|
|
7
|
+
from pydantic import BaseModel, Field
|
|
8
|
+
|
|
9
|
+
from catalystwan.endpoints import APIEndpoints, get
|
|
10
|
+
from catalystwan.models.templates import FeatureTemplateDefinition, FeatureTemplateInformation
|
|
11
|
+
from catalystwan.typed_list import DataSequence
|
|
12
|
+
|
|
13
|
+
FeatureType = Literal["all", "vmanage-default", "network-design", "cloud-dock", "lawful-interception"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class FeatureQueryParams(BaseModel):
|
|
17
|
+
summary: bool = Field(default=False)
|
|
18
|
+
offset: Optional[int] = Field(default=None)
|
|
19
|
+
limit: Optional[int] = Field(default=None)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class ConfigurationGeneralTemplate(APIEndpoints):
|
|
23
|
+
@get("/template/feature", "data")
|
|
24
|
+
def get_feature_template_list(
|
|
25
|
+
self, params: FeatureQueryParams = FeatureQueryParams()
|
|
26
|
+
) -> DataSequence[FeatureTemplateInformation]:
|
|
27
|
+
...
|
|
28
|
+
|
|
29
|
+
@get("/template/feature/object/{template_id}")
|
|
30
|
+
def get_template_definition(self, template_id: UUID) -> DataSequence[FeatureTemplateDefinition]:
|
|
31
|
+
...
|