Skip to content

Commit 5c39868

Browse files
authored
improve supervisory disc model (#71)
1 parent c9d181a commit 5c39868

File tree

5 files changed

+31
-5
lines changed

5 files changed

+31
-5
lines changed

ENDPOINTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
**THIS FILE WAS AUTO-GENERATED DO NOT EDIT**
22

3-
Generated for: catalystwan-0.40.2.dev6
3+
Generated for: catalystwan-0.40.2.dev7
44

55
All URIs are relative to */dataservice*
66
HTTP request | Supported Versions | Method | Payload Type | Return Type | Tenancy Mode

catalystwan/models/common.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,31 @@ def str_as_str_list(val: Union[str, Sequence[str]]) -> Sequence[str]:
183183

184184
IntRange = Tuple[int, Optional[int]]
185185

186+
DualToneCadenceInterval = Annotated[int, Field(ge=50, le=10_000)]
187+
DualToneCadenceStartStop = Tuple[DualToneCadenceInterval, DualToneCadenceInterval]
188+
189+
190+
def str_as_cadence_pairs(val: Union[str, Sequence[DualToneCadenceStartStop]]) -> Sequence[DualToneCadenceStartStop]:
191+
if isinstance(val, str):
192+
tab = val.split()
193+
val = list()
194+
assert len(tab) % 2 == 0, "cadence contain on/off interval pairs, odd number of entries detected"
195+
for start, stop in zip(tab, tab[1:]):
196+
val.append((int(start), int(stop)))
197+
return val
198+
199+
200+
def tuple_to_str(val: Tuple[Any, ...]) -> str:
201+
return " ".join(map(str, val))
202+
203+
204+
SpaceSeparatedCustomCadenceRanges = Annotated[
205+
List[DualToneCadenceStartStop],
206+
PlainSerializer(lambda x: " ".join(map(tuple_to_str, x)), return_type=str, when_used="json-unless-none"),
207+
BeforeValidator(str_as_cadence_pairs),
208+
Field(min_length=1),
209+
]
210+
186211
SpaceSeparatedUUIDList = Annotated[
187212
List[UUID],
188213
PlainSerializer(lambda x: " ".join(map(str, x)), return_type=str, when_used="json-unless-none"),

catalystwan/models/configuration/feature_profile/sdwan/uc_voice/supervisory_disconnect.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from pydantic import AliasPath, BaseModel, ConfigDict, Field
55

66
from catalystwan.api.configuration_groups.parcel import Default, Global, Variable, _ParcelBase
7+
from catalystwan.models.common import SpaceSeparatedCustomCadenceRanges
78

89
DualTone = Literal[
910
"Busy",
@@ -17,7 +18,7 @@
1718

1819
class SupervisoryCustomCPTone(BaseModel):
1920
model_config = ConfigDict(populate_by_name=True)
20-
cadence: Union[Variable, Global[str]] = Field()
21+
cadence: Union[Variable, Global[SpaceSeparatedCustomCadenceRanges]] = Field()
2122
dual_tone: Union[Variable, Global[DualTone]] = Field(validation_alias="dualTone", serialization_alias="dualTone")
2223
dualtone_frequency_in: Union[Variable, Global[int]] = Field(
2324
validation_alias="dualtoneFrequencyIn", serialization_alias="dualtoneFrequencyIn"

catalystwan/models/policy/list/supervisory_disconnect.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from pydantic import BaseModel, ConfigDict, Field
66
from typing_extensions import Annotated
77

8-
from catalystwan.models.common import IntStr, SpaceSeparatedNonNegativeIntList
8+
from catalystwan.models.common import IntStr, SpaceSeparatedCustomCadenceRanges
99
from catalystwan.models.policy.policy_list import PolicyListBase, PolicyListId, PolicyListInfo
1010

1111

@@ -36,7 +36,7 @@ class CustomModeEntry(BaseModel):
3636
model_config = ConfigDict(populate_by_name=True)
3737
mode: Literal["custom_mode"] = "custom_mode"
3838
dualtone_type: str = Field(validation_alias="dualtoneType", serialization_alias="dualtoneType")
39-
cadence: SpaceSeparatedNonNegativeIntList
39+
cadence: SpaceSeparatedCustomCadenceRanges
4040
dualtone_frequency1: IntStr = Field(
4141
ge=300, le=3600, validation_alias="dualtoneFrequency1", serialization_alias="dualtoneFrequency1"
4242
)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "catalystwan"
3-
version = "0.40.2dev6"
3+
version = "0.40.2dev7"
44
description = "Cisco Catalyst WAN SDK for Python"
55
authors = ["kagorski <kagorski@cisco.com>"]
66
readme = "README.md"

0 commit comments

Comments
 (0)