catalystwan 0.40.1.dev6__py3-none-any.whl → 2.0.0a0__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/core/__init__.py +2 -0
- catalystwan/core/abstractions.py +26 -0
- catalystwan/{apigw_auth.py → core/apigw_auth.py} +29 -14
- catalystwan/core/client.py +71 -0
- catalystwan/core/encoder.py +12 -0
- catalystwan/{exceptions.py → core/exceptions.py} +29 -9
- catalystwan/core/loader.py +37 -0
- catalystwan/{__init__.py → core/metadata.py} +9 -22
- catalystwan/core/models/deserialize.py +203 -0
- catalystwan/core/models/serialize.py +137 -0
- catalystwan/core/request_adapter.py +246 -0
- catalystwan/{request_limiter.py → core/request_limiter.py} +1 -2
- catalystwan/{response.py → core/response.py} +38 -85
- catalystwan/{session.py → core/session.py} +84 -101
- catalystwan/core/types.py +33 -0
- catalystwan/{version.py → core/version.py} +3 -5
- catalystwan/{vmanage_auth.py → core/vmanage_auth.py} +46 -21
- catalystwan-2.0.0a0.dist-info/METADATA +327 -0
- catalystwan-2.0.0a0.dist-info/RECORD +24 -0
- {catalystwan-0.40.1.dev6.dist-info → catalystwan-2.0.0a0.dist-info}/WHEEL +2 -1
- catalystwan-2.0.0a0.dist-info/top_level.txt +1 -0
- catalystwan/abstractions.py +0 -77
- catalystwan/api/admin_tech_api.py +0 -176
- catalystwan/api/administration.py +0 -434
- catalystwan/api/alarms_api.py +0 -186
- catalystwan/api/api_container.py +0 -73
- catalystwan/api/basic_api.py +0 -338
- catalystwan/api/builders/__init__.py +0 -14
- 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/other.py +0 -79
- catalystwan/api/builders/feature_profiles/report.py +0 -137
- catalystwan/api/builders/feature_profiles/service.py +0 -213
- catalystwan/api/builders/feature_profiles/system.py +0 -80
- catalystwan/api/builders/feature_profiles/transport.py +0 -214
- catalystwan/api/builders/feature_profiles/uc_voice.py +0 -287
- catalystwan/api/config_device_inventory_api.py +0 -58
- catalystwan/api/config_group_api.py +0 -150
- catalystwan/api/configuration_groups/parcel.py +0 -206
- catalystwan/api/dashboard_api.py +0 -215
- catalystwan/api/device_action_api.py +0 -216
- catalystwan/api/feature_profile_api.py +0 -2401
- catalystwan/api/logs_api.py +0 -63
- catalystwan/api/monitoring_status_api.py +0 -76
- catalystwan/api/mtt_aaa_api.py +0 -197
- catalystwan/api/omp_api.py +0 -124
- catalystwan/api/packet_capture_api.py +0 -152
- catalystwan/api/parcel_api.py +0 -42
- catalystwan/api/partition_manager_api.py +0 -143
- catalystwan/api/policy_api.py +0 -1163
- catalystwan/api/resource_pool_api.py +0 -74
- catalystwan/api/software_action_api.py +0 -269
- catalystwan/api/speedtest_api.py +0 -153
- catalystwan/api/task_status_api.py +0 -171
- catalystwan/api/template_api.py +0 -761
- catalystwan/api/templates/README.md +0 -101
- catalystwan/api/templates/bool_str.py +0 -6
- catalystwan/api/templates/cli_template.py +0 -236
- catalystwan/api/templates/device_template/device_template.py +0 -181
- catalystwan/api/templates/device_variable.py +0 -7
- catalystwan/api/templates/feature_template.py +0 -133
- catalystwan/api/templates/feature_template_field.py +0 -175
- catalystwan/api/templates/feature_template_payload.py +0 -17
- catalystwan/api/templates/models/aaa_model.py +0 -387
- catalystwan/api/templates/models/cisco_aaa_model.py +0 -331
- catalystwan/api/templates/models/cisco_banner_model.py +0 -27
- catalystwan/api/templates/models/cisco_bfd_model.py +0 -61
- catalystwan/api/templates/models/cisco_bgp_model.py +0 -510
- catalystwan/api/templates/models/cisco_logging_model.py +0 -122
- catalystwan/api/templates/models/cisco_ntp_model.py +0 -60
- catalystwan/api/templates/models/cisco_omp_model.py +0 -121
- catalystwan/api/templates/models/cisco_ospf.py +0 -241
- catalystwan/api/templates/models/cisco_ospfv3.py +0 -498
- catalystwan/api/templates/models/cisco_secure_internet_gateway.py +0 -385
- catalystwan/api/templates/models/cisco_snmp_model.py +0 -102
- catalystwan/api/templates/models/cisco_system.py +0 -318
- catalystwan/api/templates/models/cisco_vpn_interface_model.py +0 -822
- catalystwan/api/templates/models/cisco_vpn_model.py +0 -603
- catalystwan/api/templates/models/cli_template.py +0 -18
- catalystwan/api/templates/models/omp_vsmart_model.py +0 -73
- catalystwan/api/templates/models/security_vsmart_model.py +0 -28
- catalystwan/api/templates/models/supported.py +0 -42
- catalystwan/api/templates/models/system_vsmart_model.py +0 -182
- catalystwan/api/templates/models/vpn_vsmart_interface_model.py +0 -198
- catalystwan/api/templates/models/vpn_vsmart_model.py +0 -124
- catalystwan/api/templates/payloads/aaa/aaa_model.py +0 -91
- catalystwan/api/templates/payloads/aaa/feature/aaa.json.j2 +0 -373
- catalystwan/api/templates/payloads/aaa/feature/accounting.json.j2 +0 -40
- catalystwan/api/templates/payloads/aaa/feature/radius.json.j2 +0 -107
- catalystwan/api/templates/payloads/aaa/feature/tacacs.json.j2 +0 -95
- catalystwan/api/templates/payloads/aaa/feature/user.json.j2 +0 -60
- catalystwan/api/templates/payloads/cisco_vpn/cisco_vpn_model.py +0 -92
- catalystwan/api/templates/payloads/cisco_vpn/feature/cisco_vpn.json.j2 +0 -224
- catalystwan/api/templates/payloads/cisco_vpn/feature/dns.json.j2 +0 -86
- catalystwan/api/templates/payloads/cisco_vpn/feature/ipv4route.json.j2 +0 -59
- catalystwan/api/templates/payloads/cisco_vpn/feature/ipv6route.json.j2 +0 -58
- catalystwan/api/templates/payloads/cisco_vpn/feature/mapping.json.j2 +0 -24
- catalystwan/api/templates/payloads/tenant/tenant.json.j2 +0 -127
- catalystwan/api/templates/payloads/tenant/tenant_model.py +0 -43
- catalystwan/api/tenant_backup_restore_api.py +0 -154
- catalystwan/api/tenant_management_api.py +0 -127
- catalystwan/api/tenant_migration_api.py +0 -121
- catalystwan/api/versions_utils.py +0 -414
- catalystwan/api/virtual_image_action_api.py +0 -200
- catalystwan/dataclasses.py +0 -493
- catalystwan/endpoints/__init__.py +0 -606
- catalystwan/endpoints/administration_user_and_group.py +0 -341
- catalystwan/endpoints/api_gateway.py +0 -24
- catalystwan/endpoints/certificate_management_device.py +0 -137
- catalystwan/endpoints/certificate_management_vmanage.py +0 -48
- catalystwan/endpoints/client.py +0 -96
- catalystwan/endpoints/cluster_management.py +0 -130
- catalystwan/endpoints/configuration/device/software_update.py +0 -31
- catalystwan/endpoints/configuration/disaster_recovery.py +0 -305
- 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/policy_object.py +0 -105
- catalystwan/endpoints/configuration/feature_profile/sdwan/service.py +0 -137
- catalystwan/endpoints/configuration/feature_profile/sdwan/sig_security.py +0 -88
- catalystwan/endpoints/configuration/feature_profile/sdwan/system.py +0 -205
- catalystwan/endpoints/configuration/feature_profile/sdwan/topology.py +0 -93
- catalystwan/endpoints/configuration/feature_profile/sdwan/transport.py +0 -214
- catalystwan/endpoints/configuration/feature_profile/sdwan/uc_voice.py +0 -77
- catalystwan/endpoints/configuration/network_hierarchy.py +0 -32
- catalystwan/endpoints/configuration/policy/abstractions.py +0 -49
- catalystwan/endpoints/configuration/policy/definition/access_control_list.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/access_control_list_ipv6.py +0 -57
- 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/control.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/device_access.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/device_access_ipv6.py +0 -59
- 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/hub_and_spoke.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/intrusion_prevention.py +0 -52
- catalystwan/endpoints/configuration/policy/definition/mesh.py +0 -53
- catalystwan/endpoints/configuration/policy/definition/pri_isdn_port.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/qos_map.py +0 -53
- catalystwan/endpoints/configuration/policy/definition/rewrite.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/route_policy.py +0 -50
- catalystwan/endpoints/configuration/policy/definition/rule_set.py +0 -53
- catalystwan/endpoints/configuration/policy/definition/security_group.py +0 -57
- 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/traffic_data.py +0 -58
- catalystwan/endpoints/configuration/policy/definition/url_filtering.py +0 -50
- catalystwan/endpoints/configuration/policy/definition/vpn_membership.py +0 -57
- catalystwan/endpoints/configuration/policy/definition/vpn_qos_map.py +0 -50
- catalystwan/endpoints/configuration/policy/definition/zone_based_firewall.py +0 -57
- catalystwan/endpoints/configuration/policy/list/app.py +0 -48
- catalystwan/endpoints/configuration/policy/list/app_probe.py +0 -52
- catalystwan/endpoints/configuration/policy/list/as_path.py +0 -48
- catalystwan/endpoints/configuration/policy/list/class_map.py +0 -48
- catalystwan/endpoints/configuration/policy/list/color.py +0 -48
- catalystwan/endpoints/configuration/policy/list/community.py +0 -48
- catalystwan/endpoints/configuration/policy/list/data_ipv6_prefix.py +0 -52
- catalystwan/endpoints/configuration/policy/list/data_prefix.py +0 -48
- catalystwan/endpoints/configuration/policy/list/expanded_community.py +0 -52
- 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/fqdn.py +0 -48
- catalystwan/endpoints/configuration/policy/list/geo_location.py +0 -48
- catalystwan/endpoints/configuration/policy/list/identity.py +0 -48
- catalystwan/endpoints/configuration/policy/list/ips_signature.py +0 -52
- catalystwan/endpoints/configuration/policy/list/ipv6_prefix.py +0 -48
- catalystwan/endpoints/configuration/policy/list/local_app.py +0 -48
- catalystwan/endpoints/configuration/policy/list/local_domain.py +0 -48
- catalystwan/endpoints/configuration/policy/list/media_profile.py +0 -52
- catalystwan/endpoints/configuration/policy/list/mirror.py +0 -48
- catalystwan/endpoints/configuration/policy/list/modem_pass_through.py +0 -52
- catalystwan/endpoints/configuration/policy/list/policer.py +0 -48
- catalystwan/endpoints/configuration/policy/list/port.py +0 -48
- catalystwan/endpoints/configuration/policy/list/preferred_color_group.py +0 -52
- catalystwan/endpoints/configuration/policy/list/prefix.py +0 -49
- catalystwan/endpoints/configuration/policy/list/protocol_name.py +0 -52
- catalystwan/endpoints/configuration/policy/list/region.py +0 -47
- catalystwan/endpoints/configuration/policy/list/scalable_group_tag.py +0 -52
- catalystwan/endpoints/configuration/policy/list/site.py +0 -52
- catalystwan/endpoints/configuration/policy/list/sla.py +0 -48
- 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/tloc.py +0 -48
- 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/list/url_allow_list.py +0 -48
- catalystwan/endpoints/configuration/policy/list/url_block_list.py +0 -48
- catalystwan/endpoints/configuration/policy/list/vpn.py +0 -50
- catalystwan/endpoints/configuration/policy/list/zone.py +0 -48
- catalystwan/endpoints/configuration/policy/security_template.py +0 -55
- catalystwan/endpoints/configuration/policy/vedge_template.py +0 -52
- catalystwan/endpoints/configuration/policy/voice_template.py +0 -39
- catalystwan/endpoints/configuration/policy/vsmart_template.py +0 -79
- catalystwan/endpoints/configuration/policy_group.py +0 -30
- catalystwan/endpoints/configuration/software_actions.py +0 -201
- catalystwan/endpoints/configuration/topology_group.py +0 -51
- catalystwan/endpoints/configuration_dashboard_status.py +0 -127
- catalystwan/endpoints/configuration_device_actions.py +0 -385
- catalystwan/endpoints/configuration_device_inventory.py +0 -309
- catalystwan/endpoints/configuration_device_template.py +0 -39
- catalystwan/endpoints/configuration_feature_profile.py +0 -135
- catalystwan/endpoints/configuration_general_template.py +0 -31
- catalystwan/endpoints/configuration_group.py +0 -197
- catalystwan/endpoints/configuration_settings.py +0 -749
- catalystwan/endpoints/configuration_template_master.py +0 -48
- catalystwan/endpoints/endpoints_container.py +0 -279
- catalystwan/endpoints/misc.py +0 -21
- catalystwan/endpoints/monitoring/device_details.py +0 -246
- catalystwan/endpoints/monitoring/security_policy.py +0 -12
- catalystwan/endpoints/monitoring/server_info.py +0 -12
- catalystwan/endpoints/monitoring/status.py +0 -76
- catalystwan/endpoints/real_time_monitoring/reboot_history.py +0 -35
- catalystwan/endpoints/sdavc_cloud_connector.py +0 -43
- catalystwan/endpoints/tenant_backup_restore.py +0 -40
- catalystwan/endpoints/tenant_management.py +0 -215
- catalystwan/endpoints/tenant_migration.py +0 -102
- catalystwan/endpoints/troubleshooting_tools/device_connectivity.py +0 -128
- catalystwan/endpoints/url_monitoring.py +0 -26
- catalystwan/integration_tests/__init__.py +0 -0
- 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_transport.py +0 -1700
- catalystwan/integration_tests/feature_profile/sdwan/topology/test_topology.py +0 -93
- catalystwan/integration_tests/profile_builder/__init__.py +0 -0
- catalystwan/integration_tests/profile_builder/test_pb_service.py +0 -78
- catalystwan/integration_tests/profile_builder/test_pb_transport.py +0 -56
- 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_find_template_values.py +0 -38
- catalystwan/integration_tests/test_network_hierarchy.py +0 -82
- catalystwan/integration_tests/test_settings.py +0 -30
- catalystwan/logging.conf +0 -37
- catalystwan/models/common.py +0 -1508
- catalystwan/models/configuration/common.py +0 -11
- catalystwan/models/configuration/feature_profile/README.md +0 -344
- catalystwan/models/configuration/feature_profile/builder.py +0 -22
- catalystwan/models/configuration/feature_profile/common.py +0 -749
- catalystwan/models/configuration/feature_profile/parcel.py +0 -232
- 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 -215
- 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 -1054
- 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 -107
- catalystwan/models/configuration/feature_profile/sdwan/embedded_security/__init__.py +0 -23
- catalystwan/models/configuration/feature_profile/sdwan/embedded_security/ngfirewall.py +0 -915
- catalystwan/models/configuration/feature_profile/sdwan/embedded_security/policy.py +0 -171
- catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py +0 -23
- 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/__init__.py +0 -175
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py +0 -56
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py +0 -31
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/as_path.py +0 -22
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/color_list.py +0 -21
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/data_prefix.py +0 -35
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/expanded_community_list.py +0 -25
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/extended_community.py +0 -34
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/fowarding_class.py +0 -26
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_data_prefix.py +0 -28
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_prefix_list.py +0 -38
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/mirror.py +0 -27
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/policer.py +0 -42
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefered_group_color.py +0 -83
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefix_list.py +0 -28
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/sla_class.py +0 -130
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/standard_community.py +0 -30
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/tloc_list.py +0 -44
- 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/application_list.py +0 -31
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/data_prefix.py +0 -22
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/fqdn.py +0 -24
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/geolocation_list.py +0 -32
- 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/ips_signature.py +0 -44
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/local_domain.py +0 -24
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/protocol_list.py +0 -21
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/scalable_group_tag.py +0 -26
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/security_port.py +0 -45
- 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.py +0 -32
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url_filtering.py +0 -148
- catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/zone.py +0 -44
- catalystwan/models/configuration/feature_profile/sdwan/routing/__init__.py +0 -26
- catalystwan/models/configuration/feature_profile/sdwan/routing/bgp.py +0 -594
- catalystwan/models/configuration/feature_profile/sdwan/routing/ospf.py +0 -170
- catalystwan/models/configuration/feature_profile/sdwan/routing/ospfv3.py +0 -298
- catalystwan/models/configuration/feature_profile/sdwan/service/__init__.py +0 -85
- catalystwan/models/configuration/feature_profile/sdwan/service/appqoe.py +0 -270
- catalystwan/models/configuration/feature_profile/sdwan/service/dhcp_server.py +0 -127
- catalystwan/models/configuration/feature_profile/sdwan/service/eigrp.py +0 -103
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/common.py +0 -33
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py +0 -275
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/gre.py +0 -136
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/ipsec.py +0 -119
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/multilink.py +0 -101
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/svi.py +0 -172
- catalystwan/models/configuration/feature_profile/sdwan/service/lan/vpn.py +0 -624
- catalystwan/models/configuration/feature_profile/sdwan/service/multicast.py +0 -242
- catalystwan/models/configuration/feature_profile/sdwan/service/object_tracker.py +0 -84
- catalystwan/models/configuration/feature_profile/sdwan/service/route_policy.py +0 -419
- catalystwan/models/configuration/feature_profile/sdwan/service/service_insertion_attachment.py +0 -184
- catalystwan/models/configuration/feature_profile/sdwan/service/switchport.py +0 -112
- catalystwan/models/configuration/feature_profile/sdwan/service/tracker.py +0 -92
- catalystwan/models/configuration/feature_profile/sdwan/service/wireless_lan.py +0 -216
- 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/aaa.py +0 -406
- 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 -149
- 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 -111
- 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/transport/__init__.py +0 -93
- catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_controller.py +0 -58
- 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 -166
- catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ethernet.py +0 -281
- 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 -98
- 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 -329
- 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 -25
- 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 -68
- 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 -55
- catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_tenant.py +0 -40
- catalystwan/models/configuration/network_hierarchy/__init__.py +0 -22
- catalystwan/models/configuration/network_hierarchy/cflowd.py +0 -120
- catalystwan/models/configuration/network_hierarchy/node.py +0 -88
- catalystwan/models/configuration/policy_group.py +0 -74
- catalystwan/models/configuration/profile_type.py +0 -5
- catalystwan/models/configuration/topology_group.py +0 -52
- catalystwan/models/device_inventory.py +0 -30
- catalystwan/models/feature_profile_parcel.py +0 -15
- catalystwan/models/misc/application_protocols.py +0 -29
- catalystwan/models/monitoring/security_policy.py +0 -16
- catalystwan/models/monitoring/server_info.py +0 -12
- catalystwan/models/policy/__init__.py +0 -392
- catalystwan/models/policy/centralized.py +0 -265
- catalystwan/models/policy/definition/access_control_list.py +0 -193
- catalystwan/models/policy/definition/access_control_list_ipv6.py +0 -187
- 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/control.py +0 -366
- catalystwan/models/policy/definition/device_access.py +0 -117
- catalystwan/models/policy/definition/device_access_ipv6.py +0 -115
- 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/hub_and_spoke.py +0 -87
- catalystwan/models/policy/definition/intrusion_prevention.py +0 -55
- catalystwan/models/policy/definition/mesh.py +0 -47
- catalystwan/models/policy/definition/pri_isdn_port.py +0 -48
- catalystwan/models/policy/definition/qos_map.py +0 -111
- catalystwan/models/policy/definition/rewrite.py +0 -47
- catalystwan/models/policy/definition/route_policy.py +0 -187
- catalystwan/models/policy/definition/rule_set.py +0 -270
- catalystwan/models/policy/definition/security_group.py +0 -93
- 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 -87
- catalystwan/models/policy/definition/traffic_data.py +0 -496
- catalystwan/models/policy/definition/url_filtering.py +0 -70
- catalystwan/models/policy/definition/vpn_membership.py +0 -42
- catalystwan/models/policy/definition/vpn_qos_map.py +0 -46
- catalystwan/models/policy/definition/zone_based_firewall.py +0 -301
- 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 -45
- catalystwan/models/policy/localized.py +0 -154
- catalystwan/models/policy/policy.py +0 -100
- catalystwan/models/policy/policy_definition.py +0 -1624
- catalystwan/models/policy/policy_list.py +0 -47
- catalystwan/models/policy/security.py +0 -279
- catalystwan/models/policy/voice.py +0 -71
- catalystwan/models/settings.py +0 -41
- catalystwan/models/templates.py +0 -79
- catalystwan/models/tenant.py +0 -105
- catalystwan/models/url_monitoring.py +0 -28
- catalystwan/tests/__init__.py +0 -0
- catalystwan/tests/builders/uc_voice.py +0 -85
- catalystwan/tests/models/__init__.py +0 -0
- catalystwan/tests/templates/__init__.py +0 -0
- catalystwan/tests/templates/definitions/__init__.py +0 -0
- catalystwan/tests/templates/definitions/aaa_basic.json +0 -96
- catalystwan/tests/templates/definitions/aaa_complex.json +0 -464
- catalystwan/tests/templates/definitions/basic/__init__.py +0 -0
- catalystwan/tests/templates/definitions/basic/alias.json +0 -7
- catalystwan/tests/templates/definitions/basic/basic.json +0 -7
- catalystwan/tests/templates/definitions/basic/basic_no_value.json +0 -7
- catalystwan/tests/templates/definitions/basic/children.json +0 -39
- catalystwan/tests/templates/definitions/basic/children_nested.json +0 -72
- catalystwan/tests/templates/definitions/basic/children_nested_datapath.json +0 -72
- catalystwan/tests/templates/definitions/basic/data_path.json +0 -13
- catalystwan/tests/templates/definitions/cisco_aaa.json +0 -178
- catalystwan/tests/templates/definitions/cisco_aaa_complex.json +0 -361
- catalystwan/tests/templates/definitions/cisco_banner.json +0 -20
- catalystwan/tests/templates/definitions/cisco_bfd.json +0 -90
- 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_basic.json +0 -17
- catalystwan/tests/templates/definitions/cisco_vpn_complex.json +0 -1081
- catalystwan/tests/templates/definitions/cisco_vpn_interface_complex.json +0 -821
- catalystwan/tests/templates/definitions/default_cisco_system.json +0 -184
- catalystwan/tests/templates/definitions/omp_vsmart_1.json +0 -26
- catalystwan/tests/templates/definitions/omp_vsmart_2.json +0 -48
- catalystwan/tests/templates/definitions/omp_vsmart_3.json +0 -71
- 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/__init__.py +0 -53
- catalystwan/tests/templates/models/aaa.py +0 -106
- catalystwan/tests/templates/models/cisco_aaa.py +0 -124
- catalystwan/tests/templates/models/cisco_banner.py +0 -7
- catalystwan/tests/templates/models/cisco_bfd.py +0 -15
- 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_system.py +0 -113
- catalystwan/tests/templates/models/cisco_vpn.py +0 -240
- catalystwan/tests/templates/models/cisco_vpn_interface.py +0 -200
- catalystwan/tests/templates/models/omp_vsmart.py +0 -53
- 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/basic/alias.json +0 -24
- catalystwan/tests/templates/schemas/basic/basic.json +0 -23
- catalystwan/tests/templates/schemas/basic/children.json +0 -59
- catalystwan/tests/templates/schemas/basic/children_nested.json +0 -112
- catalystwan/tests/templates/schemas/basic/children_nested_datapath.json +0 -112
- catalystwan/tests/templates/schemas/basic/data_path.json +0 -29
- catalystwan/tests/templates/schemas/cedge_aaa.json +0 -1185
- catalystwan/tests/templates/schemas/cisco_banner.json +0 -44
- catalystwan/tests/templates/schemas/cisco_bfd.json +0 -266
- 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_system.json +0 -3099
- catalystwan/tests/templates/schemas/cisco_vpn.json +0 -2504
- catalystwan/tests/templates/schemas/cisco_vpn_interface.json +0 -3348
- catalystwan/tests/templates/schemas/omp-vsmart.json +0 -222
- 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_chose_model.py +0 -32
- catalystwan/tests/templates/test_deserialize_model.py +0 -69
- catalystwan/tests/templates/test_find_template_values.py +0 -193
- catalystwan/tests/templates/test_find_template_values_2.py +0 -193
- catalystwan/tests/templates/test_generate_payload.py +0 -137
- catalystwan/tests/templates/test_serialize_model.py +0 -52
- catalystwan/tests/test_admin_tech_api.py +0 -198
- catalystwan/tests/test_administration.py +0 -470
- catalystwan/tests/test_alarms_api.py +0 -251
- catalystwan/tests/test_cli_template.py +0 -218
- catalystwan/tests/test_creation_tools.py +0 -155
- catalystwan/tests/test_device_action_api.py +0 -117
- catalystwan/tests/test_devices_api.py +0 -674
- catalystwan/tests/test_endpoints.py +0 -907
- catalystwan/tests/test_feature_profile_api.py +0 -282
- catalystwan/tests/test_feature_template_field.py +0 -33
- catalystwan/tests/test_logs_api.py +0 -40
- catalystwan/tests/test_models_common.py +0 -53
- catalystwan/tests/test_monitoring_security_policy.py +0 -65
- catalystwan/tests/test_monitoring_server_info.py +0 -49
- catalystwan/tests/test_monitoring_status_api.py +0 -118
- catalystwan/tests/test_mtt_aaa_api.py +0 -293
- catalystwan/tests/test_omp_api.py +0 -438
- catalystwan/tests/test_packet_capture.py +0 -125
- catalystwan/tests/test_partition_manager_api.py +0 -121
- catalystwan/tests/test_response.py +0 -183
- catalystwan/tests/test_session.py +0 -102
- catalystwan/tests/test_software_action_api.py +0 -154
- catalystwan/tests/test_speed_test_api.py +0 -143
- catalystwan/tests/test_task_status_api.py +0 -381
- catalystwan/tests/test_templates.py +0 -405
- catalystwan/tests/test_tenant_backup_restore_api.py +0 -88
- catalystwan/tests/test_tenant_management_api.py +0 -153
- catalystwan/tests/test_tenant_migration_api.py +0 -102
- catalystwan/tests/test_typed_list.py +0 -426
- catalystwan/tests/test_url_monitoring.py +0 -80
- catalystwan/tests/test_version.py +0 -99
- catalystwan/tests/test_version_utils.py +0 -240
- catalystwan/tests/test_vmanage_auth.py +0 -149
- catalystwan/typed_list.py +0 -288
- catalystwan/utils/__init__.py +0 -0
- catalystwan/utils/alarm_status.py +0 -16
- catalystwan/utils/certificate_status.py +0 -13
- catalystwan/utils/colors.py +0 -12
- catalystwan/utils/config_status.py +0 -8
- catalystwan/utils/creation_tools.py +0 -136
- catalystwan/utils/dashboard.py +0 -255
- catalystwan/utils/device_model.py +0 -322
- catalystwan/utils/dict.py +0 -61
- catalystwan/utils/feature_template/choose_model.py +0 -30
- catalystwan/utils/feature_template/find_template_values.py +0 -111
- catalystwan/utils/model.py +0 -45
- catalystwan/utils/operation_status.py +0 -22
- catalystwan/utils/persona.py +0 -5
- catalystwan/utils/personality.py +0 -10
- catalystwan/utils/pydantic_field.py +0 -12
- catalystwan/utils/reachability.py +0 -14
- catalystwan/utils/session_type.py +0 -17
- catalystwan/utils/template_type.py +0 -8
- catalystwan/utils/type_check.py +0 -22
- catalystwan/utils/upgrades_helper.py +0 -95
- catalystwan/utils/validate_status.py +0 -8
- catalystwan/workflows/backup_restore_device_templates.py +0 -467
- catalystwan/workflows/tenant_migration.py +0 -203
- catalystwan-0.40.1.dev6.dist-info/METADATA +0 -539
- catalystwan-0.40.1.dev6.dist-info/RECORD +0 -618
- /catalystwan/{api → core/models}/__init__.py +0 -0
- /catalystwan/{api/builders/feature_profiles/__init__.py → core/py.typed} +0 -0
- {catalystwan-0.40.1.dev6.dist-info → catalystwan-2.0.0a0.dist-info}/LICENSE +0 -0
|
@@ -1,539 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: catalystwan
|
|
3
|
-
Version: 0.40.1.dev6
|
|
4
|
-
Summary: Cisco Catalyst WAN SDK for Python
|
|
5
|
-
Home-page: https://github.com/cisco-en-programmability/catalystwan-sdk
|
|
6
|
-
Author: kagorski
|
|
7
|
-
Author-email: kagorski@cisco.com
|
|
8
|
-
Requires-Python: >=3.8.0,<4.0.0
|
|
9
|
-
Classifier: Programming Language :: Python :: 3
|
|
10
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
-
Requires-Dist: Jinja2 (>=3.1.2,<4.0.0)
|
|
15
|
-
Requires-Dist: attrs (>=21.4.0)
|
|
16
|
-
Requires-Dist: ciscoconfparse (==1.9.41)
|
|
17
|
-
Requires-Dist: clint (>=0.5.1,<0.6.0)
|
|
18
|
-
Requires-Dist: flake8-quotes (>=3.3.1,<4.0.0)
|
|
19
|
-
Requires-Dist: packaging (>=23.0,<24.0)
|
|
20
|
-
Requires-Dist: pydantic (>=2.7,<3.0)
|
|
21
|
-
Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
|
|
22
|
-
Requires-Dist: requests (>=2.27.1,<3.0.0)
|
|
23
|
-
Requires-Dist: requests-toolbelt (>=1.0.0,<2.0.0)
|
|
24
|
-
Requires-Dist: tenacity (>=8.1.0,!=8.4.0)
|
|
25
|
-
Requires-Dist: typing-extensions (>=4.6.1,<5.0.0)
|
|
26
|
-
Project-URL: Repository, https://github.com/cisco-en-programmability/catalystwan-sdk
|
|
27
|
-
Description-Content-Type: text/markdown
|
|
28
|
-
|
|
29
|
-
<p align="center">
|
|
30
|
-
<a href="#"><img src="docs/images/catalystwan.svg" alt="Cisco Catalyst WAN SDK Logo" style="height:150px" />
|
|
31
|
-
</p>
|
|
32
|
-
|
|
33
|
-
[](https://www.python.org/)
|
|
34
|
-
|
|
35
|
-
Cisco Catalyst WAN SDK is a package for creating simple and parallel automatic requests via official SD-WAN Manager API. It is intended to serve as a multiple session handler (provider, provider as a tenant, tenant). The library is not dependent on environment which is being run in, you just need a connection to any SD-WAN Manager.
|
|
36
|
-
|
|
37
|
-
## Important Notice: Early Beta Release
|
|
38
|
-
|
|
39
|
-
Welcome to the Cisco Catalyst WAN SDK!
|
|
40
|
-
|
|
41
|
-
We are thrilled to announce that Cisco Catalyst WAN SDK is now available in early beta. This is an exciting step forward in enabling developers to harness the full potential of Cisco's networking solutions. Please be aware that, as an early beta release, this version of the SDK is still undergoing development and testing. As such, it is provided "as is" and support to address any issues are limited and best effort.
|
|
42
|
-
|
|
43
|
-
## Not recommend to use in production environments.
|
|
44
|
-
We encourage developers to explore and test the SDK's capabilities, but please exercise caution when using it in production environments. We are dedicated to improving the Cisco Catalyst WAN SDK and we value your input. Your feedback is crucial to us-it will guide us in refining and enhancing the SDK to better meet your needs.
|
|
45
|
-
To report any issues, share your insights, or suggest improvements, please visit our Issues page on GitHub or reach out to us through the provided communication channels.
|
|
46
|
-
|
|
47
|
-
Thank you for being a part of our development journey!
|
|
48
|
-
|
|
49
|
-
## Installation
|
|
50
|
-
```console
|
|
51
|
-
pip install catalystwan
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
## Manager Session
|
|
55
|
-
In order to execute SDK APIs **ManagerSession** needs to be created. The fastest way to get started is to use `create_manager_session()` method which configures session, performs authentication for given credentials and returns **ManagerSession** instance in operational state. **ManagerSession** provides a collection of supported APIs in `api` instance variable.
|
|
56
|
-
Please check example below:
|
|
57
|
-
|
|
58
|
-
```python
|
|
59
|
-
from catalystwan.session import create_manager_session
|
|
60
|
-
|
|
61
|
-
url = "example.com"
|
|
62
|
-
username = "admin"
|
|
63
|
-
password = "password123"
|
|
64
|
-
|
|
65
|
-
with create_manager_session(url=url, username=username, password=password) as session:
|
|
66
|
-
devices = session.api.devices.get()
|
|
67
|
-
print(devices)
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**ManagerSession** extends [requests.Session](https://requests.readthedocs.io/en/latest/user/advanced/#session-objects) so all functionality from [requests](https://requests.readthedocs.io/en/latest/) library is avaiable to user, it also implements python [contextmanager](https://docs.python.org/3.8/library/contextlib.html#contextlib.contextmanager) and automatically frees server resources on exit.
|
|
71
|
-
|
|
72
|
-
<details>
|
|
73
|
-
<summary> <b>Configure Manager Session before using</b> <i>(click to expand)</i></summary>
|
|
74
|
-
|
|
75
|
-
It is possible to configure **ManagerSession** prior sending any request.
|
|
76
|
-
|
|
77
|
-
```python
|
|
78
|
-
from catalystwan.session import ManagerSession
|
|
79
|
-
from catalystwan.vmanage_auth import vManageAuth
|
|
80
|
-
|
|
81
|
-
url = "example.com"
|
|
82
|
-
username = "admin"
|
|
83
|
-
password = "password123"
|
|
84
|
-
|
|
85
|
-
# configure session using constructor - nothing will be sent to target server yet
|
|
86
|
-
auth = vManageAuth(username, password)
|
|
87
|
-
session = ManagerSession(url=url, auth=auth)
|
|
88
|
-
# login and send requests
|
|
89
|
-
session.login()
|
|
90
|
-
session.get("/dataservice/device")
|
|
91
|
-
session.close()
|
|
92
|
-
```
|
|
93
|
-
When interacting with the SDWAN Manager API without using a context manager, it's important
|
|
94
|
-
to manually execute the `close()` method to release the user session resource.
|
|
95
|
-
Ensure that the `close()` method is called after you have finished using the session to maintain optimal resource management and avoid potential errors.
|
|
96
|
-
|
|
97
|
-
</details>
|
|
98
|
-
|
|
99
|
-
<details>
|
|
100
|
-
<summary> <b>Login as Tenant</b> <i>(click to expand)</i></summary>
|
|
101
|
-
|
|
102
|
-
Tenant domain needs to be provided in url together with Tenant credentials.
|
|
103
|
-
|
|
104
|
-
```python
|
|
105
|
-
from catalystwan.session import create_manager_session
|
|
106
|
-
|
|
107
|
-
url = "tenant.example.com"
|
|
108
|
-
username = "tenant_user"
|
|
109
|
-
password = "password123"
|
|
110
|
-
|
|
111
|
-
with create_manager_session(url=url, username=username, password=password) as session:
|
|
112
|
-
print(session.session_type)
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
</details>
|
|
116
|
-
|
|
117
|
-
<details>
|
|
118
|
-
<summary> <b>Login as Provider-as-Tenant</b> <i>(click to expand)</i></summary>
|
|
119
|
-
|
|
120
|
-
Tenant `subdomain` needs to be provided as additional argument together with Provider credentials.
|
|
121
|
-
|
|
122
|
-
```python
|
|
123
|
-
from catalystwan.session import create_manager_session
|
|
124
|
-
|
|
125
|
-
url = "example.com"
|
|
126
|
-
username = "provider"
|
|
127
|
-
password = "password123"
|
|
128
|
-
subdomain = "tenant.example.com"
|
|
129
|
-
|
|
130
|
-
with create_manager_session(url=url, username=username, password=password, subdomain=subdomain) as session:
|
|
131
|
-
print(session.session_type)
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
</details>
|
|
135
|
-
|
|
136
|
-
<details>
|
|
137
|
-
<summary> <b>Login using Api Gateway</b> <i>(click to expand)</i></summary>
|
|
138
|
-
|
|
139
|
-
```python
|
|
140
|
-
from catalystwan.session import create_apigw_session
|
|
141
|
-
|
|
142
|
-
with create_apigw_session(
|
|
143
|
-
url="example.com",
|
|
144
|
-
client_id="client_id",
|
|
145
|
-
client_secret="client_secret",
|
|
146
|
-
org_name="Org-Name",
|
|
147
|
-
username="user",
|
|
148
|
-
mode="user",
|
|
149
|
-
token_duration=10,
|
|
150
|
-
) as session:
|
|
151
|
-
devices = session.api.devices.get()
|
|
152
|
-
print(devices)
|
|
153
|
-
```
|
|
154
|
-
</details>
|
|
155
|
-
|
|
156
|
-
<details>
|
|
157
|
-
<summary> <b>Threading</b> <i>(click to expand)</i></summary>
|
|
158
|
-
|
|
159
|
-
```python
|
|
160
|
-
from threading import Thread
|
|
161
|
-
from catalystwan.session import ManagerSession
|
|
162
|
-
from catalystwan.vmanage_auth import vManageAuth
|
|
163
|
-
from copy import copy
|
|
164
|
-
|
|
165
|
-
def print_devices(manager: ManagerSession):
|
|
166
|
-
# using context manager (recommended)
|
|
167
|
-
with manager.login() as session:
|
|
168
|
-
print(session.api.devices.get())
|
|
169
|
-
|
|
170
|
-
if __name__ =="__main__":
|
|
171
|
-
|
|
172
|
-
# 1. Create shared authentication handler for user session
|
|
173
|
-
auth = vManageAuth(username="username", password="password")
|
|
174
|
-
# 2. Configure session with base url and attach authentication handler
|
|
175
|
-
manager = ManagerSession(base_url="https://url:port", auth=auth)
|
|
176
|
-
|
|
177
|
-
# 3. Make sure each thread gets own copy of ManagerSession object
|
|
178
|
-
t1 = Thread(target=print_devices, args=(manager,))
|
|
179
|
-
t2 = Thread(target=print_devices, args=(copy(manager),))
|
|
180
|
-
t3 = Thread(target=print_devices, args=(copy(manager),))
|
|
181
|
-
|
|
182
|
-
t1.start()
|
|
183
|
-
t2.start()
|
|
184
|
-
t3.start()
|
|
185
|
-
|
|
186
|
-
t1.join()
|
|
187
|
-
t2.join()
|
|
188
|
-
t3.join()
|
|
189
|
-
|
|
190
|
-
print("Done!")
|
|
191
|
-
```
|
|
192
|
-
Threading can be achieved by using a shared auth object with sessions in each thread. As `ManagerSession` is not guaranteed to be thread-safe, it is recommended to create one session per thread. `ManagerSession` also comes in with a default `RequestLimiter`, which limits the number of concurrent requests to 50. It keeps `ManagerSession` from overloading the server and avoids HTTP 503 and HTTP 429 errors.
|
|
193
|
-
If you wish to modify the limit, you can pass a modified `RequestLimiter` to `ManagerSession`:
|
|
194
|
-
```python
|
|
195
|
-
from catalystwan.session import ManagerSession
|
|
196
|
-
from catalystwan.vmanage_auth import vManageAuth
|
|
197
|
-
from catalystwan.request_limiter import RequestLimiter
|
|
198
|
-
|
|
199
|
-
auth = vManageAuth(username="username", password="password")
|
|
200
|
-
limiter = RequestLimiter(max_requests=30)
|
|
201
|
-
manager = ManagerSession(base_url="https://url:port", auth=auth, request_limiter=limiter)
|
|
202
|
-
```
|
|
203
|
-
</details>
|
|
204
|
-
|
|
205
|
-
## API usage examples
|
|
206
|
-
All examples below assumes `session` variable contains logged-in [Manager Session](#Manager-Session) instance.
|
|
207
|
-
|
|
208
|
-
<details>
|
|
209
|
-
<summary> <b>Get devices</b> <i>(click to expand)</i></summary>
|
|
210
|
-
|
|
211
|
-
```python
|
|
212
|
-
devices = session.api.devices.get()
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
</details>
|
|
216
|
-
|
|
217
|
-
<details>
|
|
218
|
-
<summary> <b>Admin Tech</b> <i>(click to expand)</i></summary>
|
|
219
|
-
|
|
220
|
-
```Python
|
|
221
|
-
admin_tech_file = session.api.admin_tech.generate("172.16.255.11")
|
|
222
|
-
session.api.admin_tech.download(admin_tech_file)
|
|
223
|
-
session.api.admin_tech.delete(admin_tech_file)
|
|
224
|
-
```
|
|
225
|
-
</details>
|
|
226
|
-
|
|
227
|
-
<details>
|
|
228
|
-
<summary> <b>Speed test</b> <i>(click to expand)</i></summary>
|
|
229
|
-
|
|
230
|
-
```python
|
|
231
|
-
devices = session.api.devices.get()
|
|
232
|
-
speedtest = session.api.speedtest.speedtest(devices[0], devices[1])
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
</details>
|
|
236
|
-
|
|
237
|
-
<details>
|
|
238
|
-
<summary> <b>Upgrade device</b> <i>(click to expand)</i></summary>
|
|
239
|
-
|
|
240
|
-
```python
|
|
241
|
-
# Prepare devices list
|
|
242
|
-
controllers = session.endpoints.configuration_device_inventory.get_device_details('controllers')
|
|
243
|
-
vsmarts = controllers.filter(personality=Personality.VSMART)
|
|
244
|
-
image = "viptela-20.7.2-x86_64.tar.gz"
|
|
245
|
-
|
|
246
|
-
# Upload image
|
|
247
|
-
session.api.repository.upload_image(image)
|
|
248
|
-
|
|
249
|
-
# Install software
|
|
250
|
-
|
|
251
|
-
install_task = session.api.software.install(devices=vsmarts, image=image)
|
|
252
|
-
|
|
253
|
-
# Check action status
|
|
254
|
-
install_task.wait_for_completed()
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
</details>
|
|
258
|
-
|
|
259
|
-
<details>
|
|
260
|
-
<summary> <b>Get alarms</b> <i>(click to expand)</i></summary>
|
|
261
|
-
To get all alarms:
|
|
262
|
-
|
|
263
|
-
```python
|
|
264
|
-
alarms = session.api.alarms.get()
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
To get all not viewed alarms:
|
|
268
|
-
|
|
269
|
-
```python
|
|
270
|
-
not_viewed_alarms = session.api.alarms.get().filter(viewed=False)
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
To get all alarms from past `n` hours:
|
|
274
|
-
|
|
275
|
-
```python
|
|
276
|
-
n = 24
|
|
277
|
-
alarms_from_n_hours = session.api.alarms.get(from_time=n)
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
To get all critical alarms from past `n` hours:
|
|
281
|
-
|
|
282
|
-
```python
|
|
283
|
-
from catalystwan.utils.alarm_status import Severity
|
|
284
|
-
n = 48
|
|
285
|
-
critical_alarms = session.api.alarms.get(from_time=n).filter(severity=Severity.CRITICAL)
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
</details>
|
|
289
|
-
|
|
290
|
-
<details>
|
|
291
|
-
<summary> <b>Users</b> <i>(click to expand)</i></summary>
|
|
292
|
-
|
|
293
|
-
```python
|
|
294
|
-
# Get all users
|
|
295
|
-
session.api.users.get()
|
|
296
|
-
|
|
297
|
-
# Create user
|
|
298
|
-
from catalystwan.endpoints.administration_user_and_group import User
|
|
299
|
-
new_user = User(username="new_user", password="new_user", group=["netadmin"], description="new user")
|
|
300
|
-
session.api.users.create(new_user)
|
|
301
|
-
|
|
302
|
-
# Update user data
|
|
303
|
-
new_user_update = UserUpdateRequest(username="new_user", group=["netadmin", "netops"], locale="en_US", description="updated-new_user-description")
|
|
304
|
-
session.api.users.update(new_user_update)
|
|
305
|
-
|
|
306
|
-
# Update user password
|
|
307
|
-
session.api.users.update_password("new_user", "n3W-P4s$w0rd")
|
|
308
|
-
|
|
309
|
-
# Reset user
|
|
310
|
-
session.api.users.reset("new_user")
|
|
311
|
-
|
|
312
|
-
# Delete user
|
|
313
|
-
session.api.users.delete("new_user")
|
|
314
|
-
|
|
315
|
-
# Get current user authentication type and role
|
|
316
|
-
session.api.users.get_auth_type()
|
|
317
|
-
session.api.users.get_role()
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
</details>
|
|
321
|
-
|
|
322
|
-
<details>
|
|
323
|
-
<summary> <b>User Groups</b> <i>(click to expand)</i></summary>
|
|
324
|
-
|
|
325
|
-
```python
|
|
326
|
-
# Get all user groups
|
|
327
|
-
session.api.user_groups.get()
|
|
328
|
-
|
|
329
|
-
# Create user group
|
|
330
|
-
group = UserGroup("new_user_group", [])
|
|
331
|
-
group.enable_read({"Audit Log", "Alarms"})
|
|
332
|
-
group.enable_read_and_write({"Device Inventory"})
|
|
333
|
-
session.api.user_groups.create(group)
|
|
334
|
-
|
|
335
|
-
# Update user group
|
|
336
|
-
group.disable({"Alarms"})
|
|
337
|
-
session.api.user_groups.update(group)
|
|
338
|
-
|
|
339
|
-
# Delete user group
|
|
340
|
-
session.api.user_groups.delete(group.group_name)
|
|
341
|
-
```
|
|
342
|
-
|
|
343
|
-
</details>
|
|
344
|
-
|
|
345
|
-
</details>
|
|
346
|
-
|
|
347
|
-
<details>
|
|
348
|
-
<summary> <b>Sessions</b> <i>(click to expand)</i></summary>
|
|
349
|
-
|
|
350
|
-
```python
|
|
351
|
-
# Get all active sessions
|
|
352
|
-
active_sessions = session.api.sessions.get()
|
|
353
|
-
|
|
354
|
-
# Invalidate sessions for given user
|
|
355
|
-
new_user_sessions = active_sessions.filter(raw_username="new_user")
|
|
356
|
-
session.api.sessions.invalidate(new_user_sessions)
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
</details>
|
|
360
|
-
|
|
361
|
-
<details>
|
|
362
|
-
<summary> <b>Resource Groups</b> <i>(click to expand)</i></summary>
|
|
363
|
-
|
|
364
|
-
```python
|
|
365
|
-
# get resource groups
|
|
366
|
-
session.api.resource_groups.get()
|
|
367
|
-
|
|
368
|
-
# create resource group
|
|
369
|
-
new_resource_group = ResourceGroup(
|
|
370
|
-
name="new_resource_group",
|
|
371
|
-
desc="Custom Resource Group #1",
|
|
372
|
-
siteIds=[]
|
|
373
|
-
)
|
|
374
|
-
session.api.resource_groups.create(new_resource_group)
|
|
375
|
-
|
|
376
|
-
# update resource group
|
|
377
|
-
resource_group = session.api.resource_groups.get().filter(name="new_resource_group").single_or_default()
|
|
378
|
-
updated_resource_group = ResourceGroupUpdateRequest(
|
|
379
|
-
id=resource_group.id,
|
|
380
|
-
name=resource_group.name,
|
|
381
|
-
desc="Custom Resource Group #1 with updated description and site ids",
|
|
382
|
-
siteIds=[200]
|
|
383
|
-
)
|
|
384
|
-
|
|
385
|
-
# switch to resource group view
|
|
386
|
-
session.api.resource_groups.switch("new_resource_group")
|
|
387
|
-
|
|
388
|
-
# delete resource group
|
|
389
|
-
session.api.resource_groups.delete(resource_group.id)
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
</details>
|
|
393
|
-
|
|
394
|
-
<details>
|
|
395
|
-
<summary> <b>Tenant management</b> <i>(click to expand)</i></summary>
|
|
396
|
-
|
|
397
|
-
```python
|
|
398
|
-
api = session.api.tenant_management
|
|
399
|
-
# create tenants
|
|
400
|
-
tenants = [
|
|
401
|
-
Tenant(
|
|
402
|
-
name="tenant1",
|
|
403
|
-
org_name="CiscoDevNet",
|
|
404
|
-
subdomain="alpha.bravo.net",
|
|
405
|
-
desc="This is tenant for unit tests",
|
|
406
|
-
edge_connector_enable=True,
|
|
407
|
-
edge_connector_system_ip="172.16.255.81",
|
|
408
|
-
edge_connector_tunnel_interface_name="GigabitEthernet1",
|
|
409
|
-
wan_edge_forecast=1,
|
|
410
|
-
)
|
|
411
|
-
]
|
|
412
|
-
create_task = api.create(tenants)
|
|
413
|
-
create_task.wait_for_completed()
|
|
414
|
-
# list all tenants
|
|
415
|
-
tenants_data = api.get_all()
|
|
416
|
-
# pick tenant from list by name
|
|
417
|
-
tenant = tenants_data.filter(name="tenant1").single_or_default()
|
|
418
|
-
# get selected tenant id
|
|
419
|
-
tenant_id = tenant.tenant_id
|
|
420
|
-
# get vsession id of selected tenant
|
|
421
|
-
vsessionid = api.vsession_id(tenant_id)
|
|
422
|
-
# delete tenant by ids
|
|
423
|
-
delete_task = api.delete([tenant_id])
|
|
424
|
-
delete_task.wait_for_completed()
|
|
425
|
-
# others
|
|
426
|
-
api.get_hosting_capacity_on_vsmarts()
|
|
427
|
-
api.get_statuses()
|
|
428
|
-
api.get_vsmart_mapping()
|
|
429
|
-
```
|
|
430
|
-
</details>
|
|
431
|
-
|
|
432
|
-
<details>
|
|
433
|
-
<summary> <b>Tenant migration</b> <i>(click to expand)</i></summary>
|
|
434
|
-
|
|
435
|
-
```python
|
|
436
|
-
from pathlib import Path
|
|
437
|
-
from catalystwan.session import create_manager_session
|
|
438
|
-
from catalystwan.models.tenant import TenantExport
|
|
439
|
-
from catalystwan.workflows.tenant_migration import migration_workflow
|
|
440
|
-
|
|
441
|
-
tenant = TenantExport(
|
|
442
|
-
name="mango",
|
|
443
|
-
desc="Mango tenant description",
|
|
444
|
-
org_name="Provider Org-Mango Inc",
|
|
445
|
-
subdomain="mango.fruits.com",
|
|
446
|
-
wan_edge_forecast=100,
|
|
447
|
-
migration_key="MangoTenantMigrationKey", # only for SDWAN Manager >= 20.13
|
|
448
|
-
is_destination_overlay_mt=True, # only for SDWAN Manager >= 20.13
|
|
449
|
-
)
|
|
450
|
-
|
|
451
|
-
with create_manager_session(url="10.0.1.15", username="st-admin", password="") as origin_session, \
|
|
452
|
-
create_manager_session(url="10.9.0.16", username="mt-provider-admin", password="") as target_session:
|
|
453
|
-
migration_workflow(
|
|
454
|
-
origin_session=origin_session,
|
|
455
|
-
target_session=target_session,
|
|
456
|
-
workdir=Path("workdir"),
|
|
457
|
-
tenant=tenant,
|
|
458
|
-
validator="10.9.12.26"
|
|
459
|
-
)
|
|
460
|
-
```
|
|
461
|
-
|
|
462
|
-
`migration_workflow` performs multi-step migration procedure according to [Migrate Single-Tenant Cisco SD-WAN Overlay to Multitenant Cisco SD-WAN Deployment](https://www.cisco.com/c/en/us/td/docs/routers/sdwan/configuration/system-interface/vedge-20-x/systems-interfaces-book/sdwan-multitenancy.html#concept_sjj_jmm_z4b)
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
Since 20.13 also MT to ST is supported (just provide suitable origin/target sessions, and `is_destination_overlay_mt` parameter)
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
Each step of the `migration_workflow` procedure can be executed independently using api methods: `export_tenant`, `download`, `import_tenant`, `store_token`, `migrate_network`
|
|
469
|
-
|
|
470
|
-
```python
|
|
471
|
-
origin_api = origin_session.api.tenant_migration_api
|
|
472
|
-
target_api = target_session.api.tenant_migration_api
|
|
473
|
-
tenant_file = Path("~/tenant.tar.gz")
|
|
474
|
-
token_file = Path("~/tenant-token.txt")
|
|
475
|
-
# export
|
|
476
|
-
export_task = origin_api.export_tenant(tenant=tenant)
|
|
477
|
-
remote_filename = export_task.wait_for_file()
|
|
478
|
-
# download
|
|
479
|
-
origin_api.download(export_path, remote_filename)
|
|
480
|
-
# import
|
|
481
|
-
import_task = target_api.import_tenant(export_path, tenant.migration_key)
|
|
482
|
-
import_task.wait_for_completed()
|
|
483
|
-
# get token
|
|
484
|
-
migration_id = import_task.import_info.migration_token_query_params.migration_id
|
|
485
|
-
target_api.store_token(migration_id, token_path)
|
|
486
|
-
# migrate network
|
|
487
|
-
migrate_task = origin_api.migrate_network(token_path)
|
|
488
|
-
migrate_task.wait_for_completed()
|
|
489
|
-
```
|
|
490
|
-
</details>
|
|
491
|
-
|
|
492
|
-
<details>
|
|
493
|
-
<summary> <b>Feature Templates</b> <i>(click to expand)</i></summary>
|
|
494
|
-
|
|
495
|
-
```python
|
|
496
|
-
from catalystwan.api.templates.models.omp_vsmart_model import OMPvSmart
|
|
497
|
-
|
|
498
|
-
omp_vsmart = OMPvSmart(
|
|
499
|
-
name="my_first_template",
|
|
500
|
-
description="NA",
|
|
501
|
-
device_models=["vsmart"]
|
|
502
|
-
|
|
503
|
-
)
|
|
504
|
-
|
|
505
|
-
session.api.templates.create(omp_vsmart)
|
|
506
|
-
```
|
|
507
|
-
|
|
508
|
-
More details about how to use and how to add new: [Feature Templates README.md](https://github.com/cisco-open/cisco-catalyst-wan-sdk/blob/main/catalystwan/api/templates/README.md)
|
|
509
|
-
</details>
|
|
510
|
-
|
|
511
|
-
### Note:
|
|
512
|
-
To remove `InsecureRequestWarning`, you can include in your scripts (warning is suppressed when `catalystwan_devel` environment variable is set):
|
|
513
|
-
```Python
|
|
514
|
-
import urllib3
|
|
515
|
-
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
|
516
|
-
```
|
|
517
|
-
|
|
518
|
-
## Catching Exceptions
|
|
519
|
-
```python
|
|
520
|
-
try:
|
|
521
|
-
session.api.users.delete("bogus-user-name")
|
|
522
|
-
except ManagerHTTPError as error:
|
|
523
|
-
# Process an error.
|
|
524
|
-
print(error.response.status_code)
|
|
525
|
-
print(error.info.code)
|
|
526
|
-
print(error.info.message)
|
|
527
|
-
print(error.info.details)
|
|
528
|
-
|
|
529
|
-
```
|
|
530
|
-
|
|
531
|
-
## [Supported API endpoints](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/ENDPOINTS.md)
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
## [Contributing, bug reporting and feature requests](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/CONTRIBUTING.md)
|
|
535
|
-
|
|
536
|
-
## Seeking support
|
|
537
|
-
|
|
538
|
-
You can contact us by submitting [issues](https://github.com/cisco-en-programmability/catalystwan-sdk/issues), or directly via mail on catalystwan@cisco.com.
|
|
539
|
-
|