OSMENG-1092 Base Class for Delete NS Record Activity
[osm/common.git] / osm_common / temporal / workflows / ns.py
1 #######################################################################################
2 # Copyright ETSI Contributors and Others.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13 # implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #######################################################################################
17
18 from abc import abstractmethod
19 from dataclasses import dataclass
20
21 from osm_common.temporal.workflows.lcm import LcmOperationWorkflow
22
23
24 class NsInstantiateWorkflow(LcmOperationWorkflow):
25 """Instantiate a NS"""
26
27 @dataclass
28 class Input:
29 """
30 Input dataclass for workflows that run as LCM operations.
31
32 Attributes:
33 -----------
34
35 nslcmop: dict
36 A dictionary representing the nslcmop record from the
37 database.
38 """
39
40 nslcmop: dict
41
42 @abstractmethod
43 async def wrap_nslcmop(self, workflow_input) -> None:
44 pass
45
46 @abstractmethod
47 async def run(self, workflow_input: Input) -> None:
48 pass