Move all business logic code under template folder
[oam.git] / code / network-generator / network_generation / model / python / type_definitions.py
diff --git a/code/network-generator/network_generation/model/python/type_definitions.py b/code/network-generator/network_generation/model/python/type_definitions.py
new file mode 100644 (file)
index 0000000..43a7162
--- /dev/null
@@ -0,0 +1,84 @@
+# Copyright 2023 highstreet technologies GmbH
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#!/usr/bin/python
+
+"""
+A collection of TypeDefinitions
+"""
+from enum import Enum
+from network_generation.model.python.countries import Country
+
+
+# Define AdministrativeState enum
+class AdministrativeState(Enum):
+    LOCKED = "locked"
+    UNLOCKED = "unlocked"
+    SHUTTING_DOWN = "shutting down"
+
+
+# Define AlarmState type
+AlarmState = int
+
+# Define Address type
+AddressType = {
+    "street": str,
+    "building": str,
+    "room": str,
+    "city": str,
+    "zip": str,
+    "state": str,
+    "country": Country,
+}
+
+
+# Define OperationalState enum
+class OperationalState(Enum):
+    ENABLED = "enabled"
+    DISABLED = "disabled"
+
+
+# Define LifeCycleState enum
+class LifeCycleState(Enum):
+    PLANNED = "planned"
+    ORDERED = "ordered"
+    INSTALLED = "installed"
+    COMMISSIONED = "commissioned"
+    TO_BE_DESTROYED = "to be destroyed"
+    DESTROYED = "destroyed"
+
+
+# Define UsageState enum
+class UsageState(Enum):
+    USED = "used"
+    UNUSED = "unused"
+
+
+# Define Enumerate type
+def Enumerate(N, Acc=None):
+    if Acc is None:
+        Acc = []
+    if len(Acc) == N:
+        return Acc[-1]
+    return Enumerate(N, Acc + [len(Acc)])
+
+
+# Define Range type
+def Range(F, T) -> list[int]:
+    return [i for i in range(F, T + 1)]
+
+
+# Define Procent and Utilization types
+Procent = Range(0, 100)
+Utilization = Procent