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 CreateVnfReqSerializer(serializers.Serializer):
19 vnfdId = serializers.CharField(
20 help_text="Identifier that identifies the VNFD which defines the VNF instance to be created.",
24 vnfInstanceName = serializers.CharField(
25 help_text="Human-readable name of the VNF instance to be created.",
29 vnfInstanceDescription = serializers.CharField(
30 help_text="Human-readable description of the VNF instance to be created.",
36 class CreateVnfRespSerializer(serializers.Serializer):
37 vnfInstanceId = serializers.CharField(
38 help_text="Identifier of the VNF instance",
44 class ResourceSerializer(serializers.Serializer):
45 resourceId = serializers.CharField(
46 help_text="resourceId",
50 vimId = serializers.CharField(
57 class VirtualStorageResourceInfoSerializer(serializers.Serializer):
58 virtualStorageInstanceId = serializers.CharField(
59 help_text="virtualStorageInstanceId",
63 virtualStorageDescId = serializers.CharField(
64 help_text="virtualStorageDescId",
68 storageResource = ResourceSerializer(
69 help_text="storageResource",
74 class VirtualLinkResourceInfoSerializer(serializers.Serializer):
75 virtualLinkInstanceId = serializers.CharField(
76 help_text="virtualLinkInstanceId",
80 virtualLinkDescId = serializers.CharField(
81 help_text="virtualLinkDescId",
85 networkResource = ResourceSerializer(
86 help_text="networkResource",
91 class VnfcResourceInfoSerializer(serializers.Serializer):
92 vnfcInstanceId = serializers.CharField(
93 help_text="vnfcInstanceId",
97 vduId = serializers.CharField(
99 required=False, max_length=255, allow_null=True)
100 storageResourceIds = serializers.CharField(
101 help_text="storageResourceIds",
105 computeResource = ResourceSerializer(
106 help_text="computeResource",
111 class AccessInfoSerializer(serializers.Serializer):
112 tenant = serializers.CharField(
117 username = serializers.CharField(
118 help_text="username",
122 password = serializers.CharField(
123 help_text="password",
129 class InterfaceInfoSerializer(serializers.Serializer):
130 vimType = serializers.CharField(
135 apiVersion = serializers.CharField(
136 help_text="apiVersion",
140 protocolType = serializers.ChoiceField(
141 help_text="protocolType",
142 choices=["http", "https"],
146 class VimInfoSerializer(serializers.Serializer):
147 vimInfoId = serializers.CharField(
148 help_text="vimInfoId",
152 vimId = serializers.CharField(
157 interfaceEndpoint = serializers.CharField(
158 help_text="interfaceEndpoint",
162 interfaceInfo = InterfaceInfoSerializer(
163 help_text="vimInfoId",
166 accessInfo = AccessInfoSerializer(
167 help_text="accessInfo",
172 class LinkPortsSerializer(serializers.Serializer):
173 resourceId = serializers.CharField(
174 help_text="resourceId",
178 vimId = serializers.CharField(
185 class ResourceHandleSerializer(serializers.Serializer):
186 resourceId = serializers.CharField(
187 help_text="resourceId",
191 vimId = serializers.CharField(
196 resourceProviderId = serializers.CharField(
197 help_text="resourceProviderId",
203 class ExtVirtualLinkInfoSerializer(serializers.Serializer):
204 extVirtualLinkId = serializers.CharField(
205 help_text="extVirtualLinkId",
209 resourceHandle = ResourceHandleSerializer(
210 help_text="iPAddress",
212 linkPorts = LinkPortsSerializer(
213 help_text="iPAddress",
218 class L3AddressDataSerializer(serializers.Serializer):
219 iPAddressType = serializers.ChoiceField(
220 help_text="iPAddressType",
221 choices=["IPv4", "IPv6"],
223 iPAddress = serializers.CharField(
224 help_text="iPAddress",
230 class NetworkAddressSerializer(serializers.Serializer):
231 addressType = serializers.ChoiceField(
232 help_text="addressType",
233 choices=["MAC", "IP"],
235 l2AddressData = serializers.CharField(
236 help_text="l2AddressData",
240 l3AddressData = L3AddressDataSerializer(
241 help_text="addresses",
245 class ExtCpInfoSerializer(serializers.Serializer):
246 cpInstanceId = serializers.CharField(
247 help_text="cpInstanceId",
251 cpdId = serializers.CharField(
256 numDynamicAddresses = serializers.CharField(
257 help_text="numDynamicAddresses",
261 addresses = NetworkAddressSerializer(
262 help_text="addresses",
267 class ScaleInfoSerializer(serializers.Serializer):
268 aspectId = serializers.CharField(
269 help_text="aspectId",
273 scaleLevel = serializers.IntegerField(
274 help_text="scaleLevel",
278 class instantiatedVnfInfoSerializer(serializers.Serializer):
279 flavourId = serializers.CharField(
280 help_text="flavourId",
284 vnfState = serializers.ChoiceField(
285 help_text="vnfState",
286 choices=["STARTED", "STOPPED", "NOT_INSTANTIATED", "INSTANTIATED", "FAILED"],
289 scaleStatus = ScaleInfoSerializer(
290 help_text="scaleStatus",
292 extCpInfo = ExtCpInfoSerializer(
293 help_text="extCpInfo",
295 extVirtualLink = ExtVirtualLinkInfoSerializer(
296 help_text="extVirtualLink",
298 monitoringParameters = serializers.DictField(
299 help_text="monitoringParameters",
300 child=serializers.CharField(allow_blank=True),
303 vimInfo = VimInfoSerializer(
306 vnfcResourceInfo = VnfcResourceInfoSerializer(
307 help_text="vnfcResourceInfo",
309 virtualLinkResourceInfo = VirtualLinkResourceInfoSerializer(
310 help_text="virtualLinkResourceInfo",
312 virtualStorageResourceInfo = VirtualStorageResourceInfoSerializer(
313 help_text="virtualStorageResourceInfo",
317 class VnfInfoSerializer(serializers.Serializer):
318 vnfInstanceId = serializers.CharField(
319 help_text="vnfInstanceId",
323 vnfInstanceName = serializers.CharField(
324 help_text="vnfInstanceName",
328 onboardedVnfPkgInfoId = serializers.CharField(
329 help_text="onboardedVnfPkgInfoId",
333 vnfdVersion = serializers.CharField(
334 help_text="vnfdVersion",
339 vnfProvider = serializers.CharField(
340 help_text="vnfProvider",
345 instantiatedVnfInfo = instantiatedVnfInfoSerializer(
346 help_text="instantiatedVnfInfo",
350 class VnfsInfoSerializer(serializers.ListSerializer):
351 child = VnfInfoSerializer()
354 class ExtVirtualLinkSerizlizer(serializers.Serializer):
355 vlInstanceId = serializers.CharField(
356 help_text="vlInstanceId",
360 resourceSubnetId = serializers.CharField(
361 help_text="resourceSubnetId",
365 cpdId = serializers.CharField(
370 resourceId = serializers.CharField(
371 help_text="resourceId",
375 vim = VimInfoSerializer(
379 extCps = ExtCpInfoSerializer(
386 class AdditionalParamsSerializer(serializers.Serializer):
387 vimId = serializers.CharField(
392 inputs = serializers.DictField(
394 child=serializers.CharField(help_text="custom key-value", allow_blank=True),
397 extVirtualLinks = serializers.ListSerializer(
398 help_text="extVirtualLinks",
399 child=ExtVirtualLinkSerizlizer(help_text="extVirtualLinks", required=False, allow_null=True),
404 class InstantiateVnfRequestSerializer(serializers.Serializer):
405 flavourId = serializers.CharField(
406 help_text="flavourId",
410 instantiationLevelId = serializers.CharField(
411 help_text="instantiationLevelId",
415 localizationLanguage = serializers.CharField(
416 help_text="localizationLanguage",
420 vnfmId = serializers.CharField(
425 extVirtualLinks = serializers.ListSerializer(
426 help_text="extVirtualLinks",
427 child=ExtVirtualLinkSerizlizer(help_text="extVirtualLinks", required=False, allow_null=True),
430 additionalParams = AdditionalParamsSerializer(
431 help_text="additionalParams",
436 class InstOrTeriVnfResponseSerializer(serializers.Serializer):
437 jobId = serializers.CharField(
444 class TerminateVnfRequestSerializer(serializers.Serializer):
445 terminationType = serializers.CharField(
446 help_text="terminationType",
450 gracefulTerminationTimeout = serializers.IntegerField(
451 help_text="gracefulTerminationTimeout",
456 class VimInfoSerializer(serializers.Serializer):
457 id = serializers.CharField(
458 help_text="The identifier of the VIM Connection. This identifier is managed by the NFVO.",
462 vimId = serializers.CharField(
463 help_text="The identifier of the VIM instance. This identifier is managed by the NFVO.",
467 vimType = serializers.CharField(
468 help_text="Discriminator for the different types of the VIM information.",
472 interfaceInfo = serializers.DictField(
473 help_text="Information about the interface or interfaces to the VIM",
474 child=serializers.CharField(allow_blank=True),
477 accessInfo = serializers.DictField(
478 help_text="Authentication credentials for accessing the VIM, and other access-related information",
479 child=serializers.CharField(allow_blank=True),
482 extra = serializers.DictField(
483 help_text="VIM type specific additional information.",
484 child=serializers.CharField(allow_blank=True),
489 class ScaleInfoSerializer(serializers.Serializer):
490 aspectId = serializers.CharField(
491 help_text="Identifier of the scaling aspect.",
495 scaleLevel = serializers.IntegerField(
496 help_text="Indicates the scale level.",
500 class CpProtocolInfoSerializer(serializers.Serializer):
501 layerProtocol = serializers.ChoiceField(
502 help_text="The identifier of layer(s) and protocol(s) associated to the network address information.",
503 choices=["IP_OVER_ETHERNET"],
506 ipOverEthernet = serializers.DictField(
507 help_text="IP addresses over Ethernet to assign to the extCP instance.",
508 child=serializers.CharField(allow_blank=True),
513 class ExtCpInfoSerializer(serializers.Serializer):
514 id = serializers.CharField(
515 help_text="Identifier of the external CP instance and the related information instance.",
519 cpdId = serializers.CharField(
520 help_text="Identifier of the external CPD, VnfExtCpd, in the VNFD.",
524 cpProtocolInfo = CpProtocolInfoSerializer(
525 help_text="Network protocol information for this CP.",
528 extLinkPortId = serializers.CharField(
529 help_text="Identifier of the 'extLinkPortInfo' structure inside the 'extVirtualLinkInfo' structure.",
535 class instantiatedVnfInfoSerializer(serializers.Serializer):
536 flavourId = serializers.CharField(
537 help_text="Identifier of the VNF deployment flavour applied to this VNF instance.",
541 vnfState = serializers.ChoiceField(
542 help_text="State of the VNF instance.",
543 choices=["STARTED", "STOPPED"],
546 scaleStatus = ScaleInfoSerializer(
547 help_text="Scale status of the VNF, one entry per aspect.",
550 extCpInfo = ExtCpInfoSerializer(
551 help_text="Information about the external CPs exposed by the VNF instance.",
556 class VnfInstanceSerializer(serializers.Serializer):
557 id = serializers.CharField(
558 help_text="Identifier of the VNF instance",
560 vnfInstanceName = serializers.CharField(
561 help_text="Name of the VNF instance.",
565 vnfInstanceDescription = serializers.CharField(
566 help_text="Human-readable description of the VNF instance.",
570 vnfdId = serializers.CharField(
571 help_text="Identifier of the VNFD on which the VNF instance is based.",
575 vnfProvider = serializers.CharField(
576 help_text="Provider of the VNF and the VNFD. The value is copied from the VNFD.",
580 vnfProductName = serializers.CharField(
581 help_text="Name to identify the VNF Product. The value is copied from the VNFD.",
585 vnfSoftwareVersion = serializers.CharField(
586 help_text="Software version of the VNF. The value is copied from the VNFD.",
590 vnfdVersion = serializers.CharField(
591 help_text="Identifies the version of the VNFD. The value is copied from the VNFD.",
595 vnfPkgId = serializers.CharField(
596 help_text="Identifier of information held by the NFVO about the specific VNF package on which the VNF is based.",
600 vnfConfigurableProperties = serializers.DictField(
601 help_text="Current values of the configurable properties of the VNF instance.",
602 child=serializers.CharField(allow_blank=True),
605 vimConnectionInfo = VimInfoSerializer(
606 help_text="Information about VIM connections to be used for managing the resources for the VNF instance.",
609 instantiationState = serializers.ChoiceField(
610 help_text="The instantiation state of the VNF.",
611 choices=["NOT_INSTANTIATED", "INSTANTIATED"],
614 instantiatedVnfInfo = instantiatedVnfInfoSerializer(
615 help_text="Information specific to an instantiated VNF instance.",