OSMENG-1155: Implementation of Constants and Dataclasses

Add implementation for workflows and activities

Change-Id: I58226765c41d18821724ac5763a3fe390c371ca6
Signed-off-by: Dario Faccin <dario.faccin@canonical.com>
Signed-off-by: Mark Beierl <mark.beierl@canonical.com>
diff --git a/osm_lcm/tests/test_charm_info_utils.py b/osm_lcm/tests/test_charm_info_utils.py
index 8aca9dc..1b57a19 100644
--- a/osm_lcm/tests/test_charm_info_utils.py
+++ b/osm_lcm/tests/test_charm_info_utils.py
@@ -14,7 +14,7 @@
 
 from unittest import TestCase
 from osm_lcm.temporal.juju_paas_activities import CharmInfoUtils
-from osm_common.dataclasses.temporal_dataclasses import CharmInfo
+from osm_common.temporal.dataclasses_common import CharmInfo
 import yaml
 
 vdu_nominal = """
diff --git a/osm_lcm/tests/test_juju_paas_activities.py b/osm_lcm/tests/test_juju_paas_activities.py
index 1aae706..bac5619 100644
--- a/osm_lcm/tests/test_juju_paas_activities.py
+++ b/osm_lcm/tests/test_juju_paas_activities.py
@@ -25,14 +25,14 @@
 from juju.model import Model
 from juju.errors import JujuError
 from juju.unit import Unit
-from osm_common.dataclasses.temporal_dataclasses import (
-    CharmInfo,
-    CheckCharmStatusInput,
-    ModelInfo,
-    TestVimConnectivityInput,
-    VduComputeConstraints,
-    VduInstantiateInput,
+from osm_lcm.temporal.juju_paas_activities import (
+    TestVimConnectivityImpl,
+    DeployCharmImpl,
+    CreateModelImpl,
+    CheckCharmStatusImpl,
 )
+from osm_common.temporal.workflows.vdu import VduInstantiateWorkflow
+from osm_common.temporal.dataclasses_common import CharmInfo, VduComputeConstraints
 from osm_common.dbbase import DbException
 from osm_lcm.temporal.juju_paas_activities import JujuPaasConnector
 from parameterized import parameterized
@@ -122,12 +122,13 @@
 
 
 class TestCreateModel(TestJujuPaasActivitiesBase):
-    model_info = ModelInfo(vim_content["_id"], namespace)
+    model_info = CreateModelImpl.Input(vim_content["_id"], namespace)
 
     def setUp(self):
         super().setUp()
         self._api_endpoints = []
         self.controller.api_endpoints = self.api_endpoints
+        self.create_model = CreateModelImpl(self.db, self.juju_paas)
 
     @property
     async def api_endpoints(self):
@@ -137,7 +138,7 @@
         self.db.get_one.side_effect = [vim_content]
         self.juju_paas._decrypt_password = Mock()
         self.juju_paas._decrypt_password.side_effect = ["password"]
-        await self.env.run(self.juju_paas.create_model, self.model_info)
+        await self.env.run(self.create_model, self.model_info)
         self.controller.add_model.assert_called_once_with(
             self.model_info.model_name,
             config=ANY,
@@ -147,7 +148,7 @@
 
     async def test_create_model_already_exists(self):
         self.controller.list_models.return_value = [self.model_info.model_name]
-        await self.env.run(self.juju_paas.create_model, self.model_info)
+        await self.env.run(self.create_model, self.model_info)
         self.controller.add_model.assert_not_called()
 
 
@@ -158,6 +159,7 @@
         self.heartbeat_count = 0
         self.heartbeat_maximum = 5
         self.add_application("application")
+        self.check_charm_status = CheckCharmStatusImpl(self.juju_paas)
 
     def on_heartbeat(self, *args, **kwargs):
         self.heartbeat_count += 1
@@ -187,7 +189,7 @@
     async def test_check_charm_status_application_with_one_unit(
         self, _, app_events, unit_events, heartbeat_maximum
     ):
-        arg = CheckCharmStatusInput(
+        arg = CheckCharmStatusImpl.Input(
             application_name=self.application_name,
             model_name="model",
             vim_uuid="vim-uuid",
@@ -202,10 +204,10 @@
 
         type(units[0]).workload_status = mock.PropertyMock(side_effect=unit_events)
 
-        await self.env.run(self.juju_paas.check_charm_status, arg)
+        await self.env.run(self.check_charm_status.__call__, arg)
 
     async def test_check_charm_status_cancel(self):
-        arg = CheckCharmStatusInput(
+        arg = CheckCharmStatusImpl.Input(
             application_name=self.application_name,
             model_name="model",
             vim_uuid="vim-uuid",
@@ -223,10 +225,10 @@
         type(units[0]).workload_status = mock.PropertyMock(side_effect=[])
 
         with self.assertRaises(asyncio.exceptions.CancelledError):
-            await self.env.run(self.juju_paas.check_charm_status, arg)
+            await self.env.run(self.check_charm_status.__call__, arg)
 
     async def test_check_charm_status_multiple_units(self):
-        arg = CheckCharmStatusInput(
+        arg = CheckCharmStatusImpl.Input(
             application_name=self.application_name,
             model_name="model",
             vim_uuid="vim-uuid",
@@ -250,7 +252,7 @@
             side_effect=["maintenance", "active", "maintenance", "active"]
         )
 
-        await self.env.run(self.juju_paas.check_charm_status, arg)
+        await self.env.run(self.check_charm_status.__call__, arg)
 
 
 class TestDeployCharm(TestJujuPaasActivitiesBase):
@@ -261,23 +263,31 @@
     cloud_other = "other"
     config = {"domain_name1": "osm.org", "domain_name2": "osm.com"}
     charm_info = CharmInfo(app_name, channel, entity_url)
-    vdu_instantiate_input_with_constraints_k8s_without_config = VduInstantiateInput(
-        vim_content["_id"],
-        namespace,
-        charm_info,
-        VduComputeConstraints(mem=1, cores=1),
-        cloud_k8s,
-        {},
+    vdu_instantiate_input_with_constraints_k8s_without_config = (
+        VduInstantiateWorkflow.Input(
+            vim_content["_id"],
+            namespace,
+            charm_info,
+            VduComputeConstraints(mem=1, cores=1),
+            cloud_k8s,
+            {},
+        )
     )
-    vdu_instantiate_input_with_constraints_k8s_with_config = VduInstantiateInput(
-        vim_content["_id"],
-        namespace,
-        charm_info,
-        VduComputeConstraints(mem=1, cores=1),
-        cloud_k8s,
-        config,
+    vdu_instantiate_input_with_constraints_k8s_with_config = (
+        VduInstantiateWorkflow.Input(
+            vim_content["_id"],
+            namespace,
+            charm_info,
+            VduComputeConstraints(mem=1, cores=1),
+            cloud_k8s,
+            config,
+        )
     )
 
+    def setUp(self) -> None:
+        super().setUp()
+        self.deploy_charm = DeployCharmImpl(self.juju_paas)
+
     @parameterized.expand(
         [
             (
@@ -294,7 +304,7 @@
             ),
             (
                 "k8s_cloud_with_config_without_constraints",
-                VduInstantiateInput(
+                VduInstantiateWorkflow.Input(
                     vim_content["_id"],
                     namespace,
                     charm_info,
@@ -307,7 +317,7 @@
             ),
             (
                 "other_cloud_without_config_with_constraints",
-                VduInstantiateInput(
+                VduInstantiateWorkflow.Input(
                     vim_content["_id"],
                     namespace,
                     charm_info,
@@ -320,7 +330,7 @@
             ),
             (
                 "other_cloud_without_config_without_constraints",
-                VduInstantiateInput(
+                VduInstantiateWorkflow.Input(
                     vim_content["_id"],
                     namespace,
                     charm_info,
@@ -337,7 +347,7 @@
         self, _, vdu_instantiate_input, expected_constraint, expected_config
     ):
         await self.env.run(
-            self.juju_paas.deploy_charm,
+            self.deploy_charm,
             vdu_instantiate_input,
         )
         self.model.deploy.assert_called_once_with(
@@ -352,7 +362,7 @@
         self.add_application(self.app_name)
         with self.assertRaises(Exception) as err:
             await self.env.run(
-                self.juju_paas.deploy_charm,
+                self.deploy_charm,
                 self.vdu_instantiate_input_with_constraints_k8s_without_config,
             )
         self.model.deploy.assert_not_called()
@@ -365,7 +375,7 @@
         self.controller.get_model.side_effect = JujuError()
         with self.assertRaises(JujuError):
             await self.env.run(
-                self.juju_paas.deploy_charm,
+                self.deploy_charm,
                 self.vdu_instantiate_input_with_constraints_k8s_without_config,
             )
         self.model.deploy.assert_not_called()
@@ -417,11 +427,16 @@
 
 
 class TestTestVimConnectivity(TestJujuPaasActivitiesBase):
-    test_vim_connectivity_input = TestVimConnectivityInput(vim_content["_id"])
+    test_vim_connectivity_input = TestVimConnectivityImpl.Input(vim_content["_id"])
+
+    def setUp(self) -> None:
+        super().setUp()
+        self.test_vim_connectivity = TestVimConnectivityImpl(self.juju_paas)
 
     async def test_connectivity_nominal_case(self):
         await self.env.run(
-            self.juju_paas.test_vim_connectivity, self.test_vim_connectivity_input
+            self.test_vim_connectivity,
+            self.test_vim_connectivity_input,
         )
 
     async def test_connectivity_raises_exception(self):
@@ -429,5 +444,6 @@
         self.juju_paas._get_controller.side_effect = JujuError()
         with self.assertRaises(JujuError):
             await self.env.run(
-                self.juju_paas.test_vim_connectivity, self.test_vim_connectivity_input
+                self.test_vim_connectivity,
+                self.test_vim_connectivity_input,
             )
diff --git a/osm_lcm/tests/test_ns_activities.py b/osm_lcm/tests/test_ns_activities.py
index c3176ee..833f440 100644
--- a/osm_lcm/tests/test_ns_activities.py
+++ b/osm_lcm/tests/test_ns_activities.py
@@ -16,17 +16,13 @@
 
 import asynctest
 
-from osm_common.dataclasses.temporal_dataclasses import (
-    GetNsRecordInput,
-    GetVnfDetailsInput,
-)
+from osm_lcm.temporal.ns_activities import GetNsRecordImpl, GetVnfDetailsImpl
 from osm_common.dbbase import DbException
 from temporalio.testing import ActivityEnvironment
-from osm_lcm.temporal.ns_activities import NsOperations
 from unittest.mock import Mock
 
 ns_uuid = "00000000-0000-0000-0000-000000000000"
-get_vnf_details_input = GetVnfDetailsInput(ns_uuid=ns_uuid)
+get_vnf_details_input = GetVnfDetailsImpl.Input(ns_uuid=ns_uuid)
 sample_vnf_details = [
     {
         "id": "00000000-0000-0000-0000-000000000000",
@@ -56,13 +52,11 @@
     def setUp(self):
         self.db = Mock()
         self.env = ActivityEnvironment()
-        self.ns_operations_activity = NsOperations(self.db)
+        self.get_vnf_details_impl = GetVnfDetailsImpl(self.db)
 
     async def test_activity__succeded__get_expected_result(self):
         self.db.get_list.return_value = sample_vnf_details
-        result = await self.env.run(
-            self.ns_operations_activity.get_vnf_details, get_vnf_details_input
-        )
+        result = await self.env.run(self.get_vnf_details_impl, get_vnf_details_input)
 
         self.assertEqual(
             result.vnf_details,
@@ -75,22 +69,20 @@
     async def test_activity__failed__raise_db_exception(self):
         self.db.get_list.side_effect = DbException("not found.")
         with self.assertRaises(DbException):
-            await self.env.run(
-                self.ns_operations_activity.get_vnf_details, get_vnf_details_input
-            )
+            await self.env.run(self.get_vnf_details_impl, get_vnf_details_input)
 
 
 class TestGetNsRecord(asynctest.TestCase):
     async def setUp(self):
         self.db = Mock()
         self.env = ActivityEnvironment()
-        self.ns_operations_activity = NsOperations(self.db)
+        self.get_ns_record_impl = GetNsRecordImpl(self.db)
 
     async def test_activity__succeeded__get_expected_result(self):
         self.db.get_one.return_value = sample_nsr
         activity_result = await self.env.run(
-            self.ns_operations_activity.get_ns_record,
-            GetNsRecordInput(nsr_uuid=sample_nsr["_id"]),
+            self.get_ns_record_impl,
+            GetNsRecordImpl.Input(nsr_uuid=sample_nsr["_id"]),
         )
         self.assertEqual(activity_result.nsr, sample_nsr)
 
@@ -98,6 +90,6 @@
         self.db.get_one.side_effect = TestException("Can not connect to Database.")
         with self.assertRaises(TestException):
             await self.env.run(
-                self.ns_operations_activity.get_ns_record,
-                GetNsRecordInput(nsr_uuid=sample_nsr["_id"]),
+                self.get_ns_record_impl,
+                GetNsRecordImpl.Input(nsr_uuid=sample_nsr["_id"]),
             )
diff --git a/osm_lcm/tests/test_ns_workflows.py b/osm_lcm/tests/test_ns_workflows.py
index e5f38ef..56852df 100644
--- a/osm_lcm/tests/test_ns_workflows.py
+++ b/osm_lcm/tests/test_ns_workflows.py
@@ -18,29 +18,25 @@
 from datetime import timedelta
 from unittest.mock import Mock, patch
 
-from osm_common.dataclasses.temporal_dataclasses import (
-    GetNsRecordInput,
-    GetNsRecordOutput,
-    GetVnfDetailsInput,
-    GetVnfDetailsOutput,
-    LcmOperationState,
-    ModelInfo,
-    NsLcmOperationInput,
-    NsState,
-    UpdateLcmOperationStateInput,
-    UpdateNsStateInput,
-    VnfInstantiateInput,
+from osm_common.temporal_task_queues.task_queues_mappings import LCM_TASK_QUEUE
+from osm_common.temporal.activities.lcm import (
+    UpdateNsLcmOperationState,
 )
-from osm_common.temporal_constants import (
-    ACTIVITY_CREATE_MODEL,
-    ACTIVITY_GET_NS_RECORD,
-    ACTIVITY_GET_VNF_DETAILS,
-    ACTIVITY_UPDATE_LCM_OPERATION_STATE,
-    ACTIVITY_UPDATE_NS_STATE,
-    LCM_TASK_QUEUE,
-    WORKFLOW_VNF_INSTANTIATE,
+from osm_common.temporal.activities.ns import (
+    GetNsRecord,
+    GetVnfDetails,
+    UpdateNsState,
 )
-from osm_lcm.temporal.ns_workflows import NsInstantiateWorkflow
+from osm_common.temporal.activities.paas import (
+    CreateModel,
+)
+from osm_common.temporal.workflows.vnf import VnfInstantiateWorkflow
+from osm_common.temporal.workflows.lcm import LcmOperationWorkflow
+from osm_common.temporal.states import LcmOperationState, NsState
+from osm_lcm.temporal.ns_workflows import (
+    NsInstantiateWorkflow,
+    NsInstantiateWorkflowImpl,
+)
 from temporalio import activity, workflow
 from temporalio.client import WorkflowFailureError
 from temporalio.common import RetryPolicy
@@ -110,61 +106,61 @@
     pass
 
 
-@activity.defn(name=ACTIVITY_CREATE_MODEL)
-async def mock_create_model(create_model_input: ModelInfo) -> None:
+@activity.defn(name=CreateModel.__name__)
+async def mock_create_model(create_model_input: CreateModel.Input) -> None:
     pass
 
 
-@activity.defn(name=ACTIVITY_CREATE_MODEL)
-async def mock_create_model_raises(create_model_input: ModelInfo) -> None:
-    raise TestException(f"{ACTIVITY_CREATE_MODEL} failed.")
+@activity.defn(name=CreateModel.__name__)
+async def mock_create_model_raises(create_model_input: CreateModel.Input) -> None:
+    raise TestException(f"{CreateModel.__name__} failed.")
 
 
-@activity.defn(name=ACTIVITY_GET_VNF_DETAILS)
+@activity.defn(name=GetVnfDetails.__name__)
 async def mock_get_vnf_details(
-    get_vnf_details_input: GetVnfDetailsInput,
-) -> GetVnfDetailsOutput:
-    return GetVnfDetailsOutput(vnf_details=vnf_details)
+    get_vnf_details_input: GetVnfDetails.Input,
+) -> GetVnfDetails.Output:
+    return GetVnfDetails.Output(vnf_details=vnf_details)
 
 
-@activity.defn(name=ACTIVITY_GET_VNF_DETAILS)
+@activity.defn(name=GetVnfDetails.__name__)
 async def mock_get_vnf_details_raises(
-    et_vnf_details_input: GetVnfDetailsInput,
-) -> GetVnfDetailsOutput:
-    raise TestException(f"{ACTIVITY_GET_VNF_DETAILS} failed.")
+    et_vnf_details_input: GetVnfDetails.Input,
+) -> GetVnfDetails.Output:
+    raise TestException(f"{GetVnfDetails.__name__} failed.")
 
 
-@activity.defn(name=ACTIVITY_GET_NS_RECORD)
+@activity.defn(name=GetNsRecord.__name__)
 async def mock_get_ns_record(
-    get_ns_record_input: GetNsRecordInput,
-) -> GetNsRecordOutput:
-    return GetNsRecordOutput(nsr=sample_nsr)
+    get_ns_record_input: GetNsRecord.Input,
+) -> GetNsRecord.Output:
+    return GetNsRecord.Output(nsr=sample_nsr)
 
 
-@activity.defn(name=ACTIVITY_GET_NS_RECORD)
+@activity.defn(name=GetNsRecord.__name__)
 async def mock_get_ns_record_raise_exception(
-    get_ns_record_input: GetNsRecordInput,
-) -> GetNsRecordOutput:
-    raise TestException(f"{ACTIVITY_GET_NS_RECORD} failed.")
+    get_ns_record_input: GetNsRecord.Input,
+) -> GetNsRecord.Output:
+    raise TestException(f"{GetNsRecord.__name__} failed.")
 
 
-@workflow.defn(name=WORKFLOW_VNF_INSTANTIATE, sandboxed=SANDBOXED)
+@workflow.defn(name=VnfInstantiateWorkflow.__name__, sandboxed=SANDBOXED)
 class MockVnfInstantiateWorkflow:
     @workflow.run
-    async def run(self, input: VnfInstantiateInput) -> None:
+    async def run(self, input: VnfInstantiateWorkflow.Input) -> None:
         pass
 
 
-@workflow.defn(name=WORKFLOW_VNF_INSTANTIATE, sandboxed=SANDBOXED)
+@workflow.defn(name=VnfInstantiateWorkflow.__name__, sandboxed=SANDBOXED)
 class MockVnfInstantiateWorkflowFailed:
     @workflow.run
-    async def run(self, input: VnfInstantiateInput) -> None:
+    async def run(self, input: VnfInstantiateWorkflow.Input) -> None:
         raise ChildWorkflowError(
-            message=f"{WORKFLOW_VNF_INSTANTIATE} child workflow failed.",
+            message=f"{VnfInstantiateWorkflow.__name__} child workflow failed.",
             namespace="default",
             workflow_id="123",
             run_id="1",
-            workflow_type=WORKFLOW_VNF_INSTANTIATE,
+            workflow_type=VnfInstantiateWorkflow.__name__,
             initiated_event_id=0,
             started_event_id=0,
             retry_state=RetryState.NON_RETRYABLE_FAILURE,
@@ -172,11 +168,11 @@
 
 
 @patch(
-    "osm_lcm.temporal.ns_workflows.NsInstantiateWorkflow._get_namespace",
+    "osm_lcm.temporal.ns_workflows.NsInstantiateWorkflowImpl._get_namespace",
     new=mock_get_namespace,
 )
 class TestNsInstantiateWorkflow(asynctest.TestCase):
-    input = NsLcmOperationInput(
+    input = LcmOperationWorkflow.Input(
         nslcmop={
             "_id": "1234",
             "nsInstanceId": ns_uuid,
@@ -184,15 +180,15 @@
         }
     )
 
-    @activity.defn(name=ACTIVITY_UPDATE_LCM_OPERATION_STATE)
+    @activity.defn(name=UpdateNsLcmOperationState.__name__)
     async def mock_update_lcm_operation_state(
         self,
-        data: UpdateLcmOperationStateInput,
+        data: UpdateNsLcmOperationState.Input,
     ) -> None:
         self.mock_update_lcm_operation_state_tracker(data)
 
-    @activity.defn(name=ACTIVITY_UPDATE_NS_STATE)
-    async def mock_update_ns_state(self, data: UpdateNsStateInput) -> None:
+    @activity.defn(name=UpdateNsState.__name__)
+    async def mock_update_ns_state(self, data: UpdateNsState.Input) -> None:
         self.mock_update_ns_state_tracker(data)
 
     async def setUp(self):
@@ -200,7 +196,7 @@
         self.client = self.env.client
         self.mock_update_lcm_operation_state_tracker = Mock()
         self.mock_update_ns_state_tracker = Mock()
-        self.workflows = [NsInstantiateWorkflow, MockVnfInstantiateWorkflow]
+        self.workflows = [NsInstantiateWorkflowImpl, MockVnfInstantiateWorkflow]
         self.task_queue = LCM_TASK_QUEUE
         mock_get_namespace.return_value = model_name
 
@@ -215,7 +211,7 @@
 
     async def execute_workflow(self):
         return await self.client.execute_workflow(
-            NsInstantiateWorkflow,
+            NsInstantiateWorkflow.__name__,
             arg=self.input,
             id=self.input.nslcmop["nsInstanceId"],
             task_queue=self.task_queue,
@@ -329,7 +325,7 @@
                 await self.execute_workflow()
         self.assert_ns_error_details(
             self.mock_update_ns_state_tracker.call_args_list,
-            ["TestException: create-model failed."],
+            [f"TestException: {CreateModel.__name__} failed."],
         )
 
     async def test_instantiate_workflow__get_ns_record_activity_failed__error_details_expected(
@@ -349,7 +345,7 @@
                 await self.execute_workflow()
         self.assert_ns_error_details(
             self.mock_update_ns_state_tracker.call_args_list,
-            ["TestException: get-ns-record failed."],
+            [f"TestException: {GetNsRecord.__name__} failed."],
         )
 
     async def test_instantiate_workflow__get_ns_record_activity_failed__raise_activity_error(
@@ -386,7 +382,7 @@
                 await self.execute_workflow()
         self.assert_ns_error_details(
             self.mock_update_ns_state_tracker.call_args_list,
-            ["TestException: get-vnf-details failed."],
+            [f"TestException: {GetVnfDetails.__name__} failed."],
         )
 
     async def test_instantiate_workflow__get_vnf_details_activity_failed__raise_activity_error(
@@ -406,7 +402,7 @@
                 await self.execute_workflow()
         self.assertTrue(isinstance(err.exception.cause, ActivityError))
 
-    @patch("osm_lcm.temporal.ns_workflows.NsInstantiateWorkflow.get_vnf_config")
+    @patch("osm_lcm.temporal.ns_workflows.NsInstantiateWorkflowImpl.get_vnf_config")
     async def test_instantiate_workflow__get_vnf_config_failed__workflow_times_out(
         self, mock_get_vnf_config
     ):
@@ -426,7 +422,7 @@
                 await self.execute_workflow()
         self.assertTrue(isinstance(err.exception.cause, TimeoutError))
 
-    @patch("osm_lcm.temporal.ns_workflows.NsInstantiateWorkflow.get_vnf_config")
+    @patch("osm_lcm.temporal.ns_workflows.NsInstantiateWorkflowImpl.get_vnf_config")
     async def test_instantiate_workflow__get_vnf_config_failed__update_ns_state(
         self, mock_get_vnf_config
     ):
@@ -448,7 +444,7 @@
             self.mock_update_ns_state_tracker.call_args_list, [NsState.INSTANTIATED]
         )
 
-    @patch("osm_lcm.temporal.ns_workflows.NsInstantiateWorkflow.get_vnf_config")
+    @patch("osm_lcm.temporal.ns_workflows.NsInstantiateWorkflowImpl.get_vnf_config")
     async def test_instantiate_workflow__get_vnf_config_failed__update_lcm_op_state(
         self, mock_get_vnf_config
     ):
@@ -484,7 +480,7 @@
         with self.assertRaises(WorkflowFailureError) as err:
             async with self.env, self.get_worker(
                 self.task_queue,
-                [NsInstantiateWorkflow, MockVnfInstantiateWorkflowFailed],
+                [NsInstantiateWorkflowImpl, MockVnfInstantiateWorkflowFailed],
                 activities,
             ):
                 await self.execute_workflow()
@@ -503,13 +499,13 @@
         with self.assertRaises(WorkflowFailureError):
             async with self.env, self.get_worker(
                 self.task_queue,
-                [NsInstantiateWorkflow, MockVnfInstantiateWorkflowFailed],
+                [NsInstantiateWorkflowImpl, MockVnfInstantiateWorkflowFailed],
                 activities,
             ):
                 await self.execute_workflow()
         self.assert_ns_error_details(
             self.mock_update_ns_state_tracker.call_args_list,
-            ["vnf-instantiate child workflow failed."],
+            [f"{VnfInstantiateWorkflow.__name__} child workflow failed."],
         )
 
     async def test_instantiate_workflow__child_wf_failed__update_ns_state(
@@ -525,7 +521,7 @@
         with self.assertRaises(WorkflowFailureError):
             async with self.env, self.get_worker(
                 self.task_queue,
-                [NsInstantiateWorkflow, MockVnfInstantiateWorkflowFailed],
+                [NsInstantiateWorkflowImpl, MockVnfInstantiateWorkflowFailed],
                 activities,
             ):
                 await self.execute_workflow()
@@ -547,7 +543,7 @@
         with self.assertRaises(WorkflowFailureError):
             async with self.env, self.get_worker(
                 self.task_queue,
-                [NsInstantiateWorkflow, MockVnfInstantiateWorkflowFailed],
+                [NsInstantiateWorkflowImpl, MockVnfInstantiateWorkflowFailed],
                 activities,
             ):
                 await self.execute_workflow()
@@ -588,7 +584,7 @@
                 }
             ],
         }
-        result = NsInstantiateWorkflow.get_vnf_config(
+        result = NsInstantiateWorkflowImpl.get_vnf_config(
             vnf_member_index_ref_1, sample_nsr
         )
         self.assertEqual(result, expected_config)
@@ -596,15 +592,15 @@
     def test_vnf_config__nsr_does_not_have_config__expected_no_config(self):
         nsr = copy.deepcopy(sample_nsr)
         nsr["instantiate_params"] = {}
-        result = NsInstantiateWorkflow.get_vnf_config(vnf_member_index_ref_1, nsr)
+        result = NsInstantiateWorkflowImpl.get_vnf_config(vnf_member_index_ref_1, nsr)
         self.assertEqual(result, {})
 
     def test_vnf_config__empty_vnf_member_index_ref__expected_no_config(self):
-        result = NsInstantiateWorkflow.get_vnf_config("", sample_nsr)
+        result = NsInstantiateWorkflowImpl.get_vnf_config("", sample_nsr)
         self.assertEqual(result, {})
 
     def test_vnf_config__nsr_config_does_not_match_with_vnf__expected_no_config(self):
-        result = NsInstantiateWorkflow.get_vnf_config(
+        result = NsInstantiateWorkflowImpl.get_vnf_config(
             vnf_member_index_ref_2, sample_nsr
         )
         self.assertEqual(result, {})
diff --git a/osm_lcm/tests/test_vdu_workflow.py b/osm_lcm/tests/test_vdu_workflow.py
index 333f1de..988618f 100644
--- a/osm_lcm/tests/test_vdu_workflow.py
+++ b/osm_lcm/tests/test_vdu_workflow.py
@@ -17,17 +17,13 @@
 import asynctest
 from datetime import timedelta
 
-from osm_common.dataclasses.temporal_dataclasses import (
-    CharmInfo,
-    VduInstantiateInput,
-    VduComputeConstraints,
+from osm_common.temporal_task_queues.task_queues_mappings import LCM_TASK_QUEUE
+from osm_common.temporal.activities.paas import (
+    DeployCharm,
+    CheckCharmStatus,
 )
-from osm_common.temporal_constants import (
-    ACTIVITY_DEPLOY_CHARM,
-    ACTIVITY_CHECK_CHARM_STATUS,
-    LCM_TASK_QUEUE,
-)
-from osm_lcm.temporal.vdu_workflows import CheckCharmStatusInput, VduInstantiateWorkflow
+from osm_common.temporal.dataclasses_common import CharmInfo, VduComputeConstraints
+from osm_lcm.temporal.vdu_workflows import VduInstantiateWorkflowImpl
 from temporalio import activity
 from temporalio.client import WorkflowFailureError
 from temporalio.exceptions import (
@@ -44,26 +40,26 @@
     pass
 
 
-@activity.defn(name=ACTIVITY_DEPLOY_CHARM)
-async def deploy_charm_mocked(deploy_charm_input: VduInstantiateInput) -> None:
+@activity.defn(name=DeployCharm.__name__)
+async def deploy_charm_mocked(deploy_charm_input: DeployCharm.Input) -> None:
     pass
 
 
-@activity.defn(name=ACTIVITY_DEPLOY_CHARM)
-async def deploy_charm_mocked_raises(deploy_charm_input: VduInstantiateInput) -> None:
-    raise TestException(f"{ACTIVITY_DEPLOY_CHARM} failed.")
+@activity.defn(name=DeployCharm.__name__)
+async def deploy_charm_mocked_raises(deploy_charm_input: DeployCharm.Input) -> None:
+    raise TestException(f"{DeployCharm.__name__} failed.")
 
 
-@activity.defn(name=ACTIVITY_CHECK_CHARM_STATUS)
-async def check_charm_status_mocked(check_charm_status: CheckCharmStatusInput) -> None:
+@activity.defn(name=CheckCharmStatus.__name__)
+async def check_charm_status_mocked(check_charm_status: CheckCharmStatus.Input) -> None:
     pass
 
 
-@activity.defn(name=ACTIVITY_CHECK_CHARM_STATUS)
+@activity.defn(name=CheckCharmStatus.__name__)
 async def check_charm_status_mocked_raises(
-    check_charm_status: CheckCharmStatusInput,
+    check_charm_status: CheckCharmStatus.Input,
 ) -> None:
-    raise TestException(f"{ACTIVITY_CHECK_CHARM_STATUS} failed.")
+    raise TestException(f"{CheckCharmStatus.__name__} failed.")
 
 
 class TestVduWorkflows(asynctest.TestCase):
@@ -77,10 +73,10 @@
     config = {"domain_name1": "osm.org", "domain_name2": "osm.com"}
     constraints = VduComputeConstraints(mem=1, cores=1)
     charm_info = CharmInfo(app_name, channel, entity_url)
-    vdu_instantiate_input_without_config = VduInstantiateInput(
+    vdu_instantiate_input_without_config = VduInstantiateWorkflowImpl.Input(
         vim_id, namespace, charm_info, constraints, cloud, {}
     )
-    vdu_instantiate_input_with_config = VduInstantiateInput(
+    vdu_instantiate_input_with_config = VduInstantiateWorkflowImpl.Input(
         vim_id, namespace, charm_info, constraints, cloud, config
     )
     workflow_id = namespace + "-" + app_name
@@ -93,7 +89,7 @@
         return Worker(
             self.client,
             task_queue=self.task_queue_name,
-            workflows=[VduInstantiateWorkflow],
+            workflows=[VduInstantiateWorkflowImpl],
             activities=activities,
             debug_mode=True,
         )
@@ -102,7 +98,7 @@
         activities = [deploy_charm_mocked, check_charm_status_mocked]
         async with self.env, self.get_worker(activities):
             await self.client.execute_workflow(
-                VduInstantiateWorkflow.run,
+                VduInstantiateWorkflowImpl.run,
                 arg=self.vdu_instantiate_input_without_config,
                 id=self.workflow_id,
                 task_queue=self.task_queue_name,
@@ -114,7 +110,7 @@
         activities = [deploy_charm_mocked, check_charm_status_mocked]
         async with self.env, self.get_worker(activities):
             await self.client.execute_workflow(
-                VduInstantiateWorkflow.run,
+                VduInstantiateWorkflowImpl.run,
                 arg=self.vdu_instantiate_input_with_config,
                 id=self.workflow_id,
                 task_queue=self.task_queue_name,
@@ -127,7 +123,7 @@
         async with self.env, self.get_worker(activities):
             with self.assertRaises(WorkflowFailureError) as err:
                 await self.client.execute_workflow(
-                    VduInstantiateWorkflow.run,
+                    VduInstantiateWorkflowImpl.run,
                     arg=self.vdu_instantiate_input_without_config,
                     id=self.workflow_id,
                     task_queue=self.task_queue_name,
@@ -141,7 +137,7 @@
         async with self.env, self.get_worker(activities):
             with self.assertRaises(WorkflowFailureError) as err:
                 await self.client.execute_workflow(
-                    VduInstantiateWorkflow.run,
+                    VduInstantiateWorkflowImpl.run,
                     arg=self.vdu_instantiate_input_without_config,
                     id=self.workflow_id,
                     task_queue=self.task_queue_name,
@@ -149,7 +145,8 @@
                     execution_timeout=EXECUTION_TIMEOUT,
                 )
             self.assertEqual(
-                str(err.exception.cause.cause), "TestException: deploy-charm failed."
+                str(err.exception.cause.cause),
+                f"TestException: {DeployCharm.__name__} failed.",
             )
 
     async def test_vdu_instantiate__check_status__raise_activity_error(self):
@@ -157,7 +154,7 @@
         async with self.env, self.get_worker(activities):
             with self.assertRaises(WorkflowFailureError) as err:
                 await self.client.execute_workflow(
-                    VduInstantiateWorkflow.run,
+                    VduInstantiateWorkflowImpl.run,
                     arg=self.vdu_instantiate_input_without_config,
                     id=self.workflow_id,
                     task_queue=self.task_queue_name,
@@ -171,7 +168,7 @@
         async with self.env, self.get_worker(activities):
             with self.assertRaises(WorkflowFailureError) as err:
                 await self.client.execute_workflow(
-                    VduInstantiateWorkflow.run,
+                    VduInstantiateWorkflowImpl.run,
                     arg=self.vdu_instantiate_input_without_config,
                     id=self.workflow_id,
                     task_queue=self.task_queue_name,
@@ -180,5 +177,5 @@
                 )
             self.assertEqual(
                 str(err.exception.cause.cause),
-                "TestException: check-charm-status failed.",
+                f"TestException: {CheckCharmStatus.__name__} failed.",
             )
diff --git a/osm_lcm/tests/test_vim_workflows.py b/osm_lcm/tests/test_vim_workflows.py
index 9c43895..8be573e 100644
--- a/osm_lcm/tests/test_vim_workflows.py
+++ b/osm_lcm/tests/test_vim_workflows.py
@@ -18,29 +18,26 @@
 from datetime import timedelta
 from unittest.mock import Mock
 
-from osm_common.dataclasses.temporal_dataclasses import (
-    DeleteVimInput,
-    TestVimConnectivityInput,
-    UpdateVimOperationStateInput,
-    UpdateVimStateInput,
-    VimOperationInput,
+from osm_common.temporal_task_queues.task_queues_mappings import LCM_TASK_QUEUE
+from osm_common.temporal.activities.paas import (
+    TestVimConnectivity,
+)
+from osm_common.temporal.activities.vim import (
+    UpdateVimState,
+    UpdateVimOperationState,
+    DeleteVimRecord,
+)
+from osm_common.temporal.states import (
     VimState,
     VimOperationState,
 )
-from osm_common.temporal_constants import (
-    ACTIVITY_TEST_VIM_CONNECTIVITY,
-    ACTIVITY_UPDATE_VIM_OPERATION_STATE,
-    ACTIVITY_UPDATE_VIM_STATE,
-    ACTIVITY_DELETE_VIM,
-    LCM_TASK_QUEUE,
-    WORKFLOW_VIM_CREATE,
-    WORKFLOW_VIM_UPDATE,
-    WORKFLOW_VIM_DELETE,
-)
 from osm_lcm.temporal.vim_workflows import (
     VimCreateWorkflow,
     VimUpdateWorkflow,
     VimDeleteWorkflow,
+    VimCreateWorkflowImpl,
+    VimUpdateWorkflowImpl,
+    VimDeleteWorkflowImpl,
 )
 from parameterized import parameterized_class
 from temporalio import activity
@@ -56,22 +53,22 @@
     pass
 
 
-@activity.defn(name=ACTIVITY_TEST_VIM_CONNECTIVITY)
+@activity.defn(name=TestVimConnectivity.__name__)
 async def mock_test_vim_connectivity(
-    test_connectivity_input: TestVimConnectivityInput,
+    test_connectivity_input: TestVimConnectivity.Input,
 ) -> None:
     pass
 
 
-@activity.defn(name=ACTIVITY_TEST_VIM_CONNECTIVITY)
+@activity.defn(name=TestVimConnectivity.__name__)
 async def mock_test_vim_connectivity_raises(
-    test_connectivity_input: TestVimConnectivityInput,
+    test_connectivity_input: TestVimConnectivity.Input,
 ) -> None:
     raise TestException("Test exception")
 
 
-@activity.defn(name=ACTIVITY_DELETE_VIM)
-async def mock_delete_vim_record_raises(data: DeleteVimInput) -> None:
+@activity.defn(name=DeleteVimRecord.__name__)
+async def mock_delete_vim_record_raises(data: DeleteVimRecord.Input) -> None:
     raise TestException("Test exception")
 
 
@@ -79,32 +76,32 @@
     task_queue_name = LCM_TASK_QUEUE
     vim_id = "some-vim-uuid"
     worflow_id = vim_id
-    vim_operation_input = VimOperationInput(vim_id, "op_id")
+    vim_operation_input = VimCreateWorkflow.Input(vim_id, "op_id")
 
-    @activity.defn(name=ACTIVITY_UPDATE_VIM_STATE)
-    async def mock_update_vim_state(self, data: UpdateVimStateInput) -> None:
+    @activity.defn(name=UpdateVimState.__name__)
+    async def mock_update_vim_state(self, data: UpdateVimState.Input) -> None:
         self.mock_update_vim_state_tracker(data)
 
-    @activity.defn(name=ACTIVITY_UPDATE_VIM_STATE)
-    async def mock_update_vim_state_raises(self, data: UpdateVimStateInput) -> None:
+    @activity.defn(name=UpdateVimState.__name__)
+    async def mock_update_vim_state_raises(self, data: UpdateVimState.Input) -> None:
         self.mock_update_vim_state_tracker(data)
         raise TestException("Test exception")
 
-    @activity.defn(name=ACTIVITY_UPDATE_VIM_OPERATION_STATE)
+    @activity.defn(name=UpdateVimOperationState.__name__)
     async def mock_update_vim_operation_state(
-        self, data: UpdateVimOperationStateInput
+        self, data: UpdateVimOperationState.Input
     ) -> None:
         self.mock_update_vim_operation_state_tracker(data)
 
-    @activity.defn(name=ACTIVITY_UPDATE_VIM_OPERATION_STATE)
+    @activity.defn(name=UpdateVimOperationState.__name__)
     async def mock_update_vim_operation_state_raises(
-        self, data: UpdateVimOperationStateInput
+        self, data: UpdateVimOperationState.Input
     ) -> None:
         self.mock_update_vim_operation_state_tracker(data)
         raise TestException("Test exception")
 
-    @activity.defn(name=ACTIVITY_DELETE_VIM)
-    async def mock_delete_vim_record(self, data: DeleteVimInput) -> None:
+    @activity.defn(name=DeleteVimRecord.__name__)
+    async def mock_delete_vim_record(self, data: DeleteVimRecord.Input) -> None:
         self.mock_delete_vim_record_tracker(data)
 
     async def setUp(self):
@@ -118,7 +115,11 @@
         return Worker(
             self.client,
             task_queue=self.task_queue_name,
-            workflows=[VimCreateWorkflow, VimUpdateWorkflow, VimDeleteWorkflow],
+            workflows=[
+                VimCreateWorkflowImpl,
+                VimUpdateWorkflowImpl,
+                VimDeleteWorkflowImpl,
+            ],
             activities=activities,
             debug_mode=True,
         )
@@ -146,8 +147,8 @@
 
 @parameterized_class(
     [
-        {"workflow_name": WORKFLOW_VIM_CREATE},
-        {"workflow_name": WORKFLOW_VIM_UPDATE},
+        {"workflow_name": VimCreateWorkflow.__name__},
+        {"workflow_name": VimUpdateWorkflow.__name__},
     ]
 )
 class TestVimWorkflow(TestVimWorkflowsBase):
@@ -304,7 +305,7 @@
         activities = [self.mock_delete_vim_record]
         async with self.env, self.get_worker(activities):
             result = await self.client.execute_workflow(
-                WORKFLOW_VIM_DELETE,
+                VimDeleteWorkflow.__name__,
                 arg=self.vim_operation_input,
                 id=self.worflow_id,
                 task_queue=self.task_queue_name,
@@ -319,7 +320,7 @@
         async with self.env, self.get_worker(activities):
             with self.assertRaises(WorkflowFailureError):
                 result = await self.client.execute_workflow(
-                    WORKFLOW_VIM_DELETE,
+                    VimDeleteWorkflow.__name__,
                     arg=self.vim_operation_input,
                     id=self.worflow_id,
                     task_queue=self.task_queue_name,
diff --git a/osm_lcm/tests/test_vnf_activities.py b/osm_lcm/tests/test_vnf_activities.py
index 0c346ee..1f34563 100644
--- a/osm_lcm/tests/test_vnf_activities.py
+++ b/osm_lcm/tests/test_vnf_activities.py
@@ -19,23 +19,20 @@
 from unittest import TestCase
 from unittest.mock import Mock, patch
 
-from osm_common.dataclasses.temporal_dataclasses import (
-    ChangeVnfInstantiationStateInput,
-    ChangeVnfStateInput,
-    GetTaskQueueInput,
-    GetVimCloudInput,
-    GetVnfDescriptorInput,
-    GetVnfRecordInput,
-    SetVnfModelInput,
-    VnfInstantiationState,
-    VnfState,
-    VduComputeConstraints,
-)
 from osm_common.dbbase import DbException
-from osm_common.temporal_constants import (
-    LCM_TASK_QUEUE,
+from osm_common.temporal_task_queues.task_queues_mappings import LCM_TASK_QUEUE
+from osm_lcm.temporal.vnf_activities import (
+    ChangeVnfInstantiationStateImpl,
+    ChangeVnfStateImpl,
+    GetTaskQueueImpl,
+    GetVimCloudImpl,
+    GetVnfDescriptorImpl,
+    GetVnfRecordImpl,
+    SetVnfModelImpl,
+    VnfSpecifications,
 )
-from osm_lcm.temporal.vnf_activities import VnfDbActivity, VnfOperations
+from osm_common.temporal.dataclasses_common import VduComputeConstraints
+from osm_common.temporal.states import VnfState, VnfInstantiationState
 from temporalio.testing import ActivityEnvironment
 
 
@@ -43,7 +40,7 @@
 vnfd_uuid = "97784f19-d254-4252-946c-cf92d85443ca"
 vim_uuid = "a64f7c6c-bc27-4ec8-b664-5500a3324eca"
 model_name = "my-model-name"
-set_vnf_model_input = SetVnfModelInput(vnfr_uuid=vnfr_uuid, model_name=model_name)
+set_vnf_model_input = SetVnfModelImpl.Input(vnfr_uuid=vnfr_uuid, model_name=model_name)
 cloud = "microk8s"
 nsr_uuid = "583726d4-957d-47f5-8df5-199456f7afd0"
 sample_vim_record = {
@@ -133,35 +130,33 @@
     def setUp(self):
         self.db = Mock()
         self.env = ActivityEnvironment()
-        self.vnf_db_activity = VnfDbActivity(self.db)
+        self.change_vnf_state = ChangeVnfStateImpl(self.db)
+        self.change_vnf_instantiation_state = ChangeVnfInstantiationStateImpl(self.db)
+        self.set_vnf_model = SetVnfModelImpl(self.db)
 
     async def test_change_vnf_state__successful__db_updated_as_expected(self):
         vnf_state = VnfState.STOPPED
-        change_vnf_state_input = ChangeVnfStateInput(vnfr_uuid, vnf_state)
-        await self.env.run(
-            self.vnf_db_activity.change_vnf_state, change_vnf_state_input
-        )
+        change_vnf_state_input = ChangeVnfStateImpl.Input(vnfr_uuid, vnf_state)
+        await self.env.run(self.change_vnf_state, change_vnf_state_input)
         self.db.set_one.assert_called_with(
             "vnfrs", {"_id": vnfr_uuid}, {"vnfState": vnf_state.name}
         )
 
     async def test_change_vnf_state__failed__raises_db_exception(self):
-        change_vnf_state_input = ChangeVnfStateInput(vnfr_uuid, VnfState.STARTED)
+        change_vnf_state_input = ChangeVnfStateImpl.Input(vnfr_uuid, VnfState.STARTED)
         self.db.set_one.side_effect = DbException("not found")
         with self.assertRaises(DbException):
-            await self.env.run(
-                self.vnf_db_activity.change_vnf_state, change_vnf_state_input
-            )
+            await self.env.run(self.change_vnf_state, change_vnf_state_input)
 
     async def test_change_vnf_instantiation_state__successful__db_updated_as_expected(
         self,
     ):
         instantiation_state = VnfInstantiationState.NOT_INSTANTIATED
-        change_instantiation_input = ChangeVnfInstantiationStateInput(
+        change_instantiation_input = ChangeVnfInstantiationStateImpl.Input(
             vnfr_uuid, instantiation_state
         )
         await self.env.run(
-            self.vnf_db_activity.change_vnf_instantiation_state,
+            self.change_vnf_instantiation_state,
             change_instantiation_input,
         )
         self.db.set_one.assert_called_with(
@@ -171,18 +166,18 @@
         )
 
     async def test_change_vnf_instantiation_state__failed__raises_db_exception(self):
-        change_instantiation_input = ChangeVnfInstantiationStateInput(
+        change_instantiation_input = ChangeVnfInstantiationStateImpl.Input(
             vnfr_uuid, VnfInstantiationState.INSTANTIATED
         )
         self.db.set_one.side_effect = DbException("not found")
         with self.assertRaises(DbException):
             await self.env.run(
-                self.vnf_db_activity.change_vnf_instantiation_state,
+                self.change_vnf_instantiation_state,
                 change_instantiation_input,
             )
 
     async def test_set_vnf_model__successful__db_updated_as_expected(self):
-        await self.env.run(self.vnf_db_activity.set_vnf_model, set_vnf_model_input)
+        await self.env.run(self.set_vnf_model, set_vnf_model_input)
         self.db.set_one.assert_called_with(
             "vnfrs", {"_id": vnfr_uuid}, {"namespace": model_name}
         )
@@ -190,20 +185,20 @@
     async def test_set_vnf_model__failed__raises_db_exception(self):
         self.db.set_one.side_effect = DbException("not found")
         with self.assertRaises(DbException):
-            await self.env.run(self.vnf_db_activity.set_vnf_model, set_vnf_model_input)
+            await self.env.run(self.set_vnf_model, set_vnf_model_input)
 
 
 class TestGetTaskQueue(asynctest.TestCase):
     async def setUp(self):
         self.db = Mock()
-        self.vnf_operations_instance = VnfOperations(self.db)
+        self.get_task_queue = GetTaskQueueImpl(self.db)
         self.env = ActivityEnvironment()
-        self.get_task_queue_input = GetTaskQueueInput(vnfr_uuid=sample_vnfr["id"])
+        self.get_task_queue_input = GetTaskQueueImpl.Input(vnfr_uuid=sample_vnfr["id"])
 
     async def test_activity__succeeded__get_expected_task_queue(self):
         self.db.get_one.side_effect = [sample_vnfr, sample_vim_record]
         activity_result = await self.env.run(
-            self.vnf_operations_instance.get_task_queue,
+            self.get_task_queue,
             self.get_task_queue_input,
         )
         self.assertEqual(activity_result.task_queue, LCM_TASK_QUEUE)
@@ -212,7 +207,7 @@
         self.db.get_one.side_effect = DbException("not found")
         with self.assertRaises(DbException):
             await self.env.run(
-                self.vnf_operations_instance.get_task_queue,
+                self.get_task_queue,
                 self.get_task_queue_input,
             )
 
@@ -222,7 +217,7 @@
         self.db.get_one.side_effect = [sample_vnfr, vim_record]
         with self.assertRaises(KeyError):
             await self.env.run(
-                self.vnf_operations_instance.get_task_queue,
+                self.get_task_queue,
                 self.get_task_queue_input,
             )
 
@@ -230,14 +225,14 @@
 class TestGetVnfDescriptor(asynctest.TestCase):
     async def setUp(self):
         self.db = Mock()
-        self.vnf_operations_instance = VnfOperations(self.db)
+        self.get_vnf_descriptor = GetVnfDescriptorImpl(self.db)
         self.env = ActivityEnvironment()
 
     async def test_activity__succeeded__get_expected_vnfd(self):
         self.db.get_one.return_value = sample_vnfd
         activity_result = await self.env.run(
-            self.vnf_operations_instance.get_vnf_descriptor,
-            GetVnfDescriptorInput(vnfd_uuid=vnfd_uuid),
+            self.get_vnf_descriptor,
+            GetVnfDescriptorImpl.Input(vnfd_uuid=vnfd_uuid),
         )
         self.assertEqual(activity_result.vnfd, sample_vnfd)
 
@@ -245,22 +240,22 @@
         self.db.get_one.side_effect = DbException("Can not connect to Database.")
         with self.assertRaises(DbException):
             await self.env.run(
-                self.vnf_operations_instance.get_vnf_descriptor,
-                GetVnfDescriptorInput(vnfd_uuid=vnfd_uuid),
+                self.get_vnf_descriptor,
+                GetVnfDescriptorImpl.Input(vnfd_uuid=vnfd_uuid),
             )
 
 
 class TestGetVnfRecord(asynctest.TestCase):
     async def setUp(self):
         self.db = Mock()
-        self.vnf_operations_instance = VnfOperations(self.db)
+        self.get_vnf_record = GetVnfRecordImpl(self.db)
         self.env = ActivityEnvironment()
 
     async def test_activity__succeeded__get_expected_vnfr(self):
         self.db.get_one.return_value = sample_vnfr
         activity_result = await self.env.run(
-            self.vnf_operations_instance.get_vnf_record,
-            GetVnfRecordInput(vnfr_uuid=vnfr_uuid),
+            self.get_vnf_record,
+            GetVnfRecordImpl.Input(vnfr_uuid=vnfr_uuid),
         )
         self.assertEqual(activity_result.vnfr, sample_vnfr)
 
@@ -268,22 +263,22 @@
         self.db.get_one.side_effect = DbException("Can not connect to Database.")
         with self.assertRaises(DbException):
             await self.env.run(
-                self.vnf_operations_instance.get_vnf_record,
-                GetVnfRecordInput(vnfr_uuid=vnfr_uuid),
+                self.get_vnf_record,
+                GetVnfRecordImpl.Input(vnfr_uuid=vnfr_uuid),
             )
 
 
 class TestGetVimCloud(asynctest.TestCase):
     async def setUp(self):
         self.db = Mock()
-        self.vnf_operations_instance = VnfOperations(self.db)
+        self.get_vim_cloud = GetVimCloudImpl(self.db)
         self.env = ActivityEnvironment()
 
     async def test_activity__succeeded__get_vim_cloud(self):
         self.db.get_one.side_effect = [sample_vnfr, sample_vim_record]
         activity_result = await self.env.run(
-            self.vnf_operations_instance.get_vim_cloud,
-            GetVimCloudInput(vnfr_uuid=sample_vnfr["id"]),
+            self.get_vim_cloud,
+            GetVimCloudImpl.Input(vnfr_uuid=sample_vnfr["id"]),
         )
         self.assertEqual(activity_result.cloud, cloud)
 
@@ -292,8 +287,8 @@
         vim_record["config"].pop("cloud")
         self.db.get_one.side_effect = [sample_vnfr, vim_record]
         activity_result = await self.env.run(
-            self.vnf_operations_instance.get_vim_cloud,
-            GetVimCloudInput(vnfr_uuid=sample_vnfr["id"]),
+            self.get_vim_cloud,
+            GetVimCloudImpl.Input(vnfr_uuid=sample_vnfr["id"]),
         )
         self.assertEqual(activity_result.cloud, "")
 
@@ -301,8 +296,8 @@
         self.db.get_one.side_effect = DbException("Can not connect to Database.")
         with self.assertRaises(DbException):
             await self.env.run(
-                self.vnf_operations_instance.get_vim_cloud,
-                GetVimCloudInput(vnfr_uuid=sample_vnfr["id"]),
+                self.get_vim_cloud,
+                GetVimCloudImpl.Input(vnfr_uuid=sample_vnfr["id"]),
             )
 
     async def test_activity__wrong_vim_record__raise_key_error(self):
@@ -311,30 +306,30 @@
         self.db.get_one.side_effect = [sample_vnfr, vim_record]
         with self.assertRaises(KeyError):
             await self.env.run(
-                self.vnf_operations_instance.get_vim_cloud,
-                GetVimCloudInput(vnfr_uuid=sample_vnfr["id"]),
+                self.get_vim_cloud,
+                GetVimCloudImpl.Input(vnfr_uuid=sample_vnfr["id"]),
             )
 
 
 class TestGetVduInstantiateInfoMethods(TestCase):
     def test_get_flavor_details__successful__get_flavor(self):
         compute_desc_id = "compute-id-1"
-        result = VnfOperations._get_flavor_details(compute_desc_id, sample_vnfd)
+        result = VnfSpecifications._get_flavor_details(compute_desc_id, sample_vnfd)
         self.assertEqual(result, flavor_1)
 
     def test_get_flavor_details__empty_compute_desc__flavor_is_none(self):
         compute_desc_id = ""
-        result = VnfOperations._get_flavor_details(compute_desc_id, sample_vnfd)
+        result = VnfSpecifications._get_flavor_details(compute_desc_id, sample_vnfd)
         self.assertEqual(result, None)
 
     def test_get_flavor_details__compute_desc_not_found__flavor_is_none(self):
         compute_desc_id = "compute-id-5"
-        result = VnfOperations._get_flavor_details(compute_desc_id, sample_vnfd)
+        result = VnfSpecifications._get_flavor_details(compute_desc_id, sample_vnfd)
         self.assertEqual(result, None)
 
     def test_get_flavor_details__empty_vnfd__flavor_is_none(self):
         compute_desc_id = "compute-id-5"
-        result = VnfOperations._get_flavor_details(compute_desc_id, {})
+        result = VnfSpecifications._get_flavor_details(compute_desc_id, {})
         self.assertEqual(result, None)
 
     def test_get_flavor_details__wrong_vnfd_format__flavor_is_none(self):
@@ -348,47 +343,47 @@
                 }
             ],
         }
-        result = VnfOperations._get_flavor_details(compute_desc_id, sample_vnfd)
+        result = VnfSpecifications._get_flavor_details(compute_desc_id, sample_vnfd)
         self.assertEqual(result, None)
 
-    @patch("osm_lcm.temporal.vnf_activities.VnfOperations._get_flavor_details")
+    @patch("osm_lcm.temporal.vnf_activities.VnfSpecifications._get_flavor_details")
     def test_get_compute_constraints__succeeded__get_constraints(
         self, mock_get_flavor_details
     ):
         mock_get_flavor_details.return_value = flavor_1
-        result = VnfOperations.get_compute_constraints(vdu, sample_vnfd)
+        result = VnfSpecifications.get_compute_constraints(vdu, sample_vnfd)
         self.assertEqual(VduComputeConstraints(cores=2, mem=4), result)
 
-    @patch("osm_lcm.temporal.vnf_activities.VnfOperations._get_flavor_details")
+    @patch("osm_lcm.temporal.vnf_activities.VnfSpecifications._get_flavor_details")
     def test_get_compute_constraints__empty_flavor_details__no_constraints(
         self, mock_get_flavor_details
     ):
         mock_get_flavor_details.return_value = {}
-        result = VnfOperations.get_compute_constraints(vdu, sample_vnfd)
+        result = VnfSpecifications.get_compute_constraints(vdu, sample_vnfd)
         self.assertEqual(VduComputeConstraints(cores=0, mem=0), result)
 
-    @patch("osm_lcm.temporal.vnf_activities.VnfOperations._get_flavor_details")
+    @patch("osm_lcm.temporal.vnf_activities.VnfSpecifications._get_flavor_details")
     def test_get_compute_constraints__flavor_details_is_none__no_constraints(
         self, mock_get_flavor_details
     ):
         mock_get_flavor_details.return_value = None
-        result = VnfOperations.get_compute_constraints(vdu, sample_vnfd)
+        result = VnfSpecifications.get_compute_constraints(vdu, sample_vnfd)
         self.assertEqual(VduComputeConstraints(cores=0, mem=0), result)
 
-    @patch("osm_lcm.temporal.vnf_activities.VnfOperations._get_flavor_details")
+    @patch("osm_lcm.temporal.vnf_activities.VnfSpecifications._get_flavor_details")
     def test_get_compute_constraints__flavor_has_only_cpu__get_cpu_constraint(
         self, mock_get_flavor_details
     ):
         mock_get_flavor_details.return_value = flavor_2
-        result = VnfOperations.get_compute_constraints(vdu, sample_vnfd)
+        result = VnfSpecifications.get_compute_constraints(vdu, sample_vnfd)
         self.assertEqual(VduComputeConstraints(cores=2, mem=0), result)
 
-    @patch("osm_lcm.temporal.vnf_activities.VnfOperations._get_flavor_details")
+    @patch("osm_lcm.temporal.vnf_activities.VnfSpecifications._get_flavor_details")
     def test_get_compute_constraints__flavor_has_only_memory__get_memory_constraint(
         self, mock_get_flavor_details
     ):
         mock_get_flavor_details.return_value = flavor_3
-        result = VnfOperations.get_compute_constraints(vdu, sample_vnfd)
+        result = VnfSpecifications.get_compute_constraints(vdu, sample_vnfd)
         self.assertEqual(VduComputeConstraints(cores=0, mem=4), result)
 
     def test_list_to_dict__config_has_several_items__get_expected_dict(self):
@@ -396,45 +391,45 @@
             {"key": "config::domain_name1", "value": "osm.org"},
             {"key": "domain_name2", "value": "osm.com"},
         ]
-        result = VnfOperations._list_to_dict(config)
+        result = VnfSpecifications._list_to_dict(config)
         self.assertEqual(
             result, {"config::domain_name1": "osm.org", "domain_name2": "osm.com"}
         )
 
     def test_list_to_dict__empty_input__get_empty_dict(self):
         config = []
-        result = VnfOperations._list_to_dict(config)
+        result = VnfSpecifications._list_to_dict(config)
         self.assertEqual(result, {})
 
     def test_get_only_config_items__with_identifier__get_expected_config(self):
         config = {"config::redirect-map": "https://osm.instantiation.params"}
-        result = VnfOperations._get_only_config_items(config)
+        result = VnfSpecifications._get_only_config_items(config)
         self.assertEqual(result, {"redirect-map": "https://osm.instantiation.params"})
 
     def test_get_only_config_items__without_identifier__no_config(self):
         config = {"key": "domain_name1", "value": "osm.org"}
-        result = VnfOperations._get_only_config_items(config)
+        result = VnfSpecifications._get_only_config_items(config)
         self.assertEqual(result, {})
 
     def test_get_only_config_items__empty_input__no_config(self):
         config = {}
-        result = VnfOperations._get_only_config_items(config)
+        result = VnfSpecifications._get_only_config_items(config)
         self.assertEqual(result, {})
 
     def test_get_vdu_instantiation_params__empty_vnf_config__get_params(self):
-        result = VnfOperations.get_vdu_instantiation_params(vdu_id, vnf_config)
+        result = VnfSpecifications.get_vdu_instantiation_params(vdu_id, vnf_config)
         self.assertEqual(
             result, {"config::redirect-map": "https://osm.instantiation.params"}
         )
 
     def test_get_vdu_instantiation_params__empty_vnf_config__no_params(self):
-        result = VnfOperations.get_vdu_instantiation_params(vdu_id, {})
+        result = VnfSpecifications.get_vdu_instantiation_params(vdu_id, {})
         self.assertEqual(result, {})
 
     def test_get_vdu_instantiation_params__vdu_id_mismatch__no_params(self):
         config = deepcopy(vnf_config)
         config["vdu"][0]["id"] = "other-vdu-id"
-        result = VnfOperations.get_vdu_instantiation_params(vdu_id, config)
+        result = VnfSpecifications.get_vdu_instantiation_params(vdu_id, config)
         self.assertEqual(result, {})
 
     def test_get_vdu_instantiation_params__empty_configurable_properties__no_params(
@@ -442,11 +437,11 @@
     ):
         config = deepcopy(vnf_config)
         config["vdu"][0]["configurable-properties"] = {}
-        result = VnfOperations.get_vdu_instantiation_params(vdu_id, config)
+        result = VnfSpecifications.get_vdu_instantiation_params(vdu_id, config)
         self.assertEqual(result, {})
 
-    @patch("osm_lcm.temporal.vnf_activities.VnfOperations._get_only_config_items")
-    @patch("osm_lcm.temporal.vnf_activities.VnfOperations._list_to_dict")
+    @patch("osm_lcm.temporal.vnf_activities.VnfSpecifications._get_only_config_items")
+    @patch("osm_lcm.temporal.vnf_activities.VnfSpecifications._list_to_dict")
     def test_get_application_config__instantiate_config_overrides_vdu_config__get_expected_application_config(
         self,
         mock_list_to_dict,
@@ -460,13 +455,13 @@
             },
             {"domain_name1": "osm.public"},
         ]
-        result = VnfOperations.get_application_config(vdu, vdu_instantiate_config)
+        result = VnfSpecifications.get_application_config(vdu, vdu_instantiate_config)
         self.assertEqual(
             result, {"domain_name1": "osm.public", "domain_name2": "osm.com"}
         )
 
-    @patch("osm_lcm.temporal.vnf_activities.VnfOperations._get_only_config_items")
-    @patch("osm_lcm.temporal.vnf_activities.VnfOperations._list_to_dict")
+    @patch("osm_lcm.temporal.vnf_activities.VnfSpecifications._get_only_config_items")
+    @patch("osm_lcm.temporal.vnf_activities.VnfSpecifications._list_to_dict")
     def test_get_application_config__empty_instantiate_config__get_descriptor_config(
         self,
         mock_list_to_dict,
@@ -480,11 +475,11 @@
             },
             {},
         ]
-        result = VnfOperations.get_application_config(vdu, vdu_instantiate_config)
+        result = VnfSpecifications.get_application_config(vdu, vdu_instantiate_config)
         self.assertEqual(result, app_config)
 
-    @patch("osm_lcm.temporal.vnf_activities.VnfOperations._get_only_config_items")
-    @patch("osm_lcm.temporal.vnf_activities.VnfOperations._list_to_dict")
+    @patch("osm_lcm.temporal.vnf_activities.VnfSpecifications._get_only_config_items")
+    @patch("osm_lcm.temporal.vnf_activities.VnfSpecifications._list_to_dict")
     def test_get_application_config__no_config__empty_application_config(
         self,
         mock_list_to_dict,
@@ -494,7 +489,9 @@
         vdu_copy = deepcopy(vdu)
         vdu_copy["configurable-properties"] = []
         mock_get_only_config_items.side_effect = [{}, {}]
-        result = VnfOperations.get_application_config(vdu_copy, vdu_instantiate_config)
+        result = VnfSpecifications.get_application_config(
+            vdu_copy, vdu_instantiate_config
+        )
         self.assertEqual(result, {})
 
 
diff --git a/osm_lcm/tests/test_vnf_workflows.py b/osm_lcm/tests/test_vnf_workflows.py
index 8601142..45e70c9 100644
--- a/osm_lcm/tests/test_vnf_workflows.py
+++ b/osm_lcm/tests/test_vnf_workflows.py
@@ -21,40 +21,25 @@
 from unittest.mock import Mock
 import uuid
 
-from osm_common.dataclasses.temporal_dataclasses import (
-    ChangeVnfInstantiationStateInput,
-    ChangeVnfStateInput,
-    CharmInfo,
-    GetTaskQueueInput,
-    GetTaskQueueOutput,
-    GetVimCloudInput,
-    GetVimCloudOutput,
-    GetVnfDescriptorInput,
-    GetVnfDescriptorOutput,
-    GetVnfRecordInput,
-    GetVnfRecordOutput,
-    SetVnfModelInput,
-    VduComputeConstraints,
-    VduInstantiateInput,
-    VnfInstantiateInput,
-    VnfInstantiationState,
-    VnfPrepareInput,
-    VnfState,
+from osm_common.temporal_task_queues.task_queues_mappings import LCM_TASK_QUEUE
+from osm_common.temporal.activities.vnf import (
+    ChangeVnfState,
+    ChangeVnfInstantiationState,
+    GetTaskQueue,
+    GetVimCloud,
+    GetVnfDescriptor,
+    GetVnfRecord,
+    SendNotificationForVnf,
+    SetVnfModel,
 )
-from osm_common.temporal_constants import (
-    ACTIVITY_CHANGE_VNF_STATE,
-    ACTIVITY_CHANGE_VNF_INSTANTIATION_STATE,
-    ACTIVITY_GET_TASK_QUEUE,
-    ACTIVITY_GET_VIM_CLOUD,
-    ACTIVITY_GET_VNF_DESCRIPTOR,
-    ACTIVITY_GET_VNF_RECORD,
-    ACTIVITY_SEND_NOTIFICATION_FOR_VNF,
-    ACTIVITY_SET_VNF_MODEL,
-    LCM_TASK_QUEUE,
-    WORKFLOW_VDU_INSTANTIATE,
-    WORKFLOW_VNF_PREPARE,
+from osm_common.temporal.dataclasses_common import CharmInfo, VduComputeConstraints
+from osm_common.temporal.workflows.vnf import VnfPrepareWorkflow
+from osm_common.temporal.workflows.vdu import VduInstantiateWorkflow
+from osm_common.temporal.states import VnfState, VnfInstantiationState
+from osm_lcm.temporal.vnf_workflows import (
+    VnfInstantiateWorkflowImpl,
+    VnfPrepareWorkflowImpl,
 )
-from osm_lcm.temporal.vnf_workflows import VnfInstantiateWorkflow, VnfPrepareWorkflow
 from temporalio import activity
 from temporalio import workflow
 from temporalio.client import WorkflowFailureError
@@ -103,7 +88,7 @@
     {"key": "track", "value": "latest"},
     {"key": "channel", "value": "stable"},
 ]
-wf_input = VnfInstantiateInput(
+wf_input = VnfInstantiateWorkflowImpl.Input(
     vnfr_uuid=vnfr_uuid,
     model_name=model_name,
     instantiation_config={},
@@ -145,7 +130,7 @@
 }
 sample_charm_info = CharmInfo(app_name="my-app", channel="latest", entity_url="my-url")
 sample_constraints = VduComputeConstraints(cores=1, mem=1)
-sample_vdu_instantiate_input = VduInstantiateInput(
+sample_vdu_instantiate_input = VduInstantiateWorkflow.Input(
     vim_uuid=vim_account_id,
     model_name=model_name,
     charm_info=sample_charm_info,
@@ -154,7 +139,7 @@
     config={},
 )
 sample_vdu_instantiate_wf_id_1 = "vdu-instantiate-workflow-id-1"
-sample_vdu_instantiate_input_with_config = VduInstantiateInput(
+sample_vdu_instantiate_input_with_config = VduInstantiateWorkflow.Input(
     vim_uuid=vim_account_id,
     model_name=model_name,
     charm_info=sample_charm_info,
@@ -190,129 +175,129 @@
 
 
 # Mock Activities
-@activity.defn(name=ACTIVITY_SET_VNF_MODEL)
-async def mock_set_vnf_model(set_vnf_model_input: SetVnfModelInput) -> None:
+@activity.defn(name=SetVnfModel.__name__)
+async def mock_set_vnf_model(set_vnf_model_input: SetVnfModel.Input) -> None:
     pass
 
 
-@activity.defn(name=ACTIVITY_SET_VNF_MODEL)
+@activity.defn(name=SetVnfModel.__name__)
 async def mock_set_vnf_model_raise_exception(
-    set_vnf_model_input: SetVnfModelInput,
+    set_vnf_model_input: SetVnfModel.Input,
 ) -> None:
-    raise TestException(f"{ACTIVITY_SET_VNF_MODEL} failed.")
+    raise TestException(f"{SetVnfModel.__name__} failed.")
 
 
-@activity.defn(name=ACTIVITY_GET_TASK_QUEUE)
+@activity.defn(name=GetTaskQueue.__name__)
 async def mock_get_task_queue(
-    get_task_queue_input: GetTaskQueueInput,
-) -> GetTaskQueueOutput:
-    return GetTaskQueueOutput(LCM_TASK_QUEUE)
+    get_task_queue_input: GetTaskQueue.Input,
+) -> GetTaskQueue.Output:
+    return GetTaskQueue.Output(LCM_TASK_QUEUE)
 
 
-@activity.defn(name=ACTIVITY_GET_TASK_QUEUE)
+@activity.defn(name=GetTaskQueue.__name__)
 async def mock_get_different_task_queue(
-    get_task_queue_input: GetTaskQueueInput,
-) -> GetTaskQueueOutput:
-    return GetTaskQueueOutput(juju_task_queue)
+    get_task_queue_input: GetTaskQueue.Input,
+) -> GetTaskQueue.Output:
+    return GetTaskQueue.Output(juju_task_queue)
 
 
-@activity.defn(name=ACTIVITY_GET_TASK_QUEUE)
+@activity.defn(name=GetTaskQueue.__name__)
 async def mock_get_task_queue_raise_exception(
-    get_task_queue_input: GetTaskQueueInput,
-) -> GetTaskQueueOutput:
-    raise TestException(f"{ACTIVITY_GET_TASK_QUEUE} failed.")
+    get_task_queue_input: GetTaskQueue.Input,
+) -> GetTaskQueue.Output:
+    raise TestException(f"{GetTaskQueue.__name__} failed.")
 
 
-@activity.defn(name=ACTIVITY_GET_VNF_DESCRIPTOR)
+@activity.defn(name=GetVnfDescriptor.__name__)
 async def mock_get_vnf_descriptor(
-    get_vnf_descriptor_input: GetVnfDescriptorInput,
-) -> GetVnfDescriptorOutput:
-    return GetVnfDescriptorOutput(vnfd=sample_vnfd)
+    get_vnf_descriptor_input: GetVnfDescriptor.Input,
+) -> GetVnfDescriptor.Output:
+    return GetVnfDescriptor.Output(vnfd=sample_vnfd)
 
 
-@activity.defn(name=ACTIVITY_GET_VNF_DESCRIPTOR)
+@activity.defn(name=GetVnfDescriptor.__name__)
 async def mock_get_vnf_descriptor_empty_output(
-    get_vnf_descriptor_input: GetVnfDescriptorInput,
-) -> GetVnfDescriptorOutput:
-    return GetVnfDescriptorOutput(vnfd={})
+    get_vnf_descriptor_input: GetVnfDescriptor.Input,
+) -> GetVnfDescriptor.Output:
+    return GetVnfDescriptor.Output(vnfd={})
 
 
-@activity.defn(name=ACTIVITY_GET_VNF_DESCRIPTOR)
+@activity.defn(name=GetVnfDescriptor.__name__)
 async def mock_get_vnf_descriptor_raise_exception(
-    get_vnf_descriptor_input: GetVnfDescriptorInput,
-) -> GetVnfDescriptorOutput:
-    raise TestException(f"{ACTIVITY_GET_VNF_DESCRIPTOR} failed.")
+    get_vnf_descriptor_input: GetVnfDescriptor.Input,
+) -> GetVnfDescriptor.Output:
+    raise TestException(f"{GetVnfDescriptor.__name__} failed.")
 
 
-@activity.defn(name=ACTIVITY_GET_VNF_RECORD)
+@activity.defn(name=GetVnfRecord.__name__)
 async def mock_get_vnf_record(
-    get_vnf_record_input: GetVnfRecordInput,
-) -> GetVnfRecordOutput:
-    return GetVnfRecordOutput(vnfr=sample_vnfr)
+    get_vnf_record_input: GetVnfRecord.Input,
+) -> GetVnfRecord.Output:
+    return GetVnfRecord.Output(vnfr=sample_vnfr)
 
 
-@activity.defn(name=ACTIVITY_GET_VNF_RECORD)
+@activity.defn(name=GetVnfRecord.__name__)
 async def mock_get_vnf_record_raise_exception(
-    get_vnf_record_input: GetVnfRecordInput,
-) -> GetVnfRecordOutput:
-    raise TestException(f"{ACTIVITY_GET_VNF_RECORD} failed.")
+    get_vnf_record_input: GetVnfRecord.Input,
+) -> GetVnfRecord.Output:
+    raise TestException(f"{GetVnfRecord.__name__} failed.")
 
 
-@activity.defn(name=ACTIVITY_GET_VIM_CLOUD)
+@activity.defn(name=GetVimCloud.__name__)
 async def mock_get_vim_cloud(
-    get_vim_cloud_input: GetVimCloudInput,
-) -> GetVimCloudOutput:
-    return GetVimCloudOutput(cloud=cloud)
+    get_vim_cloud_input: GetVimCloud.Input,
+) -> GetVimCloud.Output:
+    return GetVimCloud.Output(cloud=cloud)
 
 
-@activity.defn(name=ACTIVITY_GET_VIM_CLOUD)
+@activity.defn(name=GetVimCloud.__name__)
 async def mock_get_vim_cloud_raise_exception(
-    get_vim_cloud_input: GetVimCloudInput,
-) -> GetVimCloudOutput:
-    raise TestException(f"{ACTIVITY_GET_VIM_CLOUD} failed.")
+    get_vim_cloud_input: GetVimCloud.Input,
+) -> GetVimCloud.Output:
+    raise TestException(f"{GetVimCloud.__name__} failed.")
 
 
 # Mock Workflows
-@workflow.defn(name=WORKFLOW_VNF_PREPARE, sandboxed=SANDBOXED)
+@workflow.defn(name=VnfPrepareWorkflow.__name__, sandboxed=SANDBOXED)
 class MockPrepareVnfWorkflow:
     @workflow.run
-    async def run(self, input: VnfPrepareInput) -> None:
+    async def run(self, input: VnfPrepareWorkflow.Input) -> None:
         pass
 
 
-@workflow.defn(name=WORKFLOW_VNF_PREPARE, sandboxed=SANDBOXED)
+@workflow.defn(name=VnfPrepareWorkflow.__name__, sandboxed=SANDBOXED)
 class MockPrepareVnfWorkflowFailed:
     @workflow.run
-    async def run(self, input: VnfPrepareInput) -> None:
+    async def run(self, workflow_input: VnfPrepareWorkflow.Input) -> None:
         raise ChildWorkflowError(
-            message=f"{WORKFLOW_VNF_PREPARE} child workflow failed.",
+            message=f"{VnfPrepareWorkflow.__name__} child workflow failed.",
             namespace="default",
             workflow_id="123",
             run_id="1",
-            workflow_type=WORKFLOW_VNF_PREPARE,
+            workflow_type=VnfPrepareWorkflow.__name__,
             initiated_event_id=0,
             started_event_id=0,
             retry_state=RetryState.NON_RETRYABLE_FAILURE,
         )
 
 
-@workflow.defn(name=WORKFLOW_VDU_INSTANTIATE, sandboxed=SANDBOXED)
+@workflow.defn(name=VduInstantiateWorkflow.__name__, sandboxed=SANDBOXED)
 class MockVduInstantiateWorkflow:
     @workflow.run
-    async def run(self, input: VduInstantiateInput) -> None:
+    async def run(self, workflow_input: VduInstantiateWorkflow.Input) -> None:
         pass
 
 
-@workflow.defn(name=WORKFLOW_VDU_INSTANTIATE, sandboxed=SANDBOXED)
+@workflow.defn(name=VduInstantiateWorkflow.__name__, sandboxed=SANDBOXED)
 class MockVduInstantiateWorkflowFailed:
     @workflow.run
-    async def run(self, input: VduInstantiateInput) -> None:
+    async def run(self, workflow_input: VduInstantiateWorkflow.Input) -> None:
         raise ChildWorkflowError(
-            message=f"{WORKFLOW_VDU_INSTANTIATE} child workflow failed.",
+            message=f"{VduInstantiateWorkflow.__name__} child workflow failed.",
             namespace="default",
             workflow_id="123",
             run_id="1",
-            workflow_type=WORKFLOW_VDU_INSTANTIATE,
+            workflow_type=VduInstantiateWorkflow.__name__,
             initiated_event_id=0,
             started_event_id=0,
             retry_state=RetryState.NON_RETRYABLE_FAILURE,
@@ -331,13 +316,13 @@
                 self.client,
                 debug_mode=DEBUG_MODE,
                 task_queue=self.task_queue,
-                workflows=[VnfPrepareWorkflow],
+                workflows=[VnfPrepareWorkflowImpl],
                 activities=[mock_set_vnf_model],
             ):
                 await self.client.execute_workflow(
-                    VnfPrepareWorkflow.run,
+                    VnfPrepareWorkflowImpl.run,
                     arg=wf_input,
-                    id=f"{WORKFLOW_VNF_PREPARE}-{wf_input.vnfr_uuid}",
+                    id=f"{VnfPrepareWorkflow.__name__}-{wf_input.vnfr_uuid}",
                     task_queue=self.task_queue,
                     task_timeout=TASK_TIMEOUT,
                     execution_timeout=EXECUTION_TIMEOUT,
@@ -351,14 +336,14 @@
                 self.client,
                 debug_mode=DEBUG_MODE,
                 task_queue=self.task_queue,
-                workflows=[VnfPrepareWorkflow],
+                workflows=[VnfPrepareWorkflowImpl],
                 activities=[mock_set_vnf_model_raise_exception],
             ):
                 with self.assertRaises(WorkflowFailureError) as err:
                     await self.client.execute_workflow(
-                        VnfPrepareWorkflow.run,
+                        VnfPrepareWorkflowImpl.run,
                         arg=wf_input,
-                        id=f"{WORKFLOW_VNF_PREPARE}-{wf_input.vnfr_uuid}",
+                        id=f"{VnfPrepareWorkflow.__name__}-{wf_input.vnfr_uuid}",
                         task_queue=self.task_queue,
                         task_timeout=TASK_TIMEOUT,
                         execution_timeout=EXECUTION_TIMEOUT,
@@ -373,20 +358,21 @@
                 self.client,
                 debug_mode=DEBUG_MODE,
                 task_queue=self.task_queue,
-                workflows=[VnfPrepareWorkflow],
+                workflows=[VnfPrepareWorkflowImpl],
                 activities=[mock_set_vnf_model_raise_exception],
             ):
                 with self.assertRaises(WorkflowFailureError) as err:
                     await self.client.execute_workflow(
-                        VnfPrepareWorkflow.run,
+                        VnfPrepareWorkflowImpl.run,
                         arg=wf_input,
-                        id=f"{WORKFLOW_VNF_PREPARE}-{wf_input.vnfr_uuid}",
+                        id=f"{VnfPrepareWorkflow.__name__}-{wf_input.vnfr_uuid}",
                         task_queue=self.task_queue,
                         task_timeout=TASK_TIMEOUT,
                         execution_timeout=EXECUTION_TIMEOUT,
                     )
         self.assertEqual(
-            str(err.exception.cause.cause), "TestException: set-vnf-model failed."
+            str(err.exception.cause.cause),
+            f"TestException: {SetVnfModel.__name__} failed.",
         )
 
 
@@ -398,7 +384,7 @@
         self.mock_change_vnf_state_tracker = Mock()
         self.mock_send_notification_for_vnf_tracker = Mock()
         self.workflows = [
-            VnfInstantiateWorkflow,
+            VnfInstantiateWorkflowImpl,
             MockPrepareVnfWorkflow,
             MockVduInstantiateWorkflow,
         ]
@@ -415,7 +401,7 @@
 
     async def execute_workflow(self, wf_input=wf_input):
         return await self.client.execute_workflow(
-            VnfInstantiateWorkflow.run,
+            VnfInstantiateWorkflowImpl.run,
             arg=wf_input,
             id=uuid.uuid4().hex,
             task_queue=self.task_queue,
@@ -429,7 +415,7 @@
         )
         self.assertEqual(
             call_mock_change_vnf_instantiation_state_tracker[1].args[0],
-            ChangeVnfInstantiationStateInput(vnfr_uuid=vnfr_uuid, state=state),
+            ChangeVnfInstantiationState.Input(vnfr_uuid=vnfr_uuid, state=state),
         )
 
     def vnf_state_is_updated(self, state):
@@ -438,47 +424,47 @@
         )
         self.assertEqual(
             call_mock_change_vnf_state_tracker[0].args[0],
-            ChangeVnfStateInput(vnfr_uuid=vnfr_uuid, state=state),
+            ChangeVnfState.Input(vnfr_uuid=vnfr_uuid, state=state),
         )
 
-    @activity.defn(name=ACTIVITY_CHANGE_VNF_STATE)
-    async def mock_change_vnf_state(self, nf_state_input: ChangeVnfStateInput) -> None:
+    @activity.defn(name=ChangeVnfState.__name__)
+    async def mock_change_vnf_state(self, nf_state_input: ChangeVnfState.Input) -> None:
         self.mock_change_vnf_state_tracker(nf_state_input)
 
-    @activity.defn(name=ACTIVITY_CHANGE_VNF_STATE)
+    @activity.defn(name=ChangeVnfState.__name__)
     async def mock_change_vnf_state_exception(
-        self, nf_state_input: ChangeVnfStateInput
+        self, nf_state_input: ChangeVnfState.Input
     ) -> None:
         self.mock_change_vnf_state_tracker(nf_state_input)
-        raise TestException(f"{ACTIVITY_CHANGE_VNF_STATE} failed.")
+        raise TestException(f"{ChangeVnfState.__name__} failed.")
 
-    @activity.defn(name=ACTIVITY_CHANGE_VNF_INSTANTIATION_STATE)
+    @activity.defn(name=ChangeVnfInstantiationState.__name__)
     async def mock_change_vnf_instantiation_state(
         self,
-        nf_instantiation_state_input: ChangeVnfInstantiationStateInput,
+        nf_instantiation_state_input: ChangeVnfInstantiationState.Input,
     ) -> None:
         self.mock_change_vnf_instantiation_state_tracker(nf_instantiation_state_input)
 
-    @activity.defn(name=ACTIVITY_CHANGE_VNF_INSTANTIATION_STATE)
+    @activity.defn(name=ChangeVnfInstantiationState.__name__)
     async def mock_change_vnf_instantiation_state_exception(
         self,
-        nf_instantiation_state_input: ChangeVnfInstantiationStateInput,
+        nf_instantiation_state_input: ChangeVnfInstantiationState.Input,
     ) -> None:
         self.mock_change_vnf_instantiation_state_tracker(nf_instantiation_state_input)
-        raise TestException(f"{ACTIVITY_CHANGE_VNF_INSTANTIATION_STATE} failed.")
+        raise TestException(f"{ChangeVnfInstantiationState.__name__} failed.")
 
-    @activity.defn(name=ACTIVITY_SEND_NOTIFICATION_FOR_VNF)
+    @activity.defn(name=SendNotificationForVnf.__name__)
     async def mock_send_notification_for_vnf(self, input) -> None:
         self.mock_send_notification_for_vnf_tracker()
 
     @patch(
-        "osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflow._get_vdu_instantiate_info"
+        "osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflowImpl._get_vdu_instantiate_input"
     )
     async def test_vnf_instantiate_workflow__successful__updates_vnf_instantiation_state(
-        self, mock_get_vdu_instantiate_info
+        self, mock_get_vdu_instantiate_input
     ):
         workflows = [
-            VnfInstantiateWorkflow,
+            VnfInstantiateWorkflowImpl,
             MockPrepareVnfWorkflow,
             MockVduInstantiateWorkflow,
         ]
@@ -492,7 +478,7 @@
             mock_get_vnf_record,
             mock_get_vim_cloud,
         ]
-        mock_get_vdu_instantiate_info.return_value = (
+        mock_get_vdu_instantiate_input.return_value = (
             sample_vdu_instantiate_input_with_config,
             sample_vdu_instantiate_wf_id_1,
         )
@@ -503,13 +489,13 @@
         self.vnf_instantiation_state_is_updated(VnfInstantiationState.INSTANTIATED)
 
     @patch(
-        "osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflow._get_vdu_instantiate_info"
+        "osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflowImpl._get_vdu_instantiate_input"
     )
     async def test_vnf_instantiate_workflow__successful__updates_vnf_state(
-        self, mock_get_vdu_instantiate_info
+        self, mock_get_vdu_instantiate_input
     ):
         workflows = [
-            VnfInstantiateWorkflow,
+            VnfInstantiateWorkflowImpl,
             MockPrepareVnfWorkflow,
             MockVduInstantiateWorkflow,
         ]
@@ -523,7 +509,7 @@
             mock_get_vnf_record,
             mock_get_vim_cloud,
         ]
-        mock_get_vdu_instantiate_info.return_value = (
+        mock_get_vdu_instantiate_input.return_value = (
             sample_vdu_instantiate_input_with_config,
             sample_vdu_instantiate_wf_id_1,
         )
@@ -629,7 +615,7 @@
         async with self.env, self.get_worker(
             self.task_queue,
             [
-                VnfInstantiateWorkflow,
+                VnfInstantiateWorkflowImpl,
                 MockPrepareVnfWorkflowFailed,
                 MockVduInstantiateWorkflow,
             ],
@@ -655,7 +641,7 @@
         async with self.env, self.get_worker(
             self.task_queue,
             [
-                VnfInstantiateWorkflow,
+                VnfInstantiateWorkflowImpl,
                 MockPrepareVnfWorkflow,
                 MockVduInstantiateWorkflowFailed,
             ],
@@ -725,11 +711,11 @@
                 await self.execute_workflow()
             self.assertTrue(isinstance(err.exception.cause, ActivityError))
 
-    @patch("osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflow.instantiate_vdus")
+    @patch("osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflowImpl.instantiate_vdus")
     async def test_vnf_instantiate_workflow__use_different_task_queue__use_juju_task_queue(
         self, mock_instantiate_vdus
     ):
-        workflows = [VnfInstantiateWorkflow, MockPrepareVnfWorkflow]
+        workflows = [VnfInstantiateWorkflowImpl, MockPrepareVnfWorkflow]
         activities = [
             mock_get_different_task_queue,
             self.mock_change_vnf_instantiation_state,
@@ -755,19 +741,19 @@
 
 class TestInstantiateVdus(asynctest.TestCase):
     @patch(
-        "osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflow._get_vdu_instantiate_info"
+        "osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflowImpl._get_vdu_instantiate_input"
     )
     @patch("temporalio.workflow.execute_child_workflow")
     async def test_instantiate_vdus__empty_vnf_instantiation_config__child_wf_executed_with_expected_vdu_instantiate_input(
         self,
         mock_execute_child_workflow,
-        mock_get_vdu_instantiate_info,
+        mock_get_vdu_instantiate_input,
     ):
-        mock_get_vdu_instantiate_info.return_value = (
+        mock_get_vdu_instantiate_input.return_value = (
             sample_vdu_instantiate_input,
             sample_vdu_instantiate_wf_id_1,
         )
-        await VnfInstantiateWorkflow.instantiate_vdus(
+        await VnfInstantiateWorkflowImpl.instantiate_vdus(
             sample_vnfr, sample_vnfd, LCM_TASK_QUEUE, cloud, {}
         )
         call_mock_execute_child_workflow = mock_execute_child_workflow.call_args_list
@@ -777,24 +763,24 @@
                 "arg": sample_vdu_instantiate_input,
                 "id": sample_vdu_instantiate_wf_id_1,
                 "task_queue": LCM_TASK_QUEUE,
-                "workflow": "vdu-instantiate",
+                "workflow": f"{VduInstantiateWorkflow.__name__}",
             },
         )
 
     @patch(
-        "osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflow._get_vdu_instantiate_info"
+        "osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflowImpl._get_vdu_instantiate_input"
     )
     @patch("temporalio.workflow.execute_child_workflow")
     async def test_instantiate_vdus__vnf_instantiation_config_exists__child_wf_executed_with_expected_vdu_instantiate_input(
         self,
         mock_execute_child_workflow,
-        mock_get_vdu_instantiate_info,
+        mock_get_vdu_instantiate_input,
     ):
-        mock_get_vdu_instantiate_info.return_value = (
+        mock_get_vdu_instantiate_input.return_value = (
             sample_vdu_instantiate_input_with_config,
             sample_vdu_instantiate_wf_id_1,
         )
-        await VnfInstantiateWorkflow.instantiate_vdus(
+        await VnfInstantiateWorkflowImpl.instantiate_vdus(
             sample_vnfr, sample_vnfd, LCM_TASK_QUEUE, cloud, vnf_config
         )
         call_mock_execute_child_workflow = mock_execute_child_workflow.call_args_list
@@ -804,40 +790,40 @@
                 "arg": sample_vdu_instantiate_input_with_config,
                 "id": sample_vdu_instantiate_wf_id_1,
                 "task_queue": LCM_TASK_QUEUE,
-                "workflow": "vdu-instantiate",
+                "workflow": f"{VduInstantiateWorkflow.__name__}",
             },
         )
 
     @patch(
-        "osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflow._get_vdu_instantiate_info"
+        "osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflowImpl._get_vdu_instantiate_input"
     )
     @patch("temporalio.workflow.execute_child_workflow")
     async def test_instantiate_vdus__vnfd_without_vdu__child_wf_is_not_executed(
         self,
         mock_execute_child_workflow,
-        mock_get_vdu_instantiate_info,
+        mock_get_vdu_instantiate_input,
     ):
         vnfd = deepcopy(sample_vnfd)
         vnfd["vdu"] = []
-        await VnfInstantiateWorkflow.instantiate_vdus(
+        await VnfInstantiateWorkflowImpl.instantiate_vdus(
             sample_vnfr, vnfd, LCM_TASK_QUEUE, cloud, {}
         )
         mock_execute_child_workflow.assert_not_called()
 
     @patch(
-        "osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflow._get_vdu_instantiate_info"
+        "osm_lcm.temporal.vnf_workflows.VnfInstantiateWorkflowImpl._get_vdu_instantiate_input"
     )
     @patch("temporalio.workflow.execute_child_workflow")
     async def test_instantiate_vdus__use_juju_task_queue__child_wf_executed_with_juju_task_queue(
         self,
         mock_execute_child_workflow,
-        mock_get_vdu_instantiate_info,
+        mock_get_vdu_instantiate_input,
     ):
-        mock_get_vdu_instantiate_info.return_value = (
+        mock_get_vdu_instantiate_input.return_value = (
             sample_vdu_instantiate_input_with_config,
             sample_vdu_instantiate_wf_id_1,
         )
-        await VnfInstantiateWorkflow.instantiate_vdus(
+        await VnfInstantiateWorkflowImpl.instantiate_vdus(
             sample_vnfr, sample_vnfd, juju_task_queue, cloud, vnf_config
         )
         call_mock_execute_child_workflow = mock_execute_child_workflow.call_args_list
@@ -847,25 +833,25 @@
                 "arg": sample_vdu_instantiate_input_with_config,
                 "id": sample_vdu_instantiate_wf_id_1,
                 "task_queue": juju_task_queue,
-                "workflow": "vdu-instantiate",
+                "workflow": f"{VduInstantiateWorkflow.__name__}",
             },
         )
 
 
 class TestGetVduInstantiateInfo(asynctest.TestCase):
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_application_config"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_application_config"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_vdu_instantiation_params"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_vdu_instantiation_params"
     )
     @asynctest.mock.patch(
         "osm_lcm.temporal.juju_paas_activities.CharmInfoUtils.get_charm_info"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_compute_constraints"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_compute_constraints"
     )
-    async def test_get_vdu_instantiate_info__empty_vnf_instantiation_config__get_expected_vdu_inst_input_and_wf_id(
+    async def test_get_vdu_instantiate_input__empty_vnf_instantiation_config__get_expected_vdu_inst_input_and_wf_id(
         self,
         mock_get_compute_constraints,
         mock_get_charm_info,
@@ -879,7 +865,7 @@
         (
             vdu_instantiate_input,
             vdu_instantiate_workflow_id,
-        ) = VnfInstantiateWorkflow._get_vdu_instantiate_info(
+        ) = VnfInstantiateWorkflowImpl._get_vdu_instantiate_input(
             vnfr=sample_vnfr,
             vnfd=sample_vnfd,
             vdu=vdu,
@@ -892,18 +878,18 @@
         )
 
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_application_config"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_application_config"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_vdu_instantiation_params"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_vdu_instantiation_params"
     )
     @asynctest.mock.patch(
         "osm_lcm.temporal.juju_paas_activities.CharmInfoUtils.get_charm_info"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_compute_constraints"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_compute_constraints"
     )
-    async def test_get_vdu_instantiate_info__with_vnf_instantiation_config__get_expected_vdu_inst_input_and_wf_id(
+    async def test_get_vdu_instantiate_input__with_vnf_instantiation_config__get_expected_vdu_inst_input_and_wf_id(
         self,
         mock_get_compute_constraints,
         mock_get_charm_info,
@@ -917,7 +903,7 @@
         (
             vdu_instantiate_input,
             vdu_instantiate_workflow_id,
-        ) = VnfInstantiateWorkflow._get_vdu_instantiate_info(
+        ) = VnfInstantiateWorkflowImpl._get_vdu_instantiate_input(
             vnfr=sample_vnfr,
             vnfd=sample_vnfd,
             vdu=vdu,
@@ -930,18 +916,18 @@
         )
 
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_application_config"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_application_config"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_vdu_instantiation_params"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_vdu_instantiation_params"
     )
     @asynctest.mock.patch(
         "osm_lcm.temporal.juju_paas_activities.CharmInfoUtils.get_charm_info"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_compute_constraints"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_compute_constraints"
     )
-    async def test_get_vdu_instantiate_info__vnfr_without_namespace__raise_type_error(
+    async def test_get_vdu_instantiate_input__vnfr_without_namespace__raise_type_error(
         self,
         mock_get_compute_constraints,
         mock_get_charm_info,
@@ -953,7 +939,7 @@
         mock_get_compute_constraints.return_value = sample_constraints
         mock_get_charm_info.return_value = sample_charm_info
         with self.assertRaises(TypeError):
-            VnfInstantiateWorkflow._get_vdu_instantiate_info(
+            VnfInstantiateWorkflowImpl._get_vdu_instantiate_input(
                 vnfr=vnfr,
                 vnfd=sample_vnfd,
                 vdu=vdu,
@@ -962,18 +948,18 @@
             )
 
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_application_config"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_application_config"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_vdu_instantiation_params"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_vdu_instantiation_params"
     )
     @asynctest.mock.patch(
         "osm_lcm.temporal.juju_paas_activities.CharmInfoUtils.get_charm_info"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_compute_constraints"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_compute_constraints"
     )
-    async def test_get_vdu_instantiate_info__app_name_is_empty__expected_wf_id(
+    async def test_get_vdu_instantiate_input__app_name_is_empty__expected_wf_id(
         self,
         mock_get_compute_constraints,
         mock_get_charm_info,
@@ -987,7 +973,7 @@
         (
             _,
             vdu_instantiate_workflow_id,
-        ) = VnfInstantiateWorkflow._get_vdu_instantiate_info(
+        ) = VnfInstantiateWorkflowImpl._get_vdu_instantiate_input(
             vnfr=sample_vnfr,
             vnfd=sample_vnfd,
             vdu=vdu,
@@ -997,18 +983,18 @@
         self.assertEqual(vdu_instantiate_workflow_id, "my-model-name-")
 
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_application_config"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_application_config"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_vdu_instantiation_params"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_vdu_instantiation_params"
     )
     @asynctest.mock.patch(
         "osm_lcm.temporal.juju_paas_activities.CharmInfoUtils.get_charm_info"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_compute_constraints"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_compute_constraints"
     )
-    async def test_get_vdu_instantiate_info__get_compute_constraints_failed__no_vdu_inst_wf_input_and_vdu_wf_id(
+    async def test_get_vdu_instantiate_input__get_compute_constraints_failed__no_vdu_inst_wf_input_and_vdu_wf_id(
         self,
         mock_get_compute_constraints,
         mock_get_charm_info,
@@ -1023,7 +1009,7 @@
             (
                 vdu_instantiate_input,
                 vdu_instantiate_workflow_id,
-            ) = VnfInstantiateWorkflow._get_vdu_instantiate_info(
+            ) = VnfInstantiateWorkflowImpl._get_vdu_instantiate_input(
                 vnfr=sample_vnfr,
                 vnfd=sample_vnfd,
                 vdu=vdu,
@@ -1035,18 +1021,18 @@
             )
 
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_application_config"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_application_config"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_vdu_instantiation_params"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_vdu_instantiation_params"
     )
     @asynctest.mock.patch(
         "osm_lcm.temporal.juju_paas_activities.CharmInfoUtils.get_charm_info"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_compute_constraints"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_compute_constraints"
     )
-    async def test_get_vdu_instantiate_info__get_compute_constraints_failed__raise_compute_constraints_exception(
+    async def test_get_vdu_instantiate_input__get_compute_constraints_failed__raise_compute_constraints_exception(
         self,
         mock_get_compute_constraints,
         mock_get_charm_info,
@@ -1058,7 +1044,7 @@
         )
         mock_get_charm_info.return_value = sample_charm_info
         with self.assertRaises(GetComputeConstraintsException):
-            VnfInstantiateWorkflow._get_vdu_instantiate_info(
+            VnfInstantiateWorkflowImpl._get_vdu_instantiate_input(
                 vnfr=sample_vnfr,
                 vnfd=sample_vnfd,
                 vdu=vdu,
@@ -1067,18 +1053,18 @@
             )
 
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_application_config"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_application_config"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_vdu_instantiation_params"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_vdu_instantiation_params"
     )
     @asynctest.mock.patch(
         "osm_lcm.temporal.juju_paas_activities.CharmInfoUtils.get_charm_info"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_compute_constraints"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_compute_constraints"
     )
-    async def test_get_vdu_instantiate_info__get_charm_info_failed__raise_get_charm_info_exception(
+    async def test_get_vdu_instantiate_input__get_charm_info_failed__raise_get_charm_info_exception(
         self,
         mock_get_compute_constraints,
         mock_get_charm_info,
@@ -1090,7 +1076,7 @@
             "get_compute_constraints failed"
         )
         with self.assertRaises(GetCharmInfoException):
-            VnfInstantiateWorkflow._get_vdu_instantiate_info(
+            VnfInstantiateWorkflowImpl._get_vdu_instantiate_input(
                 vnfr=sample_vnfr,
                 vnfd=sample_vnfd,
                 vdu=vdu,
@@ -1099,18 +1085,18 @@
             )
 
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_application_config"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_application_config"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_vdu_instantiation_params"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_vdu_instantiation_params"
     )
     @asynctest.mock.patch(
         "osm_lcm.temporal.juju_paas_activities.CharmInfoUtils.get_charm_info"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_compute_constraints"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_compute_constraints"
     )
-    async def test_get_vdu_instantiate_info__get_charm_info_failed__no_vdu_inst_wf_input_and_vdu_wf_id(
+    async def test_get_vdu_instantiate_input__get_charm_info_failed__no_vdu_inst_wf_input_and_vdu_wf_id(
         self,
         mock_get_compute_constraints,
         mock_get_charm_info,
@@ -1125,7 +1111,7 @@
             (
                 vdu_instantiate_input,
                 vdu_instantiate_workflow_id,
-            ) = VnfInstantiateWorkflow._get_vdu_instantiate_info(
+            ) = VnfInstantiateWorkflowImpl._get_vdu_instantiate_input(
                 vnfr=sample_vnfr,
                 vnfd=sample_vnfd,
                 vdu=vdu,
@@ -1137,18 +1123,18 @@
             )
 
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_application_config"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_application_config"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_vdu_instantiation_params"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_vdu_instantiation_params"
     )
     @asynctest.mock.patch(
         "osm_lcm.temporal.juju_paas_activities.CharmInfoUtils.get_charm_info"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_compute_constraints"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_compute_constraints"
     )
-    async def test_get_vdu_instantiate_info__get_vdu_instantiation_params_failed__raise_get_vdu_instantiation_params_exception(
+    async def test_get_vdu_instantiate_input__get_vdu_instantiation_params_failed__raise_get_vdu_instantiation_params_exception(
         self,
         mock_get_compute_constraints,
         mock_get_charm_info,
@@ -1162,7 +1148,7 @@
         )
         mock_get_application_config.return_value = {}
         with self.assertRaises(GetVduInstantiationParamsException):
-            VnfInstantiateWorkflow._get_vdu_instantiate_info(
+            VnfInstantiateWorkflowImpl._get_vdu_instantiate_input(
                 vnfr=sample_vnfr,
                 vnfd=sample_vnfd,
                 vdu=vdu,
@@ -1171,18 +1157,18 @@
             )
 
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_application_config"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_application_config"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_vdu_instantiation_params"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_vdu_instantiation_params"
     )
     @asynctest.mock.patch(
         "osm_lcm.temporal.juju_paas_activities.CharmInfoUtils.get_charm_info"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_compute_constraints"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_compute_constraints"
     )
-    async def test_get_vdu_instantiate_info__get_vdu_instantiation_params_failed__no_vdu_inst_wf_input_and_vdu_wf_id(
+    async def test_get_vdu_instantiate_input__get_vdu_instantiation_params_failed__no_vdu_inst_wf_input_and_vdu_wf_id(
         self,
         mock_get_compute_constraints,
         mock_get_charm_info,
@@ -1199,7 +1185,7 @@
             (
                 vdu_instantiate_input,
                 vdu_instantiate_workflow_id,
-            ) = VnfInstantiateWorkflow._get_vdu_instantiate_info(
+            ) = VnfInstantiateWorkflowImpl._get_vdu_instantiate_input(
                 vnfr=sample_vnfr,
                 vnfd=sample_vnfd,
                 vdu=vdu,
@@ -1212,18 +1198,18 @@
             )
 
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_application_config"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_application_config"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_vdu_instantiation_params"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_vdu_instantiation_params"
     )
     @asynctest.mock.patch(
         "osm_lcm.temporal.juju_paas_activities.CharmInfoUtils.get_charm_info"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_compute_constraints"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_compute_constraints"
     )
-    async def test_get_vdu_instantiate_info__get_application_config_failed__raise_get_application_config_exception(
+    async def test_get_vdu_instantiate_input__get_application_config_failed__raise_get_application_config_exception(
         self,
         mock_get_compute_constraints,
         mock_get_charm_info,
@@ -1237,7 +1223,7 @@
             "get_vdu_instantiation_params failed"
         )
         with self.assertRaises(GetApplicationConfigException):
-            VnfInstantiateWorkflow._get_vdu_instantiate_info(
+            VnfInstantiateWorkflowImpl._get_vdu_instantiate_input(
                 vnfr=sample_vnfr,
                 vnfd=sample_vnfd,
                 vdu=vdu,
@@ -1246,18 +1232,18 @@
             )
 
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_application_config"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_application_config"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_vdu_instantiation_params"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_vdu_instantiation_params"
     )
     @asynctest.mock.patch(
         "osm_lcm.temporal.juju_paas_activities.CharmInfoUtils.get_charm_info"
     )
     @asynctest.mock.patch(
-        "osm_lcm.temporal.vnf_activities.VnfOperations.get_compute_constraints"
+        "osm_lcm.temporal.vnf_activities.VnfSpecifications.get_compute_constraints"
     )
-    async def test_get_vdu_instantiate_info__get_application_config_failed__no_vdu_inst_wf_input_and_vdu_wf_id(
+    async def test_get_vdu_instantiate_input__get_application_config_failed__no_vdu_inst_wf_input_and_vdu_wf_id(
         self,
         mock_get_compute_constraints,
         mock_get_charm_info,
@@ -1274,7 +1260,7 @@
             (
                 vdu_instantiate_input,
                 vdu_instantiate_workflow_id,
-            ) = VnfInstantiateWorkflow._get_vdu_instantiate_info(
+            ) = VnfInstantiateWorkflowImpl._get_vdu_instantiate_input(
                 vnfr=sample_vnfr,
                 vnfd=sample_vnfd,
                 vdu=vdu,