b7fe9e6f0a0675f463168177ee67a9a7e0fdcf5e
[vfc/gvnfm/vnflcm.git] / lcm / lcm / nf / vnfs / serializers.py
1 # Copyright 2018 ZTE Corporation.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #         http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 from rest_framework import serializers
16
17
18 class CreateVnfReqSerializer(serializers.Serializer):
19     vnfdId = serializers.CharField(
20         help_text="vnfdId",
21         max_length=255,
22         required=True,
23         allow_null=True)
24     vnfInstanceName = serializers.CharField(
25         help_text="vnfInstanceName",
26         max_length=255,
27         required=True,
28         allow_null=False)
29     vnfInstanceDescription = serializers.CharField(
30         help_text="vnfInstanceDescription",
31         max_length=255,
32         required=False,
33         allow_null=True)
34
35
36 class CreateVnfRespSerializer(serializers.Serializer):
37     vnfInstanceId = serializers.CharField(
38         help_text="vnfInstanceId",
39         required=True,
40         max_length=255,
41         allow_null=True)
42
43
44 class ResourceSerializer(serializers.Serializer):
45     resourceId = serializers.CharField(
46         help_text="resourceId",
47         required=True,
48         max_length=255,
49         allow_null=True)
50     vimId = serializers.CharField(
51         help_text="vimId",
52         required=True,
53         max_length=255,
54         allow_null=True)
55
56
57 class VirtualStorageResourceInfoSerializer(serializers.Serializer):
58     virtualStorageInstanceId = serializers.CharField(
59         help_text="virtualStorageInstanceId",
60         required=False,
61         allow_null=True,
62         max_length=255)
63     virtualStorageDescId = serializers.CharField(
64         help_text="virtualStorageDescId",
65         required=False,
66         max_length=255,
67         allow_null=True)
68     storageResource = ResourceSerializer(
69         help_text="storageResource",
70         required=False,
71         allow_null=True)
72
73
74 class VirtualLinkResourceInfoSerializer(serializers.Serializer):
75     virtualLinkInstanceId = serializers.CharField(
76         help_text="virtualLinkInstanceId",
77         required=False,
78         max_length=255,
79         allow_null=True)
80     virtualLinkDescId = serializers.CharField(
81         help_text="virtualLinkDescId",
82         required=False,
83         max_length=255,
84         allow_null=True)
85     networkResource = ResourceSerializer(
86         help_text="networkResource",
87         required=False,
88         allow_null=True)
89
90
91 class VnfcResourceInfoSerializer(serializers.Serializer):
92     vnfcInstanceId = serializers.CharField(
93         help_text="vnfcInstanceId",
94         required=False,
95         max_length=255,
96         allow_null=True)
97     vduId = serializers.CharField(
98         help_text="vduId",
99         required=False, max_length=255, allow_null=True)
100     storageResourceIds = serializers.CharField(
101         help_text="storageResourceIds",
102         required=False,
103         max_length=255,
104         allow_null=True)
105     computeResource = ResourceSerializer(
106         help_text="computeResource",
107         required=False,
108         allow_null=True)
109
110
111 class AccessInfoSerializer(serializers.Serializer):
112     tenant = serializers.CharField(
113         help_text="tenant",
114         required=True,
115         max_length=255,
116         allow_null=True)
117     username = serializers.CharField(
118         help_text="username",
119         required=True,
120         max_length=255,
121         allow_null=True)
122     password = serializers.CharField(
123         help_text="password",
124         required=True,
125         max_length=255,
126         allow_null=True)
127
128
129 class InterfaceInfoSerializer(serializers.Serializer):
130     vimType = serializers.CharField(
131         help_text="vimType",
132         required=True,
133         max_length=255,
134         allow_null=True)
135     apiVersion = serializers.CharField(
136         help_text="apiVersion",
137         required=True,
138         max_length=255,
139         allow_null=True)
140     protocolType = serializers.ChoiceField(
141         help_text="protocolType", choices=[
142             'http', 'https'], required=True)
143
144
145 class VimInfoSerializer(serializers.Serializer):
146     vimInfoId = serializers.CharField(
147         help_text="vimInfoId",
148         required=False, max_length=255, allow_null=True)
149     vimId = serializers.CharField(
150         help_text="vimId",
151         required=False, max_length=255, allow_null=True)
152     interfaceEndpoint = serializers.CharField(
153         help_text="interfaceEndpoint",
154         required=False,
155         max_length=255,
156         allow_null=True)
157     interfaceInfo = InterfaceInfoSerializer(
158         help_text="vimInfoId", required=False, allow_null=True)
159     accessInfo = AccessInfoSerializer(
160         help_text="accessInfo",
161         required=False,
162         allow_null=True)
163
164
165 class LinkPortsSerializer(serializers.Serializer):
166     resourceId = serializers.CharField(
167         help_text="resourceId",
168         required=True,
169         max_length=255,
170         allow_null=True)
171     vimId = serializers.CharField(
172         help_text="vimId",
173         required=False,
174         max_length=255,
175         allow_null=True)
176
177
178 class ResourceHandleSerializer(serializers.Serializer):
179     resourceId = serializers.CharField(
180         help_text="resourceId",
181         required=True,
182         max_length=255,
183         allow_null=True)
184     vimId = serializers.CharField(
185         help_text="vimId",
186         required=False,
187         max_length=255,
188         allow_null=True)
189     resourceProviderId = serializers.CharField(
190         help_text="resourceProviderId",
191         required=False,
192         max_length=255,
193         allow_null=True)
194
195
196 class ExtVirtualLinkInfoSerializer(serializers.Serializer):
197     extVirtualLinkId = serializers.CharField(
198         help_text="extVirtualLinkId",
199         required=True,
200         max_length=255,
201         allow_null=True)
202     resourceHandle = ResourceHandleSerializer(
203         help_text="iPAddress", required=True)
204     linkPorts = LinkPortsSerializer(
205         help_text="iPAddress", many=True, allow_null=True)
206
207
208 class L3AddressDataSerializer(serializers.Serializer):
209     iPAddressType = serializers.ChoiceField(
210         help_text="iPAddressType", choices=[
211             'IPv4', 'IPv6'], required=True)
212     iPAddress = serializers.CharField(
213         help_text="iPAddress",
214         required=True,
215         max_length=255,
216         allow_null=True)
217
218
219 class NetworkAddressSerializer(serializers.Serializer):
220     addressType = serializers.ChoiceField(
221         help_text="addressType", choices=[
222             'MAC', 'IP'], required=True)
223     l2AddressData = serializers.CharField(
224         help_text="l2AddressData",
225         required=False,
226         max_length=255,
227         allow_null=True)
228     l3AddressData = L3AddressDataSerializer(
229         help_text="addresses", required=False)
230
231
232 class ExtCpInfoSerializer(serializers.Serializer):
233     cpInstanceId = serializers.CharField(
234         help_text="cpInstanceId",
235         required=False, max_length=255, allow_null=True)
236     cpdId = serializers.CharField(
237         help_text="cpdId",
238         required=True,
239         max_length=255,
240         allow_null=True)
241     numDynamicAddresses = serializers.CharField(
242         help_text="numDynamicAddresses",
243         required=False,
244         max_length=255,
245         allow_null=True)
246     addresses = NetworkAddressSerializer(
247         help_text="addresses", many=True, allow_null=True)
248
249
250 class ScaleInfoSerializer(serializers.Serializer):
251     aspectId = serializers.CharField(
252         help_text="aspectId",
253         required=True,
254         max_length=255,
255         allow_null=True)
256     scaleLevel = serializers.IntegerField(
257         help_text="scaleLevel", required=True)
258
259
260 class instantiatedVnfInfoSerializer(serializers.Serializer):
261     flavourId = serializers.CharField(
262         help_text="flavourId",
263         required=True, max_length=255, allow_null=True)
264     vnfState = serializers.ChoiceField(
265         help_text="vnfState",
266         choices=[
267             'STARTED',
268             'STOPPED'],
269         required=True,
270         allow_null=True)
271     scaleStatus = ScaleInfoSerializer(help_text="scaleStatus", many=True)
272     extCpInfo = ExtCpInfoSerializer(help_text="extCpInfo", many=True)
273     extVirtualLink = ExtVirtualLinkInfoSerializer(
274         help_text="extVirtualLink", many=True)
275     monitoringParameters = serializers.DictField(
276         help_text="monitoringParameters", child=serializers.CharField(
277             allow_blank=True), required=False, allow_null=True)
278     vimInfo = VimInfoSerializer(help_text="vimInfo", many=True)
279     vnfcResourceInfo = VnfcResourceInfoSerializer(
280         help_text="vnfcResourceInfo", many=True)
281     virtualLinkResourceInfo = VirtualLinkResourceInfoSerializer(
282         help_text="virtualLinkResourceInfo", many=True)
283     virtualStorageResourceInfo = VirtualStorageResourceInfoSerializer(
284         help_text="virtualStorageResourceInfo", many=True)
285
286
287 class VnfInfoSerializer(serializers.Serializer):
288     vnfInstanceId = serializers.CharField(
289         help_text="vnfInstanceId",
290         required=True,
291         max_length=255,
292         allow_null=True)
293     vnfInstanceName = serializers.CharField(
294         help_text="vnfInstanceName",
295         required=True,
296         max_length=255,
297         allow_null=True)
298     onboardedVnfPkgInfoId = serializers.CharField(
299         help_text="onboardedVnfPkgInfoId",
300         required=False,
301         max_length=255,
302         allow_null=True)
303     vnfdVersion = serializers.CharField(
304         help_text="vnfdVersion",
305         required=False, max_length=255, allow_null=True)
306     vnfProvider = serializers.CharField(
307         help_text="vnfProvider",
308         required=False, max_length=255, allow_null=True)
309     instantiatedVnfInfo = instantiatedVnfInfoSerializer(
310         help_text="instantiatedVnfInfo", required=True)
311
312
313 class VnfsInfoSerializer(serializers.ListSerializer):
314     child = VnfInfoSerializer()
315
316
317 class ExtVirtualLinkSerizlizer(serializers.Serializer):
318     vlInstanceId = serializers.CharField(
319         help_text="vlInstanceId",
320         required=False, max_length=255, allow_null=True)
321     resourceSubnetId = serializers.CharField(
322         help_text="resourceSubnetId",
323         required=False,
324         max_length=255,
325         allow_null=True)
326     cpdId = serializers.CharField(
327         help_text="cpdId",
328         required=False, max_length=255, allow_null=True)
329     resourceId = serializers.CharField(
330         help_text="resourceId",
331         required=False, max_length=255, allow_null=True)
332     vim = VimInfoSerializer(help_text="vim", required=False, allow_null=True)
333     extCps = ExtCpInfoSerializer(
334         help_text="extCps",
335         many=True,
336         required=False,
337         allow_null=True)
338
339
340 class AdditionalParamsSerializer(serializers.Serializer):
341     inputs = serializers.DictField(
342         help_text="inputs",
343         child=serializers.CharField(
344             help_text="custom key-value",
345             allow_blank=True),
346         required=False,
347         allow_null=True)
348     extVirtualLinks = serializers.ListSerializer(
349         help_text="extVirtualLinks",
350         child=ExtVirtualLinkSerizlizer(help_text="extVirtualLinks", required=False, allow_null=True),
351         required=False,
352         allow_null=True)
353
354
355 class InstantiateVnfRequestSerializer(serializers.Serializer):
356     flavourId = serializers.CharField(
357         help_text="flavourId",
358         required=True,
359         max_length=255,
360         allow_null=True)
361     instantiationLevelId = serializers.CharField(
362         help_text="instantiationLevelId",
363         required=True,
364         max_length=255,
365         allow_null=True)
366     localizationLanguage = serializers.CharField(
367         help_text="localizationLanguage",
368         required=True,
369         max_length=255,
370         allow_null=True)
371     extVirtualLinks = serializers.ListSerializer(
372         help_text="extVirtualLinks",
373         child=ExtVirtualLinkSerizlizer(help_text="extVirtualLinks", required=False, allow_null=True),
374         required=False,
375         allow_null=True)
376     additionalParams = AdditionalParamsSerializer(
377         help_text="additionalParams", required=False, allow_null=True)
378
379
380 class InstOrTeriVnfResponseSerializer(serializers.Serializer):
381     jobId = serializers.CharField(
382         help_text="jobId",
383         required=True,
384         max_length=255,
385         allow_null=True)
386
387
388 class TerminateVnfRequestSerializer(serializers.Serializer):
389     terminationType = serializers.CharField(
390         help_text="terminationType",
391         required=True,
392         max_length=255,
393         allow_null=True)
394     gracefulTerminationTimeout = serializers.IntegerField(
395         help_text="gracefulTerminationTimeout", default=120, required=False)