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.
Files changed (29) hide show
  1. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/PKG-INFO +1 -1
  2. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/pyproject.toml +1 -1
  3. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/composed_configuration.py +69 -5
  4. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/README.md +0 -0
  5. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/__init__.py +0 -0
  6. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/configdiffer/__init__.py +0 -0
  7. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/configdiffer/command.py +0 -0
  8. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/configdiffer/configdiffer.py +0 -0
  9. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/configdiffer/diff.py +0 -0
  10. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/configdiffer/old_configdiffer.py +0 -0
  11. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/configdiffer/old_diff.py +0 -0
  12. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/drivers/__init__.py +0 -0
  13. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/drivers/base.py +0 -0
  14. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/drivers/base_driver.py +0 -0
  15. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/exceptions/__init__.py +0 -0
  16. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/__init__.py +0 -0
  17. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/acl_model.py +0 -0
  18. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/attribute_value.py +0 -0
  19. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/container_entry.py +0 -0
  20. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/external_value.py +0 -0
  21. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/logging.py +0 -0
  22. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/management_connection.py +0 -0
  23. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/ned.py +0 -0
  24. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/node_response.py +0 -0
  25. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/models/spanning_tree.py +0 -0
  26. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/normalizer/__init__.py +0 -0
  27. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/normalizer/base.py +0 -0
  28. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/normalizer/engine.py +0 -0
  29. {acex_devkit-1.10.0 → acex_devkit-1.11.0}/src/acex_devkit/types/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: acex-devkit
3
- Version: 1.10.0
3
+ Version: 1.11.0
4
4
  Summary: ACE-X DevKit - Development kit for building ACE-X drivers and plugins
5
5
  License: AGPL-3.0
6
6
  Keywords: automation,devkit,sdk,drivers,plugins
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "acex-devkit"
3
- version = "1.10.0"
3
+ version = "1.11.0"
4
4
  description = "ACE-X DevKit - Development kit for building ACE-X drivers and plugins"
5
5
  authors = ["Johan Lahti <johan.lahti@acebit.se>"]
6
6
  readme = "README.md"
@@ -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
- sampler_table_timeout: Optional[AttributeValue[int]] = None
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
- format: Optional[AttributeValue[NetflowFormat]] = None
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