OSMENG-1155 Implementation of Constants and Dataclasses
[osm/common.git] / osm_common / temporal / workflows / vdu.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.dataclasses_common import CharmInfo, VduComputeConstraints
22 from osm_common.temporal.workflows.base import BaseWorkflow
23
24
25 class VduInstantiateWorkflow(BaseWorkflow):
26 """Instantiate a VDU"""
27
28 @dataclass
29 class Input:
30 """
31 Input dataclass for workflow that instantiates a VDU.
32
33 vim_uuid: str
34
35 model_name: str
36
37 charm_info : CharmInfo
38
39 constraints: VduComputeConstraints
40
41 cloud: VIM cloud type
42
43 config: Config details of application
44 """
45
46 vim_uuid: str
47 model_name: str
48 charm_info: CharmInfo
49 constraints: VduComputeConstraints
50 cloud: str
51 config: dict
52
53 @abstractmethod
54 async def run(self, workflow_input: Input) -> None:
55 pass