Skip to content

Commit c3c514c

Browse files
authored
dev: Add models - translation rule, translation profile (#4)
* Add models * Add models to init * Change ethernet field serializtion
1 parent 234cd1b commit c3c514c

File tree

4 files changed

+75
-16
lines changed

4 files changed

+75
-16
lines changed

catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,9 @@ def serialize(self, handler: SerializerFunctionWrapHandler, info: SerializationI
138138
class Trustsec(BaseModel):
139139
model_config = ConfigDict(arbitrary_types_allowed=True, populate_by_name=True, extra="forbid")
140140

141-
enable_sgt_propagation: Annotated[
142-
Union[Global[bool], Default[bool]],
143-
VersionedField(versions="<=20.13", serialization_alias="enableSGTPropogation"),
144-
] = Field(
141+
enable_sgt_propagation: Union[Global[bool], Default[bool]] = Field(
145142
serialization_alias="enableSGTPropagation",
146-
validation_alias=AliasChoices("enableSGTPropagation", "enableSGTPropogation"),
143+
validation_alias="enableSGTPropogation",
147144
default=Default[bool](value=False),
148145
)
149146
propagate: Annotated[
@@ -152,13 +149,10 @@ class Trustsec(BaseModel):
152149
security_group_tag: Optional[Union[Global[int], Variable, Default[None]]] = Field(
153150
serialization_alias="securityGroupTag", validation_alias="securityGroupTag", default=None
154151
)
155-
enable_enforced_propagation: Annotated[
156-
Union[Global[bool], Default[None]],
157-
VersionedField(versions="<=20.13", serialization_alias="enableEnforcedPropogation"),
158-
] = Field(
152+
enable_enforced_propagation: Union[Global[bool], Default[None]] = Field(
159153
default=Default[None](value=None),
160154
serialization_alias="enableEnforcedPropagation",
161-
validation_alias=AliasChoices("enableEnforcedPropagation", "enableEnforcedPropogation"),
155+
validation_alias="enableEnforcedPropogation",
162156
)
163157
enforced_security_group_tag: Union[Global[int], Variable, Default[None]] = Field(
164158
default=Default[None](value=None),

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

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,25 @@
66
from typing_extensions import Annotated
77

88
from catalystwan.models.configuration.feature_profile.sdwan.uc_voice.media_profile import MediaProfileParcel
9+
from catalystwan.models.configuration.feature_profile.sdwan.uc_voice.translation_profile import TranslationProfileParcel
10+
from catalystwan.models.configuration.feature_profile.sdwan.uc_voice.translation_rule import TranslationRuleParcel
911
from catalystwan.models.configuration.feature_profile.sdwan.uc_voice.trunk_group import TrunkGroupParcel
1012

1113
from .dsp_farm import DspFarmParcel
1214

1315
AnyUcVoiceParcel = Annotated[
14-
Union[
15-
DspFarmParcel,
16-
MediaProfileParcel,
17-
TrunkGroupParcel,
18-
],
16+
Union[DspFarmParcel, MediaProfileParcel, TrunkGroupParcel, TranslationRuleParcel, TranslationProfileParcel],
1917
Field(discriminator="type_"),
2018
]
2119

22-
__all__ = ("AnyUcVoiceParcel", "DspFarmParcel", "MediaProfileParcel", "TrunkGroupParcel")
20+
__all__ = (
21+
"AnyUcVoiceParcel",
22+
"DspFarmParcel",
23+
"MediaProfileParcel",
24+
"TrunkGroupParcel",
25+
"TranslationProfileParcel",
26+
"TranslationRuleParcel",
27+
)
2328

2429

2530
def __dir__() -> "List[str]":
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Copyright 2024 Cisco Systems, Inc. and its affiliates
2+
from typing import List, Literal, Optional, Union
3+
4+
from pydantic import AliasPath, BaseModel, ConfigDict, Field
5+
6+
from catalystwan.api.configuration_groups.parcel import Global, Variable, _ParcelBase
7+
from catalystwan.models.configuration.feature_profile.common import RefIdItem
8+
9+
CallType = Literal[
10+
"called",
11+
"calling",
12+
]
13+
14+
15+
class TranslationProfileSettings(BaseModel):
16+
model_config = ConfigDict(populate_by_name=True, extra="forbid")
17+
call_type: Union[Variable, Global[CallType]] = Field(validation_alias="callType", serialization_alias="callType")
18+
translation_rule: Optional[RefIdItem] = Field(
19+
default=None, validation_alias="translationRule", serialization_alias="translationRule"
20+
)
21+
22+
23+
class TranslationProfileParcel(_ParcelBase):
24+
model_config = ConfigDict(populate_by_name=True, extra="forbid")
25+
type_: Literal["translation-profile"] = Field(default="translation-profile", exclude=True)
26+
translation_profile_settings: List[TranslationProfileSettings] = Field(
27+
validation_alias=AliasPath("data", "translationProfileSettings"),
28+
description="Translation Profile configuration",
29+
)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Copyright 2024 Cisco Systems, Inc. and its affiliates
2+
from typing import List, Literal, Optional
3+
4+
from pydantic import AliasPath, BaseModel, ConfigDict, Field
5+
6+
from catalystwan.api.configuration_groups.parcel import Global, _ParcelBase
7+
8+
Action = Literal[
9+
"reject",
10+
"replace",
11+
]
12+
13+
14+
class RuleSettings(BaseModel):
15+
model_config = ConfigDict(populate_by_name=True, extra="forbid")
16+
action: Optional[Global[Action]] = Field(default=None)
17+
match: Optional[Global[str]] = Field(default=None)
18+
replacement_pattern: Optional[Global[str]] = Field(
19+
default=None, validation_alias="replacementPattern", serialization_alias="replacementPattern"
20+
)
21+
rule_num: Optional[Global[int]] = Field(default=None, validation_alias="ruleNum", serialization_alias="ruleNum")
22+
23+
24+
class TranslationRuleParcel(_ParcelBase):
25+
model_config = ConfigDict(populate_by_name=True, extra="forbid")
26+
type_: Literal["translation-rule"] = Field(default="translation-rule", exclude=True)
27+
rule_settings: List[RuleSettings] = Field(
28+
validation_alias=AliasPath("data", "ruleSettings"),
29+
description="Translation Rule configuration",
30+
)
31+
rule_name: Optional[Global[int]] = Field(default=None, validation_alias="ruleName", serialization_alias="ruleName")

0 commit comments

Comments
 (0)