acex-devkit 1.10.0__tar.gz → 1.11.0__tar.gz
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.
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/PKG-INFO +1 -1
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/pyproject.toml +1 -1
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/composed_configuration.py +69 -5
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/README.md +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/__init__.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/configdiffer/__init__.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/configdiffer/command.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/configdiffer/configdiffer.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/configdiffer/diff.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/configdiffer/old_configdiffer.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/configdiffer/old_diff.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/drivers/__init__.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/drivers/base.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/drivers/base_driver.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/exceptions/__init__.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/__init__.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/acl_model.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/attribute_value.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/container_entry.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/external_value.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/logging.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/management_connection.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/ned.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/node_response.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/spanning_tree.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/normalizer/__init__.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/normalizer/base.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/normalizer/engine.py +0 -0
- {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/types/__init__.py +0 -0
|
@@ -139,6 +139,60 @@ class Vlan(ContainerEntry, BaseModel):
|
|
|
139
139
|
vlan_name: Optional[AttributeValue[str]] = None
|
|
140
140
|
network_instance: Optional[AttributeValue[str]] = None
|
|
141
141
|
|
|
142
|
+
class StormControlAttributes(BaseModel):
|
|
143
|
+
"Storm control thresholds for broadcast/multicast/unknown-unicast traffic on an interface."
|
|
144
|
+
broadcast_pps: Optional[AttributeValue[int]] = None
|
|
145
|
+
multicast_pps: Optional[AttributeValue[int]] = None
|
|
146
|
+
unknown_unicast_pps: Optional[AttributeValue[int]] = None
|
|
147
|
+
action: Optional[AttributeValue[Literal["trap", "shutdown"]]] = None
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
class InterfaceTemplateAttributes(ContainerEntry, BaseModel):
|
|
151
|
+
"Reusable named set of interface attributes that interfaces can reference."
|
|
152
|
+
identity_fields: ClassVar[tuple[str, ...]] = ("name",)
|
|
153
|
+
name: AttributeValue[str]
|
|
154
|
+
|
|
155
|
+
description: Optional[AttributeValue[str]] = None
|
|
156
|
+
enabled: Optional[AttributeValue[bool]] = None
|
|
157
|
+
|
|
158
|
+
# L1/L2
|
|
159
|
+
switchport: Optional[AttributeValue[bool]] = None
|
|
160
|
+
switchport_mode: Optional[AttributeValue[Literal["access", "trunk"]]] = None
|
|
161
|
+
trunk_allowed_vlans: Optional[AttributeValue[List[int]]] = None
|
|
162
|
+
native_vlan: Optional[AttributeValue[int]] = None
|
|
163
|
+
access_vlan: Optional[AttributeValue[int]] = None
|
|
164
|
+
voice_vlan: Optional[AttributeValue[int]] = None
|
|
165
|
+
mtu: Optional[AttributeValue[int]] = None
|
|
166
|
+
speed: Optional[AttributeValue[int]] = None
|
|
167
|
+
duplex: Optional[AttributeValue[str]] = None
|
|
168
|
+
negotiation: Optional[AttributeValue[bool]] = None
|
|
169
|
+
dtp_negotiation: Optional[AttributeValue[bool]] = None # False renders as "switchport nonegotiate" on Cisco
|
|
170
|
+
auto_mdix: Optional[AttributeValue[bool]] = None
|
|
171
|
+
|
|
172
|
+
# Operational signaling (default on; set False to suppress)
|
|
173
|
+
logging_link_status: Optional[AttributeValue[bool]] = None
|
|
174
|
+
snmp_link_status_trap: Optional[AttributeValue[bool]] = None
|
|
175
|
+
|
|
176
|
+
# Storm control
|
|
177
|
+
storm_control: Optional[StormControlAttributes] = None
|
|
178
|
+
|
|
179
|
+
# Spanning-tree
|
|
180
|
+
stp_port_priority: Optional[AttributeValue[int]] = None
|
|
181
|
+
stp_cost: Optional[AttributeValue[int]] = None
|
|
182
|
+
stp_edge_port: Optional[AttributeValue[bool]] = None
|
|
183
|
+
stp_bpdu_filter: Optional[AttributeValue[bool]] = None
|
|
184
|
+
stp_bpdu_guard: Optional[AttributeValue[bool]] = None
|
|
185
|
+
stp_loop_guard: Optional[AttributeValue[bool]] = None
|
|
186
|
+
stp_root_guard: Optional[AttributeValue[bool]] = None
|
|
187
|
+
stp_link_type: Optional[AttributeValue[Literal["point-to-point", "shared"]]] = None
|
|
188
|
+
|
|
189
|
+
# LACP
|
|
190
|
+
lacp_enabled: Optional[AttributeValue[bool]] = None
|
|
191
|
+
lacp_mode: Optional[AttributeValue[Literal["active", "passive", "on", "auto"]]] = None
|
|
192
|
+
lacp_port_priority: Optional[AttributeValue[int]] = None
|
|
193
|
+
lacp_interval: Optional[AttributeValue[Literal["fast", "slow"]]] = None
|
|
194
|
+
|
|
195
|
+
|
|
142
196
|
class Interface(ContainerEntry, BaseModel):
|
|
143
197
|
"Base class for all interfaces"
|
|
144
198
|
identity_fields: ClassVar[tuple[str, ...]] = ("index", "type")
|
|
@@ -148,9 +202,15 @@ class Interface(ContainerEntry, BaseModel):
|
|
|
148
202
|
description: Optional[AttributeValue[str]] = None
|
|
149
203
|
enabled: Optional[AttributeValue[bool]] = None
|
|
150
204
|
ipv4: Optional[AttributeValue[str]] = None
|
|
151
|
-
redirects: Optional[AttributeValue[bool]] = None # Regarding IP redirects.
|
|
205
|
+
redirects: Optional[AttributeValue[bool]] = None # Regarding IP redirects.
|
|
152
206
|
proxy_arp: Optional[AttributeValue[bool]] = None # Cisco true = yes / false = no, Juniper true = unrestricted / false = restricted
|
|
153
|
-
|
|
207
|
+
interface_template: Optional[Reference] = None
|
|
208
|
+
|
|
209
|
+
dtp_negotiation: Optional[AttributeValue[bool]] = None # False renders as "switchport nonegotiate" on Cisco
|
|
210
|
+
logging_link_status: Optional[AttributeValue[bool]] = None # Default on; False suppresses link-state log events
|
|
211
|
+
snmp_link_status_trap: Optional[AttributeValue[bool]] = None # Default on; False suppresses link-state SNMP traps
|
|
212
|
+
storm_control: Optional[StormControlAttributes] = None
|
|
213
|
+
|
|
154
214
|
type: Literal[
|
|
155
215
|
"ethernetCsmacd",
|
|
156
216
|
"ieee8023adLag",
|
|
@@ -159,7 +219,7 @@ class Interface(ContainerEntry, BaseModel):
|
|
|
159
219
|
"subinterface",
|
|
160
220
|
"managementInterface"
|
|
161
221
|
] = "ethernetCsmacd"
|
|
162
|
-
|
|
222
|
+
|
|
163
223
|
model_config = {
|
|
164
224
|
"discriminator": "type"
|
|
165
225
|
}
|
|
@@ -184,6 +244,7 @@ class EthernetCsmacdInterface(Interface):
|
|
|
184
244
|
voice_vlan: Optional[AttributeValue[int]] = None
|
|
185
245
|
mtu: Optional[AttributeValue[int]] = None # No default set as it differs between devices and vendors
|
|
186
246
|
negotiation: Optional[AttributeValue[bool]] = None
|
|
247
|
+
auto_mdix: Optional[AttributeValue[bool]] = None
|
|
187
248
|
#lldp_enabled: Optional[AttributeValue[bool]] = None
|
|
188
249
|
#cdp_enabled: Optional[AttributeValue[bool]] = None
|
|
189
250
|
|
|
@@ -743,6 +804,8 @@ class NetflowRecordAttributes(BaseModel): # Cisco flow record
|
|
|
743
804
|
collect_timestamp_absolute_last: Optional[AttributeValue[bool]] = None
|
|
744
805
|
|
|
745
806
|
class NetflowCollectorAttributes(BaseModel): # Cisco flow monitor
|
|
807
|
+
netflow_record: Optional[AttributeValue[str]] = None # Reference to record, used for easier access in config component
|
|
808
|
+
netflow_exporter: Optional[AttributeValue[str]] = None # Reference to exporter, used for easier access in config component
|
|
746
809
|
cache_inactive: Optional[AttributeValue[int]] = None
|
|
747
810
|
cache_active: Optional[AttributeValue[int]] = None
|
|
748
811
|
interfaces: Optional[Dict[str, Reference]] = {} # allow for disabling netflow on specific interfaces
|
|
@@ -751,7 +814,7 @@ class NetflowExporterOptions(BaseModel):
|
|
|
751
814
|
# Mostly timeouts atm
|
|
752
815
|
interface_table_timeout: Optional[AttributeValue[int]] = None
|
|
753
816
|
vrf_table_timeout: Optional[AttributeValue[int]] = None
|
|
754
|
-
|
|
817
|
+
sampler_table: Optional[AttributeValue[bool]] = None
|
|
755
818
|
application_table_timeout: Optional[AttributeValue[int]] = None
|
|
756
819
|
application_attributes_timeout: Optional[AttributeValue[int]] = None
|
|
757
820
|
netflow_exporter: Optional[AttributeValue[str]] = None # Reference to parent exporter, used for easier access in config component
|
|
@@ -760,7 +823,7 @@ class NetflowExporterAttributes(ContainerEntry, BaseModel): # Cisco flow exporte
|
|
|
760
823
|
identity_fields: ClassVar[tuple[str, ...]] = ("address",)
|
|
761
824
|
address: Optional[AttributeValue[str]] = None
|
|
762
825
|
port: Optional[AttributeValue[int]] = None
|
|
763
|
-
|
|
826
|
+
netflow_format: Optional[AttributeValue[str]] = None
|
|
764
827
|
source_interface: Optional[Reference] = None
|
|
765
828
|
network_instance: Optional[AttributeValue[str]] = None
|
|
766
829
|
options: Optional[NetflowExporterOptions] = None
|
|
@@ -839,6 +902,7 @@ class ComposedConfiguration(BaseModel):
|
|
|
839
902
|
cdp: Optional[CdpConfigAttributes] = CdpConfigAttributes()
|
|
840
903
|
lacp: Optional[Lacp] = Lacp()
|
|
841
904
|
interfaces: Dict[str, InterfaceType] = {}
|
|
905
|
+
interface_templates: Dict[str, InterfaceTemplateAttributes] = {}
|
|
842
906
|
network_instances: Dict[str, NetworkInstance] = {"global": NetworkInstance(name="global")}
|
|
843
907
|
stp: Optional[SpanningTree] = SpanningTree()
|
|
844
908
|
sampling: Optional[Sampling] = Sampling()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|