catalystwan 0.41.2.dev9__py3-none-any.whl → 0.41.3__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/ENDPOINTS.md +611 -0
- catalystwan/__init__.py +2 -3
- catalystwan/api/administration.py +2 -13
- catalystwan/api/api_container.py +1 -4
- catalystwan/api/config_group_api.py +16 -41
- catalystwan/api/configuration_groups/parcel.py +30 -100
- catalystwan/api/configuration_groups/parcels/cellular_controller.py +33 -0
- catalystwan/api/feature_profile_api.py +237 -2016
- catalystwan/api/policy_api.py +116 -470
- catalystwan/api/template_api.py +44 -113
- catalystwan/api/templates/README.md +47 -61
- catalystwan/api/templates/cli_template.py +7 -17
- catalystwan/api/templates/device_template/device_template.py +32 -127
- catalystwan/api/templates/device_template/device_template_payload.json.j2 +19 -0
- catalystwan/api/templates/feature_template.py +3 -3
- catalystwan/api/templates/models/cisco_aaa_model.py +42 -289
- catalystwan/api/templates/models/cisco_banner_model.py +2 -11
- catalystwan/api/templates/models/cisco_bfd_model.py +36 -31
- catalystwan/api/templates/models/cisco_bgp_model.py +131 -382
- catalystwan/api/templates/models/cisco_logging_model.py +43 -80
- catalystwan/api/templates/models/cisco_ntp_model.py +15 -34
- catalystwan/api/templates/models/cisco_omp_model.py +60 -70
- catalystwan/api/templates/models/cisco_ospf.py +74 -143
- catalystwan/api/templates/models/cisco_ospfv3.py +95 -217
- catalystwan/api/templates/models/cisco_secure_internet_gateway.py +142 -304
- catalystwan/api/templates/models/cisco_snmp_model.py +52 -66
- catalystwan/api/templates/models/cisco_system.py +129 -238
- catalystwan/api/templates/models/cisco_vpn_interface_model.py +275 -632
- catalystwan/api/templates/models/cisco_vpn_model.py +270 -433
- catalystwan/api/templates/models/cli_template.py +2 -3
- catalystwan/api/templates/models/omp_vsmart_model.py +10 -46
- catalystwan/api/templates/models/security_vsmart_model.py +8 -11
- catalystwan/api/templates/models/supported.py +4 -10
- catalystwan/api/templates/models/system_vsmart_model.py +27 -164
- catalystwan/apigw_auth.py +2 -6
- catalystwan/dataclasses.py +53 -2
- catalystwan/endpoints/__init__.py +41 -41
- catalystwan/endpoints/certificate_management_device.py +0 -4
- catalystwan/endpoints/cluster_management.py +9 -30
- catalystwan/endpoints/configuration/feature_profile/sdwan/policy_object.py +12 -35
- catalystwan/endpoints/configuration/feature_profile/sdwan/system.py +11 -164
- catalystwan/endpoints/configuration/feature_profile/sdwan/transport.py +26 -144
- catalystwan/endpoints/configuration/policy/definition/access_control_list.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/access_control_list_ipv6.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/control.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/device_access.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/device_access_ipv6.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/hub_and_spoke.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/mesh.py +11 -2
- catalystwan/endpoints/configuration/policy/definition/qos_map.py +11 -2
- catalystwan/endpoints/configuration/policy/definition/rewrite.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/rule_set.py +11 -2
- catalystwan/endpoints/configuration/policy/definition/security_group.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/traffic_data.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/vpn_membership.py +11 -6
- catalystwan/endpoints/configuration/policy/definition/zone_based_firewall.py +11 -6
- catalystwan/endpoints/configuration/policy/list/app.py +16 -3
- catalystwan/endpoints/configuration/policy/list/app_probe.py +15 -6
- catalystwan/endpoints/configuration/policy/list/as_path.py +16 -3
- catalystwan/endpoints/configuration/policy/list/class_map.py +16 -3
- catalystwan/endpoints/configuration/policy/list/color.py +16 -3
- catalystwan/endpoints/configuration/policy/list/community.py +16 -3
- catalystwan/endpoints/configuration/policy/list/data_ipv6_prefix.py +15 -6
- catalystwan/endpoints/configuration/policy/list/data_prefix.py +16 -3
- catalystwan/endpoints/configuration/policy/list/expanded_community.py +15 -6
- catalystwan/endpoints/configuration/policy/list/fqdn.py +16 -3
- catalystwan/endpoints/configuration/policy/list/geo_location.py +16 -3
- catalystwan/endpoints/configuration/policy/list/ips_signature.py +15 -6
- catalystwan/endpoints/configuration/policy/list/ipv6_prefix.py +16 -3
- catalystwan/endpoints/configuration/policy/list/local_app.py +16 -3
- catalystwan/endpoints/configuration/policy/list/local_domain.py +16 -3
- catalystwan/endpoints/configuration/policy/list/mirror.py +16 -3
- catalystwan/endpoints/configuration/policy/list/policer.py +16 -3
- catalystwan/endpoints/configuration/policy/list/port.py +16 -3
- catalystwan/endpoints/configuration/policy/list/preferred_color_group.py +15 -6
- catalystwan/endpoints/configuration/policy/list/prefix.py +16 -4
- catalystwan/endpoints/configuration/policy/list/protocol_name.py +15 -6
- catalystwan/endpoints/configuration/policy/list/region.py +10 -2
- catalystwan/endpoints/configuration/policy/list/site.py +16 -3
- catalystwan/endpoints/configuration/policy/list/sla.py +16 -3
- catalystwan/endpoints/configuration/policy/list/tloc.py +16 -3
- catalystwan/endpoints/configuration/policy/list/url_allow_list.py +16 -3
- catalystwan/endpoints/configuration/policy/list/url_block_list.py +16 -3
- catalystwan/endpoints/configuration/policy/list/vpn.py +16 -3
- catalystwan/endpoints/configuration/policy/list/zone.py +16 -3
- catalystwan/endpoints/configuration/policy/security_template.py +3 -2
- catalystwan/endpoints/configuration/software_actions.py +4 -2
- catalystwan/endpoints/configuration_dashboard_status.py +2 -2
- catalystwan/endpoints/configuration_device_template.py +1 -15
- catalystwan/endpoints/configuration_feature_profile.py +11 -8
- catalystwan/endpoints/configuration_group.py +5 -28
- catalystwan/endpoints/configuration_settings.py +1 -90
- catalystwan/endpoints/endpoints_container.py +18 -82
- catalystwan/endpoints/real_time_monitoring/reboot_history.py +3 -1
- catalystwan/endpoints/tenant_migration.py +0 -2
- catalystwan/exceptions.py +0 -24
- catalystwan/integration_tests/test_find_template_values.py +18 -7
- catalystwan/models/common.py +2 -1898
- catalystwan/models/configuration/common.py +0 -1
- catalystwan/models/configuration/config_migration.py +36 -0
- catalystwan/models/configuration/feature_profile/common.py +149 -634
- catalystwan/models/configuration/feature_profile/sdwan/management/vpn.py +26 -0
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/__init__.py +60 -69
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py +20 -34
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py +6 -8
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/color_list.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/data_prefix.py +4 -13
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/expanded_community_list.py +7 -9
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/fowarding_class.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_data_prefix.py +9 -11
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_prefix_list.py +10 -25
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/{policer.py → policier.py} +10 -12
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefered_group_color.py +10 -29
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefix_list.py +8 -23
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/sla_class.py +31 -12
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/standard_community.py +10 -16
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/tloc_list.py +7 -8
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/application_list.py +6 -8
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/data_prefix.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/fqdn.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/geolocation_list.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ips_signature.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/local_domain.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/protocol_list.py +5 -7
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/security_port.py +11 -21
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url.py +15 -36
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/zone.py +18 -14
- catalystwan/models/configuration/feature_profile/sdwan/service/acl.py +409 -0
- catalystwan/models/configuration/feature_profile/sdwan/service/appqoe.py +42 -77
- catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py +288 -0
- catalystwan/models/configuration/feature_profile/sdwan/service/dhcp_server.py +64 -107
- catalystwan/models/configuration/feature_profile/sdwan/service/eigrp.py +42 -39
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/common.py +88 -7
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py +156 -232
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/gre.py +108 -38
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/ipsec.py +84 -77
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/svi.py +56 -62
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/vpn.py +121 -112
- catalystwan/models/configuration/feature_profile/sdwan/service/multicast.py +57 -56
- catalystwan/models/configuration/feature_profile/sdwan/service/object_tracker.py +21 -15
- catalystwan/models/configuration/feature_profile/sdwan/{routing → service}/ospf.py +47 -55
- catalystwan/models/configuration/feature_profile/sdwan/{routing → service}/ospfv3.py +72 -74
- catalystwan/models/configuration/feature_profile/sdwan/service/route_policy.py +110 -358
- catalystwan/models/configuration/feature_profile/sdwan/service/service_insertion_attachment.py +25 -17
- catalystwan/models/configuration/feature_profile/sdwan/service/switchport.py +58 -50
- catalystwan/models/configuration/feature_profile/sdwan/service/tracker.py +21 -12
- catalystwan/models/configuration/feature_profile/sdwan/service/wireless_lan.py +31 -27
- catalystwan/models/configuration/feature_profile/sdwan/system/aaa.py +10 -58
- catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_controller.py +23 -26
- catalystwan/models/configuration/profile_type.py +6 -1
- catalystwan/models/policy/__init__.py +69 -282
- catalystwan/models/policy/centralized.py +29 -26
- catalystwan/models/policy/{definition → definitions}/access_control_list.py +17 -47
- catalystwan/models/policy/{definition → definitions}/access_control_list_ipv6.py +18 -42
- catalystwan/models/policy/{definition → definitions}/control.py +25 -48
- catalystwan/models/policy/{definition → definitions}/device_access.py +11 -22
- catalystwan/models/policy/{definition → definitions}/device_access_ipv6.py +11 -20
- catalystwan/models/policy/{definition → definitions}/hub_and_spoke.py +4 -18
- catalystwan/models/policy/{definition → definitions}/mesh.py +1 -13
- catalystwan/models/policy/{definition → definitions}/qos_map.py +32 -39
- catalystwan/models/policy/{definition → definitions}/rewrite.py +2 -12
- catalystwan/models/policy/{definition → definitions}/rule_set.py +48 -66
- catalystwan/models/policy/{definition → definitions}/security_group.py +14 -38
- catalystwan/models/policy/{definition → definitions}/traffic_data.py +61 -184
- catalystwan/models/policy/{definition → definitions}/vpn_membership.py +1 -13
- catalystwan/models/policy/{definition → definitions}/zone_based_firewall.py +32 -93
- catalystwan/models/policy/lists.py +330 -0
- catalystwan/models/policy/lists_entries.py +444 -0
- catalystwan/models/policy/localized.py +16 -34
- catalystwan/models/policy/policy.py +10 -14
- catalystwan/models/policy/policy_definition.py +173 -673
- catalystwan/models/policy/policy_list.py +27 -38
- catalystwan/models/policy/security.py +46 -145
- catalystwan/response.py +2 -6
- catalystwan/session.py +1 -1
- catalystwan/tests/templates/definitions/{cisco_vpn_basic.json → Basic_Cisco_VPN_Model.json} +2 -2
- catalystwan/tests/templates/definitions/complex_aaa.json +277 -0
- catalystwan/tests/templates/definitions/{cisco_vpn_complex.json → complex_cisco_vpn.json} +12 -27
- catalystwan/tests/templates/definitions/{cisco_aaa.json → iuo.json} +15 -44
- catalystwan/tests/templates/definitions/omp_1.json +11 -0
- catalystwan/tests/templates/definitions/{omp_vsmart_2.json → omp_2.json} +2 -16
- catalystwan/tests/templates/definitions/{omp_vsmart_3.json → omp_3.json} +2 -16
- catalystwan/tests/templates/models/__init__.py +13 -46
- catalystwan/tests/templates/models/cisco_aaa.py +48 -81
- catalystwan/tests/templates/models/cisco_banner.py +2 -2
- catalystwan/tests/templates/models/cisco_bfd.py +6 -4
- catalystwan/tests/templates/models/cisco_system.py +3 -108
- catalystwan/tests/templates/models/cisco_vpn.py +72 -42
- catalystwan/tests/templates/models/omp_vsmart.py +8 -28
- catalystwan/tests/templates/schemas/cedge_aaa.json +1 -1
- catalystwan/tests/templates/schemas/cisco_system.json +0 -242
- catalystwan/tests/templates/schemas/cisco_vpn.json +1 -53
- catalystwan/tests/templates/schemas/omp-vsmart.json +0 -20
- catalystwan/tests/templates/test_chose_model.py +10 -6
- catalystwan/tests/templates/test_deserialize_model.py +4 -4
- catalystwan/tests/templates/test_find_template_values.py +0 -229
- catalystwan/tests/templates/test_serialize_model.py +2 -1
- catalystwan/tests/test_cli_template.py +9 -8
- catalystwan/tests/test_endpoints.py +11 -42
- catalystwan/tests/test_templates.py +19 -16
- catalystwan/utils/feature_template/find_template_values.py +9 -22
- catalystwan/utils/timezone.py +422 -0
- catalystwan/workflows/tenant_migration.py +1 -1
- {catalystwan-0.41.2.dev9.dist-info → catalystwan-0.41.3.dist-info}/METADATA +1 -20
- catalystwan-0.41.3.dist-info/RECORD +353 -0
- catalystwan/api/builders/__init__.py +0 -14
- catalystwan/api/builders/feature_profiles/__init__.py +0 -0
- catalystwan/api/builders/feature_profiles/application_priority.py +0 -58
- catalystwan/api/builders/feature_profiles/builder_factory.py +0 -59
- catalystwan/api/builders/feature_profiles/cli.py +0 -76
- catalystwan/api/builders/feature_profiles/mixins.py +0 -44
- catalystwan/api/builders/feature_profiles/other.py +0 -79
- catalystwan/api/builders/feature_profiles/report.py +0 -155
- catalystwan/api/builders/feature_profiles/service.py +0 -248
- catalystwan/api/builders/feature_profiles/system.py +0 -80
- catalystwan/api/builders/feature_profiles/transport.py +0 -256
- catalystwan/api/builders/feature_profiles/uc_voice.py +0 -287
- catalystwan/api/templates/models/aaa_model.py +0 -387
- catalystwan/api/templates/models/vpn_vsmart_interface_model.py +0 -198
- catalystwan/api/templates/models/vpn_vsmart_model.py +0 -124
- catalystwan/endpoints/configuration/feature_profile/sdwan/application_priority.py +0 -107
- catalystwan/endpoints/configuration/feature_profile/sdwan/cli.py +0 -60
- catalystwan/endpoints/configuration/feature_profile/sdwan/dns_security.py +0 -83
- catalystwan/endpoints/configuration/feature_profile/sdwan/embedded_security.py +0 -88
- catalystwan/endpoints/configuration/feature_profile/sdwan/other.py +0 -62
- catalystwan/endpoints/configuration/feature_profile/sdwan/service.py +0 -154
- catalystwan/endpoints/configuration/feature_profile/sdwan/sig_security.py +0 -88
- catalystwan/endpoints/configuration/feature_profile/sdwan/topology.py +0 -93
- catalystwan/endpoints/configuration/feature_profile/sdwan/uc_voice.py +0 -77
- catalystwan/endpoints/configuration/network_hierarchy.py +0 -47
- catalystwan/endpoints/configuration/packages.py +0 -36
- catalystwan/endpoints/configuration/policy/abstractions.py +0 -49
- catalystwan/endpoints/configuration/policy/definition/aip.py +0 -52
- catalystwan/endpoints/configuration/policy/definition/amp.py +0 -52
- catalystwan/endpoints/configuration/policy/definition/app_route.py +0 -50
- catalystwan/endpoints/configuration/policy/definition/cflowd.py +0 -46
- catalystwan/endpoints/configuration/policy/definition/dial_peer.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/dns_security.py +0 -50
- catalystwan/endpoints/configuration/policy/definition/fxo_port.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/fxs_did_port.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/fxs_port.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/intrusion_prevention.py +0 -52
- catalystwan/endpoints/configuration/policy/definition/pri_isdn_port.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/route_policy.py +0 -50
- catalystwan/endpoints/configuration/policy/definition/srst_phone_profile.py +0 -59
- catalystwan/endpoints/configuration/policy/definition/ssl_decryption.py +0 -50
- catalystwan/endpoints/configuration/policy/definition/ssl_decryption_utd_profile.py +0 -52
- catalystwan/endpoints/configuration/policy/definition/url_filtering.py +0 -50
- catalystwan/endpoints/configuration/policy/definition/vpn_qos_map.py +0 -50
- catalystwan/endpoints/configuration/policy/list/extended_community.py +0 -52
- catalystwan/endpoints/configuration/policy/list/fax_protocol.py +0 -48
- catalystwan/endpoints/configuration/policy/list/identity.py +0 -48
- catalystwan/endpoints/configuration/policy/list/media_profile.py +0 -52
- catalystwan/endpoints/configuration/policy/list/modem_pass_through.py +0 -52
- catalystwan/endpoints/configuration/policy/list/scalable_group_tag.py +0 -52
- catalystwan/endpoints/configuration/policy/list/supervisory_disconnect.py +0 -52
- catalystwan/endpoints/configuration/policy/list/threat_grid_api_key.py +0 -52
- catalystwan/endpoints/configuration/policy/list/translation_profile.py +0 -52
- catalystwan/endpoints/configuration/policy/list/translation_rules.py +0 -52
- catalystwan/endpoints/configuration/policy/list/trunkgroup.py +0 -48
- catalystwan/endpoints/configuration/policy/list/umbrella_data.py +0 -52
- catalystwan/endpoints/configuration/policy/voice_template.py +0 -39
- catalystwan/endpoints/configuration/policy_group.py +0 -30
- catalystwan/endpoints/configuration/topology_group.py +0 -51
- catalystwan/endpoints/configuration_general_template.py +0 -31
- catalystwan/endpoints/configuration_template_master.py +0 -48
- catalystwan/integration_tests/base.py +0 -81
- 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 +0 -33
- catalystwan/integration_tests/feature_profile/sdwan/policy/test_extended_community.py +0 -33
- catalystwan/integration_tests/feature_profile/sdwan/policy/test_security_app_list.py +0 -32
- catalystwan/integration_tests/feature_profile/sdwan/test_application_priority.py +0 -433
- catalystwan/integration_tests/feature_profile/sdwan/test_cli.py +0 -54
- catalystwan/integration_tests/feature_profile/sdwan/test_dns_security.py +0 -106
- catalystwan/integration_tests/feature_profile/sdwan/test_other.py +0 -49
- catalystwan/integration_tests/feature_profile/sdwan/test_service.py +0 -1078
- catalystwan/integration_tests/feature_profile/sdwan/test_sig_security.py +0 -322
- catalystwan/integration_tests/feature_profile/sdwan/test_ssl_decryption.py +0 -85
- catalystwan/integration_tests/feature_profile/sdwan/test_system.py +0 -368
- catalystwan/integration_tests/feature_profile/sdwan/test_tracker.py +0 -127
- catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +0 -1698
- catalystwan/integration_tests/feature_profile/sdwan/topology/test_topology.py +0 -93
- catalystwan/integration_tests/feature_profile/test_parcel.py +0 -54
- catalystwan/integration_tests/profile_builder/__init__.py +0 -0
- catalystwan/integration_tests/profile_builder/test_pb_service.py +0 -197
- catalystwan/integration_tests/profile_builder/test_pb_transport.py +0 -226
- catalystwan/integration_tests/profile_builder/test_pb_uc_voice.py +0 -277
- catalystwan/integration_tests/test_data/__init__.py +0 -117
- catalystwan/integration_tests/test_network_hierarchy.py +0 -82
- catalystwan/integration_tests/test_settings.py +0 -30
- catalystwan/models/configuration/feature_profile/parcel.py +0 -245
- catalystwan/models/configuration/feature_profile/sdwan/acl/__init__.py +0 -13
- catalystwan/models/configuration/feature_profile/sdwan/acl/ipv4acl.py +0 -298
- catalystwan/models/configuration/feature_profile/sdwan/acl/ipv6acl.py +0 -344
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/__init__.py +0 -218
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/cloud_probe.py +0 -61
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/policy_settings.py +0 -31
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/qos_policy.py +0 -102
- catalystwan/models/configuration/feature_profile/sdwan/application_priority/traffic_policy.py +0 -1057
- catalystwan/models/configuration/feature_profile/sdwan/cli/__init__.py +0 -23
- catalystwan/models/configuration/feature_profile/sdwan/cli/config.py +0 -18
- catalystwan/models/configuration/feature_profile/sdwan/cli/full_config.py +0 -15
- catalystwan/models/configuration/feature_profile/sdwan/dns_security/__init__.py +0 -13
- catalystwan/models/configuration/feature_profile/sdwan/dns_security/dns.py +0 -110
- catalystwan/models/configuration/feature_profile/sdwan/embedded_security/__init__.py +0 -23
- catalystwan/models/configuration/feature_profile/sdwan/embedded_security/ngfirewall.py +0 -493
- catalystwan/models/configuration/feature_profile/sdwan/embedded_security/policy.py +0 -171
- catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py +0 -25
- catalystwan/models/configuration/feature_profile/sdwan/other/cybervision.py +0 -44
- catalystwan/models/configuration/feature_profile/sdwan/other/thousandeyes.py +0 -147
- catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py +0 -110
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/as_path.py +0 -22
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/extended_community.py +0 -34
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_network_object.py +0 -15
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_service_object.py +0 -254
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/mirror.py +0 -27
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/network_object_group.py +0 -15
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/object_group.py +0 -15
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/service_object_group.py +0 -21
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/aip.py +0 -64
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/amp.py +0 -79
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/identity.py +0 -30
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/intrusion_prevention.py +0 -58
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/object_group.py +0 -72
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/rule_set.py +0 -137
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/scalable_group_tag.py +0 -26
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption.py +0 -126
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption_profile.py +0 -165
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url_filtering.py +0 -148
- catalystwan/models/configuration/feature_profile/sdwan/routing/__init__.py +0 -26
- catalystwan/models/configuration/feature_profile/sdwan/routing/bgp.py +0 -609
- catalystwan/models/configuration/feature_profile/sdwan/service/__init__.py +0 -91
- catalystwan/models/configuration/feature_profile/sdwan/service/dual_router_ha.py +0 -26
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/multilink.py +0 -101
- catalystwan/models/configuration/feature_profile/sdwan/service/service_chain.py +0 -38
- catalystwan/models/configuration/feature_profile/sdwan/sig_security/__init__.py +0 -19
- catalystwan/models/configuration/feature_profile/sdwan/sig_security/sig_security.py +0 -379
- catalystwan/models/configuration/feature_profile/sdwan/system/__init__.py +0 -59
- catalystwan/models/configuration/feature_profile/sdwan/system/banner.py +0 -30
- catalystwan/models/configuration/feature_profile/sdwan/system/basic.py +0 -290
- catalystwan/models/configuration/feature_profile/sdwan/system/bfd.py +0 -69
- catalystwan/models/configuration/feature_profile/sdwan/system/device_access.py +0 -157
- catalystwan/models/configuration/feature_profile/sdwan/system/device_access_ipv6.py +0 -157
- catalystwan/models/configuration/feature_profile/sdwan/system/global_parcel.py +0 -163
- catalystwan/models/configuration/feature_profile/sdwan/system/logging_parcel.py +0 -162
- catalystwan/models/configuration/feature_profile/sdwan/system/mrf.py +0 -75
- catalystwan/models/configuration/feature_profile/sdwan/system/ntp.py +0 -103
- catalystwan/models/configuration/feature_profile/sdwan/system/omp.py +0 -120
- catalystwan/models/configuration/feature_profile/sdwan/system/security.py +0 -179
- catalystwan/models/configuration/feature_profile/sdwan/system/snmp.py +0 -173
- catalystwan/models/configuration/feature_profile/sdwan/topology/__init__.py +0 -29
- catalystwan/models/configuration/feature_profile/sdwan/topology/custom_control.py +0 -425
- catalystwan/models/configuration/feature_profile/sdwan/topology/hubspoke.py +0 -60
- catalystwan/models/configuration/feature_profile/sdwan/topology/mesh.py +0 -23
- catalystwan/models/configuration/feature_profile/sdwan/trackers/__init__.py +0 -36
- catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker.py +0 -96
- catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker_group.py +0 -63
- catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +0 -93
- catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_profile.py +0 -71
- catalystwan/models/configuration/feature_profile/sdwan/transport/gps.py +0 -37
- catalystwan/models/configuration/feature_profile/sdwan/transport/management/ethernet.py +0 -121
- catalystwan/models/configuration/feature_profile/sdwan/transport/t1e1controller.py +0 -124
- catalystwan/models/configuration/feature_profile/sdwan/transport/vpn.py +0 -285
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/cellular.py +0 -173
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ethernet.py +0 -389
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/gre.py +0 -46
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ipsec.py +0 -137
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/multilink.py +0 -219
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/protocol_over.py +0 -405
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/t1e1serial.py +0 -195
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/__init__.py +0 -62
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/analog_interface.py +0 -436
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/call_routing.py +0 -179
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/digital_interface.py +0 -380
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/dsp_farm.py +0 -193
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/media_profile.py +0 -17
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/server_group.py +0 -51
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/srst.py +0 -86
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/supervisory_disconnect.py +0 -69
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_profile.py +0 -42
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_rule.py +0 -31
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/trunk_group.py +0 -26
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_global.py +0 -57
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_tenant.py +0 -40
- catalystwan/models/configuration/network_hierarchy/__init__.py +0 -24
- catalystwan/models/configuration/network_hierarchy/cflowd.py +0 -128
- catalystwan/models/configuration/network_hierarchy/node.py +0 -88
- catalystwan/models/configuration/network_hierarchy/security_logging.py +0 -91
- catalystwan/models/configuration/packages.py +0 -57
- catalystwan/models/configuration/policy_group.py +0 -74
- catalystwan/models/configuration/topology_group.py +0 -52
- catalystwan/models/policy/definition/aip.py +0 -60
- catalystwan/models/policy/definition/amp.py +0 -65
- catalystwan/models/policy/definition/app_route.py +0 -246
- catalystwan/models/policy/definition/cflowd.py +0 -95
- catalystwan/models/policy/definition/dial_peer.py +0 -60
- catalystwan/models/policy/definition/dns_security.py +0 -130
- catalystwan/models/policy/definition/fxo_port.py +0 -63
- catalystwan/models/policy/definition/fxs_did_port.py +0 -58
- catalystwan/models/policy/definition/fxs_port.py +0 -56
- catalystwan/models/policy/definition/intrusion_prevention.py +0 -55
- catalystwan/models/policy/definition/pri_isdn_port.py +0 -48
- catalystwan/models/policy/definition/route_policy.py +0 -187
- catalystwan/models/policy/definition/srst_phone_profile.py +0 -37
- catalystwan/models/policy/definition/ssl_decryption.py +0 -209
- catalystwan/models/policy/definition/ssl_decryption_utd_profile.py +0 -88
- catalystwan/models/policy/definition/url_filtering.py +0 -70
- catalystwan/models/policy/definition/vpn_qos_map.py +0 -46
- catalystwan/models/policy/list/app.py +0 -44
- catalystwan/models/policy/list/app_probe.py +0 -42
- catalystwan/models/policy/list/as_path.py +0 -30
- catalystwan/models/policy/list/class_map.py +0 -30
- catalystwan/models/policy/list/color.py +0 -28
- catalystwan/models/policy/list/communities.py +0 -83
- catalystwan/models/policy/list/data_ipv6_prefix.py +0 -30
- catalystwan/models/policy/list/data_prefix.py +0 -30
- catalystwan/models/policy/list/fax_protocol.py +0 -45
- catalystwan/models/policy/list/fqdn.py +0 -24
- catalystwan/models/policy/list/geo_location.py +0 -33
- catalystwan/models/policy/list/identity.py +0 -29
- catalystwan/models/policy/list/ips_signature.py +0 -27
- catalystwan/models/policy/list/ipv6_prefix.py +0 -33
- catalystwan/models/policy/list/local_app.py +0 -45
- catalystwan/models/policy/list/local_domain.py +0 -36
- catalystwan/models/policy/list/media_profile.py +0 -44
- catalystwan/models/policy/list/mirror.py +0 -27
- catalystwan/models/policy/list/modem_pass_through.py +0 -27
- catalystwan/models/policy/list/policer.py +0 -39
- catalystwan/models/policy/list/port.py +0 -33
- catalystwan/models/policy/list/preferred_color_group.py +0 -82
- catalystwan/models/policy/list/prefix.py +0 -33
- catalystwan/models/policy/list/protocol_name.py +0 -26
- catalystwan/models/policy/list/region.py +0 -45
- catalystwan/models/policy/list/scalable_group_tag.py +0 -30
- catalystwan/models/policy/list/site.py +0 -34
- catalystwan/models/policy/list/sla.py +0 -77
- catalystwan/models/policy/list/supervisory_disconnect.py +0 -62
- catalystwan/models/policy/list/threat_grid_api_key.py +0 -32
- catalystwan/models/policy/list/tloc.py +0 -32
- catalystwan/models/policy/list/translation_profile.py +0 -32
- catalystwan/models/policy/list/translation_rules.py +0 -29
- catalystwan/models/policy/list/trunkgroup.py +0 -56
- catalystwan/models/policy/list/umbrella_data.py +0 -30
- catalystwan/models/policy/list/url.py +0 -39
- catalystwan/models/policy/list/vpn.py +0 -40
- catalystwan/models/policy/list/zone.py +0 -46
- catalystwan/models/policy/voice.py +0 -77
- catalystwan/models/settings.py +0 -41
- catalystwan/models/templates.py +0 -79
- catalystwan/tests/builders/test_report.py +0 -60
- catalystwan/tests/builders/uc_voice.py +0 -85
- catalystwan/tests/models/__init__.py +0 -0
- catalystwan/tests/models/configuration/feature_profile/sdwan/policy_object/security/test_url.py +0 -73
- catalystwan/tests/models/test_digital_interface.py +0 -56
- catalystwan/tests/templates/definitions/aaa_basic.json +0 -96
- catalystwan/tests/templates/definitions/aaa_complex.json +0 -464
- catalystwan/tests/templates/definitions/cisco_aaa_complex.json +0 -361
- catalystwan/tests/templates/definitions/cisco_logging_complex.json +0 -268
- catalystwan/tests/templates/definitions/cisco_ntp_complex.json +0 -143
- catalystwan/tests/templates/definitions/cisco_omp_complex.json +0 -175
- catalystwan/tests/templates/definitions/cisco_ospf_complex.json +0 -302
- catalystwan/tests/templates/definitions/cisco_sig.json +0 -405
- catalystwan/tests/templates/definitions/cisco_snmp_complex.json +0 -258
- catalystwan/tests/templates/definitions/cisco_system_complex.json +0 -502
- catalystwan/tests/templates/definitions/cisco_vpn_interface_complex.json +0 -821
- catalystwan/tests/templates/definitions/omp_vsmart_1.json +0 -26
- catalystwan/tests/templates/definitions/omp_vsmart_complex.json +0 -73
- catalystwan/tests/templates/definitions/security_vsmart_complex.json +0 -24
- catalystwan/tests/templates/definitions/system_vsmart_complex.json +0 -193
- catalystwan/tests/templates/definitions/vpn_vsmart_basic.json +0 -17
- catalystwan/tests/templates/definitions/vpn_vsmart_complex.json +0 -179
- catalystwan/tests/templates/definitions/vpn_vsmart_interface_basic.json +0 -42
- catalystwan/tests/templates/definitions/vpn_vsmart_interface_complex.json +0 -208
- catalystwan/tests/templates/models/aaa.py +0 -106
- catalystwan/tests/templates/models/cisco_logging.py +0 -65
- catalystwan/tests/templates/models/cisco_ntp.py +0 -17
- catalystwan/tests/templates/models/cisco_omp.py +0 -37
- catalystwan/tests/templates/models/cisco_ospf.py +0 -60
- catalystwan/tests/templates/models/cisco_secure_internet_gateway.py +0 -95
- catalystwan/tests/templates/models/cisco_snmp.py +0 -40
- catalystwan/tests/templates/models/cisco_vpn_interface.py +0 -200
- catalystwan/tests/templates/models/security_vsmart.py +0 -11
- catalystwan/tests/templates/models/system_vsmart.py +0 -37
- catalystwan/tests/templates/models/vpn_vsmart.py +0 -32
- catalystwan/tests/templates/models/vpn_vsmart_interface.py +0 -54
- catalystwan/tests/templates/schemas/aaa.json +0 -1096
- catalystwan/tests/templates/schemas/cisco_logging.json +0 -577
- catalystwan/tests/templates/schemas/cisco_ntp.json +0 -265
- catalystwan/tests/templates/schemas/cisco_omp.json +0 -479
- catalystwan/tests/templates/schemas/cisco_ospf.json +0 -908
- catalystwan/tests/templates/schemas/cisco_secure_internet_gateway.json +0 -1520
- catalystwan/tests/templates/schemas/cisco_snmp.json +0 -561
- catalystwan/tests/templates/schemas/cisco_vpn_interface.json +0 -3348
- catalystwan/tests/templates/schemas/security-vsmart.json +0 -58
- catalystwan/tests/templates/schemas/system-vsmart.json +0 -2585
- catalystwan/tests/templates/schemas/vpn-vsmart-interface.json +0 -859
- catalystwan/tests/templates/schemas/vpn-vsmart.json +0 -445
- catalystwan/tests/templates/test_find_template_values_2.py +0 -193
- catalystwan/tests/test_feature_profile_api.py +0 -282
- catalystwan/tests/test_models_common.py +0 -53
- catalystwan/utils/model.py +0 -48
- catalystwan/utils/persona.py +0 -5
- catalystwan/utils/type_check.py +0 -22
- catalystwan/workflows/backup_restore_device_templates.py +0 -467
- catalystwan-0.41.2.dev9.dist-info/RECORD +0 -641
- /catalystwan/tests/templates/definitions/{cisco_banner.json → banner_1.json} +0 -0
- {catalystwan-0.41.2.dev9.dist-info → catalystwan-0.41.3.dist-info}/LICENSE +0 -0
- {catalystwan-0.41.2.dev9.dist-info → catalystwan-0.41.3.dist-info}/WHEEL +0 -0
|
@@ -1,52 +0,0 @@
|
|
|
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
|
-
...
|
|
@@ -1,48 +0,0 @@
|
|
|
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
|
-
...
|
|
@@ -1,52 +0,0 @@
|
|
|
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
|
-
...
|
|
@@ -1,39 +0,0 @@
|
|
|
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
|
-
...
|
|
@@ -1,30 +0,0 @@
|
|
|
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
|
-
...
|
|
@@ -1,51 +0,0 @@
|
|
|
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
|
-
...
|
|
@@ -1,31 +0,0 @@
|
|
|
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
|
-
...
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# Copyright 2023 Cisco Systems, Inc. and its affiliates
|
|
2
|
-
|
|
3
|
-
# mypy: disable-error-code="empty-body"
|
|
4
|
-
|
|
5
|
-
from typing import List, Optional
|
|
6
|
-
from uuid import UUID
|
|
7
|
-
|
|
8
|
-
from pydantic import BaseModel, ConfigDict, Field
|
|
9
|
-
|
|
10
|
-
from catalystwan.endpoints import JSON, APIEndpoints, get, post, put
|
|
11
|
-
from catalystwan.models.templates import DeviceTemplateInformation, FeatureType
|
|
12
|
-
from catalystwan.typed_list import DataSequence
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class TemplateID(BaseModel):
|
|
16
|
-
model_config = ConfigDict(populate_by_name=True)
|
|
17
|
-
|
|
18
|
-
template_id: UUID = Field(serialization_alias="templateId", validation_alias="templateId")
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class AttachedDevices(BaseModel):
|
|
22
|
-
model_config = ConfigDict(populate_by_name=True)
|
|
23
|
-
|
|
24
|
-
attached_devices: Optional[List] = Field(
|
|
25
|
-
default=[], serialization_alias="AttachedDevices", validation_alias="AttachedDevices"
|
|
26
|
-
)
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
class FeatureQueryParams(BaseModel):
|
|
30
|
-
model_config = ConfigDict(populate_by_name=True)
|
|
31
|
-
|
|
32
|
-
feature: FeatureType = Field(default="all")
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
class ConfigurationTemplateMaster(APIEndpoints):
|
|
36
|
-
@get("/template/device", "data")
|
|
37
|
-
def get_device_template_list(
|
|
38
|
-
self, params: FeatureQueryParams = FeatureQueryParams()
|
|
39
|
-
) -> DataSequence[DeviceTemplateInformation]:
|
|
40
|
-
...
|
|
41
|
-
|
|
42
|
-
@post("/template/device/feature")
|
|
43
|
-
def create_device_template_from_feature_templates(self, payload: JSON) -> TemplateID:
|
|
44
|
-
...
|
|
45
|
-
|
|
46
|
-
@put("/template/device/{template_id}", "data")
|
|
47
|
-
def edit_template(self, template_id: str, payload: JSON) -> AttachedDevices:
|
|
48
|
-
...
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# Copyright 2024 Cisco Systems, Inc. and its affiliates
|
|
2
|
-
import logging
|
|
3
|
-
import os
|
|
4
|
-
import unittest
|
|
5
|
-
from typing import Union
|
|
6
|
-
from uuid import UUID, uuid4
|
|
7
|
-
|
|
8
|
-
from packaging.version import Version # type: ignore
|
|
9
|
-
|
|
10
|
-
from catalystwan.api.builders.feature_profiles.uc_voice import UcVoiceFeatureProfileAPI
|
|
11
|
-
from catalystwan.api.feature_profile_api import (
|
|
12
|
-
ApplicationPriorityFeatureProfileAPI,
|
|
13
|
-
CliFeatureProfileAPI,
|
|
14
|
-
DnsSecurityFeatureProfileAPI,
|
|
15
|
-
OtherFeatureProfileAPI,
|
|
16
|
-
ServiceFeatureProfileAPI,
|
|
17
|
-
SIGSecurityAPI,
|
|
18
|
-
SystemFeatureProfileAPI,
|
|
19
|
-
TransportFeatureProfileAPI,
|
|
20
|
-
)
|
|
21
|
-
from catalystwan.exceptions import CatalystwanException
|
|
22
|
-
from catalystwan.session import ManagerSession, create_manager_session
|
|
23
|
-
|
|
24
|
-
logger = logging.getLogger(__name__)
|
|
25
|
-
|
|
26
|
-
RUN_ID: str = str(uuid4())[:4]
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def load_config() -> dict:
|
|
30
|
-
"""Load the configuration from the environment variables"""
|
|
31
|
-
url = os.environ.get("VMANAGE_URL")
|
|
32
|
-
port = os.environ.get("VMANAGE_PORT")
|
|
33
|
-
username = os.environ.get("VMANAGE_USERNAME")
|
|
34
|
-
password = os.environ.get("VMANAGE_PASSWORD")
|
|
35
|
-
if url is None or port is None or username is None or password is None:
|
|
36
|
-
raise CatalystwanException("Missing environment variables")
|
|
37
|
-
return dict(
|
|
38
|
-
url=url,
|
|
39
|
-
username=username,
|
|
40
|
-
password=password,
|
|
41
|
-
port=port,
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
def create_session() -> ManagerSession:
|
|
46
|
-
"""Try to create a session with the environment variables, if it fails, raise an exception"""
|
|
47
|
-
try:
|
|
48
|
-
session = create_manager_session(**load_config())
|
|
49
|
-
return session
|
|
50
|
-
except Exception:
|
|
51
|
-
raise CatalystwanException("Failed to create session")
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
SESSION = create_session()
|
|
55
|
-
IS_API_20_12: bool = SESSION.api_version == Version("20.12")
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
def create_name_with_run_id(name: str) -> str:
|
|
59
|
-
"""Prevent collisions when running on the same resource"""
|
|
60
|
-
return f"{RUN_ID}_{name}"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
class TestCaseBase(unittest.TestCase):
|
|
64
|
-
session: ManagerSession
|
|
65
|
-
profile_uuid: UUID
|
|
66
|
-
|
|
67
|
-
api: Union[
|
|
68
|
-
ApplicationPriorityFeatureProfileAPI,
|
|
69
|
-
CliFeatureProfileAPI,
|
|
70
|
-
DnsSecurityFeatureProfileAPI,
|
|
71
|
-
OtherFeatureProfileAPI,
|
|
72
|
-
ServiceFeatureProfileAPI,
|
|
73
|
-
SIGSecurityAPI,
|
|
74
|
-
SystemFeatureProfileAPI,
|
|
75
|
-
TransportFeatureProfileAPI,
|
|
76
|
-
UcVoiceFeatureProfileAPI,
|
|
77
|
-
]
|
|
78
|
-
|
|
79
|
-
@classmethod
|
|
80
|
-
def setUpClass(cls) -> None:
|
|
81
|
-
cls.session = SESSION
|
|
File without changes
|
|
File without changes
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Copyright 2024 Cisco Systems, Inc. and its affiliates
|
|
2
|
-
from typing import Type
|
|
3
|
-
|
|
4
|
-
from catalystwan.api.feature_profile_api import PolicyObjectFeatureProfileAPI
|
|
5
|
-
from catalystwan.endpoints.configuration_feature_profile import ConfigurationFeatureProfile
|
|
6
|
-
from catalystwan.integration_tests.base import TestCaseBase
|
|
7
|
-
from catalystwan.models.configuration.feature_profile.sdwan.policy_object import AnyPolicyObjectParcel
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class PolicyTestCaseBase(TestCaseBase):
|
|
11
|
-
policy_api: PolicyObjectFeatureProfileAPI
|
|
12
|
-
parcel_type: Type[AnyPolicyObjectParcel]
|
|
13
|
-
|
|
14
|
-
@classmethod
|
|
15
|
-
def setUpClass(cls) -> None:
|
|
16
|
-
super().setUpClass()
|
|
17
|
-
cls.policy_api = cls.session.api.sdwan_feature_profiles.policy_object
|
|
18
|
-
cls.profile_uuid = (
|
|
19
|
-
ConfigurationFeatureProfile(cls.session)
|
|
20
|
-
.get_sdwan_feature_profiles()
|
|
21
|
-
.filter(profile_type="policy-object")
|
|
22
|
-
.single_or_default()
|
|
23
|
-
).profile_id
|
|
24
|
-
|
|
25
|
-
def setUp(self) -> None:
|
|
26
|
-
self.created_id = None
|
|
27
|
-
return super().setUp()
|
|
28
|
-
|
|
29
|
-
def tearDown(self) -> None:
|
|
30
|
-
if self.created_id:
|
|
31
|
-
self.policy_api.delete(self.profile_uuid, self.parcel_type, self.created_id)
|
|
32
|
-
|
|
33
|
-
return super().tearDown()
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Copyright 2024 Cisco Systems, Inc. and its affiliates
|
|
2
|
-
|
|
3
|
-
from catalystwan.integration_tests.base import create_name_with_run_id
|
|
4
|
-
from catalystwan.integration_tests.feature_profile.sdwan.policy.base import PolicyTestCaseBase
|
|
5
|
-
from catalystwan.models.configuration.feature_profile.sdwan.policy_object import ExtendedCommunityParcel
|
|
6
|
-
from catalystwan.typed_list import DataSequence
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class TestExtendedCommunityParcel(PolicyTestCaseBase):
|
|
10
|
-
parcel_type = ExtendedCommunityParcel
|
|
11
|
-
|
|
12
|
-
def test_get_all_parcels(self):
|
|
13
|
-
parcels = self.policy_api.get(self.profile_uuid, self.parcel_type)
|
|
14
|
-
assert type(parcels) is DataSequence
|
|
15
|
-
|
|
16
|
-
def test_create_extended_community_parcel(self):
|
|
17
|
-
# Arrange
|
|
18
|
-
parcel_name = create_name_with_run_id("ext")
|
|
19
|
-
ext = ExtendedCommunityParcel(parcel_name=parcel_name)
|
|
20
|
-
ext.add_route_target_community(100, 2000)
|
|
21
|
-
ext.add_route_target_community(300, 5000)
|
|
22
|
-
ext.add_site_of_origin_community("1.2.3.4", 1000)
|
|
23
|
-
ext.add_site_of_origin_community("10.20.30.40", 3000)
|
|
24
|
-
# Act
|
|
25
|
-
self.created_id = self.policy_api.create_parcel(self.profile_uuid, ext).id
|
|
26
|
-
parcel = self.policy_api.get(self.profile_uuid, self.parcel_type, parcel_id=self.created_id)
|
|
27
|
-
# Assert
|
|
28
|
-
assert parcel.payload.parcel_name == parcel_name
|
|
29
|
-
assert len(parcel.payload.entries) == 4
|
|
30
|
-
assert parcel.payload.entries[0].extended_community.value == "rt 100:2000"
|
|
31
|
-
assert parcel.payload.entries[1].extended_community.value == "rt 300:5000"
|
|
32
|
-
assert parcel.payload.entries[2].extended_community.value == "soo 1.2.3.4:1000"
|
|
33
|
-
assert parcel.payload.entries[3].extended_community.value == "soo 10.20.30.40:3000"
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# Copyright 2024 Cisco Systems, Inc. and its affiliates
|
|
2
|
-
from catalystwan.integration_tests.base import create_name_with_run_id
|
|
3
|
-
from catalystwan.integration_tests.feature_profile.sdwan.policy.base import PolicyTestCaseBase
|
|
4
|
-
from catalystwan.models.configuration.feature_profile.sdwan.policy_object.security.application_list import (
|
|
5
|
-
SecurityApplicationListParcel,
|
|
6
|
-
)
|
|
7
|
-
from catalystwan.typed_list import DataSequence
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class TestSecurityApplicationListParcel(PolicyTestCaseBase):
|
|
11
|
-
parcel_type = SecurityApplicationListParcel
|
|
12
|
-
|
|
13
|
-
def test_get_all_parcels(self):
|
|
14
|
-
parcels = self.policy_api.get(self.profile_uuid, self.parcel_type)
|
|
15
|
-
assert type(parcels) is DataSequence
|
|
16
|
-
|
|
17
|
-
def test_createsecurity_application_list_parcel(self):
|
|
18
|
-
# Arrange
|
|
19
|
-
parcel_name = create_name_with_run_id("sal")
|
|
20
|
-
sal = SecurityApplicationListParcel(parcel_name=parcel_name)
|
|
21
|
-
sal.add_application_family("web")
|
|
22
|
-
sal.add_application_family("file-server")
|
|
23
|
-
sal.add_application_family("audio-video")
|
|
24
|
-
# Act
|
|
25
|
-
self.created_id = self.policy_api.create_parcel(self.profile_uuid, sal).id
|
|
26
|
-
parcel = self.policy_api.get(self.profile_uuid, self.parcel_type, parcel_id=self.created_id)
|
|
27
|
-
# Assert
|
|
28
|
-
assert parcel.payload.parcel_name == parcel_name
|
|
29
|
-
assert len(parcel.payload.entries) == 3
|
|
30
|
-
assert parcel.payload.entries[0].app_list_family.value == "web"
|
|
31
|
-
assert parcel.payload.entries[1].app_list_family.value == "file-server"
|
|
32
|
-
assert parcel.payload.entries[2].app_list_family.value == "audio-video"
|