1 # Copyright 2023 highstreet technologies GmbH
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
18 An abstract Class for all classes
23 from network_generation.model.python.type_definitions import (
33 # Define the ITop interface
39 administrativeState: AdministrativeState = None,
40 operationalState: OperationalState = None,
41 lifeCycleState: LifeCycleState = None,
42 alarmState: AlarmState = None,
43 usageState: UsageState = None,
44 utilization: Utilization = None,
48 self.administrativeState = administrativeState
49 self.operationalState = operationalState
50 self.lifeCycleState = lifeCycleState
51 self.alarmState = alarmState
52 self.usageState = usageState
53 self.utilization = utilization
56 # Define the Top class
58 def __init__(self, data: [dict[str, dict] | None] = None):
59 self._id = data["id"] if data and "id" in data else str(uuid.uuid4())
62 if data and "name" in data
63 else " ".join(["Name", "of", self._id])
65 self._administrativeState = (
66 data["administrativeState"]
67 if data and "administrativeState" in data
68 else AdministrativeState.LOCKED
70 self._operationalState = (
71 data["operationalState"]
72 if data and "operationalState" in data
73 else OperationalState.DISABLED
75 self._lifeCycleState = (
76 data["lifeCycleState"]
77 if data and "lifeCycleState" in data
78 else LifeCycleState.PLANNED
81 data["alarmState"] if data and "alarmState" in data else 0
85 if data and "usageState" in data
86 else UsageState.UNUSED
89 data["utilization"] if data and "utilization" in data else 0
97 def id(self, value: str):
101 def name(self) -> str:
105 def name(self, value: str):
109 def administrativeState(self) -> AdministrativeState:
110 return self._administrativeState
112 @administrativeState.setter
113 def administrativeState(self, value: AdministrativeState):
114 self._administrativeState = value
117 def operationalState(self) -> OperationalState:
118 return self._operationalState
120 @operationalState.setter
121 def operationalState(self, value: OperationalState):
122 self._operationalState = value
125 def lifeCycleState(self) -> LifeCycleState:
126 return self._lifeCycleState
128 @lifeCycleState.setter
129 def lifeCycleState(self, value: LifeCycleState):
130 self._lifeCycleState = value
133 def alarmState(self) -> AlarmState:
134 return self._alarmState
137 def alarmState(self, value: AlarmState):
138 self._alarmState = value
141 def usageState(self) -> UsageState:
142 return self._usageState
145 def usageState(self, value: UsageState):
146 self._usageState = value
149 def utilization(self) -> Utilization:
150 return self._utilization
153 def utilization(self, value: Utilization):
154 self._utilization = value
156 def json(self) -> dict[str, dict]:
160 "administrativeState": self.administrativeState.value,
161 "operationalState": self.operationalState.value,
162 "lifeCycleState": self.lifeCycleState.value,
163 "alarmState": self.alarmState,
164 "usageState": self.usageState.value,
165 "utilization": self.utilization,
168 def __str__(self) -> str:
169 return str(self.json())