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(
24 vnfInstanceName = serializers.CharField(
25 help_text="vnfInstanceName",
29 vnfInstanceDescription = serializers.CharField(
30 help_text="vnfInstanceDescription",
36 class CreateVnfRespSerializer(serializers.Serializer):
37 vnfInstanceId = serializers.CharField(
38 help_text="vnfInstanceId",
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", choices=[
142 'http', 'https'], required=True)
145 class VimInfoSerializer(serializers.Serializer):
146 vimInfoId = serializers.CharField(
147 help_text="vimInfoId",
148 required=False, max_length=255, allow_null=True)
149 vimId = serializers.CharField(
151 required=False, max_length=255, allow_null=True)
152 interfaceEndpoint = serializers.CharField(
153 help_text="interfaceEndpoint",
157 interfaceInfo = InterfaceInfoSerializer(
158 help_text="vimInfoId", required=False, allow_null=True)
159 accessInfo = AccessInfoSerializer(
160 help_text="accessInfo",
165 class LinkPortsSerializer(serializers.Serializer):
166 resourceId = serializers.CharField(
167 help_text="resourceId",
171 vimId = serializers.CharField(
178 class ResourceHandleSerializer(serializers.Serializer):
179 resourceId = serializers.CharField(
180 help_text="resourceId",
184 vimId = serializers.CharField(
189 resourceProviderId = serializers.CharField(
190 help_text="resourceProviderId",
196 class ExtVirtualLinkInfoSerializer(serializers.Serializer):
197 extVirtualLinkId = serializers.CharField(
198 help_text="extVirtualLinkId",
202 resourceHandle = ResourceHandleSerializer(
203 help_text="iPAddress", required=True)
204 linkPorts = LinkPortsSerializer(
205 help_text="iPAddress", many=True, allow_null=True)
208 class L3AddressDataSerializer(serializers.Serializer):
209 iPAddressType = serializers.ChoiceField(
210 help_text="iPAddressType", choices=[
211 'IPv4', 'IPv6'], required=True)
212 iPAddress = serializers.CharField(
213 help_text="iPAddress",
219 class NetworkAddressSerializer(serializers.Serializer):
220 addressType = serializers.ChoiceField(
221 help_text="addressType", choices=[
222 'MAC', 'IP'], required=True)
223 l2AddressData = serializers.CharField(
224 help_text="l2AddressData",
228 l3AddressData = L3AddressDataSerializer(
229 help_text="addresses", required=False)
232 class ExtCpInfoSerializer(serializers.Serializer):
233 cpInstanceId = serializers.CharField(
234 help_text="cpInstanceId",
235 required=False, max_length=255, allow_null=True)
236 cpdId = serializers.CharField(
241 numDynamicAddresses = serializers.CharField(
242 help_text="numDynamicAddresses",
246 addresses = NetworkAddressSerializer(
247 help_text="addresses", many=True, allow_null=True)
250 class ScaleInfoSerializer(serializers.Serializer):
251 aspectId = serializers.CharField(
252 help_text="aspectId",
256 scaleLevel = serializers.IntegerField(
257 help_text="scaleLevel", required=True)
260 class instantiatedVnfInfoSerializer(serializers.Serializer):
261 flavourId = serializers.CharField(
262 help_text="flavourId",
263 required=True, max_length=255, allow_null=True)
264 vnfState = serializers.ChoiceField(
265 help_text="vnfState",
271 scaleStatus = ScaleInfoSerializer(help_text="scaleStatus", many=True)
272 extCpInfo = ExtCpInfoSerializer(help_text="extCpInfo", many=True)
273 extVirtualLink = ExtVirtualLinkInfoSerializer(
274 help_text="extVirtualLink", many=True)
275 monitoringParameters = serializers.DictField(
276 help_text="monitoringParameters", child=serializers.CharField(
277 allow_blank=True), required=False, allow_null=True)
278 vimInfo = VimInfoSerializer(help_text="vimInfo", many=True)
279 vnfcResourceInfo = VnfcResourceInfoSerializer(
280 help_text="vnfcResourceInfo", many=True)
281 virtualLinkResourceInfo = VirtualLinkResourceInfoSerializer(
282 help_text="virtualLinkResourceInfo", many=True)
283 virtualStorageResourceInfo = VirtualStorageResourceInfoSerializer(
284 help_text="virtualStorageResourceInfo", many=True)
287 class VnfInfoSerializer(serializers.Serializer):
288 vnfInstanceId = serializers.CharField(
289 help_text="vnfInstanceId",
293 vnfInstanceName = serializers.CharField(
294 help_text="vnfInstanceName",
298 onboardedVnfPkgInfoId = serializers.CharField(
299 help_text="onboardedVnfPkgInfoId",
303 vnfdVersion = serializers.CharField(
304 help_text="vnfdVersion",
305 required=False, max_length=255, allow_null=True)
306 vnfProvider = serializers.CharField(
307 help_text="vnfProvider",
308 required=False, max_length=255, allow_null=True)
309 instantiatedVnfInfo = instantiatedVnfInfoSerializer(
310 help_text="instantiatedVnfInfo", required=True)
313 class VnfsInfoSerializer(serializers.ListSerializer):
314 child = VnfInfoSerializer()
317 class ExtVirtualLinkSerizlizer(serializers.Serializer):
318 vlInstanceId = serializers.CharField(
319 help_text="vlInstanceId",
320 required=False, max_length=255, allow_null=True)
321 resourceSubnetId = serializers.CharField(
322 help_text="resourceSubnetId",
326 cpdId = serializers.CharField(
328 required=False, max_length=255, allow_null=True)
329 resourceId = serializers.CharField(
330 help_text="resourceId",
331 required=False, max_length=255, allow_null=True)
332 vim = VimInfoSerializer(help_text="vim", required=False, allow_null=True)
333 extCps = ExtCpInfoSerializer(
340 class AdditionalParamsSerializer(serializers.Serializer):
341 inputs = serializers.DictField(
343 child=serializers.CharField(
344 help_text="custom key-value",
348 extVirtualLinks = serializers.ListSerializer(
349 help_text="extVirtualLinks",
350 child=ExtVirtualLinkSerizlizer(help_text="extVirtualLinks", required=False, allow_null=True),
355 class InstantiateVnfRequestSerializer(serializers.Serializer):
356 flavourId = serializers.CharField(
357 help_text="flavourId",
361 instantiationLevelId = serializers.CharField(
362 help_text="instantiationLevelId",
366 localizationLanguage = serializers.CharField(
367 help_text="localizationLanguage",
371 extVirtualLinks = serializers.ListSerializer(
372 help_text="extVirtualLinks",
373 child=ExtVirtualLinkSerizlizer(help_text="extVirtualLinks", required=False, allow_null=True),
376 additionalParams = AdditionalParamsSerializer(
377 help_text="additionalParams", required=False, allow_null=True)
380 class InstOrTeriVnfResponseSerializer(serializers.Serializer):
381 jobId = serializers.CharField(
388 class TerminateVnfRequestSerializer(serializers.Serializer):
389 terminationType = serializers.CharField(
390 help_text="terminationType",
394 gracefulTerminationTimeout = serializers.IntegerField(
395 help_text="gracefulTerminationTimeout", default=120, required=False)