From 7874ae86b06970077994b61293771ec74c7bf892 Mon Sep 17 00:00:00 2001 From: Szymon Basan <116343782+sbasan@users.noreply.github.com> Date: Fri, 17 Jan 2025 15:17:46 +0100 Subject: [PATCH] maintenance: update dependencies, add missing device models (#23) * update dependencies * mypy: Enum members must be left unannotated * mypy: Incompatible types in assignment * mypy: Enum members must be left unannotated 2 * mypy: creation_tools * add missing device models * bump to 0.40.1 --- ENDPOINTS.md | 20 +- .../api/templates/models/cisco_bgp_model.py | 2 +- .../api/templates/models/cisco_snmp_model.py | 4 +- .../api/templates/models/cisco_system.py | 4 +- .../api/templates/models/cisco_vpn_model.py | 2 +- .../templates/models/security_vsmart_model.py | 4 +- .../templates/models/system_vsmart_model.py | 2 +- .../configuration/software_actions.py | 10 +- .../configuration_dashboard_status.py | 4 +- .../configuration/feature_profile/common.py | 2 +- .../feature_profile/sdwan/management/vpn.py | 6 +- .../feature_profile/sdwan/service/bgp.py | 4 +- catalystwan/utils/colors.py | 12 +- catalystwan/utils/creation_tools.py | 4 +- catalystwan/utils/dashboard.py | 54 ++-- catalystwan/utils/device_model.py | 300 ++++++++++++++++-- pyproject.toml | 9 +- 17 files changed, 341 insertions(+), 102 deletions(-) diff --git a/ENDPOINTS.md b/ENDPOINTS.md index 18d96803..cba0a08b 100644 --- a/ENDPOINTS.md +++ b/ENDPOINTS.md @@ -1,6 +1,6 @@ **THIS FILE WAS AUTO-GENERATED DO NOT EDIT** -Generated for: catalystwan-0.36.1 +Generated for: catalystwan-0.40.1 All URIs are relative to */dataservice* HTTP request | Supported Versions | Method | Payload Type | Return Type | Tenancy Mode @@ -522,15 +522,15 @@ GET /management/statsconfig||[**ConfigurationSettings.get_stats_config**](https: GET /settings/configuration/vedgecloud||[**ConfigurationSettings.get_vedge_cloud**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration_settings.py#L386)||DataSequence[[**VEdgeCloud**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration_settings.py#L63)]|PROVIDER, SINGLE_TENANT GET /settings/configuration/vmanagedatastream||[**ConfigurationSettings.get_vmanage_data_stream**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration_settings.py#L441)||DataSequence[[**VManageDataStream**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration_settings.py#L166)]|PROVIDER, SINGLE_TENANT GET /settings/configuration/walkme||[**ConfigurationSettings.get_walkme**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration_settings.py#L500)||DataSequence[[**WalkMe**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration_settings.py#L279)]| -POST /device/action/remote-server||[**ConfigurationSoftwareActions.add_new_remote_server**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L169)|[**RemoteServer**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L45)|None| -DELETE /device/action/software/{version_id}||[**ConfigurationSoftwareActions.delete_software_from_software_repository**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L193)||None| -GET /device/action/software/images||[**ConfigurationSoftwareActions.get_list_of_all_images**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L197)||DataSequence[[**SoftwareImageDetails**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L111)]| -GET /device/action/remote-server||[**ConfigurationSoftwareActions.get_list_of_remote_servers**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L165)||DataSequence[[**RemoteServerInfo**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L70)]| -GET /device/action/remote-server/{id}||[**ConfigurationSoftwareActions.get_remote_server**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L173)||[**RemoteServerInfo**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L70)| -GET /device/action/software||[**ConfigurationSoftwareActions.get_software_images**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L185)||DataSequence[[**SoftwareImageDetails**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L111)]| -DELETE /device/action/remote-server/{id}||[**ConfigurationSoftwareActions.remove_remote_server**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L181)||None| -PUT /device/action/remote-server/{id}||[**ConfigurationSoftwareActions.update_remote_server**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L177)|[**SoftwareRemoteServer**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L100)|None| -POST /device/action/software||[**ConfigurationSoftwareActions.upload_software_from_remote_server**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L189)|[**SoftwareRemoteServer**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L100)|None| +POST /device/action/remote-server||[**ConfigurationSoftwareActions.add_new_remote_server**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L173)|[**RemoteServer**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L45)|None| +DELETE /device/action/software/{version_id}||[**ConfigurationSoftwareActions.delete_software_from_software_repository**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L197)||None| +GET /device/action/software/images||[**ConfigurationSoftwareActions.get_list_of_all_images**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L201)||DataSequence[[**SoftwareImageDetails**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L113)]| +GET /device/action/remote-server||[**ConfigurationSoftwareActions.get_list_of_remote_servers**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L169)||DataSequence[[**RemoteServerInfo**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L70)]| +GET /device/action/remote-server/{id}||[**ConfigurationSoftwareActions.get_remote_server**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L177)||[**RemoteServerInfo**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L70)| +GET /device/action/software||[**ConfigurationSoftwareActions.get_software_images**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L189)||DataSequence[[**SoftwareImageDetails**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L113)]| +DELETE /device/action/remote-server/{id}||[**ConfigurationSoftwareActions.remove_remote_server**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L185)||None| +PUT /device/action/remote-server/{id}||[**ConfigurationSoftwareActions.update_remote_server**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L181)|[**SoftwareRemoteServer**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L100)|None| +POST /device/action/software||[**ConfigurationSoftwareActions.upload_software_from_remote_server**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L193)|[**SoftwareRemoteServer**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/software_actions.py#L100)|None| POST /template/policy/vedge||[**ConfigurationVEdgeTemplatePolicy.create_vedge_template**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/policy/vedge_template.py#L22)|[**LocalizedPolicy**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/models/policy/localized.py#L75)|[**PolicyId**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/models/policy/policy.py#L10)| DELETE /template/policy/vedge/{id}||[**ConfigurationVEdgeTemplatePolicy.delete_vedge_template**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/policy/vedge_template.py#L26)||None| PUT /template/policy/vedge/{id}||[**ConfigurationVEdgeTemplatePolicy.edit_vedge_template**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/endpoints/configuration/policy/vedge_template.py#L30)|[**LocalizedPolicy**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/models/policy/localized.py#L75)|[**LocalizedPolicyEditResponse**](https://github.com/cisco-en-programmability/catalystwan-sdk/blob/main/catalystwan/models/policy/localized.py#L125)| diff --git a/catalystwan/api/templates/models/cisco_bgp_model.py b/catalystwan/api/templates/models/cisco_bgp_model.py index df0bdb0e..06359fcd 100644 --- a/catalystwan/api/templates/models/cisco_bgp_model.py +++ b/catalystwan/api/templates/models/cisco_bgp_model.py @@ -183,7 +183,7 @@ class Ipv6Neighbor(FeatureTemplateValidator): address: str description: Optional[str] = None shutdown: Optional[BoolStr] = None - remote_as: int = Field(default=None, json_schema_extra={"vmanage_key": "remote-as"}) + remote_as: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "remote-as"}) keepalive: Optional[int] = Field(default=None, json_schema_extra={"data_path": ["timers"]}) holdtime: Optional[int] = Field(default=None, json_schema_extra={"data_path": ["timers"]}) if_name: Optional[str] = Field( diff --git a/catalystwan/api/templates/models/cisco_snmp_model.py b/catalystwan/api/templates/models/cisco_snmp_model.py index ca6c1fe8..9ee36588 100644 --- a/catalystwan/api/templates/models/cisco_snmp_model.py +++ b/catalystwan/api/templates/models/cisco_snmp_model.py @@ -66,9 +66,9 @@ class Target(FeatureTemplateValidator): vpn_id: int = Field(json_schema_extra={"vmanage_key": "vpn-id"}) ip: str port: int - community_name: str = Field(default=None, json_schema_extra={"vmanage_key": "community-name"}) + community_name: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "community-name"}) user: Optional[str] = None - source_interface: str = Field(default=None, json_schema_extra={"vmanage_key": "source-interface"}) + source_interface: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "source-interface"}) model_config = ConfigDict(populate_by_name=True) diff --git a/catalystwan/api/templates/models/cisco_system.py b/catalystwan/api/templates/models/cisco_system.py index 6532cc5c..268b1ddb 100644 --- a/catalystwan/api/templates/models/cisco_system.py +++ b/catalystwan/api/templates/models/cisco_system.py @@ -151,7 +151,9 @@ class CiscoSystemModel(FeatureTemplate): default=DeviceVariable(name="system_system_ip"), json_schema_extra={"vmanage_key": "system-ip"} ) overlay_id: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "overlay-id"}) - site_id: int = Field(default=DeviceVariable(name="system_site_id"), json_schema_extra={"vmanage_key": "site-id"}) + site_id: DeviceVariable = Field( + default=DeviceVariable(name="system_site_id"), json_schema_extra={"vmanage_key": "site-id"} + ) site_type: Optional[List[SiteType]] = Field(default=None, json_schema_extra={"vmanage_key": "site-type"}) port_offset: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "port-offset"}) port_hop: Optional[BoolStr] = Field(default=None, json_schema_extra={"vmanage_key": "port-hop"}) diff --git a/catalystwan/api/templates/models/cisco_vpn_model.py b/catalystwan/api/templates/models/cisco_vpn_model.py index 35fbdc7e..d989db59 100644 --- a/catalystwan/api/templates/models/cisco_vpn_model.py +++ b/catalystwan/api/templates/models/cisco_vpn_model.py @@ -229,7 +229,7 @@ class Overload(str, Enum): class Natpool(FeatureTemplateValidator): name: int prefix_length: Optional[int] = Field(default=None, json_schema_extra={"vmanage_key": "prefix-length"}) - range_start: str = Field(default=None, json_schema_extra={"vmanage_key": "range-start"}) + range_start: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "range-start"}) range_end: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "range-end"}) overload: Overload = Overload.TRUE direction: Direction diff --git a/catalystwan/api/templates/models/security_vsmart_model.py b/catalystwan/api/templates/models/security_vsmart_model.py index 14ee051a..cda05e23 100644 --- a/catalystwan/api/templates/models/security_vsmart_model.py +++ b/catalystwan/api/templates/models/security_vsmart_model.py @@ -10,8 +10,8 @@ class Protocol(str, Enum): - DTLS: str = "dtls" - TLS: str = "tls" + DTLS = "dtls" + TLS = "tls" class SecurityvSmart(FeatureTemplate): diff --git a/catalystwan/api/templates/models/system_vsmart_model.py b/catalystwan/api/templates/models/system_vsmart_model.py index b3ebba96..b1f5ac4b 100644 --- a/catalystwan/api/templates/models/system_vsmart_model.py +++ b/catalystwan/api/templates/models/system_vsmart_model.py @@ -37,7 +37,7 @@ class SystemVsmart(FeatureTemplate): device_groups: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "device-groups"}) longitude: Optional[int] = Field(default=None, ge=-180, le=180) latitude: Optional[int] = Field(default=None, ge=-90, le=90) - system_tunnel_mtu: Optional[str] = Field(default=1024, json_schema_extra={"vmanage_key": "system-tunnel-mtu"}) + system_tunnel_mtu: Optional[int] = Field(default=1024, json_schema_extra={"vmanage_key": "system-tunnel-mtu"}) location: Optional[str] = None host_name: Optional[str] = Field(default=None, json_schema_extra={"vmanage_key": "host-name"}) diff --git a/catalystwan/endpoints/configuration/software_actions.py b/catalystwan/endpoints/configuration/software_actions.py index eab9f68f..06fdbe6f 100644 --- a/catalystwan/endpoints/configuration/software_actions.py +++ b/catalystwan/endpoints/configuration/software_actions.py @@ -100,8 +100,10 @@ class RemoteServerInfo(BaseModel): class SoftwareRemoteServer(BaseModel): model_config = ConfigDict(populate_by_name=True) - filename: str = Field(default=None, serialization_alias="fileName", validation_alias="fileName") - remote_server_id: str = Field(default=None, serialization_alias="remoteServerId", validation_alias="remoteServerId") + filename: Optional[str] = Field(default=None, serialization_alias="fileName", validation_alias="fileName") + remote_server_id: Optional[str] = Field( + default=None, serialization_alias="remoteServerId", validation_alias="remoteServerId" + ) smu_defect_id: Optional[str] = Field( default=None, serialization_alias="smuDefectId", validation_alias="smuDefectId" ) @@ -158,7 +160,9 @@ class SoftwareImageDetails(BaseModel): vnf_properties_json: Optional[str] = Field( default=None, serialization_alias="vnfPropertiesJson", validation_alias="vnfPropertiesJson" ) - remote_server_id: str = Field(default=None, serialization_alias="remoteServerId", validation_alias="remoteServerId") + remote_server_id: Optional[str] = Field( + default=None, serialization_alias="remoteServerId", validation_alias="remoteServerId" + ) class ConfigurationSoftwareActions(APIEndpoints): diff --git a/catalystwan/endpoints/configuration_dashboard_status.py b/catalystwan/endpoints/configuration_dashboard_status.py index 0df41fd1..138df353 100644 --- a/catalystwan/endpoints/configuration_dashboard_status.py +++ b/catalystwan/endpoints/configuration_dashboard_status.py @@ -61,7 +61,7 @@ class Validation(BaseModel): device_id: Optional[str] = Field(default=None, serialization_alias="deviceID", validation_alias="deviceID") uuid: Optional[str] = Field(default=None, serialization_alias="uuid", validation_alias="uuid") rid: Optional[int] = Field(default=None, serialization_alias="@rid", validation_alias="@rid") - status_id: str = Field(default=None, serialization_alias="statusId", validation_alias="statusId") + status_id: Optional[str] = Field(default=None, serialization_alias="statusId", validation_alias="statusId") process_id: Optional[str] = Field(default=None, serialization_alias="processId", validation_alias="processId") action_config: Optional[Union[str, Dict]] = Field( default=None, serialization_alias="actionConfig", validation_alias="actionConfig" @@ -74,7 +74,7 @@ class Validation(BaseModel): request_status: Optional[str] = Field( default=None, serialization_alias="requestStatus", validation_alias="requestStatus" ) - status: OperationStatus = Field(default=None, serialization_alias="status", validation_alias="status") + status: Optional[OperationStatus] = Field(default=None, serialization_alias="status", validation_alias="status") order: Optional[int] = Field(default=None, serialization_alias="order", validation_alias="order") diff --git a/catalystwan/models/configuration/feature_profile/common.py b/catalystwan/models/configuration/feature_profile/common.py index 48b78872..637d9a08 100644 --- a/catalystwan/models/configuration/feature_profile/common.py +++ b/catalystwan/models/configuration/feature_profile/common.py @@ -221,7 +221,7 @@ class IPv4Prefix(BaseModel): class WANIPv4StaticRoute(BaseModel): prefix: IPv4Prefix = Field() gateway: Global[Literal["nextHop", "null0", "dhcp"]] = Field(default=Global(value="nextHop"), alias="gateway") - next_hops: Optional[List[NextHop]] = Field(default_factory=list, alias="nextHop") + next_hops: Optional[List[NextHop]] = Field(default=None, alias="nextHop") distance: Optional[Global[int]] = Field(default=None, alias="distance") def set_to_next_hop( diff --git a/catalystwan/models/configuration/feature_profile/sdwan/management/vpn.py b/catalystwan/models/configuration/feature_profile/sdwan/management/vpn.py index c8643bde..3440a24e 100644 --- a/catalystwan/models/configuration/feature_profile/sdwan/management/vpn.py +++ b/catalystwan/models/configuration/feature_profile/sdwan/management/vpn.py @@ -17,10 +17,10 @@ class ManagementVPN(BaseModel): # TODO (mlembke): vpn_id can't have other value, it needs to be constant. How to do that? vpn_id: Default[int] = Field(default=Default(value=512), frozen=True, alias="vpnId") - ipv4_routes: Optional[List[WANIPv4StaticRoute]] = Field(default=[], alias="ipv4Route") - ipv6_routes: Optional[List[WANIPv6StaticRoute]] = Field(default=[], alias="ipv6Route") + ipv4_routes: Optional[List[WANIPv4StaticRoute]] = Field(default=None, alias="ipv4Route") + ipv6_routes: Optional[List[WANIPv6StaticRoute]] = Field(default=None, alias="ipv6Route") dns_ipv4: Optional[DNSIPv4] = Field(default=None, alias="dnsIpv4") dns_ipv6: Optional[DNSIPv6] = Field(default=None, alias="dnsIpv6") - new_host_mapping: Optional[List[HostMapping]] = Field(default=[], alias="newHostMapping") + new_host_mapping: Optional[List[HostMapping]] = Field(default=None, alias="newHostMapping") # TODO (mlembke): add interfaces interface: Optional[Any] = Field(default=None) diff --git a/catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py b/catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py index 6abf2ffe..d763baf1 100644 --- a/catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py +++ b/catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py @@ -157,7 +157,7 @@ class BgpIPv4Neighbor(BaseModel): description: Optional[Union[Global[str], Variable, Default[None]]] = None shutdown: Optional[Union[Global[bool], Variable, Default[bool]]] = Default[bool](value=False) remote_as: Union[Global[int], Variable] = Field(serialization_alias="remoteAs", validation_alias="remoteAs") - local_as: Union[Global[int], Variable] = Field( + local_as: Optional[Union[Global[int], Variable]] = Field( serialization_alias="localAs", validation_alias="localAs", default=None ) keepalive: Optional[Union[Global[int], Variable, Default[int]]] = Default[int](value=60) @@ -199,7 +199,7 @@ class BgpIPv6Neighbor(BaseModel): description: Optional[Union[Global[str], Variable, Default[None]]] = None shutdown: Optional[Union[Global[bool], Variable, Default[bool]]] = Default[bool](value=False) remote_as: Union[Global[int], Variable] = Field(serialization_alias="remoteAs", validation_alias="remoteAs") - local_as: Union[Global[int], Variable] = Field( + local_as: Optional[Union[Global[int], Variable]] = Field( serialization_alias="localAs", validation_alias="localAs", default=None ) keepalive: Optional[Union[Global[int], Variable, Default[int]]] = Default[int](value=60) diff --git a/catalystwan/utils/colors.py b/catalystwan/utils/colors.py index dfb71208..aed21acd 100644 --- a/catalystwan/utils/colors.py +++ b/catalystwan/utils/colors.py @@ -4,9 +4,9 @@ class PrintColors(Enum): - RED_BACKGROUND: str = "\033[41m" - RED: str = "\033[31m" - YELLOW: str = "\033[33m" - BLUE: str = "\033[34m" - GREEN: str = "\033[32m" - NONE: str = "\033[0m" + RED_BACKGROUND = "\033[41m" + RED = "\033[31m" + YELLOW = "\033[33m" + BLUE = "\033[34m" + GREEN = "\033[32m" + NONE = "\033[0m" diff --git a/catalystwan/utils/creation_tools.py b/catalystwan/utils/creation_tools.py index cfb66674..9aa86b5e 100644 --- a/catalystwan/utils/creation_tools.py +++ b/catalystwan/utils/creation_tools.py @@ -37,11 +37,11 @@ def filter_fields(available_fields: Iterable[str], data: Dict[str, Any]) -> Dict return dict(filter(lambda key_value: key_value[0] in available_fields, data.items())) data_copy = data.copy() - for field in fields(cls): # type: ignore[misc] + for field in fields(cls): # type: ignore[arg-type] json_field_name = field.metadata.get(FIELD_NAME, None) if json_field_name and json_field_name in data_copy: data_copy[field.name] = data_copy.pop(json_field_name) - filtered_data = filter_fields(fields_dict(cls).keys(), data_copy) + filtered_data = filter_fields(fields_dict(cls).keys(), data_copy) # type: ignore[arg-type] return cls(**filtered_data) diff --git a/catalystwan/utils/dashboard.py b/catalystwan/utils/dashboard.py index d2233d32..a5c96019 100644 --- a/catalystwan/utils/dashboard.py +++ b/catalystwan/utils/dashboard.py @@ -15,51 +15,51 @@ class DeviceName(Enum): - VMANAGE: str = "vManage" - VBOND: str = "vBond" - VSMART: str = "vSmart" - EDGE: str = "WAN Edge" - VEDGE: str = "vEdge" + VMANAGE = "vManage" + VBOND = "vBond" + VSMART = "vSmart" + EDGE = "WAN Edge" + VEDGE = "vEdge" class StatusName(Enum): - CONTROL_STATUS: str = "Control Status" - CONTROL_UP: str = "Control up" - PARTIAL_CONTROL: str = "Partial" - CONTROL_DOWN: str = "Control down" + CONTROL_STATUS = "Control Status" + CONTROL_UP = "Control up" + PARTIAL_CONTROL = "Partial" + CONTROL_DOWN = "Control down" class BfdConnectivityName(Enum): - FULL: str = "Full WAN Connectivity" - PARTIAL: str = "Partial WAN Connectivity" - NO_CONNECTIVITY: str = "No WAN Connectivity" + FULL = "Full WAN Connectivity" + PARTIAL = "Partial WAN Connectivity" + NO_CONNECTIVITY = "No WAN Connectivity" class InventoryName(Enum): - TOTAL: str = "Total" - AUTHORIZED: str = "Authorized" - DEPLOYED: str = "Deployed" - STAGING: str = "Staging" + TOTAL = "Total" + AUTHORIZED = "Authorized" + DEPLOYED = "Deployed" + STAGING = "Staging" class PercentageDistributionName(Enum): - BELOW_10_MBPS: str = "less_than_10_mbps" - BETWEEN_10_AND_100_MBPS: str = "10_mbps_100_mbps" - BETWEEN_100_AND_500_MBPS: str = "100_mbps_500_mbps" - ABOVE_500_MBPS: str = "greater_than_500_mbps" + BELOW_10_MBPS = "less_than_10_mbps" + BETWEEN_10_AND_100_MBPS = "10_mbps_100_mbps" + BETWEEN_100_AND_500_MBPS = "100_mbps_500_mbps" + ABOVE_500_MBPS = "greater_than_500_mbps" class PercentageDistribution(Enum): - BELOW_10_MBPS: str = "< 10 Mbps" - BETWEEN_10_AND_100_MBPS: str = "10 Mbps - 100 Mbps" - BETWEEN_100_AND_500_MBPS: str = "100 Mbps - 500 Mbps" - ABOVE_500_MBPS: str = "> 500 Mbps" + BELOW_10_MBPS = "< 10 Mbps" + BETWEEN_10_AND_100_MBPS = "10 Mbps - 100 Mbps" + BETWEEN_100_AND_500_MBPS = "100 Mbps - 500 Mbps" + ABOVE_500_MBPS = "> 500 Mbps" class HealthColor(Enum): - GREEN: str = "green" - YELLOW: str = "yellow" - RED: str = "red" + GREEN = "green" + YELLOW = "yellow" + RED = "red" def name_converter(name): diff --git a/catalystwan/utils/device_model.py b/catalystwan/utils/device_model.py index 6a4ee417..691b33a2 100644 --- a/catalystwan/utils/device_model.py +++ b/catalystwan/utils/device_model.py @@ -10,11 +10,6 @@ class DeviceModel(str, Enum): VMANAGE = "vmanage" # vedges - VEDGE_ISR1100_6G = "vedge-ISR1100-6G" - VEDGE_ISR1100X_6G = "vedge-ISR1100X-6G" - VEDGE_ISR1100_4G = "vedge-ISR1100-4G" - VEDGE_ISR1100X_4G = "vedge-ISR1100X-4G" - VEDGE_ISR1100_4GLTE = "vedge-ISR1100-4GLTE" VEDGE = "vedge-cloud" VEDGE_1000 = "vedge-1000" VEDGE_2000 = "vedge-2000" @@ -22,67 +17,306 @@ class DeviceModel(str, Enum): VEDGE_100_B = "vedge-100-B" VEDGE_100_WM = "vedge-100-WM" VEDGE_100_M = "vedge-100-M" + VEDGE_100_M2 = "vedge-100-M2" + VEDGE_100_W2 = "vedge-100-W2" VEDGE_5000 = "vedge-5000" + VEDGE_CCM = "vedge-ccm" + VEDGE_SERVICE_INSERTION = "vedge-service-insertion" - # IR1101 - VEDGE_IR_1101 = "vedge-IR-1101" + # ESR VEDGE_ESR_6300 = "vedge-ESR-6300" + VEDGE_ESR_6300_LIC = "vedge-ESR-6300-LIC" + VEDGE_ESR_6300_LIC_SD_ROUTING = "vedge-ESR-6300-LIC-SD-ROUTING" + VEDGE_ESR_6300_NCP = "vedge-ESR-6300-NCP" + VEDGE_ESR_6300_NCP_SD_ROUTING = "vedge-ESR-6300-NCP-SD-ROUTING" + VEDGE_ESR_6300_SD_ROUTING = "vedge-ESR-6300-SD-ROUTING" + + # IR + VEDGE_IR_1101 = "vedge-IR-1101" + VEDGE_IR_1101_SD_ROUTING = "vedge-IR-1101-SD-ROUTING" VEDGE_IR_1821 = "vedge-IR-1821" + VEDGE_IR_1821_SD_ROUTING = "vedge-IR-1821-SD-ROUTING" VEDGE_IR_1831 = "vedge-IR-1831" + VEDGE_IR_1831_SD_ROUTING = "vedge-IR-1831-SD-ROUTING" VEDGE_IR_1833 = "vedge-IR-1833" + VEDGE_IR_1833_SD_ROUTING = "vedge-IR-1833-SD-ROUTING" VEDGE_IR_1835 = "vedge-IR-1835" + VEDGE_IR_1835_SD_ROUTING = "vedge-IR-1835-SD-ROUTING" + VEDGE_IR_8140H = "vedge-IR-8140H" + VEDGE_IR_8140H_P = "vedge-IR-8140H-P" + VEDGE_IR_8140H_P_SD_ROUTING = "vedge-IR-8140H-P-SD-ROUTING" + VEDGE_IR_8140H_SD_ROUTING = "vedge-IR-8140H-SD-ROUTING" + VEDGE_IR_8340 = "vedge-IR-8340" + VEDGE_IR_8340_SD_ROUTING = "vedge-IR-8340-SD-ROUTING" # ASR devices + VEDGE_ASR_1001_HX = "vedge-ASR-1001-HX" + VEDGE_ASR_1001_HX_SD_ROUTING = "vedge-ASR-1001-HX-SD-ROUTING" VEDGE_ASR_1001_X = "vedge-ASR-1001-X" - VEDGE_ASR_1002_X = "vedge-ASR-1002-X" VEDGE_ASR_1002_HX = "vedge-ASR-1002-HX" - VEDGE_ASR_1001_HX = "vedge-ASR-1001-HX" - VEDGE_C8500L_8G4X = "vedge-C8500L-8G4X" - VEDGE_C8500_12X4QC = "vedge-C8500-12X4QC" - VEDGE_C8500_12X = "vedge-C8500-12X" - VEDGE_C8500L_8S4X = "vedge-C8500L-8S4X" + VEDGE_ASR_1002_HX_SD_ROUTING = "vedge-ASR-1002-HX-SD-ROUTING" + VEDGE_ASR_1002_X = "vedge-ASR-1002-X" VEDGE_ASR_1006_X = "vedge-ASR-1006-X" - VEDGE_C8500_20X6C = "vedge-C8500-20X6C" # CSR VEDGE_CSR_1000V = "vedge-CSR-1000v" VEDGE_C8000V = "vedge-C8000V" # ISR + VEDGE_ISR_4221 = "vedge-ISR-4221" + VEDGE_ISR_4221_SD_ROUTING = "vedge-ISR-4221-SD-ROUTING" + VEDGE_ISR_4221X = "vedge-ISR-4221X" + VEDGE_ISR_4221X_SD_ROUTING = "vedge-ISR-4221X-SD-ROUTING" + VEDGE_ISR_4321 = "vedge-ISR-4321" + VEDGE_ISR_4321_SD_ROUTING = "vedge-ISR-4321-SD-ROUTING" VEDGE_ISR_4331 = "vedge-ISR-4331" + VEDGE_ISR_4331_SD_ROUTING = "vedge-ISR-4331-SD-ROUTING" + VEDGE_ISR_4351 = "vedge-ISR-4351" + VEDGE_ISR_4351_SD_ROUTING = "vedge-ISR-4351-SD-ROUTING" VEDGE_ISR_4431 = "vedge-ISR-4431" - VEDGE_ISR_4461 = "vedge-ISR-4461" + VEDGE_ISR_4431_SD_ROUTING = "vedge-ISR-4431-SD-ROUTING" VEDGE_ISR_4451_X = "vedge-ISR-4451-X" - VEDGE_ISR_4321 = "vedge-ISR-4321" - VEDGE_ISR_4351 = "vedge-ISR-4351" - VEDGE_ISR_4221 = "vedge-ISR-4221" - VEDGE_ISR_4221X = "vedge-ISR-4221X" + VEDGE_ISR_4451_X_SD_ROUTING = "vedge-ISR-4451-X-SD-ROUTING" + VEDGE_ISR_4461 = "vedge-ISR-4461" + VEDGE_ISR_4461_SD_ROUTING = "vedge-ISR-4461-SD-ROUTING" + VEDGE_ISR1100_4G = "vedge-ISR1100-4G" + VEDGE_ISR1100_4G_XE = "vedge-ISR1100-4G-XE" + VEDGE_ISR1100_4GLTE = "vedge-ISR1100-4GLTE" + VEDGE_ISR1100_4GLTEGB_XE = "vedge-ISR1100-4GLTEGB-XE" + VEDGE_ISR1100_4GLTENA_XE = "vedge-ISR1100-4GLTENA-XE" + VEDGE_ISR1100_6G = "vedge-ISR1100-6G" + VEDGE_ISR1100_6G_XE = "vedge-ISR1100-6G-XE" + VEDGE_ISR1100X_4G = "vedge-ISR1100X-4G" + VEDGE_ISR1100X_4G_XE = "vedge-ISR1100X-4G-XE" + VEDGE_ISR1100X_6G = "vedge-ISR1100X-6G" + VEDGE_ISR1100X_6G_XE = "vedge-ISR1100X-6G-XE" + VEDGE_ISRv = "vedge-ISRv" - # C1100 DSL - VEDGE_C1111_8PW = "vedge-C1111-8PW" - VEDGE_C1111_8PLTELAW = "vedge-C1111-8PLTELAW" + # C11x + VEDGE_C1100TG_1N24P32A_SD_ROUTING = "vedge-C1100TG-1N24P32A-SD-ROUTING" + VEDGE_C1100TGX_1N24P32A_SD_ROUTING = "vedge-C1100TGX-1N24P32A-SD-ROUTING" + VEDGE_C1101_4P = "vedge-C1101-4P" + VEDGE_C1101_4P_SD_ROUTING = "vedge-C1101-4P-SD-ROUTING" + VEDGE_C1101_4PLTEP = "vedge-C1101-4PLTEP" + VEDGE_C1101_4PLTEP_SD_ROUTING = "vedge-C1101-4PLTEP-SD-ROUTING" + VEDGE_C1101_4PLTEPW = "vedge-C1101-4PLTEPW" + VEDGE_C1101_4PLTEPW_SD_ROUTING = "vedge-C1101-4PLTEPW-SD-ROUTING" + VEDGE_C1109_2PLTEGB = "vedge-C1109-2PLTEGB" + VEDGE_C1109_2PLTEGB_SD_ROUTING = "vedge-C1109-2PLTEGB-SD-ROUTING" + VEDGE_C1109_2PLTEUS = "vedge-C1109-2PLTEUS" + VEDGE_C1109_2PLTEUS_SD_ROUTING = "vedge-C1109-2PLTEUS-SD-ROUTING" + VEDGE_C1109_2PLTEVZ = "vedge-C1109-2PLTEVZ" + VEDGE_C1109_2PLTEVZ_SD_ROUTING = "vedge-C1109-2PLTEVZ-SD-ROUTING" + VEDGE_C1109_4PLTE2P = "vedge-C1109-4PLTE2P" + VEDGE_C1109_4PLTE2P_SD_ROUTING = "vedge-C1109-4PLTE2P-SD-ROUTING" + VEDGE_C1109_4PLTE2PW = "vedge-C1109-4PLTE2PW" + VEDGE_C1109_4PLTE2PW_SD_ROUTING = "vedge-C1109-4PLTE2PW-SD-ROUTING" + VEDGE_C1111_4P = "vedge-C1111-4P" + VEDGE_C1111_4P_SD_ROUTING = "vedge-C1111-4P-SD-ROUTING" + VEDGE_C1111_4PLTEEA = "vedge-C1111-4PLTEEA" + VEDGE_C1111_4PLTEEA_SD_ROUTING = "vedge-C1111-4PLTEEA-SD-ROUTING" + VEDGE_C1111_4PLTELA = "vedge-C1111-4PLTELA" + VEDGE_C1111_4PLTELA_SD_ROUTING = "vedge-C1111-4PLTELA-SD-ROUTING" + VEDGE_C1111_4PW = "vedge-C1111-4PW" + VEDGE_C1111_4PW_SD_ROUTING = "vedge-C1111-4PW-SD-ROUTING" + VEDGE_C1111_8P = "vedge-C1111-8P" + VEDGE_C1111_8P_SD_ROUTING = "vedge-C1111-8P-SD-ROUTING" + VEDGE_C1111_8PLTEEA = "vedge-C1111-8PLTEEA" + VEDGE_C1111_8PLTEEA_SD_ROUTING = "vedge-C1111-8PLTEEA-SD-ROUTING" VEDGE_C1111_8PLTEEAW = "vedge-C1111-8PLTEEAW" + VEDGE_C1111_8PLTEEAW_SD_ROUTING = "vedge-C1111-8PLTEEAW-SD-ROUTING" + VEDGE_C1111_8PLTELA = "vedge-C1111-8PLTELA" + VEDGE_C1111_8PLTELA_SD_ROUTING = "vedge-C1111-8PLTELA-SD-ROUTING" + VEDGE_C1111_8PLTELAW = "vedge-C1111-8PLTELAW" + VEDGE_C1111_8PLTELAW_SD_ROUTING = "vedge-C1111-8PLTELAW-SD-ROUTING" + VEDGE_C1111_8PW = "vedge-C1111-8PW" + VEDGE_C1111_8PW_SD_ROUTING = "vedge-C1111-8PW-SD-ROUTING" + VEDGE_C1111X_8P = "vedge-C1111X-8P" + VEDGE_C1111X_8P_SD_ROUTING = "vedge-C1111X-8P-SD-ROUTING" + VEDGE_C1112_8P = "vedge-C1112-8P" + VEDGE_C1112_8P_SD_ROUTING = "vedge-C1112-8P-SD-ROUTING" + VEDGE_C1112_8PLTEEA = "vedge-C1112-8PLTEEA" + VEDGE_C1112_8PLTEEA_SD_ROUTING = "vedge-C1112-8PLTEEA-SD-ROUTING" + VEDGE_C1112_8PLTEEAWE = "vedge-C1112-8PLTEEAWE" + VEDGE_C1112_8PLTEEAWE_SD_ROUTING = "vedge-C1112-8PLTEEAWE-SD-ROUTING" + VEDGE_C1112_8PWE = "vedge-C1112-8PWE" + VEDGE_C1112_8PWE_SD_ROUTING = "vedge-C1112-8PWE-SD-ROUTING" + VEDGE_C1113_8P = "vedge-C1113-8P" + VEDGE_C1113_8P_SD_ROUTING = "vedge-C1113-8P-SD-ROUTING" + VEDGE_C1113_8PLTEEA = "vedge-C1113-8PLTEEA" + VEDGE_C1113_8PLTEEA_SD_ROUTING = "vedge-C1113-8PLTEEA-SD-ROUTING" + VEDGE_C1113_8PLTEEAW = "vedge-C1113-8PLTEEAW" + VEDGE_C1113_8PLTEEAW_SD_ROUTING = "vedge-C1113-8PLTEEAW-SD-ROUTING" + VEDGE_C1113_8PLTELA = "vedge-C1113-8PLTELA" + VEDGE_C1113_8PLTELA_SD_ROUTING = "vedge-C1113-8PLTELA-SD-ROUTING" + VEDGE_C1113_8PLTELAWZ = "vedge-C1113-8PLTELAWZ" + VEDGE_C1113_8PLTELAWZ_SD_ROUTING = "vedge-C1113-8PLTELAWZ-SD-ROUTING" + VEDGE_C1113_8PLTEW = "vedge-C1113-8PLTEW" + VEDGE_C1113_8PLTEW_SD_ROUTING = "vedge-C1113-8PLTEW-SD-ROUTING" + VEDGE_C1113_8PM = "vedge-C1113-8PM" + VEDGE_C1113_8PM_SD_ROUTING = "vedge-C1113-8PM-SD-ROUTING" VEDGE_C1113_8PMLTEEA = "vedge-C1113-8PMLTEEA" + VEDGE_C1113_8PMLTEEA_SD_ROUTING = "vedge-C1113-8PMLTEEA-SD-ROUTING" + VEDGE_C1113_8PMWE = "vedge-C1113-8PMWE" + VEDGE_C1113_8PMWE_SD_ROUTING = "vedge-C1113-8PMWE-SD-ROUTING" + VEDGE_C1113_8PW = "vedge-C1113-8PW" + VEDGE_C1113_8PW_SD_ROUTING = "vedge-C1113-8PW-SD-ROUTING" VEDGE_C1116_4P = "vedge-C1116-4P" + VEDGE_C1116_4P_SD_ROUTING = "vedge-C1116-4P-SD-ROUTING" VEDGE_C1116_4PLTEEA = "vedge-C1116-4PLTEEA" + VEDGE_C1116_4PLTEEA_SD_ROUTING = "vedge-C1116-4PLTEEA-SD-ROUTING" + VEDGE_C1116_4PLTEEAWE = "vedge-C1116-4PLTEEAWE" + VEDGE_C1116_4PLTEEAWE_SD_ROUTING = "vedge-C1116-4PLTEEAWE-SD-ROUTING" + VEDGE_C1116_4PWE = "vedge-C1116-4PWE" + VEDGE_C1116_4PWE_SD_ROUTING = "vedge-C1116-4PWE-SD-ROUTING" VEDGE_C1117_4P = "vedge-C1117-4P" - VEDGE_C1117_4PM = "vedge-C1117-4PM" + VEDGE_C1117_4P_SD_ROUTING = "vedge-C1117-4P-SD-ROUTING" VEDGE_C1117_4PLTEEA = "vedge-C1117-4PLTEEA" - VEDGE_C1111_8PLTELA = "vedge-C1111-8PLTELA" - VEDGE_C1111_8PLTEEA = "vedge-C1111-8PLTEEA" + VEDGE_C1117_4PLTEEA_SD_ROUTING = "vedge-C1117-4PLTEEA-SD-ROUTING" + VEDGE_C1117_4PLTEEAW = "vedge-C1117-4PLTEEAW" + VEDGE_C1117_4PLTEEAW_SD_ROUTING = "vedge-C1117-4PLTEEAW-SD-ROUTING" + VEDGE_C1117_4PLTELA = "vedge-C1117-4PLTELA" + VEDGE_C1117_4PLTELA_SD_ROUTING = "vedge-C1117-4PLTELA-SD-ROUTING" + VEDGE_C1117_4PLTELAWZ = "vedge-C1117-4PLTELAWZ" + VEDGE_C1117_4PLTELAWZ_SD_ROUTING = "vedge-C1117-4PLTELAWZ-SD-ROUTING" + VEDGE_C1117_4PM = "vedge-C1117-4PM" + VEDGE_C1117_4PM_SD_ROUTING = "vedge-C1117-4PM-SD-ROUTING" + VEDGE_C1117_4PMLTEEA = "vedge-C1117-4PMLTEEA" + VEDGE_C1117_4PMLTEEA_SD_ROUTING = "vedge-C1117-4PMLTEEA-SD-ROUTING" + VEDGE_C1117_4PMLTEEAWE = "vedge-C1117-4PMLTEEAWE" + VEDGE_C1117_4PMLTEEAWE_SD_ROUTING = "vedge-C1117-4PMLTEEAWE-SD-ROUTING" + VEDGE_C1117_4PMWE = "vedge-C1117-4PMWE" + VEDGE_C1117_4PMWE_SD_ROUTING = "vedge-C1117-4PMWE-SD-ROUTING" + VEDGE_C1117_4PW = "vedge-C1117-4PW" + VEDGE_C1117_4PW_SD_ROUTING = "vedge-C1117-4PW-SD-ROUTING" + VEDGE_C1118_8P = "vedge-C1118-8P" + VEDGE_C1118_8P_SD_ROUTING = "vedge-C1118-8P-SD-ROUTING" + VEDGE_C1121_4P = "vedge-C1121-4P" + VEDGE_C1121_4P_SD_ROUTING = "vedge-C1121-4P-SD-ROUTING" + VEDGE_C1121_4PLTEP = "vedge-C1121-4PLTEP" + VEDGE_C1121_4PLTEP_SD_ROUTING = "vedge-C1121-4PLTEP-SD-ROUTING" + VEDGE_C1121_8P = "vedge-C1121-8P" + VEDGE_C1121_8P_SD_ROUTING = "vedge-C1121-8P-SD-ROUTING" + VEDGE_C1121_8PLTEP = "vedge-C1121-8PLTEP" + VEDGE_C1121_8PLTEP_SD_ROUTING = "vedge-C1121-8PLTEP-SD-ROUTING" VEDGE_C1121_8PLTEPW = "vedge-C1121-8PLTEPW" - VEDGE_C1221_8PLTEP = "vedge-C1121-8PLTEP" - VEDGE_C1221X_8PLTEP = "vedge-C1121X-8PLTEP" - VEDGE_C1111_4PLTEEA = "vedge-C1111-4PLTEEA" + VEDGE_C1121_8PLTEPW_SD_ROUTING = "vedge-C1121-8PLTEPW-SD-ROUTING" + VEDGE_C1121X_8P = "vedge-C1121X-8P" + VEDGE_C1121X_8P_SD_ROUTING = "vedge-C1121X-8P-SD-ROUTING" + VEDGE_C1121X_8PLTEP = "vedge-C1121X-8PLTEP" + VEDGE_C1121X_8PLTEP_SD_ROUTING = "vedge-C1121X-8PLTEP-SD-ROUTING" + VEDGE_C1121X_8PLTEPW = "vedge-C1121X-8PLTEPW" + VEDGE_C1121X_8PLTEPW_SD_ROUTING = "vedge-C1121X-8PLTEPW-SD-ROUTING" + VEDGE_C1126_8PLTEP = "vedge-C1126-8PLTEP" + VEDGE_C1126_8PLTEP_SD_ROUTING = "vedge-C1126-8PLTEP-SD-ROUTING" + VEDGE_C1126X_8PLTEP = "vedge-C1126X-8PLTEP" + VEDGE_C1126X_8PLTEP_SD_ROUTING = "vedge-C1126X-8PLTEP-SD-ROUTING" + VEDGE_C1127_8PLTEP = "vedge-C1127-8PLTEP" + VEDGE_C1127_8PLTEP_SD_ROUTING = "vedge-C1127-8PLTEP-SD-ROUTING" + VEDGE_C1127_8PMLTEP = "vedge-C1127-8PMLTEP" + VEDGE_C1127_8PMLTEP_SD_ROUTING = "vedge-C1127-8PMLTEP-SD-ROUTING" + VEDGE_C1127X_8PLTEP = "vedge-C1127X-8PLTEP" + VEDGE_C1127X_8PLTEP_SD_ROUTING = "vedge-C1127X-8PLTEP-SD-ROUTING" + VEDGE_C1127X_8PMLTEP = "vedge-C1127X-8PMLTEP" + VEDGE_C1127X_8PMLTEP_SD_ROUTING = "vedge-C1127X-8PMLTEP-SD-ROUTING" + VEDGE_C1128_8PLTEP = "vedge-C1128-8PLTEP" + VEDGE_C1128_8PLTEP_SD_ROUTING = "vedge-C1128-8PLTEP-SD-ROUTING" + VEDGE_C1131_8PLTEPW = "vedge-C1131-8PLTEPW" + VEDGE_C1131_8PLTEPW_SD_ROUTING = "vedge-C1131-8PLTEPW-SD-ROUTING" + VEDGE_C1131_8PW = "vedge-C1131-8PW" + VEDGE_C1131_8PW_SD_ROUTING = "vedge-C1131-8PW-SD-ROUTING" + VEDGE_C1131X_8PLTEPW = "vedge-C1131X-8PLTEPW" + VEDGE_C1131X_8PLTEPW_SD_ROUTING = "vedge-C1131X-8PLTEPW-SD-ROUTING" + VEDGE_C1131X_8PW = "vedge-C1131X-8PW" + VEDGE_C1131X_8PW_SD_ROUTING = "vedge-C1131X-8PW-SD-ROUTING" + VEDGE_C1161_8P = "vedge-C1161-8P" + VEDGE_C1161_8P_SD_ROUTING = "vedge-C1161-8P-SD-ROUTING" + VEDGE_C1161_8PLTEP = "vedge-C1161-8PLTEP" + VEDGE_C1161_8PLTEP_SD_ROUTING = "vedge-C1161-8PLTEP-SD-ROUTING" + VEDGE_C1161X_8P = "vedge-C1161X-8P" + VEDGE_C1161X_8P_SD_ROUTING = "vedge-C1161X-8P-SD-ROUTING" VEDGE_C1161X_8PLTEP = "vedge-C1161X-8PLTEP" + VEDGE_C1161X_8PLTEP_SD_ROUTING = "vedge-C1161X-8PLTEP-SD-ROUTING" - # C8300 - VEDGE_C8300_2N2S_6T = "vedge-C8300-2N2S-6T" - VEDGE_C8300_1N1S_6T = "vedge-C8300-1N1S-6T" - VEDGE_C8300_1N1S_4T2X = "vedge-C8300-1N1S-4T2X" - VEDGE_C8300_2N2S_4T2X = "vedge-C8300-2N2S-4T2X" + # C8xxx + VEDGE_C8000V_SD_ROUTING = "vedge-C8000V-SD-ROUTING" + VEDGE_C8131_5T1S = "vedge-C8131-5T1S" + VEDGE_C8131_5T1S_SD_ROUTING = "vedge-C8131-5T1S-SD-ROUTING" + VEDGE_C8131_8T2S = "vedge-C8131-8T2S" + VEDGE_C8131_8T2S_SD_ROUTING = "vedge-C8131-8T2S-SD-ROUTING" + VEDGE_C8131X_1C_8P2S = "vedge-C8131X-1C-8P2S" + VEDGE_C8131X_1C_8P2S_SD_ROUTING = "vedge-C8131X-1C-8P2S-SD-ROUTING" + VEDGE_C8131X_1C_8T2S = "vedge-C8131X-1C-8T2S" + VEDGE_C8131X_1C_8T2S_SD_ROUTING = "vedge-C8131X-1C-8T2S-SD-ROUTING" VEDGE_C8200_1N_4T = "vedge-C8200-1N-4T" + VEDGE_C8200_1N_4T_SD_ROUTING = "vedge-C8200-1N-4T-SD-ROUTING" VEDGE_C8200L_1N_4T = "vedge-C8200L-1N-4T" + VEDGE_C8200L_1N_4T_SD_ROUTING = "vedge-C8200L-1N-4T-SD-ROUTING" + VEDGE_C8230_1N_2M2X = "vedge-C8230-1N-2M2X" + VEDGE_C8230_1N_2M2X_SD_ROUTING = "vedge-C8230-1N-2M2X-SD-ROUTING" + VEDGE_C8230E_8TM2X = "vedge-C8230E-8TM2X" + VEDGE_C8230E_8TM2X_SD_ROUTING = "vedge-C8230E-8TM2X-SD-ROUTING" + VEDGE_C8230X_1N_2M2X = "vedge-C8230X-1N-2M2X" + VEDGE_C8230X_1N_2M2X_SD_ROUTING = "vedge-C8230X-1N-2M2X-SD-ROUTING" + VEDGE_C8230X_8M2X = "vedge-C8230X-8M2X" + VEDGE_C8230X_8M2X_SD_ROUTING = "vedge-C8230X-8M2X-SD-ROUTING" + VEDGE_C8300_1N1S_4T2X = "vedge-C8300-1N1S-4T2X" + VEDGE_C8300_1N1S_4T2X_SD_ROUTING = "vedge-C8300-1N1S-4T2X-SD-ROUTING" + VEDGE_C8300_1N1S_6T = "vedge-C8300-1N1S-6T" + VEDGE_C8300_1N1S_6T_SD_ROUTING = "vedge-C8300-1N1S-6T-SD-ROUTING" + VEDGE_C8300_2N2S_4G2X = "vedge-C8300-2N2S-4G2X" + VEDGE_C8300_2N2S_4T2X = "vedge-C8300-2N2S-4T2X" + VEDGE_C8300_2N2S_4T2X_SD_ROUTING = "vedge-C8300-2N2S-4T2X-SD-ROUTING" + VEDGE_C8300_2N2S_6T = "vedge-C8300-2N2S-6T" + VEDGE_C8300_2N2S_6T_SD_ROUTING = "vedge-C8300-2N2S-6T-SD-ROUTING" + VEDGE_C8500_12X = "vedge-C8500-12X" + VEDGE_C8500_12X_SD_ROUTING = "vedge-C8500-12X-SD-ROUTING" + VEDGE_C8500_12X4QC = "vedge-C8500-12X4QC" + VEDGE_C8500_12X4QC_SD_ROUTING = "vedge-C8500-12X4QC-SD-ROUTING" + VEDGE_C8500_20X6C = "vedge-C8500-20X6C" + VEDGE_C8500_20X6C_SD_ROUTING = "vedge-C8500-20X6C-SD-ROUTING" + VEDGE_C8500L_8S2X2Y = "vedge-C8500L-8S2X2Y" + VEDGE_C8500L_8S4X = "vedge-C8500L-8S4X" + VEDGE_C8500L_8S4X_SD_ROUTING = "vedge-C8500L-8S4X-SD-ROUTING" + VEDGE_C8500L_8S8X4Y = "vedge-C8500L-8S8X4Y" + VEDGE_C9500_40X = "vedge-C9500-40X" + VEDGE_C9500_48Y4C = "vedge-C9500-48Y4C" # ISRv VEDGE_ISRV = "vedge-ISRv" + + # CELLULAR GATEWAY + CELLULAR_GATEWAY_CG113_4GW6A = "cellular-gateway-CG113-4GW6A" + CELLULAR_GATEWAY_CG113_4GW6B = "cellular-gateway-CG113-4GW6B" + CELLULAR_GATEWAY_CG113_4GW6E = "cellular-gateway-CG113-4GW6E" + CELLULAR_GATEWAY_CG113_4GW6H = "cellular-gateway-CG113-4GW6H" + CELLULAR_GATEWAY_CG113_4GW6Q = "cellular-gateway-CG113-4GW6Q" + CELLULAR_GATEWAY_CG113_4GW6Z = "cellular-gateway-CG113-4GW6Z" + CELLULAR_GATEWAY_CG113_W6A = "cellular-gateway-CG113-W6A" + CELLULAR_GATEWAY_CG113_W6B = "cellular-gateway-CG113-W6B" + CELLULAR_GATEWAY_CG113_W6E = "cellular-gateway-CG113-W6E" + CELLULAR_GATEWAY_CG113_W6H = "cellular-gateway-CG113-W6H" + CELLULAR_GATEWAY_CG113_W6Q = "cellular-gateway-CG113-W6Q" + CELLULAR_GATEWAY_CG113_W6Z = "cellular-gateway-CG113-W6Z" + CELLULAR_GATEWAY_CG418_E = "cellular-gateway-CG418-E" + CELLULAR_GATEWAY_CG522_E = "cellular-gateway-CG522-E" + + # NFVIS + VEDGE_NFVIS_C8200_UCPE = "vedge-nfvis-C8200-UCPE" + VEDGE_NFVIS_C8200_UCPEVM = "vedge-nfvis-C8200-UCPEVM" + VEDGE_NFVIS_C8300_UCPE_1N20 = "vedge-nfvis-C8300-UCPE-1N20" + VEDGE_NFVIS_CSP_5216 = "vedge-nfvis-CSP-5216" + VEDGE_NFVIS_CSP_5228 = "vedge-nfvis-CSP-5228" + VEDGE_NFVIS_CSP_5400 = "vedge-nfvis-CSP-5400" + VEDGE_NFVIS_CSP_5436 = "vedge-nfvis-CSP-5436" + VEDGE_NFVIS_CSP_5444 = "vedge-nfvis-CSP-5444" + VEDGE_NFVIS_CSP_5456 = "vedge-nfvis-CSP-5456" + VEDGE_NFVIS_CSP2100 = "vedge-nfvis-CSP2100" + VEDGE_NFVIS_CSP2100_X1 = "vedge-nfvis-CSP2100-X1" + VEDGE_NFVIS_CSP2100_X2 = "vedge-nfvis-CSP2100-X2" + VEDGE_NFVIS_ENCS5400 = "vedge-nfvis-ENCS5400" + VEDGE_NFVIS_UCSC_C220_M6S = "vedge-nfvis-UCSC-C220-M6S" + VEDGE_NFVIS_UCSC_C240_M6S = "vedge-nfvis-UCSC-C240-M6S" + VEDGE_NFVIS_UCSC_C240_M6SX = "vedge-nfvis-UCSC-C240-M6SX" + VEDGE_NFVIS_UCSC_E = "vedge-nfvis-UCSC-E" + VEDGE_NFVIS_UCSC_M5 = "vedge-nfvis-UCSC-M5" diff --git a/pyproject.toml b/pyproject.toml index c489dbce..370c14c5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "catalystwan" -version = "0.40.0" +version = "0.40.1" description = "Cisco Catalyst WAN SDK for Python" authors = ["kagorski "] readme = "README.md" @@ -10,10 +10,9 @@ repository = "https://github.com/cisco-en-programmability/catalystwan-sdk" python = "^3.8.0" requests = "^2.27.1" python-dateutil = "^2.8.2" -attrs = "^21.4.0" +attrs = ">=21.4.0" ciscoconfparse = "1.9.41" -# tenacity 8.4.0 issue https://github.com/jd/tenacity/issues/471 -tenacity = ">=8.1.0, <8.4.0" +tenacity = ">=8.1.0, !=8.4.0" Jinja2 = "^3.1.2" flake8-quotes = "^3.3.1" clint = "^0.5.1" @@ -29,7 +28,7 @@ pytest-mock = "^3.7.0" pytest-subtests = "^0.13.1" isort = "^5.10.1" pre-commit = "^2.19.0" -mypy = ">=1.0.0, <1.11.0" +mypy = ">=1.0.0, !=1.11.0" flake8 = "^5.0.4" Sphinx = "^5.2.3"