Add ORAN Python SDK first draft
[it/dep.git] / smo-install / test / pythonsdk / src / oransdk / enrichmentservice / enrichmentservice.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 # SPDX-License-Identifier: Apache-2.0
4 """Oran Enrichment Service module."""
5
6 from oransdk.configuration import settings
7 from onapsdk.onap_service import OnapService
8
9 class EnrichmentService(OnapService):
10     """Enrichment Service library."""
11
12     base_url = settings.EMS_URL
13     header = {"Content-Type": "application/json"}
14
15     @classmethod
16     def check_status(cls) -> str:
17         """
18         Get the status of the EnrichmentService component.
19
20         Returns:
21             the status of the EnrichmentService component
22
23         """
24         url = f"{cls.base_url}/status"
25         status = cls.send_message('GET',
26                                   'Get EMS status',
27                                   url)
28         return status
29
30     @classmethod
31     def get_eitypes(cls) -> str:
32         """
33         Get all the EiTypes.
34
35         Returns:
36             the list of EiTypes
37
38         """
39         url = f"{cls.base_url}/data-producer/v1/info-types"
40         eitypes = cls.send_message('GET',
41                                    'Get all the EiTypes',
42                                    url,
43                                    headers=cls.header)
44         return eitypes
45
46     @classmethod
47     def get_eitype_individual(cls, eitype_name) -> str:
48         """
49         Get individual EiType.
50
51         Args:
52            eitype_name: the EiType name
53
54         Returns:
55             the details of the EiType
56
57         """
58         url = f"{cls.base_url}/data-producer/v1/info-types/{eitype_name}"
59         eitype = cls.send_message('GET',
60                                   'Get individual EiType',
61                                   url,
62                                   headers=cls.header)
63         return eitype
64
65     @classmethod
66     def get_eiproducers(cls) -> str:
67         """
68         Get all the EiProducers.
69
70         Returns:
71             the list of EiProducers
72
73         """
74         url = f"{cls.base_url}/data-producer/v1/info-producers"
75         eitypes = cls.send_message('GET',
76                                    'Get all the EiProducers',
77                                    url,
78                                    headers=cls.header)
79         return eitypes
80
81     @classmethod
82     def get_eiproducer_individual(cls, producer) -> str:
83         """
84         Get individual EiProducer.
85
86         Args:
87            type: the EiProducer name
88
89         Returns:
90             the details of the EiProducer
91
92         """
93         url = f"{cls.base_url}/data-producer/v1/info-producers/{producer}"
94         eiproducer = cls.send_message('GET',
95                                       'Get individual EiProducer',
96                                       url,
97                                       headers=cls.header)
98         return eiproducer
99
100     @classmethod
101     def get_eiproducer_status(cls, producer) -> str:
102         """
103         Get the status of EiProducer.
104
105         Args:
106            type: the EiProducer name
107
108         Returns:
109             the status of the EiProducer
110
111         """
112         url = f"{cls.base_url}/data-producer/v1/info-producers/{producer}/status"
113         status = cls.send_message('GET',
114                                   'Get the status of EiProducer',
115                                   url,
116                                   headers=cls.header)
117         return status
118
119     @classmethod
120     def get_eijobs(cls) -> str:
121         """
122         Get all the EiJobs.
123
124         Returns:
125             the list of EiJobs
126
127         """
128         url = f"{cls.base_url}/A1-EI/v1/eijobs"
129         eijobs = cls.send_message('GET',
130                                   'Get all the EiJobs',
131                                   url,
132                                   headers=cls.header)
133         return eijobs
134
135     @classmethod
136     def get_eijob_individual(cls, job) -> str:
137         """
138         Get individual EiJob.
139
140         Args:
141            type: the EiJob name
142
143         Returns:
144             the details of the EiJob
145
146         """
147         url = f"{cls.base_url}/A1-EI/v1/eijobs/{job}"
148         eijob = cls.send_message('GET',
149                                  'Get individual EiJob',
150                                  url,
151                                  headers=cls.header)
152         return eijob
153
154     @classmethod
155     def create_eitype(cls,
156                       type_name,
157                       type_data) -> None:
158         """
159         Create EiType.
160
161         Args:
162            type: the EiType name
163            type_data: the EiType data to create, in binary format
164
165         """
166         url = f"{cls.base_url}/data-producer/v1/info-types/{type_name}"
167         cls.send_message('PUT',
168                          'Create EiType',
169                          url,
170                          data=type_data,
171                          headers=cls.header)
172
173     @classmethod
174     def create_eiproducer(cls,
175                           producer,
176                           producer_data) -> None:
177         """
178         Create EiProducer.
179
180         Args:
181            producer: the EiProducer name
182            producer_data: the EiProducer data to create, in binary format
183
184         """
185         url = f"{cls.base_url}/data-producer/v1/info-producers/{producer}"
186         cls.send_message('PUT',
187                          'Create EiProducer',
188                          url,
189                          data=producer_data,
190                          headers=cls.header)
191
192     @classmethod
193     def create_eijob(cls,
194                      job,
195                      job_data) -> None:
196         """
197         Create EiJob.
198
199         Args:
200            job: the EiJob name
201            job_data: the EiJob data to create, in binary format
202
203         """
204         url = f"{cls.base_url}/A1-EI/v1/eijobs/{job}"
205         cls.send_message('PUT',
206                          'Create EiJob',
207                          url,
208                          data=job_data,
209                          headers=cls.header)