acex-devkit 1.6.0__tar.gz → 1.6.2__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.6.0 → acex_devkit-1.6.2}/PKG-INFO +1 -1
  2. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/pyproject.toml +1 -1
  3. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/models/node_response.py +36 -16
  4. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/README.md +0 -0
  5. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/__init__.py +0 -0
  6. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/configdiffer/__init__.py +0 -0
  7. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/configdiffer/command.py +0 -0
  8. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/configdiffer/configdiffer.py +0 -0
  9. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/configdiffer/diff.py +0 -0
  10. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/configdiffer/old_configdiffer.py +0 -0
  11. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/configdiffer/old_diff.py +0 -0
  12. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/drivers/__init__.py +0 -0
  13. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/drivers/base.py +0 -0
  14. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/drivers/base_driver.py +0 -0
  15. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/exceptions/__init__.py +0 -0
  16. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/models/__init__.py +0 -0
  17. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/models/acl_model.py +0 -0
  18. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/models/attribute_value.py +0 -0
  19. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/models/composed_configuration.py +0 -0
  20. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/models/container_entry.py +0 -0
  21. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/models/external_value.py +0 -0
  22. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/models/logging.py +0 -0
  23. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/models/ned.py +0 -0
  24. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/src/acex_devkit/models/spanning_tree.py +0 -0
  25. {acex_devkit-1.6.0 → acex_devkit-1.6.2}/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.6.0
3
+ Version: 1.6.2
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.6.0"
3
+ version = "1.6.2"
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"
@@ -1,28 +1,48 @@
1
1
  from pydantic import BaseModel, Field
2
- from typing import Optional, Dict, Any
2
+ from typing import Annotated, Optional, Dict, Any, List, Literal, Union
3
3
  from enum import Enum
4
4
  from datetime import datetime
5
5
  from acex_devkit.models.composed_configuration import ComposedConfiguration
6
6
 
7
7
 
8
8
  class LogicalNodeResponse(BaseModel):
9
- id: Optional[int] = Field(None, title='Id')
10
- hostname: Optional[str] = Field('R1', title='Hostname')
11
- role: Optional[str] = Field('core', title='Role')
12
- site: Optional[str] = Field('HQ', title='Site')
13
- sequence: Optional[int] = Field(1, title='Sequence')
14
- configuration: Optional[ComposedConfiguration] = ComposedConfiguration()
15
- meta_data: Optional[Dict[str, Any]] = Field(None, title='Meta Data')
9
+ id: Optional[int] = None
10
+ hostname: Optional[str] = None
11
+ role: Optional[str] = None
12
+ site: Optional[str] = None
13
+ sequence: Optional[int] = None
14
+ configuration: Optional[ComposedConfiguration] = None
15
+ meta_data: Optional[Dict[str, Any]] = None
16
16
 
17
17
 
18
18
  class Asset(BaseModel):
19
19
  id: Optional[int] = None
20
- vendor: str = None
21
- serial_number: str
22
- os: str
23
- os_version: str
24
- hardware_model: str
20
+ type: Literal["asset"] = "asset"
21
+ vendor: Optional[str] = None
22
+ serial_number: Optional[str] = None
23
+ os: Optional[str] = None
24
+ os_version: Optional[str] = None
25
+ hardware_model: Optional[str] = None
26
+ ned_id: Optional[str] = None
27
+
28
+
29
+ class AssetClusterAsset(BaseModel):
30
+ id: Optional[int] = None
31
+ vendor: Optional[str] = None
32
+ serial_number: Optional[str] = None
33
+ os: Optional[str] = None
34
+ os_version: Optional[str] = None
35
+ hardware_model: Optional[str] = None
36
+ ned_id: Optional[str] = None
37
+ cluster_index: Optional[int] = None
38
+
39
+
40
+ class AssetCluster(BaseModel):
41
+ id: Optional[int] = None
42
+ type: Literal["asset_cluster"] = "asset_cluster"
43
+ name: Optional[str] = None
25
44
  ned_id: Optional[str] = None
45
+ assets: List[AssetClusterAsset] = []
26
46
 
27
47
 
28
48
  class AssetRefType(str, Enum):
@@ -39,9 +59,9 @@ class NodeStatus(str, Enum):
39
59
 
40
60
  class NodeBase(BaseModel):
41
61
  asset_ref_id: int
42
- asset_ref_type: AssetRefType = AssetRefType.asset
62
+ asset_ref_type: Optional[AssetRefType] = None
43
63
  logical_node_id: int
44
- status: NodeStatus = NodeStatus.planned
64
+ status: Optional[NodeStatus] = None
45
65
 
46
66
  class Node(NodeBase):
47
67
  id: Optional[int] = None
@@ -65,7 +85,7 @@ class NodeListItem(NodeBase):
65
85
 
66
86
  class NodeResponse(NodeBase):
67
87
  id: Optional[int] = None
68
- asset: Asset
88
+ asset: Annotated[Union[Asset, AssetCluster], Field(discriminator="type")]
69
89
  logical_node: LogicalNodeResponse
70
90
  created_at: datetime
71
91
  updated_at: Optional[datetime] = None
File without changes