Format vfc-vnflcm swagger schemas
[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",
142         choices=['http', 'https'],
143         required=True)
144
145
146 class VimInfoSerializer(serializers.Serializer):
147     vimInfoId = serializers.CharField(
148         help_text="vimInfoId",
149         required=False,
150         max_length=255,
151         allow_null=True)
152     vimId = serializers.CharField(
153         help_text="vimId",
154         required=False,
155         max_length=255,
156         allow_null=True)
157     interfaceEndpoint = serializers.CharField(
158         help_text="interfaceEndpoint",
159         required=False,
160         max_length=255,
161         allow_null=True)
162     interfaceInfo = InterfaceInfoSerializer(
163         help_text="vimInfoId",
164         required=False,
165         allow_null=True)
166     accessInfo = AccessInfoSerializer(
167         help_text="accessInfo",
168         required=False,
169         allow_null=True)
170
171
172 class LinkPortsSerializer(serializers.Serializer):
173     resourceId = serializers.CharField(
174         help_text="resourceId",
175         required=True,
176         max_length=255,
177         allow_null=True)
178     vimId = serializers.CharField(
179         help_text="vimId",
180         required=False,
181         max_length=255,
182         allow_null=True)
183
184
185 class ResourceHandleSerializer(serializers.Serializer):
186     resourceId = serializers.CharField(
187         help_text="resourceId",
188         required=True,
189         max_length=255,
190         allow_null=True)
191     vimId = serializers.CharField(
192         help_text="vimId",
193         required=False,
194         max_length=255,
195         allow_null=True)
196     resourceProviderId = serializers.CharField(
197         help_text="resourceProviderId",
198         required=False,
199         max_length=255,
200         allow_null=True)
201
202
203 class ExtVirtualLinkInfoSerializer(serializers.Serializer):
204     extVirtualLinkId = serializers.CharField(
205         help_text="extVirtualLinkId",
206         required=True,
207         max_length=255,
208         allow_null=True)
209     resourceHandle = ResourceHandleSerializer(
210         help_text="iPAddress",
211         required=True)
212     linkPorts = LinkPortsSerializer(
213         help_text="iPAddress",
214         many=True,
215         allow_null=True)
216
217
218 class L3AddressDataSerializer(serializers.Serializer):
219     iPAddressType = serializers.ChoiceField(
220         help_text="iPAddressType",
221         choices=['IPv4', 'IPv6'],
222         required=True)
223     iPAddress = serializers.CharField(
224         help_text="iPAddress",
225         required=True,
226         max_length=255,
227         allow_null=True)
228
229
230 class NetworkAddressSerializer(serializers.Serializer):
231     addressType = serializers.ChoiceField(
232         help_text="addressType",
233         choices=['MAC', 'IP'],
234         required=True)
235     l2AddressData = serializers.CharField(
236         help_text="l2AddressData",
237         required=False,
238         max_length=255,
239         allow_null=True)
240     l3AddressData = L3AddressDataSerializer(
241         help_text="addresses",
242         required=False)
243
244
245 class ExtCpInfoSerializer(serializers.Serializer):
246     cpInstanceId = serializers.CharField(
247         help_text="cpInstanceId",
248         required=False,
249         max_length=255,
250         allow_null=True)
251     cpdId = serializers.CharField(
252         help_text="cpdId",
253         required=True,
254         max_length=255,
255         allow_null=True)
256     numDynamicAddresses = serializers.CharField(
257         help_text="numDynamicAddresses",
258         required=False,
259         max_length=255,
260         allow_null=True)
261     addresses = NetworkAddressSerializer(
262         help_text="addresses",
263         many=True,
264         allow_null=True)
265
266
267 class ScaleInfoSerializer(serializers.Serializer):
268     aspectId = serializers.CharField(
269         help_text="aspectId",
270         required=True,
271         max_length=255,
272         allow_null=True)
273     scaleLevel = serializers.IntegerField(
274         help_text="scaleLevel",
275         required=True)
276
277
278 class instantiatedVnfInfoSerializer(serializers.Serializer):
279     flavourId = serializers.CharField(
280         help_text="flavourId",
281         required=True,
282         max_length=255,
283         allow_null=True)
284     vnfState = serializers.ChoiceField(
285         help_text="vnfState",
286         choices=['STARTED', 'STOPPED'],
287         required=True,
288         allow_null=True)
289     scaleStatus = ScaleInfoSerializer(
290         help_text="scaleStatus",
291         many=True)
292     extCpInfo = ExtCpInfoSerializer(
293         help_text="extCpInfo",
294         many=True)
295     extVirtualLink = ExtVirtualLinkInfoSerializer(
296         help_text="extVirtualLink",
297         many=True)
298     monitoringParameters = serializers.DictField(
299         help_text="monitoringParameters",
300         child=serializers.CharField(allow_blank=True),
301         required=False,
302         allow_null=True)
303     vimInfo = VimInfoSerializer(
304         help_text="vimInfo",
305         many=True)
306     vnfcResourceInfo = VnfcResourceInfoSerializer(
307         help_text="vnfcResourceInfo",
308         many=True)
309     virtualLinkResourceInfo = VirtualLinkResourceInfoSerializer(
310         help_text="virtualLinkResourceInfo",
311         many=True)
312     virtualStorageResourceInfo = VirtualStorageResourceInfoSerializer(
313         help_text="virtualStorageResourceInfo",
314         many=True)
315
316
317 class VnfInfoSerializer(serializers.Serializer):
318     vnfInstanceId = serializers.CharField(
319         help_text="vnfInstanceId",
320         required=True,
321         max_length=255,
322         allow_null=True)
323     vnfInstanceName = serializers.CharField(
324         help_text="vnfInstanceName",
325         required=True,
326         max_length=255,
327         allow_null=True)
328     onboardedVnfPkgInfoId = serializers.CharField(
329         help_text="onboardedVnfPkgInfoId",
330         required=False,
331         max_length=255,
332         allow_null=True)
333     vnfdVersion = serializers.CharField(
334         help_text="vnfdVersion",
335         required=False,
336         max_length=255,
337         allow_null=True)
338     vnfProvider = serializers.CharField(
339         help_text="vnfProvider",
340         required=False,
341         max_length=255,
342         allow_null=True)
343     instantiatedVnfInfo = instantiatedVnfInfoSerializer(
344         help_text="instantiatedVnfInfo",
345         required=True)
346
347
348 class VnfsInfoSerializer(serializers.ListSerializer):
349     child = VnfInfoSerializer()
350
351
352 class ExtVirtualLinkSerizlizer(serializers.Serializer):
353     vlInstanceId = serializers.CharField(
354         help_text="vlInstanceId",
355         required=False,
356         max_length=255,
357         allow_null=True)
358     resourceSubnetId = serializers.CharField(
359         help_text="resourceSubnetId",
360         required=False,
361         max_length=255,
362         allow_null=True)
363     cpdId = serializers.CharField(
364         help_text="cpdId",
365         required=False,
366         max_length=255,
367         allow_null=True)
368     resourceId = serializers.CharField(
369         help_text="resourceId",
370         required=False,
371         max_length=255,
372         allow_null=True)
373     vim = VimInfoSerializer(
374         help_text="vim",
375         required=False,
376         allow_null=True)
377     extCps = ExtCpInfoSerializer(
378         help_text="extCps",
379         many=True,
380         required=False,
381         allow_null=True)
382
383
384 class AdditionalParamsSerializer(serializers.Serializer):
385     inputs = serializers.DictField(
386         help_text="inputs",
387         child=serializers.CharField(help_text="custom key-value", allow_blank=True),
388         required=False,
389         allow_null=True)
390     extVirtualLinks = serializers.ListSerializer(
391         help_text="extVirtualLinks",
392         child=ExtVirtualLinkSerizlizer(help_text="extVirtualLinks", required=False, allow_null=True),
393         required=False,
394         allow_null=True)
395
396
397 class InstantiateVnfRequestSerializer(serializers.Serializer):
398     flavourId = serializers.CharField(
399         help_text="flavourId",
400         required=True,
401         max_length=255,
402         allow_null=True)
403     instantiationLevelId = serializers.CharField(
404         help_text="instantiationLevelId",
405         required=True,
406         max_length=255,
407         allow_null=True)
408     localizationLanguage = serializers.CharField(
409         help_text="localizationLanguage",
410         required=True,
411         max_length=255,
412         allow_null=True)
413     extVirtualLinks = serializers.ListSerializer(
414         help_text="extVirtualLinks",
415         child=ExtVirtualLinkSerizlizer(help_text="extVirtualLinks", required=False, allow_null=True),
416         required=False,
417         allow_null=True)
418     additionalParams = AdditionalParamsSerializer(
419         help_text="additionalParams",
420         required=False,
421         allow_null=True)
422
423
424 class InstOrTeriVnfResponseSerializer(serializers.Serializer):
425     jobId = serializers.CharField(
426         help_text="jobId",
427         required=True,
428         max_length=255,
429         allow_null=True)
430
431
432 class TerminateVnfRequestSerializer(serializers.Serializer):
433     terminationType = serializers.CharField(
434         help_text="terminationType",
435         required=True,
436         max_length=255,
437         allow_null=True)
438     gracefulTerminationTimeout = serializers.IntegerField(
439         help_text="gracefulTerminationTimeout",
440         default=120,
441         required=False)