acex-devkit 1.3.1__tar.gz → 1.3.3__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 (25) hide show
  1. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/PKG-INFO +1 -1
  2. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/pyproject.toml +1 -1
  3. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/models/composed_configuration.py +17 -1
  4. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/models/node_response.py +13 -0
  5. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/README.md +0 -0
  6. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/__init__.py +0 -0
  7. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/configdiffer/__init__.py +0 -0
  8. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/configdiffer/command.py +0 -0
  9. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/configdiffer/configdiffer.py +0 -0
  10. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/configdiffer/diff.py +0 -0
  11. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/configdiffer/old_configdiffer.py +0 -0
  12. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/configdiffer/old_diff.py +0 -0
  13. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/drivers/__init__.py +0 -0
  14. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/drivers/base.py +0 -0
  15. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/drivers/base_driver.py +0 -0
  16. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/exceptions/__init__.py +0 -0
  17. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/models/__init__.py +0 -0
  18. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/models/acl_model.py +0 -0
  19. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/models/attribute_value.py +0 -0
  20. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/models/container_entry.py +0 -0
  21. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/models/external_value.py +0 -0
  22. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/models/logging.py +0 -0
  23. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/models/ned.py +0 -0
  24. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/src/acex_devkit/models/spanning_tree.py +0 -0
  25. {acex_devkit-1.3.1 → acex_devkit-1.3.3}/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.3.1
3
+ Version: 1.3.3
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.3.1"
3
+ version = "1.3.3"
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"
@@ -130,6 +130,8 @@ class Interface(ContainerEntry, BaseModel):
130
130
  description: Optional[AttributeValue[str]] = None
131
131
  enabled: Optional[AttributeValue[bool]] = None
132
132
  ipv4: Optional[AttributeValue[str]] = None
133
+ redirects: Optional[AttributeValue[bool]] = None # Regarding IP redirects.
134
+ proxy_arp: Optional[AttributeValue[bool]] = None # Cisco true = yes / false = no, Juniper true = unrestricted / false = restricted
133
135
 
134
136
  type: Literal[
135
137
  "ethernetCsmacd",
@@ -164,6 +166,8 @@ class EthernetCsmacdInterface(Interface):
164
166
  voice_vlan: Optional[AttributeValue[int]] = None
165
167
  mtu: Optional[AttributeValue[int]] = None # No default set as it differs between devices and vendors
166
168
  negotiation: Optional[AttributeValue[bool]] = None
169
+ lldp_enabled: Optional[AttributeValue[bool]] = None
170
+ cdp_enabled: Optional[AttributeValue[bool]] = None
167
171
 
168
172
  # LACP relaterade attribut
169
173
  aggregate_id: Optional[AttributeValue[int]] = None
@@ -342,7 +346,7 @@ class SnmpView(ContainerEntry, BaseModel):
342
346
  class SnmpServer(ContainerEntry, BaseModel):
343
347
  identity_fields: ClassVar[tuple[str, ...]] = ("address",)
344
348
  name: Optional[AttributeValue[str]] = None
345
- address: AttributeValue[str]
349
+ address: Optional[AttributeValue[str]] = None
346
350
  port: Optional[AttributeValue[int]] = AttributeValue(value=162)
347
351
  enabled: Optional[AttributeValue[bool]] = AttributeValue(value=True)
348
352
  version: Optional[AttributeValue[Literal["v2c", "v3"]]] = None
@@ -652,6 +656,17 @@ class TripleA(BaseModel):
652
656
  authorization: aaaAuthorization = aaaAuthorization()
653
657
  accounting: aaaAccounting = aaaAccounting()
654
658
 
659
+ class VTPAttributes(BaseModel):
660
+ domain_name: Optional[AttributeValue[str]] = None
661
+ mode: Optional[AttributeValue[Literal["server", "client", "transparent", 'off']]] = None
662
+ primary_server: Optional[AttributeValue[bool]] = False # Cisco proprietary
663
+ version: Optional[AttributeValue[Literal[1, 2, 3]]] = None
664
+ password: Optional[AttributeValue[str]] = None
665
+ password_hashed: Optional[AttributeValue[str]] = None
666
+
667
+ class VTP(BaseModel):
668
+ config: VTPAttributes = VTPAttributes()
669
+
655
670
  class System(BaseModel):
656
671
  config: SystemConfig = SystemConfig()
657
672
  aaa: Optional[TripleA] = TripleA()
@@ -659,6 +674,7 @@ class System(BaseModel):
659
674
  ntp: Optional[Ntp] = Ntp()
660
675
  ssh: Optional[Ssh] = Ssh()
661
676
  snmp: Optional[Snmp] = Snmp()
677
+ vtp: Optional[VTP] = VTP()
662
678
 
663
679
  # For different types of interfaces that are fine for response model:
664
680
  InterfaceType = Union[
@@ -1,6 +1,7 @@
1
1
  from pydantic import BaseModel, Field
2
2
  from typing import Optional, Dict, Any
3
3
  from enum import Enum
4
+ from datetime import datetime
4
5
  from acex_devkit.models.composed_configuration import ComposedConfiguration
5
6
 
6
7
 
@@ -29,14 +30,26 @@ class AssetRefType(str, Enum):
29
30
  assetcluster = "assetcluster"
30
31
 
31
32
 
33
+ class NodeStatus(str, Enum):
34
+ planned = "planned"
35
+ init = "init"
36
+ active = "active"
37
+ decommissioned = "decommissioned"
38
+
39
+
32
40
  class NodeBase(BaseModel):
33
41
  asset_ref_id: int
34
42
  asset_ref_type: AssetRefType = AssetRefType.asset
35
43
  logical_node_id: int
44
+ status: NodeStatus = NodeStatus.planned
36
45
 
37
46
  class Node(NodeBase):
38
47
  id: Optional[int] = None
48
+ created_at: Optional[datetime] = None
49
+ updated_at: Optional[datetime] = None
39
50
 
40
51
  class NodeResponse(NodeBase):
41
52
  asset: Asset
42
53
  logical_node: LogicalNodeResponse
54
+ created_at: datetime
55
+ updated_at: Optional[datetime] = None
File without changes