+class UpdateVimStateInput:
+ """
+ Input dataclass for updating VIM state in the DB
+
+ Attributes:
+ -----------
+ vim_uuid : str
+ The UUID of the VIM account as stored in the OSM vim
+ collection in Mongo
+
+ operational_state : VimState
+ A representation of the operational state (ENABLED or ERROR)
+ of the VIM.
+
+ message : str
+ Human readable message providing additional details to the
+ operational state, such as the error message associated
+ with the ERROR operational_state.
+ """
+
+ vim_uuid: str
+ operational_state: VimState
+ message: str
+
+
+@dataclass
+class UpdateVimOperationStateInput:
+ """
+ Input dataclass for updating VIM Operations in the Mongo VIM
+ collection.
+
+ Attributes:
+ -----------
+ vim_uuid : str
+ The UUID of the VIM account as stored in the OSM vim
+ collection in Mongo
+
+ op_id: str
+ The operation (task) id for this workflow. This is used
+ to update the status of the operation in Mongo vim collection.
+
+ op_state : VimOperationState
+ A representation of the state of the specified operation id,
+ such as COMPLETED, or FAILED.
+
+ message : str
+ Human readable message providing additional details to the
+ operation state, such as the error message explaining why
+ the operation failed.
+ """
+
+ vim_uuid: str
+ op_id: str
+ op_state: VimOperationState
+ message: str
+
+
+@dataclass
+class DeleteVimInput:
+ """
+ Input dataclass for deleting vim record from the database
+
+ Attributes:
+ -----------
+ vim_uuid : str
+ The UUID of the VIM account as stored in the OSM vim
+ collection in Mongo
+
+ """
+
+ vim_uuid: str
+
+
+@dataclass
+class DeployNsInput:
+ """
+ Input dataclass for
+
+ Attributes:
+ -----------
+ ns_uuid : str
+ The UUID of the NS as stored in the OSM nsr
+ collection in Mongo
+ """
+
+ ns_uuid: str
+
+
+@dataclass
+class UpdateNsStateInput:
+ """
+ Input dataclass for updating NS state in the DB
+
+ Attributes:
+ -----------
+ ns_uuid : str
+ The UUID of the NS as stored in the OSM ns
+ collection in Mongo
+
+ operational_state : NsState
+ A representation of the operational state (ENABLED or ERROR)
+ of the NS.
+
+ message : str
+ Human readable message providing additional details to the
+ operational state, such as the error message associated
+ with the ERROR operational_state.
+ """
+
+ ns_uuid: str
+ state: NsState
+ message: str
+
+
+@dataclass
+class ModelInfo:
+ """
+ Contains the information related to a model.
+
+ Attributes:
+ -----------
+ vim_uuid : str
+ The UUID of the VIM as stored in the OSM vim_accounts
+ collection in Mongo.
+
+ model_name : str
+ Name of the Juju model used to deploy charms.
+ """
+
+ vim_uuid: str
+ model_name: str
+
+
+@dataclass
+class CheckCharmStatusInput:
+ """
+ Input dataclass for checking on a specific charm's deployment
+ status
+
+ Attributes:
+ -----------
+ vim_uuid : str
+ The UUID of the VIM as stored in the OSM vim_accounts
+ collection in Mongo.
+
+ model_name : str
+ Name of the model to create in Juju.
+
+ application_name : str
+ Name of the application that the state is going to be
+ awaited.
+
+ poll_interval : int (optional)
+ Time, in seconds, to wait between status checks.
+ """
+
+ vim_uuid: str
+ model_name: str
+ application_name: str
+ poll_interval: int = 1
+
+
+@dataclass
+class ChangeVnfStateInput:
+ """
+ Input dataclass for changing VNF State.
+
+ Attributes:
+ -----------
+ vnfr_uuid : str
+ The UUID of the VNF which is stored in the OSM vnfrs
+ collection in Mongo.
+
+ state : VnfState
+ A representation of the VNF state (STOPPED or STARTED).
+ """
+
+ vnfr_uuid: str
+ state: VnfState
+
+
+@dataclass
+class ChangeVnfInstantiationStateInput:
+ """
+ Input dataclass for changing VNF Instantiation State.
+
+ Attributes:
+ -----------
+ vnfr_uuid : str
+ The UUID of the VNF which is stored in the OSM vnfrs
+ collection in Mongo.
+
+ state : VnfInstantiationState
+ A representation of the VNF instantiation state (NOT_INSTANTIATED or INSTANTIATED).
+
+ """
+
+ vnfr_uuid: str
+ state: VnfInstantiationState
+
+
+@dataclass
+class GetTaskQueueInput:
+ """
+ Input dataclass for get task queue activity.
+
+ Attributes:
+ -----------
+ vnfr_uuid : str
+ The UUID of the VNF which is stored in the OSM vnfrs
+ collection in Mongo.
+
+ """
+
+ vnfr_uuid: str
+
+
+@dataclass
+class GetTaskQueueOutput:
+ """
+ Output dataclass for get task queue activity.
+
+ Attributes:
+ -----------
+ task_queue : str
+ Name of the queue which is used to Deploy VNF.
+ """
+
+ task_queue: str
+
+
+@dataclass
+class GetVnfDetailsInput:
+ """
+ Input dataclass for get vnf details activity.
+
+ Attributes:
+ -----------
+ vnfr_uuid : str
+ The UUID of the VNF which is stored in the OSM vnfrs
+ collection in Mongo.
+ """
+
+ vnfr_uuid: str
+
+
+@dataclass
+class GetVnfDetailsOutput:
+ """
+ Output dataclass for get vnf details activity.
+
+ Attributes:
+ -----------
+ vnfr : dict
+ VNF record retrieved from Database.
+
+ vnfd : dict
+ VNF descriptor retrieved from Database.
+ """
+
+ vnfr: dict
+ vnfd: dict
+
+
+@dataclass
+class GetVnfRecordIdsInput:
+ """
+ Attributes:
+ -----------
+ ns_uuid : str
+ The UUID of the NS from which to retrieve the VNF records.
+ """
+
+ ns_uuid: str
+
+
+@dataclass
+class GetVnfRecordIdsOutput:
+ """
+ Attributes:
+ -----------
+ vnfr_ids : list[str]
+ List of the VNF record IDs associated with the NS.
+ """
+
+ vnfr_ids: List[str]