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"],
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",
338 vnfProvider = serializers.CharField(
339 help_text="vnfProvider",
343 instantiatedVnfInfo = instantiatedVnfInfoSerializer(
344 help_text="instantiatedVnfInfo",
348 class VnfsInfoSerializer(serializers.ListSerializer):
349 child = VnfInfoSerializer()
352 class ExtVirtualLinkSerizlizer(serializers.Serializer):
353 vlInstanceId = serializers.CharField(
354 help_text="vlInstanceId",
358 resourceSubnetId = serializers.CharField(
359 help_text="resourceSubnetId",
363 cpdId = serializers.CharField(
368 resourceId = serializers.CharField(
369 help_text="resourceId",
373 vim = VimInfoSerializer(
377 extCps = ExtCpInfoSerializer(
384 class AdditionalParamsSerializer(serializers.Serializer):
385 inputs = serializers.DictField(
387 child=serializers.CharField(help_text="custom key-value", allow_blank=True),
390 extVirtualLinks = serializers.ListSerializer(
391 help_text="extVirtualLinks",
392 child=ExtVirtualLinkSerizlizer(help_text="extVirtualLinks", required=False, allow_null=True),
397 class InstantiateVnfRequestSerializer(serializers.Serializer):
398 flavourId = serializers.CharField(
399 help_text="flavourId",
403 instantiationLevelId = serializers.CharField(
404 help_text="instantiationLevelId",
408 localizationLanguage = serializers.CharField(
409 help_text="localizationLanguage",
413 extVirtualLinks = serializers.ListSerializer(
414 help_text="extVirtualLinks",
415 child=ExtVirtualLinkSerizlizer(help_text="extVirtualLinks", required=False, allow_null=True),
418 additionalParams = AdditionalParamsSerializer(
419 help_text="additionalParams",
424 class InstOrTeriVnfResponseSerializer(serializers.Serializer):
425 jobId = serializers.CharField(
432 class TerminateVnfRequestSerializer(serializers.Serializer):
433 terminationType = serializers.CharField(
434 help_text="terminationType",
438 gracefulTerminationTimeout = serializers.IntegerField(
439 help_text="gracefulTerminationTimeout",