Adding VNF workflow constants and data_classes

Change-Id: Ia32d3c996dafe238bb2cd6d825f28213bc0a2ef1
Signed-off-by: Gulsum Atici <gulsum.atici@canonical.com>
diff --git a/osm_common/dataclasses/temporal_dataclasses.py b/osm_common/dataclasses/temporal_dataclasses.py
index 9bd6378..953c95f 100644
--- a/osm_common/dataclasses/temporal_dataclasses.py
+++ b/osm_common/dataclasses/temporal_dataclasses.py
@@ -18,6 +18,48 @@
 from dataclasses import dataclass
 from enum import auto, IntEnum
 
+
+#######################################################################################
+# Defining States
+class VimState(IntEnum):
+    PROCESSING = auto()
+    ENABLED = auto()
+    ERROR = auto()
+
+
+class VimOperationState(IntEnum):
+    COMPLETED = auto()
+    FAILED = auto()
+
+
+class NsState(IntEnum):
+    PROCESSING = auto()
+    INSTANTIATED = auto()
+    ERROR = auto()
+
+
+class VnfLcmOperationState(IntEnum):
+    PROCESSING = auto()
+    COMPLETED = auto()
+    FAILED = auto()
+
+
+class VnfInstantiationState(IntEnum):
+    NOT_INSTANTIATED = auto()
+    INSTANTIATED = auto()
+
+
+class VnfState(IntEnum):
+    STOPPED = auto()
+    STARTED = auto()
+
+
+class LcmOperationState(IntEnum):
+    PROCESSING = auto()
+    COMPLETED = auto()
+    FAILED = auto()
+
+
 #######################################################################################
 # Workflow Dataclasses
 
@@ -118,16 +160,42 @@
     charm_info: CharmInfo
 
 
+@dataclass
+class VnfInstantiateInput:
+    """
+    Input dataclass for workflow that instantiates a VNF.
+
+    Attributes:
+    -----------
+    vnfr_uuid : str
+        The UUID of the VNF which is stored in the OSM vnfrs
+        collection in Mongo.
+
+    """
+
+    vnfr_uuid: str
+
+
+@dataclass
+class PrepareVnfInput:
+    """
+    Input dataclass for workflow that instantiates a VNF.
+
+    Attributes:
+    -----------
+    vnfr_uuid : str
+        The UUID of the VNF which is stored in the OSM vnfrs
+        collection in Mongo.
+
+    """
+
+    vnfr_uuid: str
+
+
 #######################################################################################
 # Activity Dataclasses
 
 
-class LcmOperationState(IntEnum):
-    PROCESSING = auto()
-    COMPLETED = auto()
-    FAILED = auto()
-
-
 @dataclass
 class UpdateLcmOperationStateInput:
     """
@@ -181,12 +249,6 @@
     vim_uuid: str
 
 
-class VimState(IntEnum):
-    PROCESSING = auto()
-    ENABLED = auto()
-    ERROR = auto()
-
-
 @dataclass
 class UpdateVimStateInput:
     """
@@ -213,11 +275,6 @@
     message: str
 
 
-class VimOperationState(IntEnum):
-    COMPLETED = auto()
-    FAILED = auto()
-
-
 @dataclass
 class UpdateVimOperationStateInput:
     """
@@ -281,12 +338,6 @@
     ns_uuid: str
 
 
-class NsState(IntEnum):
-    PROCESSING = auto()
-    INSTANTIATED = auto()
-    ERROR = auto()
-
-
 @dataclass
 class UpdateNsStateInput:
     """
@@ -330,3 +381,72 @@
 
     vim_uuid: str
     model_name: str
+
+
+@dataclass
+class ChangeNFStateInput:
+    """
+    Input dataclass for creating a Juju Model.
+
+    Attributes:
+    -----------
+    vnfr_uuid : str
+        The UUID of the VNF which is stored in the OSM vnfrs
+        collection in Mongo.
+
+    nf_state : VnfState
+        A representation of the VNF state (STOPPED or STARTED).
+    """
+
+    vnfr_uuid: str
+    state: VnfState
+
+
+@dataclass
+class ChangeNFInstantiationStateInput:
+    """
+    Input dataclass for creating a Juju Model.
+
+    Attributes:
+    -----------
+    vnfr_uuid : str
+        The UUID of the VNF which is stored in the OSM vnfrs
+        collection in Mongo.
+
+    nf_instantiation_state : VnfInstantiationState
+        A representation of the VNF instantiation state (NOT_INSTANTIATED or INSTANTIATED).
+
+    """
+
+    vnfr_uuid: str
+    state: VnfInstantiationState
+
+
+@dataclass
+class GetTaskQueueInput:
+    """
+    Input dataclass for creating a Juju Model.
+
+    Attributes:
+    -----------
+    vnfr_uuid : str
+        The UUID of the VNF which is stored in the OSM vnfrs
+        collection in Mongo.
+
+    """
+
+    vnfr_uuid: str
+
+
+@dataclass
+class GetTaskQueueOutput:
+    """
+    Output dataclass for get task queue activity.
+
+    Attributes:
+    -----------
+    task_queue : str
+        Name of the queue which is used to Deploy VNF.
+    """
+
+    task_queue: str