0c1666bb81bf5e252b5f6d70f7c780354899ec18
[vfc/nfvo/driver/vnfm/svnfm.git] / zte / vmanager / driver / interfaces / 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 AdditionalParamSerializer(serializers.Serializer):
19     sdncontroller = serializers.CharField(
20         help_text="SDN Controller identification",
21         required=True,
22         max_length=255,
23         allow_null=True)
24     NatIpRange = serializers.CharField(
25         help_text="Nat ip address range",
26         required=True,
27         max_length=255,
28         allow_null=True)
29     m6000_mng_ip = serializers.CharField(
30         help_text="M6000 management ip address",
31         required=True,
32         max_length=255,
33         allow_null=True)
34     externalPluginManageNetworkName = serializers.CharField(
35         help_text="External plugin management network name",
36         required=True,
37         max_length=255,
38         allow_null=True)
39     location = serializers.CharField(
40         help_text="SDN controller location",
41         required=True,
42         max_length=255,
43         allow_null=True)
44     externalManageNetworkName = serializers.CharField(
45         help_text="External Management Network Name",
46         required=True,
47         max_length=255,
48         allow_null=True)
49     sfc_data_network = serializers.CharField(
50         help_text="SFC data plane network",
51         required=True,
52         max_length=255,
53         allow_null=True)
54     externalDataNetworkName = serializers.CharField(
55         help_text="External data plane network name",
56         required=True,
57         max_length=255,
58         allow_null=True)
59     inputs = serializers.DictField(
60         help_text='Input parameters',
61         child=serializers.CharField(allow_blank=True),
62         required=False,
63         allow_null=True)
64
65
66 class InstantiateVnfRequestSerializer(serializers.Serializer):
67     vnfInstanceName = serializers.CharField(
68         help_text="Vnf instance name",
69         required=True,
70         max_length=255,
71         allow_null=True)
72     vnfPackageId = serializers.CharField(
73         help_text="Vnf package identification",
74         required=True,
75         max_length=255,
76         allow_null=True)
77     vnfDescriptorId = serializers.CharField(
78         help_text="Vnf descriptor identification",
79         required=True,
80         max_length=255,
81         allow_null=True)
82     additionalParam = AdditionalParamSerializer(
83         help_text="Additional parameters",
84         required=True,
85         allow_null=True)
86
87
88 class TerminateVnfRequestSerializer(serializers.Serializer):
89     terminationType = serializers.CharField(
90         help_text="Termination type",
91         required=True,
92         max_length=255,
93         allow_null=True)
94     gracefulTerminationTimeout = serializers.IntegerField(
95         help_text="Graceful termination timeout",
96         default=120,
97         required=False)
98
99
100 class VnfInfoSerializer(serializers.Serializer):
101     vnfStatus = serializers.CharField(
102         help_text="Vnf status",
103         required=True,
104         max_length=255,
105         allow_null=True)
106
107
108 class QueryVnfResponseSerializer(serializers.Serializer):
109     vnfInfo = VnfInfoSerializer(
110         help_text="Vnf instance information",
111         required=True)
112
113
114 class JobHistorySerializer(serializers.Serializer):
115     status = serializers.CharField(
116         help_text="Status of the job",
117         required=True,
118         allow_null=False)
119     progress = serializers.IntegerField(
120         help_text="Progress of the job",
121         required=True,
122         allow_null=False)
123     statusDescription = serializers.CharField(
124         help_text="Description of the job",
125         required=False,
126         allow_null=True)
127     errorCode = serializers.CharField(
128         help_text="Error code of the job",
129         required=False,
130         allow_blank=True)
131     responseId = serializers.IntegerField(
132         help_text="Response index of the job",
133         required=True,
134         allow_null=False)
135
136
137 class JobDescriptorSerializer(serializers.Serializer):
138     status = serializers.CharField(
139         help_text="Status of the job",
140         required=True,
141         allow_null=False)
142     progress = serializers.IntegerField(
143         help_text="Progress of the job",
144         required=True,
145         allow_null=False)
146     statusDescription = serializers.CharField(
147         help_text="Description of the job",
148         required=False,
149         allow_null=True)
150     errorCode = serializers.CharField(
151         help_text="Error code of the job",
152         required=False,
153         allow_blank=True)
154     responseId = serializers.IntegerField(
155         help_text="Response index of the job",
156         required=True,
157         allow_null=False)
158     responseHistoryList = JobHistorySerializer(
159         help_text="History information of the job",
160         many=True)
161
162
163 class JobQueryRespSerializer(serializers.Serializer):
164     jobId = serializers.CharField(
165         help_text="UUID of the job",
166         required=True,
167         allow_null=False)
168     responseDescriptor = JobDescriptorSerializer(
169         help_text="Information of the job",
170         required=False)
171
172
173 class GrantVmlistSerializer(serializers.Serializer):
174     VMNumber = serializers.CharField(
175         help_text="The number of virtual machine",
176         max_length=255,
177         required=False,
178         allow_null=True)
179     VMFlavor = serializers.CharField(
180         help_text="The flavor of virtual machines",
181         max_length=255,
182         required=False,
183         allow_null=True)
184     vimid = serializers.CharField(
185         help_text="The VIM identification that virtual machines belong to",
186         max_length=255,
187         required=True,
188         allow_blank=True)
189     tenant = serializers.CharField(
190         help_text="The tenant that virtual machines belong to",
191         max_length=255,
192         required=False,
193         allow_blank=True)
194
195
196 class GrantReqSerializer(serializers.Serializer):
197     nfvoid = serializers.CharField(
198         help_text="NFVO identification",
199         max_length=255,
200         required=True,
201         allow_null=True)
202     vnfmid = serializers.CharField(
203         help_text="VNFM identification",
204         max_length=255,
205         required=True,
206         allow_null=True)
207     vimid = serializers.CharField(
208         help_text="VIM identification that VNF belongs to",
209         max_length=255,
210         required=True,
211         allow_null=True)
212     tenant = serializers.CharField(
213         help_text="The tenant that VNF belongs to",
214         max_length=255,
215         required=False,
216         allow_blank=True)
217     vnfinstanceid = serializers.CharField(
218         help_text="VNF instance identification",
219         max_length=255,
220         required=False,
221         allow_null=True)
222     operationright = serializers.CharField(
223         help_text="VNF Operation right",
224         max_length=255,
225         required=False,
226         allow_null=True)
227     vmlist = GrantVmlistSerializer(
228         help_text='Virtual machines of the VNF instance',
229         required=False,
230         many=True)
231     exvimidlist = serializers.ListSerializer(
232         help_text='Exclusive VIM identifications',
233         child=serializers.CharField(allow_null=True),
234         required=False)
235
236
237 class GrantRespSerializer(serializers.Serializer):
238     vimid = serializers.CharField(
239         help_text="VIM identification",
240         max_length=255,
241         required=True,
242         allow_null=True)
243     tenant = serializers.CharField(
244         help_text="tenant",
245         max_length=255,
246         required=True,
247         allow_null=True)
248
249
250 class VMIDlistSerializer(serializers.Serializer):
251     VMID = serializers.CharField(
252         help_text="Virtual machine identification",
253         max_length=255,
254         required=False,
255         allow_null=True)
256     VMName = serializers.CharField(
257         help_text="Virtual machine name",
258         max_length=255,
259         required=False,
260         allow_null=True)
261     vimid = serializers.CharField(
262         help_text="VIM identification",
263         max_length=255,
264         required=False,
265         allow_null=True)
266     tenant = serializers.CharField(
267         help_text="tenant",
268         max_length=255,
269         required=False,
270         allow_null=True)
271
272
273 class NotifyVmlistSerializer(serializers.Serializer):
274     VMNumber = serializers.CharField(
275         help_text="Virtual machine number",
276         max_length=255,
277         required=False,
278         allow_null=True)
279     vdutype = serializers.CharField(
280         help_text="Virtual deployment unit type",
281         max_length=255,
282         required=False,
283         allow_null=True)
284     VMFlavor = serializers.CharField(
285         help_text="Virtual machine flavor",
286         max_length=255,
287         required=False,
288         allow_null=True)
289     VMIDlist = serializers.ListSerializer(
290         help_text='Virtual machine identification list',
291         child=VMIDlistSerializer(
292             help_text='Virtual machine identification',
293             required=True,
294             allow_null=True),
295         required=False,
296         allow_null=True)
297
298
299 class NotifyReqSerializer(serializers.Serializer):
300     nfvoid = serializers.CharField(
301         help_text="NFVO identification",
302         max_length=255,
303         required=True,
304         allow_null=True)
305     vnfmid = serializers.CharField(
306         help_text="VNFM identification",
307         max_length=255,
308         required=True,
309         allow_null=True)
310     vimid = serializers.CharField(
311         help_text="VIM identification",
312         max_length=255,
313         required=True,
314         allow_null=True)
315     timestamp = serializers.CharField(
316         help_text="Time stamp",
317         max_length=255,
318         required=False,
319         allow_blank=True)
320     vnfinstanceid = serializers.CharField(
321         help_text="VNF instance identification",
322         max_length=255,
323         required=False,
324         allow_null=True)
325     eventtype = serializers.CharField(
326         help_text="Event type",
327         max_length=255,
328         required=False,
329         allow_null=True)
330     vmlist = NotifyVmlistSerializer(
331         help_text='Virtual machine list',
332         required=False,
333         many=True)
334     extension = serializers.DictField(
335         help_text="Extension",
336         child=serializers.DictField(
337             allow_null=True),
338         required=False,
339         allow_null=True)
340     affectedcp = serializers.ListSerializer(
341         help_text='Affected connected points',
342         child=serializers.DictField(
343             allow_null=True),
344         required=False)
345     affectedvirtuallink = serializers.ListSerializer(
346         help_text='Affected virtual links',
347         child=serializers.DictField(
348             allow_null=True),
349         required=False)
350
351
352 class ScaleReqSerializer(serializers.Serializer):
353     type = serializers.CharField(
354         help_text="Scale type",
355         max_length=255,
356         required=True,
357         allow_null=True)
358     aspectId = serializers.CharField(
359         help_text="Scale aspectId",
360         max_length=255,
361         required=True,
362         allow_null=True)
363     numberOfSteps = serializers.CharField(
364         help_text="The number of steps",
365         max_length=255,
366         required=True,
367         allow_null=True)
368     additionalParam = serializers.DictField(
369         help_text="Additional parameters",
370         child=serializers.DictField(
371             allow_null=True),
372         required=False,
373         allow_null=True)
374
375
376 class AffectedvmSerializer(serializers.Serializer):
377     extention = serializers.CharField(
378         help_text="Extension parameters",
379         max_length=255,
380         required=True,
381         allow_blank=True)
382     vmid = serializers.CharField(
383         help_text="Virtual machine identification",
384         max_length=255,
385         required=True,
386         allow_null=True)
387     changtype = serializers.CharField(
388         help_text="Chang type",
389         max_length=255,
390         required=True,
391         allow_null=True)
392     vduid = serializers.CharField(
393         help_text="Virtual deployment unit identification",
394         max_length=255,
395         required=True,
396         allow_null=True)
397     vmname = serializers.CharField(
398         help_text="Virtual machine name",
399         max_length=255,
400         required=True,
401         allow_null=True)
402     flavour = serializers.DictField(
403         help_text="Virtual machine flavour",
404         child=serializers.CharField(
405             allow_blank=True),
406         required=False,
407         allow_null=True)
408
409
410 class HealReqSerializer(serializers.Serializer):
411     action = serializers.CharField(
412         help_text="Heal action",
413         max_length=255,
414         required=True,
415         allow_null=False)
416     lifecycleoperation = serializers.CharField(
417         help_text="Life cycle operation",
418         max_length=255,
419         required=True,
420         allow_null=False)
421     isgrace = serializers.CharField(
422         help_text="Whether the operation is grace or not",
423         max_length=255,
424         required=False,
425         allow_null=True)
426     affectedvm = serializers.ListSerializer(
427         help_text='Affected virtual machine list',
428         child=AffectedvmSerializer(
429             help_text='Affected virtual machine',
430             required=True,
431             allow_null=True),
432         required=True,
433         allow_null=True)
434
435
436 class InstScaleHealRespSerializer(serializers.Serializer):
437     jobId = serializers.CharField(
438         help_text="The job identification",
439         max_length=255,
440         required=True,
441         allow_null=True)
442     vnfInstanceId = serializers.CharField(
443         help_text="The vnf instance id",
444         max_length=255,
445         required=True,
446         allow_null=True)
447
448
449 class SubscribeFilterSerializer(serializers.Serializer):
450     vendor = serializers.CharField(
451         help_text="The VNF vendor",
452         max_length=255,
453         required=True,
454         allow_null=True)
455     type = serializers.CharField(
456         help_text="The subscription type",
457         max_length=255,
458         required=True,
459         allow_null=True)
460
461
462 class SubscribeSerializer(serializers.Serializer):
463     subscribeid = serializers.CharField(
464         help_text="Subscription identification",
465         max_length=255,
466         required=True,
467         allow_null=True)
468     notificationuri = serializers.CharField(
469         help_text="The notification URI",
470         max_length=255,
471         required=True,
472         allow_null=True)
473     filter = SubscribeFilterSerializer(
474         help_text="The subscription filter",
475         many=True,
476         required=False,
477         allow_null=True)
478
479
480 class SubscribesRespSerializer(serializers.Serializer):
481     child = SubscribeSerializer()
482
483
484 class SubscribeReqSerializer(serializers.Serializer):
485     nfvoid = serializers.CharField(
486         help_text="NFVO identification",
487         max_length=255,
488         required=True,
489         allow_null=True)
490     vnfmid = serializers.CharField(
491         help_text="VNFM identification",
492         max_length=255,
493         required=True,
494         allow_null=True)
495     notificationuri = serializers.CharField(
496         help_text="The Notification URI",
497         max_length=255,
498         required=True,
499         allow_null=True)
500     filter = SubscribeFilterSerializer(
501         help_text="The subscription filter",
502         many=True,
503         required=False,
504         allow_null=True)
505
506
507 class SubscribeRespSerializer(serializers.Serializer):
508     subscribeid = serializers.CharField(
509         help_text="The subscription identification",
510         max_length=255,
511         required=True,
512         allow_null=True)
513
514
515 class VnfPkgSerializer(serializers.Serializer):
516     packageid = serializers.CharField(
517         help_text="The package identification",
518         max_length=255,
519         required=False,
520         allow_null=True)
521     vendor = serializers.CharField(
522         help_text="The VNF vendor",
523         max_length=255,
524         required=False,
525         allow_null=True)
526     type = serializers.CharField(
527         help_text="THe VNF package type",
528         max_length=255,
529         required=False,
530         allow_null=True)
531     vnfdfile = serializers.CharField(
532         help_text="The VNFD file",
533         max_length=255,
534         required=False,
535         allow_null=True)
536     imagefiles = serializers.ListSerializer(
537         help_text='The image file list',
538         child=serializers.CharField(
539             help_text='The image file',
540             required=True),
541         required=False,
542         allow_null=True)
543     swfiles = serializers.ListSerializer(
544         help_text='The software file list',
545         child=serializers.CharField(
546             help_text='THe software file',
547             required=True),
548         required=False,
549         allow_null=True)
550     description = serializers.CharField(
551         help_text="The VNF package description",
552         max_length=255,
553         required=False,
554         allow_null=True)
555
556
557 class VnfPkgsSerializer(serializers.Serializer):
558     data = VnfPkgSerializer(
559         help_text="The vnf package",
560         many=True,
561         required=False,
562         allow_null=True)
563
564
565 class NfvoInfoReqSerializer(serializers.Serializer):
566     nfvoid = serializers.CharField(
567         help_text="NFVO identification",
568         max_length=255,
569         required=False,
570         allow_null=True)
571     vnfmid = serializers.CharField(
572         help_text="VNFM identification",
573         max_length=255,
574         required=False,
575         allow_null=True)
576     nfvourl = serializers.CharField(
577         help_text="NFVO URL",
578         max_length=255,
579         required=False,
580         allow_null=True)