catalystwan 0.41.2.dev6__py3-none-any.whl → 0.41.2.dev8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- catalystwan/endpoints/cluster_management.py +3 -2
- catalystwan/exceptions.py +4 -4
- catalystwan/integration_tests/feature_profile/test_parcel.py +3 -3
- catalystwan/models/configuration/feature_profile/parcel.py +2 -2
- catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py +5 -5
- catalystwan/models/configuration/network_hierarchy/cflowd.py +9 -2
- catalystwan/models/policy/__init__.py +10 -3
- catalystwan/models/policy/definition/ssl_decryption_utd_profile.py +8 -7
- catalystwan/models/policy/list/url.py +2 -2
- catalystwan/models/policy/policy.py +1 -1
- catalystwan/utils/model.py +9 -6
- {catalystwan-0.41.2.dev6.dist-info → catalystwan-0.41.2.dev8.dist-info}/METADATA +1 -1
- {catalystwan-0.41.2.dev6.dist-info → catalystwan-0.41.2.dev8.dist-info}/RECORD +15 -15
- {catalystwan-0.41.2.dev6.dist-info → catalystwan-0.41.2.dev8.dist-info}/LICENSE +0 -0
- {catalystwan-0.41.2.dev6.dist-info → catalystwan-0.41.2.dev8.dist-info}/WHEEL +0 -0
|
@@ -14,7 +14,7 @@ TenancyModes = Literal["SingleTenant", "MultiTenant"]
|
|
|
14
14
|
|
|
15
15
|
class TenancyMode(BaseModel):
|
|
16
16
|
mode: TenancyModes
|
|
17
|
-
deploymentmode: str
|
|
17
|
+
deploymentmode: Optional[str] = None
|
|
18
18
|
domain: Optional[str] = None
|
|
19
19
|
clusterid: Optional[str] = None
|
|
20
20
|
|
|
@@ -125,6 +125,7 @@ class ClusterManagement(APIEndpoints):
|
|
|
125
125
|
# POST /clusterManagement/remove
|
|
126
126
|
...
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
@post("/clusterManagement/tenancy/mode")
|
|
129
|
+
def set_tenancy_mode(self, payload: TenancyMode) -> None:
|
|
129
130
|
# POST /clusterManagement/tenancy/mode
|
|
130
131
|
...
|
catalystwan/exceptions.py
CHANGED
|
@@ -218,8 +218,8 @@ class CatalystwanDeprecationWarning(DeprecationWarning):
|
|
|
218
218
|
return message
|
|
219
219
|
|
|
220
220
|
|
|
221
|
-
class
|
|
222
|
-
"""Raised when there is no model matching
|
|
221
|
+
class ModelNotFound(CatalystwanException):
|
|
222
|
+
"""Raised when there is no model matching type specifier given as string"""
|
|
223
223
|
|
|
224
|
-
def __init__(self, type_):
|
|
225
|
-
self.message = f"Cannot
|
|
224
|
+
def __init__(self, type_, scope):
|
|
225
|
+
self.message = f"Cannot find model class for {type_} when searching: {scope}"
|
|
@@ -6,7 +6,7 @@ from pydantic import Field
|
|
|
6
6
|
from typing_extensions import Annotated
|
|
7
7
|
|
|
8
8
|
from catalystwan.api.configuration_groups.parcel import _ParcelBase
|
|
9
|
-
from catalystwan.exceptions import
|
|
9
|
+
from catalystwan.exceptions import ModelNotFound
|
|
10
10
|
from catalystwan.models.configuration.feature_profile.parcel import find_type, list_types
|
|
11
11
|
from catalystwan.models.configuration.feature_profile.sdwan.topology import (
|
|
12
12
|
AnyTopologyParcel,
|
|
@@ -27,12 +27,12 @@ def test_find_type():
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
def test_find_type_raises_when_no_match():
|
|
30
|
-
with pytest.raises(
|
|
30
|
+
with pytest.raises(ModelNotFound):
|
|
31
31
|
find_type("unknown", AnyTopologyParcel)
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
def test_find_type_raises_for_bogus_param():
|
|
35
|
-
with pytest.raises(
|
|
35
|
+
with pytest.raises(ModelNotFound):
|
|
36
36
|
find_type("unknown", None)
|
|
37
37
|
|
|
38
38
|
|
|
@@ -7,7 +7,7 @@ from pydantic import AliasChoices, BaseModel, ConfigDict, Field, model_validator
|
|
|
7
7
|
from typing_extensions import Annotated
|
|
8
8
|
|
|
9
9
|
from catalystwan.api.configuration_groups.parcel import _ParcelBase
|
|
10
|
-
from catalystwan.exceptions import
|
|
10
|
+
from catalystwan.exceptions import ModelNotFound
|
|
11
11
|
from catalystwan.models.configuration.feature_profile.sdwan.application_priority import AnyApplicationPriorityParcel
|
|
12
12
|
from catalystwan.models.configuration.feature_profile.sdwan.cli import AnyCliParcel
|
|
13
13
|
from catalystwan.models.configuration.feature_profile.sdwan.dns_security import AnyDnsSecurityParcel
|
|
@@ -240,5 +240,5 @@ def find_type(name: str, any_union: Type[UT]) -> UT:
|
|
|
240
240
|
try:
|
|
241
241
|
parcel_type = next(t for t in parcel_types if t._get_parcel_type() == name)
|
|
242
242
|
except StopIteration:
|
|
243
|
-
raise
|
|
243
|
+
raise ModelNotFound(name, any_union)
|
|
244
244
|
return cast(UT, parcel_type)
|
|
@@ -6,7 +6,7 @@ from typing import List, Literal, Optional, Union
|
|
|
6
6
|
|
|
7
7
|
from pydantic import AliasPath, BaseModel, ConfigDict, Field
|
|
8
8
|
|
|
9
|
-
from catalystwan.api.configuration_groups.parcel import Default, Global, Variable, _ParcelBase
|
|
9
|
+
from catalystwan.api.configuration_groups.parcel import Default, Global, Variable, _ParcelBase
|
|
10
10
|
|
|
11
11
|
FailOverType = Literal["ge2", "te2"]
|
|
12
12
|
LomType = Literal["ge1", "ge2", "ge3", "te2", "te3", "console", "failover"]
|
|
@@ -27,8 +27,8 @@ class AccessPort(BaseModel):
|
|
|
27
27
|
model_config = ConfigDict(
|
|
28
28
|
populate_by_name=True,
|
|
29
29
|
)
|
|
30
|
-
dedicated: Union[Global[bool], Default[bool]] = Field(default=
|
|
31
|
-
shared_lom: SharedLom = Field(
|
|
30
|
+
dedicated: Union[Global[bool], Default[bool]] = Field(default=Default[bool](value=True), description="Dedicated")
|
|
31
|
+
shared_lom: Optional[SharedLom] = Field(default=None, serialization_alias="sharedLom", validation_alias="sharedLom")
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
class Ip(BaseModel):
|
|
@@ -37,7 +37,7 @@ class Ip(BaseModel):
|
|
|
37
37
|
populate_by_name=True,
|
|
38
38
|
)
|
|
39
39
|
address: Union[Global[str], Global[IPv4Interface], Variable] = Field(
|
|
40
|
-
default=
|
|
40
|
+
default=Variable(value="{{ipv4Addr}}"), description="Assign IPv4 address"
|
|
41
41
|
)
|
|
42
42
|
default_gateway: Union[Global[IPv4Address], Variable, Default[None]] = Field(
|
|
43
43
|
default=Default[None](value=None),
|
|
@@ -82,7 +82,7 @@ class InterfaceItem(BaseModel):
|
|
|
82
82
|
validation_alias="ifName",
|
|
83
83
|
description="Set Inteface name",
|
|
84
84
|
)
|
|
85
|
-
l3: Default[bool] = Field(default=
|
|
85
|
+
l3: Default[bool] = Field(default=Default[bool](value=True), description="L3")
|
|
86
86
|
ucse_interface_vpn: Optional[Union[Global[int], Variable, Default[None]]] = Field(
|
|
87
87
|
default=Default[None](value=None),
|
|
88
88
|
serialization_alias="ucseInterfaceVpn",
|
|
@@ -29,7 +29,7 @@ class Collectors(BaseModel):
|
|
|
29
29
|
default=Global[bool](value=False), validation_alias="bfdMetricsExport", serialization_alias="bfdMetricsExport"
|
|
30
30
|
)
|
|
31
31
|
export_interval: Optional[Global[int]] = Field(
|
|
32
|
-
default=
|
|
32
|
+
default=None, validation_alias="exportInterval", serialization_alias="exportInterval"
|
|
33
33
|
)
|
|
34
34
|
export_spread: Optional[Global[bool]] = Field(
|
|
35
35
|
default=Global[bool](value=False), validation_alias="exportSpread", serialization_alias="exportSpread"
|
|
@@ -81,13 +81,20 @@ class CflowdParcel(_ParcelBase):
|
|
|
81
81
|
self,
|
|
82
82
|
address: Optional[str] = None,
|
|
83
83
|
bfd_metrics_export: Optional[bool] = False,
|
|
84
|
-
export_interval: Optional[int] =
|
|
84
|
+
export_interval: Optional[int] = None,
|
|
85
85
|
export_spread: Optional[bool] = False,
|
|
86
86
|
udp_port: Optional[int] = 4739,
|
|
87
87
|
vpn_id: Optional[int] = None,
|
|
88
88
|
):
|
|
89
89
|
if self.collectors is None:
|
|
90
90
|
self.collectors = []
|
|
91
|
+
if export_interval is not None:
|
|
92
|
+
# bfd_metrics_export must be True if export_interval is set
|
|
93
|
+
bfd_metrics_export = True
|
|
94
|
+
if bfd_metrics_export and export_interval is None:
|
|
95
|
+
# export_interval should be default 600 only if bfd_metrics_export is True
|
|
96
|
+
export_interval = 600
|
|
97
|
+
|
|
91
98
|
self.collectors.append(
|
|
92
99
|
Collectors(
|
|
93
100
|
address=as_optional_global(address),
|
|
@@ -7,6 +7,7 @@ from typing import List, Sequence, Type, Union, cast
|
|
|
7
7
|
from pydantic import Field
|
|
8
8
|
from typing_extensions import Annotated
|
|
9
9
|
|
|
10
|
+
from catalystwan.exceptions import ModelNotFound
|
|
10
11
|
from catalystwan.models.policy.definition.app_route import AppRoutePolicy, AppRoutePolicyGetResponse
|
|
11
12
|
from catalystwan.models.policy.definition.dial_peer import DialPeerPolicy, DialPeerPolicyGetResponse
|
|
12
13
|
from catalystwan.models.policy.definition.fxo_port import FxoPortPolicy, FxoPortPolicyGetResponse
|
|
@@ -66,7 +67,7 @@ from catalystwan.models.policy.list.umbrella_data import UmbrellaDataList, Umbre
|
|
|
66
67
|
from catalystwan.models.policy.list.url import URLAllowList, URLAllowListInfo, URLBlockList, URLBlockListInfo
|
|
67
68
|
from catalystwan.models.policy.list.vpn import VPNList, VPNListInfo
|
|
68
69
|
from catalystwan.models.policy.list.zone import ZoneList, ZoneListInfo
|
|
69
|
-
from catalystwan.utils.model import
|
|
70
|
+
from catalystwan.utils.model import get_model_type_literals, resolve_nested_base_model_unions
|
|
70
71
|
|
|
71
72
|
from .centralized import CentralizedPolicy, CentralizedPolicyInfo, TrafficDataDirection
|
|
72
73
|
from .definition.access_control_list import AclPolicy, AclPolicyGetResponse
|
|
@@ -293,7 +294,10 @@ def find_policy_list_model(model_type: str) -> Type[AnyPolicyListInfo]:
|
|
|
293
294
|
Sequence[Type[AnyPolicyListInfo]],
|
|
294
295
|
resolve_nested_base_model_unions(AnyPolicyListInfo),
|
|
295
296
|
)
|
|
296
|
-
|
|
297
|
+
try:
|
|
298
|
+
model = next(t for t in types if model_type in get_model_type_literals(t))
|
|
299
|
+
except StopIteration:
|
|
300
|
+
raise ModelNotFound(model_type, AnyPolicyListInfo)
|
|
297
301
|
return model
|
|
298
302
|
|
|
299
303
|
|
|
@@ -303,7 +307,10 @@ def find_policy_definition_model(model_type: str) -> Type[AnyPolicyDefinitionInf
|
|
|
303
307
|
Sequence[Type[AnyPolicyDefinitionInfo]],
|
|
304
308
|
resolve_nested_base_model_unions(AnyPolicyDefinitionInfo),
|
|
305
309
|
)
|
|
306
|
-
|
|
310
|
+
try:
|
|
311
|
+
model = next(t for t in types if model_type in get_model_type_literals(t))
|
|
312
|
+
except StopIteration:
|
|
313
|
+
raise ModelNotFound(model_type, AnyPolicyDefinitionInfo)
|
|
307
314
|
return model
|
|
308
315
|
|
|
309
316
|
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
from itertools import chain
|
|
4
4
|
from typing import List, Literal, Optional
|
|
5
|
+
from uuid import UUID
|
|
5
6
|
|
|
6
7
|
from pydantic import BaseModel, ConfigDict, Field
|
|
7
8
|
|
|
8
9
|
from catalystwan.models.common import PolicyModeType, WebCategory, WebReputation
|
|
9
|
-
from catalystwan.models.policy import
|
|
10
|
+
from catalystwan.models.policy import URLAllowList, URLBlockList
|
|
10
11
|
from catalystwan.models.policy.policy_definition import (
|
|
11
12
|
PolicyDefinitionBase,
|
|
12
13
|
PolicyDefinitionGetResponse,
|
|
@@ -35,10 +36,10 @@ class SslDecryptionUtdProfileDefinition(BaseModel):
|
|
|
35
36
|
default=None, validation_alias="decryptThreshold", serialization_alias="decryptThreshold"
|
|
36
37
|
)
|
|
37
38
|
|
|
38
|
-
filtered_url_white_list: List[
|
|
39
|
+
filtered_url_white_list: List[URLAllowList] = Field(
|
|
39
40
|
default_factory=list, validation_alias="filteredUrlWhiteList", serialization_alias="filteredUrlWhiteList"
|
|
40
41
|
)
|
|
41
|
-
filtered_url_black_list: List[
|
|
42
|
+
filtered_url_black_list: List[URLBlockList] = Field(
|
|
42
43
|
default_factory=list, validation_alias="filteredUrlBlackList", serialization_alias="filteredUrlBlackList"
|
|
43
44
|
)
|
|
44
45
|
|
|
@@ -62,11 +63,11 @@ class SslDecryptionUtdProfileDefinition(BaseModel):
|
|
|
62
63
|
self._check_category_already_added(category)
|
|
63
64
|
self.decrypt_categories.append(category)
|
|
64
65
|
|
|
65
|
-
def add_decrypt_domain_list(self,
|
|
66
|
-
self.url_black_list = Reference(ref=
|
|
66
|
+
def add_decrypt_domain_list(self, black_list_id: UUID):
|
|
67
|
+
self.url_black_list = Reference(ref=black_list_id)
|
|
67
68
|
|
|
68
|
-
def add_no_decrypt_domain_list(self,
|
|
69
|
-
self.url_white_list = Reference(ref=
|
|
69
|
+
def add_no_decrypt_domain_list(self, white_list_id: UUID):
|
|
70
|
+
self.url_white_list = Reference(ref=white_list_id)
|
|
70
71
|
|
|
71
72
|
def _check_category_already_added(self, category: WebCategory):
|
|
72
73
|
if category in chain(self.decrypt_categories, self.never_decrypt_categories, self.skip_decrypt_categories):
|
|
@@ -14,7 +14,7 @@ class URLListEntry(BaseModel):
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class URLAllowList(PolicyListBase):
|
|
17
|
-
type: Literal["urlWhiteList"] = "urlWhiteList"
|
|
17
|
+
type: Literal["urlWhiteList", "urlwhitelist"] = "urlWhiteList"
|
|
18
18
|
entries: List[URLListEntry] = []
|
|
19
19
|
|
|
20
20
|
|
|
@@ -27,7 +27,7 @@ class URLAllowListInfo(URLAllowList, PolicyListInfo):
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class URLBlockList(PolicyListBase):
|
|
30
|
-
type: Literal["urlBlackList"] = "urlBlackList"
|
|
30
|
+
type: Literal["urlBlackList", "urlblacklist"] = "urlBlackList"
|
|
31
31
|
entries: List[URLListEntry] = []
|
|
32
32
|
|
|
33
33
|
|
|
@@ -39,7 +39,7 @@ class NGFirewallAssemblyItem(AssemblyItemBase):
|
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
class DNSSecurityAssemblyItem(AssemblyItemBase):
|
|
42
|
-
type: Literal["DNSSecurity"] = "DNSSecurity"
|
|
42
|
+
type: Literal["DNSSecurity", "dnsSecurity"] = "DNSSecurity"
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
class IntrusionPreventionAssemblyItem(AssemblyItemBase):
|
catalystwan/utils/model.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Copyright 2024 Cisco Systems, Inc. and its affiliates
|
|
2
2
|
from functools import lru_cache
|
|
3
3
|
from inspect import isclass
|
|
4
|
-
from typing import Any, List,
|
|
4
|
+
from typing import Any, Iterable, List, Literal, Type, Union
|
|
5
5
|
|
|
6
6
|
from pydantic import BaseModel
|
|
7
7
|
from typing_extensions import Annotated, get_args, get_origin
|
|
@@ -38,8 +38,11 @@ def resolve_nested_base_model_unions(
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
@lru_cache
|
|
41
|
-
def
|
|
42
|
-
if type_field := model.model_fields.get(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
def get_model_type_literals(model: Type[BaseModel], field: str = "type") -> Iterable[str]:
|
|
42
|
+
if type_field := model.model_fields.get(field):
|
|
43
|
+
origin = get_origin(type_field.annotation)
|
|
44
|
+
if origin is Literal:
|
|
45
|
+
literal_args = get_args(type_field.annotation)
|
|
46
|
+
if all(isinstance(arg, str) for arg in literal_args):
|
|
47
|
+
return literal_args
|
|
48
|
+
return ()
|
|
@@ -94,7 +94,7 @@ catalystwan/endpoints/api_gateway.py,sha256=O5vZlGEqkSJksKqiz9VLHha-arl4Hu2qgopE
|
|
|
94
94
|
catalystwan/endpoints/certificate_management_device.py,sha256=idWO5xjz9SrxJrVN8PePWtoWDDoy294yZZb3RtXpir4,7073
|
|
95
95
|
catalystwan/endpoints/certificate_management_vmanage.py,sha256=Xcrnh8v7FduXxc4n8814AGLBWJsNvvGgeaEE1SATgzM,1476
|
|
96
96
|
catalystwan/endpoints/client.py,sha256=4YY08AT0jhybuJ9BN_VNBAVTp-rHlIRc8Xvdyj9uk38,4035
|
|
97
|
-
catalystwan/endpoints/cluster_management.py,sha256=
|
|
97
|
+
catalystwan/endpoints/cluster_management.py,sha256=IqEoxrYD7n8wKCBn--t8Q3mhK-pome0MlrXyz3dM4g8,3811
|
|
98
98
|
catalystwan/endpoints/configuration/device/software_update.py,sha256=wr58GMuRxAbTJ5ISTrN3Zlo7-bYl7s_cKfST1dKCWsY,983
|
|
99
99
|
catalystwan/endpoints/configuration/disaster_recovery.py,sha256=RsHqUz61RIO4msN23FackQW8BzfC2u_8GpozXfdsKuw,9447
|
|
100
100
|
catalystwan/endpoints/configuration/feature_profile/sdwan/application_priority.py,sha256=eL1r6A94BpsUCSdd0ae8fpSY23b_etV8Dfz2kCZYxnY,4543
|
|
@@ -212,7 +212,7 @@ catalystwan/endpoints/tenant_management.py,sha256=c-kIRoS60aVklVPPrmbnW5kaiNgU23
|
|
|
212
212
|
catalystwan/endpoints/tenant_migration.py,sha256=e6eIzRvlrnzUWqamKbWsYjX8drtB-GQKvhrJtX2VDKY,3649
|
|
213
213
|
catalystwan/endpoints/troubleshooting_tools/device_connectivity.py,sha256=JkTZfebTwcambJsgjcJ8qxxBDE5XbUFyYpNqr9681DQ,3661
|
|
214
214
|
catalystwan/endpoints/url_monitoring.py,sha256=ZySOjuCpIAZ4SIsah56yJ-uybYw0W9s6OjQp2FujN0g,802
|
|
215
|
-
catalystwan/exceptions.py,sha256=
|
|
215
|
+
catalystwan/exceptions.py,sha256=fx4TCO1qCYvIilCIjS1PDk-vDW8_s-dS4PtjH1EQCOw,6641
|
|
216
216
|
catalystwan/integration_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
217
217
|
catalystwan/integration_tests/base.py,sha256=0BcKgDZcGjdPH2316C-1Se4FUeAtdrNXdkUVp_aXEZc,2367
|
|
218
218
|
catalystwan/integration_tests/feature_profile/sdwan/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -231,7 +231,7 @@ catalystwan/integration_tests/feature_profile/sdwan/test_system.py,sha256=ab6fG7
|
|
|
231
231
|
catalystwan/integration_tests/feature_profile/sdwan/test_tracker.py,sha256=GnIEHmUoIZObtBK-YvjYYtDsFnGSDpAVwi4rk9-r7XE,5117
|
|
232
232
|
catalystwan/integration_tests/feature_profile/sdwan/test_transport.py,sha256=xRS880JCUD06xL_EaHKNylvaXB9wRHqUYsORhU2MYus,78923
|
|
233
233
|
catalystwan/integration_tests/feature_profile/sdwan/topology/test_topology.py,sha256=2vsAd0pk3wcfo8wFTRttnw4gjSPJi1KFfFCu5lGAiJQ,4340
|
|
234
|
-
catalystwan/integration_tests/feature_profile/test_parcel.py,sha256=
|
|
234
|
+
catalystwan/integration_tests/feature_profile/test_parcel.py,sha256=yIO0Ku2CfsCXxInSJJwRNTvfDw8MI3r1qdvna0yefxk,1499
|
|
235
235
|
catalystwan/integration_tests/profile_builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
236
236
|
catalystwan/integration_tests/profile_builder/test_pb_service.py,sha256=WO6VVA7kNXesyGtk67e0lMDZBd4Z8wB7espBh0TzUTA,9420
|
|
237
237
|
catalystwan/integration_tests/profile_builder/test_pb_transport.py,sha256=QQ5f1q6OV9dIyRQy1lb3Wp9beIKaWDaDLnNoGm4XY6A,10376
|
|
@@ -246,7 +246,7 @@ catalystwan/models/configuration/common.py,sha256=2X9gj5awWPKtLPFgWfxhkRrMoX22t1
|
|
|
246
246
|
catalystwan/models/configuration/feature_profile/README.md,sha256=IQMhbnEAbLtotT80aL2emekH-ou8CqR0WSYXhZXilJw,10050
|
|
247
247
|
catalystwan/models/configuration/feature_profile/builder.py,sha256=GDqK7ZxnWHTKWHRw13xvD1aDl60xe6gFsP_B9z5T8a8,663
|
|
248
248
|
catalystwan/models/configuration/feature_profile/common.py,sha256=a5xohaoXzAewtqYYdk2GJy7B-rxxlxYatlP2WZ1eZqY,30423
|
|
249
|
-
catalystwan/models/configuration/feature_profile/parcel.py,sha256=
|
|
249
|
+
catalystwan/models/configuration/feature_profile/parcel.py,sha256=OD7rG4j55M_uAnA_rLGnX_Y0xddcxuEflAOL9-DPXPQ,7582
|
|
250
250
|
catalystwan/models/configuration/feature_profile/sdwan/acl/__init__.py,sha256=-AXvVMLyaAYWUnwzTT_mvar37ZpO2vNRy_ZsUIA5dGo,324
|
|
251
251
|
catalystwan/models/configuration/feature_profile/sdwan/acl/ipv4acl.py,sha256=HpiY0DCZWE9EHCbMbyIJ-iRharSRO3IGcSV3kWbMXjY,12167
|
|
252
252
|
catalystwan/models/configuration/feature_profile/sdwan/acl/ipv6acl.py,sha256=MRtDNb2v1TNNf3yijLFlzL3H1KxHOquPmww1V9ZCacI,12969
|
|
@@ -266,7 +266,7 @@ catalystwan/models/configuration/feature_profile/sdwan/embedded_security/policy.
|
|
|
266
266
|
catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py,sha256=BhTiGcP5hnp2m4zdnDFgsktAVeiwxaxSYLKtPolu450,560
|
|
267
267
|
catalystwan/models/configuration/feature_profile/sdwan/other/cybervision.py,sha256=lrnbpHvceKTYZM73FbYtY_1_G_dXjfat7x5g_BAnfSM,2070
|
|
268
268
|
catalystwan/models/configuration/feature_profile/sdwan/other/thousandeyes.py,sha256=aA5PmFl5v_uvGIIAt16tlVf0OxQKuc-FkEEyg2OmD_I,4806
|
|
269
|
-
catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py,sha256=
|
|
269
|
+
catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py,sha256=fdaqQQSutvGXClaXsn89IfR2fQS2AJNKZqhCg3pWqPg,4021
|
|
270
270
|
catalystwan/models/configuration/feature_profile/sdwan/policy_object/__init__.py,sha256=RbQgaZxz7dEikwAYVdh4oSA6rZUA0muZIS-bhOUWzBM,6047
|
|
271
271
|
catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py,sha256=sLmhwa63b5OnxXqHrCMLMSQspUDx3LBcmEyCssup9CY,1989
|
|
272
272
|
catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py,sha256=-ctN0OraZt3rG-Wddn8oQ4R4z4rxYcz2YXhiQptQtec,1275
|
|
@@ -386,7 +386,7 @@ catalystwan/models/configuration/feature_profile/sdwan/uc_voice/trunk_group.py,s
|
|
|
386
386
|
catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_global.py,sha256=9v3-IBHo0Qzxlguq6k8UbCE1SKJdoeoOO0q65HsoWIQ,2290
|
|
387
387
|
catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_tenant.py,sha256=7av6UzCBbztqFNbfhRIbJGDJg87n3QrTzZL9KT7Pems,1365
|
|
388
388
|
catalystwan/models/configuration/network_hierarchy/__init__.py,sha256=jGlyKaRRsfrK0gGKoPXqRPmO-myVgfbZVm3FzVkWSts,425
|
|
389
|
-
catalystwan/models/configuration/network_hierarchy/cflowd.py,sha256=
|
|
389
|
+
catalystwan/models/configuration/network_hierarchy/cflowd.py,sha256=3C6UHFpc1isuBvpui9HLoIn63esS2-ucpnLBQS8I-Ak,5530
|
|
390
390
|
catalystwan/models/configuration/network_hierarchy/node.py,sha256=Ex1OMLl00uU3y4fSSD-xl-t1AJYotYhFRr0KQ826pK8,2792
|
|
391
391
|
catalystwan/models/configuration/policy_group.py,sha256=8A_TsNmjSRVx1BAlYUgQQWkpp_SizDL_ZTS8zUTtHgs,2235
|
|
392
392
|
catalystwan/models/configuration/profile_type.py,sha256=qIlobJmEYQ5qEGZeYJZsVMaXtFbR7RgFr6eH8YyoNAo,157
|
|
@@ -396,7 +396,7 @@ catalystwan/models/feature_profile_parcel.py,sha256=ddjq8QzqsRv3yBKNDHUf-qgtyeOC
|
|
|
396
396
|
catalystwan/models/misc/application_protocols.py,sha256=DZlBhLEu-HJ4w5cHCtfGWp34I95H4GRsToK1xcJCxK4,785
|
|
397
397
|
catalystwan/models/monitoring/security_policy.py,sha256=WKGu_iHSHOM019dkBKWtyZWSIr9AQ56orQMMthexyB4,346
|
|
398
398
|
catalystwan/models/monitoring/server_info.py,sha256=yToBDkBvuksaiZEaSefZTdh9P6sCVAmglpRYwJDkUWE,405
|
|
399
|
-
catalystwan/models/policy/__init__.py,sha256=
|
|
399
|
+
catalystwan/models/policy/__init__.py,sha256=wtxlHq6TYkII682Him_1796xc6pnyCkn9olE76ls1Ss,14828
|
|
400
400
|
catalystwan/models/policy/centralized.py,sha256=aKwUPxDFr8qzG0w0nVPqyhfDlpKb5dEdsvoeERybT7Y,9151
|
|
401
401
|
catalystwan/models/policy/definition/access_control_list.py,sha256=blcrf2ixd7EJhGq9dPZidBpH3lD5w6BRsOY9AiUQNKA,6397
|
|
402
402
|
catalystwan/models/policy/definition/access_control_list_ipv6.py,sha256=Hxd6CFXiCo3It5hTo9pqAdo191N10uaqbFJKRq_z1FI,6422
|
|
@@ -423,7 +423,7 @@ catalystwan/models/policy/definition/rule_set.py,sha256=LePxWLSKyJ8AlwoclkunACh2
|
|
|
423
423
|
catalystwan/models/policy/definition/security_group.py,sha256=VAzeOU7l9g79YG78oFvnbkDDgHLvbKe5Ct0p_6V380Q,3698
|
|
424
424
|
catalystwan/models/policy/definition/srst_phone_profile.py,sha256=xd8k_fz8Z1qnU3v5A1EmIScKXEoUGgcr132pwD_0kyU,1201
|
|
425
425
|
catalystwan/models/policy/definition/ssl_decryption.py,sha256=UC4dSbARM5p3dqfRl6OKjCCVWeO-RT4Y-nzfjJ4pEFo,8062
|
|
426
|
-
catalystwan/models/policy/definition/ssl_decryption_utd_profile.py,sha256=
|
|
426
|
+
catalystwan/models/policy/definition/ssl_decryption_utd_profile.py,sha256=m8-G9Q0AkxwtzhZrCcCmImfqWKAzvz6SKu1aSqfx8DU,3567
|
|
427
427
|
catalystwan/models/policy/definition/traffic_data.py,sha256=dME5uXiBR3c4E6p_P25991R6wHqzqt8Ef9Gku3Xojq4,16606
|
|
428
428
|
catalystwan/models/policy/definition/url_filtering.py,sha256=BXRfsvA4IS1UABk4nBivHsp3gn4N86MaeGzFwQZVObc,2741
|
|
429
429
|
catalystwan/models/policy/definition/vpn_membership.py,sha256=gXTkYSIt8eVxt0DPDjlyQkZDYvHD9pTnXkX-ZAltSTQ,1329
|
|
@@ -464,11 +464,11 @@ catalystwan/models/policy/list/translation_profile.py,sha256=GF10P3m7vVuB5jc5rrJ
|
|
|
464
464
|
catalystwan/models/policy/list/translation_rules.py,sha256=xdAXlJfKzGC4QEHhHK3lnYu3inpcC4wIUgbi6toeaGo,982
|
|
465
465
|
catalystwan/models/policy/list/trunkgroup.py,sha256=sv5FcOE-C0L9oM5WUOQOTH6PMoZqziWlIoy4-9Thz0U,2075
|
|
466
466
|
catalystwan/models/policy/list/umbrella_data.py,sha256=ZpoqTx3J5ZWUtMiZaYwsKqJABTUZDNMPGpFe_2a4hrk,1140
|
|
467
|
-
catalystwan/models/policy/list/url.py,sha256=
|
|
467
|
+
catalystwan/models/policy/list/url.py,sha256=vl09xXKNsPV6bcZ4z7wFJvQyDOXbBtZDdOfRtiAA4OA,888
|
|
468
468
|
catalystwan/models/policy/list/vpn.py,sha256=X6yK8skSRn3tPooCeKVouS54tud7QAT302nRls0tU6w,1071
|
|
469
469
|
catalystwan/models/policy/list/zone.py,sha256=0NWmXUcEwgmXSM2nb-OspTPsULBDaqXvF9cpBwx8He8,1439
|
|
470
470
|
catalystwan/models/policy/localized.py,sha256=ijgqi9fEODD_qAnszGrphaSiXA75ZId2Vfci7EiBoCA,6382
|
|
471
|
-
catalystwan/models/policy/policy.py,sha256=
|
|
471
|
+
catalystwan/models/policy/policy.py,sha256=k3wv-1LEFFbsEfD3bxp_Pq8Rh5rlIsz84EE1T-mvcUo,3728
|
|
472
472
|
catalystwan/models/policy/policy_definition.py,sha256=JeZIj53iaNoBXfE3sOQaOo142JYi9IEDWLvhgF61Jeo,49437
|
|
473
473
|
catalystwan/models/policy/policy_list.py,sha256=SaGjY7wNWwCHu9VoVIzqWGAbHJ-VWIxZg7QgQ7FJ-Ak,1881
|
|
474
474
|
catalystwan/models/policy/security.py,sha256=v1RkFg9--BrOOdgcBcUvk6G4byZ27h8-fG3xBJYrsAE,11125
|
|
@@ -616,7 +616,7 @@ catalystwan/utils/device_model.py,sha256=IPEQD7yYyhCH91Uw9P-dF34TcIEimYEnImYVaaQ
|
|
|
616
616
|
catalystwan/utils/dict.py,sha256=1IC4pcPFQ7yS39-ZWSFwyCvQKYzfZoxsz3YtJ-S6l7w,2110
|
|
617
617
|
catalystwan/utils/feature_template/choose_model.py,sha256=JoQ7l_TF2PTH8bciOSVAFavevo35n2F4DbusIIvapM8,953
|
|
618
618
|
catalystwan/utils/feature_template/find_template_values.py,sha256=nEi-hFmOaX5cHeS4VBSJmhxIl3jOn42o6mNSkS9Htak,5405
|
|
619
|
-
catalystwan/utils/model.py,sha256=
|
|
619
|
+
catalystwan/utils/model.py,sha256=AbuERvgU_3w16rFaKOA1QM3F-xL7xW13YTB-hFWRIEo,1692
|
|
620
620
|
catalystwan/utils/operation_status.py,sha256=SeT34c_x8F98mwl9x0-klvGTMKbrKSTY_w0zaKyuds8,584
|
|
621
621
|
catalystwan/utils/persona.py,sha256=fZEMM2wgvvSuNaGwsLk-qWJUuZzkhYm1C3YUnRGOqRw,147
|
|
622
622
|
catalystwan/utils/personality.py,sha256=vQ8dKNS6BPAVhRB6IyKRxX2y6a_ukAKBcYnTUuUFgoM,196
|
|
@@ -631,7 +631,7 @@ catalystwan/version.py,sha256=X5yIMPIrWPbdoF9eJfwxfjcvWr7JMfWQF98hQhlGB5I,3032
|
|
|
631
631
|
catalystwan/vmanage_auth.py,sha256=UZ57lTihsLsXw4AdU7Vn8XuY1jo3732Vc9WuFoHSiiQ,10780
|
|
632
632
|
catalystwan/workflows/backup_restore_device_templates.py,sha256=BoR2KlRbpCI6RxIWG7j7tucaLpw5w3ESN20dLhsrZFY,19796
|
|
633
633
|
catalystwan/workflows/tenant_migration.py,sha256=4KLbqUwH4gEegE92PCGfRd226eZd_crCUpaYUWoGXDI,9790
|
|
634
|
-
catalystwan-0.41.2.
|
|
635
|
-
catalystwan-0.41.2.
|
|
636
|
-
catalystwan-0.41.2.
|
|
637
|
-
catalystwan-0.41.2.
|
|
634
|
+
catalystwan-0.41.2.dev8.dist-info/LICENSE,sha256=97ROi91Vxrj_Jio2v8FI9E8-y6x2uYdQRaFlrEbVjkc,11375
|
|
635
|
+
catalystwan-0.41.2.dev8.dist-info/METADATA,sha256=E80Sr2BaABziMkStuVLgJ3yWOf5DNI0qgYgGIKzr9N4,21275
|
|
636
|
+
catalystwan-0.41.2.dev8.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
637
|
+
catalystwan-0.41.2.dev8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|