1 # Copyright 2018 ZTE Corporation.
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
7 # http://www.apache.org/licenses/LICENSE-2.0
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.
15 from rest_framework import serializers
18 class AdditionalParamSerializer(serializers.Serializer):
19 sdncontroller = serializers.CharField(
20 help_text="SDN Controller identification",
24 NatIpRange = serializers.CharField(
25 help_text="Nat ip address range",
29 m6000_mng_ip = serializers.CharField(
30 help_text="M6000 management ip address",
34 externalPluginManageNetworkName = serializers.CharField(
35 help_text="External plugin management network name",
39 location = serializers.CharField(
40 help_text="SDN controller location",
44 externalManageNetworkName = serializers.CharField(
45 help_text="External Management Network Name",
49 sfc_data_network = serializers.CharField(
50 help_text="SFC data plane network",
54 externalDataNetworkName = serializers.CharField(
55 help_text="External data plane network name",
59 inputs = serializers.DictField(
60 help_text='Input parameters',
61 child=serializers.CharField(allow_blank=True),
66 class InstantiateVnfRequestSerializer(serializers.Serializer):
67 vnfInstanceName = serializers.CharField(
68 help_text="Vnf instance name",
72 vnfPackageId = serializers.CharField(
73 help_text="Vnf package identification",
77 vnfDescriptorId = serializers.CharField(
78 help_text="Vnf descriptor identification",
82 additionalParam = AdditionalParamSerializer(
83 help_text="Additional parameters",
88 class TerminateVnfRequestSerializer(serializers.Serializer):
89 terminationType = serializers.CharField(
90 help_text="Termination type",
94 gracefulTerminationTimeout = serializers.IntegerField(
95 help_text="Graceful termination timeout",
100 class VnfInfoSerializer(serializers.Serializer):
101 vnfStatus = serializers.CharField(
102 help_text="Vnf status",
108 class QueryVnfResponseSerializer(serializers.Serializer):
109 vnfInfo = VnfInfoSerializer(
110 help_text="Vnf instance information",
114 class JobHistorySerializer(serializers.Serializer):
115 status = serializers.CharField(
116 help_text="Status of the job",
119 progress = serializers.IntegerField(
120 help_text="Progress of the job",
123 statusDescription = serializers.CharField(
124 help_text="Description of the job",
127 errorCode = serializers.CharField(
128 help_text="Error code of the job",
131 responseId = serializers.IntegerField(
132 help_text="Response index of the job",
137 class JobDescriptorSerializer(serializers.Serializer):
138 status = serializers.CharField(
139 help_text="Status of the job",
142 progress = serializers.IntegerField(
143 help_text="Progress of the job",
146 statusDescription = serializers.CharField(
147 help_text="Description of the job",
150 errorCode = serializers.CharField(
151 help_text="Error code of the job",
154 responseId = serializers.IntegerField(
155 help_text="Response index of the job",
158 responseHistoryList = JobHistorySerializer(
159 help_text="History information of the job",
163 class JobQueryRespSerializer(serializers.Serializer):
164 jobId = serializers.CharField(
165 help_text="UUID of the job",
168 responseDescriptor = JobDescriptorSerializer(
169 help_text="Information of the job",
173 class GrantVmlistSerializer(serializers.Serializer):
174 VMNumber = serializers.CharField(
175 help_text="The number of virtual machine",
179 VMFlavor = serializers.CharField(
180 help_text="The flavor of virtual machines",
184 vimid = serializers.CharField(
185 help_text="The VIM identification that virtual machines belong to",
189 tenant = serializers.CharField(
190 help_text="The tenant that virtual machines belong to",
196 class GrantReqSerializer(serializers.Serializer):
197 nfvoid = serializers.CharField(
198 help_text="NFVO identification",
202 vnfmid = serializers.CharField(
203 help_text="VNFM identification",
207 vimid = serializers.CharField(
208 help_text="VIM identification that VNF belongs to",
212 tenant = serializers.CharField(
213 help_text="The tenant that VNF belongs to",
217 vnfinstanceid = serializers.CharField(
218 help_text="VNF instance identification",
222 operationright = serializers.CharField(
223 help_text="VNF Operation right",
227 vmlist = GrantVmlistSerializer(
228 help_text='Virtual machines of the VNF instance',
231 exvimidlist = serializers.ListSerializer(
232 help_text='Exclusive VIM identifications',
233 child=serializers.CharField(allow_null=True),
237 class GrantRespSerializer(serializers.Serializer):
238 vimid = serializers.CharField(
239 help_text="VIM identification",
243 tenant = serializers.CharField(
250 class VMIDlistSerializer(serializers.Serializer):
251 VMID = serializers.CharField(
252 help_text="Virtual machine identification",
256 VMName = serializers.CharField(
257 help_text="Virtual machine name",
261 vimid = serializers.CharField(
262 help_text="VIM identification",
266 tenant = serializers.CharField(
273 class NotifyVmlistSerializer(serializers.Serializer):
274 VMNumber = serializers.CharField(
275 help_text="Virtual machine number",
279 vdutype = serializers.CharField(
280 help_text="Virtual deployment unit type",
284 VMFlavor = serializers.CharField(
285 help_text="Virtual machine flavor",
289 VMIDlist = serializers.ListSerializer(
290 help_text='Virtual machine identification list',
291 child=VMIDlistSerializer(
292 help_text='Virtual machine identification',
299 class NotifyReqSerializer(serializers.Serializer):
300 nfvoid = serializers.CharField(
301 help_text="NFVO identification",
305 vnfmid = serializers.CharField(
306 help_text="VNFM identification",
310 vimid = serializers.CharField(
311 help_text="VIM identification",
315 timestamp = serializers.CharField(
316 help_text="Time stamp",
320 vnfinstanceid = serializers.CharField(
321 help_text="VNF instance identification",
325 eventtype = serializers.CharField(
326 help_text="Event type",
330 vmlist = NotifyVmlistSerializer(
331 help_text='Virtual machine list',
334 extension = serializers.DictField(
335 help_text="Extension",
336 child=serializers.DictField(
340 affectedcp = serializers.ListSerializer(
341 help_text='Affected connected points',
342 child=serializers.DictField(
345 affectedvirtuallink = serializers.ListSerializer(
346 help_text='Affected virtual links',
347 child=serializers.DictField(
352 class ScaleReqSerializer(serializers.Serializer):
353 type = serializers.CharField(
354 help_text="Scale type",
358 aspectId = serializers.CharField(
359 help_text="Scale aspectId",
363 numberOfSteps = serializers.CharField(
364 help_text="The number of steps",
368 additionalParam = serializers.DictField(
369 help_text="Additional parameters",
370 child=serializers.DictField(
376 class AffectedvmSerializer(serializers.Serializer):
377 extention = serializers.CharField(
378 help_text="Extension parameters",
382 vmid = serializers.CharField(
383 help_text="Virtual machine identification",
387 changtype = serializers.CharField(
388 help_text="Chang type",
392 vduid = serializers.CharField(
393 help_text="Virtual deployment unit identification",
397 vmname = serializers.CharField(
398 help_text="Virtual machine name",
402 flavour = serializers.DictField(
403 help_text="Virtual machine flavour",
404 child=serializers.CharField(
410 class HealReqSerializer(serializers.Serializer):
411 action = serializers.CharField(
412 help_text="Heal action",
416 lifecycleoperation = serializers.CharField(
417 help_text="Life cycle operation",
421 isgrace = serializers.CharField(
422 help_text="Whether the operation is grace or not",
426 affectedvm = serializers.ListSerializer(
427 help_text='Affected virtual machine list',
428 child=AffectedvmSerializer(
429 help_text='Affected virtual machine',
436 class InstScaleHealRespSerializer(serializers.Serializer):
437 jobId = serializers.CharField(
438 help_text="The job identification",
442 vnfInstanceId = serializers.CharField(
443 help_text="The vnf instance id",
449 class SubscribeFilterSerializer(serializers.Serializer):
450 vendor = serializers.CharField(
451 help_text="The VNF vendor",
455 type = serializers.CharField(
456 help_text="The subscription type",
462 class SubscribeSerializer(serializers.Serializer):
463 subscribeid = serializers.CharField(
464 help_text="Subscription identification",
468 notificationuri = serializers.CharField(
469 help_text="The notification URI",
473 filter = SubscribeFilterSerializer(
474 help_text="The subscription filter",
480 class SubscribesRespSerializer(serializers.Serializer):
481 child = SubscribeSerializer()
484 class SubscribeReqSerializer(serializers.Serializer):
485 nfvoid = serializers.CharField(
486 help_text="NFVO identification",
490 vnfmid = serializers.CharField(
491 help_text="VNFM identification",
495 notificationuri = serializers.CharField(
496 help_text="The Notification URI",
500 filter = SubscribeFilterSerializer(
501 help_text="The subscription filter",
507 class SubscribeRespSerializer(serializers.Serializer):
508 subscribeid = serializers.CharField(
509 help_text="The subscription identification",
515 class VnfPkgSerializer(serializers.Serializer):
516 packageid = serializers.CharField(
517 help_text="The package identification",
521 vendor = serializers.CharField(
522 help_text="The VNF vendor",
526 type = serializers.CharField(
527 help_text="THe VNF package type",
531 vnfdfile = serializers.CharField(
532 help_text="The VNFD file",
536 imagefiles = serializers.ListSerializer(
537 help_text='The image file list',
538 child=serializers.CharField(
539 help_text='The image file',
543 swfiles = serializers.ListSerializer(
544 help_text='The software file list',
545 child=serializers.CharField(
546 help_text='THe software file',
550 description = serializers.CharField(
551 help_text="The VNF package description",
557 class VnfPkgsSerializer(serializers.Serializer):
558 data = VnfPkgSerializer(
559 help_text="The vnf package",
565 class NfvoInfoReqSerializer(serializers.Serializer):
566 nfvoid = serializers.CharField(
567 help_text="NFVO identification",
571 vnfmid = serializers.CharField(
572 help_text="VNFM identification",
576 nfvourl = serializers.CharField(
577 help_text="NFVO URL",