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(help_text="vnfd Id", required=True)
20 vnfInstanceName = serializers.CharField(
21 help_text="vnf Instance Name", required=True)
22 vnfInstanceDescription = serializers.CharField(
23 help_text="vnf Instance Description", required=False, allow_null=True)
26 class CreateVnfRespSerializer(serializers.Serializer):
27 vnfInstanceId = serializers.CharField(
28 help_text="vnf Instance Id", required=True)
31 class ResourceSerializer(serializers.Serializer):
32 resourceId = serializers.CharField(help_text="resourceId", required=True)
33 vimId = serializers.CharField(help_text="vimId", required=True)
36 class VirtualStorageResourceInfoSerializer(serializers.Serializer):
37 virtualStorageInstanceId = serializers.CharField(
38 help_text="virtualStorageInstanceId", required=False, allow_null=True)
39 virtualStorageDescId = serializers.CharField(
40 help_text="virtualStorageDescId", required=False, allow_null=True)
41 storageResource = ResourceSerializer(
42 help_text="storageResource",
47 class VirtualLinkResourceInfoSerializer(serializers.Serializer):
48 virtualLinkInstanceId = serializers.IntegerField(
49 help_text="virtualLinkInstanceId", required=False, allow_null=True)
50 virtualLinkDescId = serializers.IntegerField(
51 help_text="virtualLinkDescId", required=False, allow_null=True)
52 networkResource = ResourceSerializer(
53 help_text="networkResource",
58 class VnfcResourceInfoSerializer(serializers.Serializer):
59 vnfcInstanceId = serializers.IntegerField(
60 help_text="vnfcInstanceId", required=False, allow_null=True)
61 vduId = serializers.IntegerField(
65 storageResourceIds = serializers.IntegerField(
66 help_text="storageResourceIds", required=False, allow_null=True)
67 computeResource = ResourceSerializer(
68 help_text="computeResource",
73 class AccessInfoSerializer(serializers.Serializer):
74 tenant = serializers.CharField(help_text="tenant", required=True)
75 username = serializers.CharField(help_text="username", required=True)
76 password = serializers.CharField(help_text="password", required=True)
79 class InterfaceInfoSerializer(serializers.Serializer):
80 vimType = serializers.CharField(help_text="vimType", required=True)
81 apiVersion = serializers.CharField(help_text="apiVersion", required=True)
82 protocolType = serializers.ChoiceField(
83 help_text="protocolType", choices=[
84 'http', 'https'], required=True)
87 class VimInfoSerializer(serializers.Serializer):
88 vimInfoId = serializers.CharField(
89 help_text="vimInfoId",
92 vimId = serializers.CharField(
96 interfaceEndpoint = serializers.CharField(
97 help_text="interfaceEndpoint", required=False, allow_null=True)
98 interfaceInfo = InterfaceInfoSerializer(
99 help_text="vimInfoId", required=False, allow_null=True)
100 accessInfo = AccessInfoSerializer(
101 help_text="accessInfo",
106 class LinkPortsSerializer(serializers.Serializer):
107 resourceId = serializers.CharField(help_text="resourceId", required=True)
108 vimId = serializers.CharField(help_text="vimId", required=False)
111 class ResourceHandleSerializer(serializers.Serializer):
112 resourceId = serializers.CharField(help_text="resourceId", required=True)
113 vimId = serializers.CharField(help_text="vimId", required=False)
114 resourceProviderId = serializers.CharField(
115 help_text="resourceProviderId", required=False)
118 class ExtVirtualLinkInfoSerializer(serializers.Serializer):
119 extVirtualLinkId = serializers.CharField(
120 help_text="extVirtualLinkId", required=True)
121 resourceHandle = ResourceHandleSerializer(
122 help_text="iPAddress", required=True)
123 linkPorts = LinkPortsSerializer(
124 help_text="iPAddress", many=True, allow_null=True)
127 class L3AddressDataSerializer(serializers.Serializer):
128 iPAddressType = serializers.ChoiceField(
129 help_text="iPAddressType", choices=[
130 'IPv4', 'IPv6'], required=True)
131 iPAddress = serializers.CharField(help_text="iPAddress", required=True)
134 class NetworkAddressSerializer(serializers.Serializer):
135 addressType = serializers.ChoiceField(
136 help_text="addressType", choices=[
137 'MAC', 'IP'], required=True)
138 l2AddressData = serializers.CharField(
139 help_text="l2AddressData", required=False)
140 l3AddressData = L3AddressDataSerializer(
141 help_text="addresses", required=False)
144 class ExtCpInfoSerializer(serializers.Serializer):
145 cpInstanceId = serializers.CharField(
146 help_text="cpInstanceId",
149 cpdId = serializers.IntegerField(help_text="cpdId", required=True)
150 numDynamicAddresses = serializers.IntegerField(
151 help_text="numDynamicAddresses", required=False, allow_null=True)
152 addresses = NetworkAddressSerializer(
153 help_text="addresses", many=True, allow_null=True)
156 class ScaleInfoSerializer(serializers.Serializer):
157 aspectId = serializers.CharField(help_text="aspectId", required=True)
158 scaleLevel = serializers.IntegerField(
159 help_text="scaleLevel", required=True)
162 class instantiatedVnfInfoSerializer(serializers.Serializer):
163 flavourId = serializers.CharField(
164 help_text="flavour Id",
167 vnfState = serializers.ChoiceField(
168 help_text="vnf State",
174 scaleStatus = ScaleInfoSerializer(help_text="scaleStatus", many=True)
175 extCpInfo = ExtCpInfoSerializer(help_text="extCpInfo", many=True)
176 extVirtualLink = ExtVirtualLinkInfoSerializer(
177 help_text="extVirtualLink", many=True)
178 monitoringParameters = serializers.DictField(
179 help_text="monitoringParameters", child=serializers.CharField(
180 allow_blank=True), required=False, allow_null=True)
181 vimInfo = VimInfoSerializer(help_text="vimInfo", many=True)
182 vnfcResourceInfo = VnfcResourceInfoSerializer(
183 help_text="vnfcResourceInfo", many=True)
184 virtualLinkResourceInfo = VirtualLinkResourceInfoSerializer(
185 help_text="virtualLinkResourceInfo", many=True)
186 virtualStorageResourceInfo = VirtualStorageResourceInfoSerializer(
187 help_text="virtualStorageResourceInfo", many=True)
190 class VnfInfoSerializer(serializers.Serializer):
191 vnfInstanceId = serializers.CharField(
192 help_text="vnf Instance Id", required=True)
193 vnfInstanceName = serializers.CharField(
194 help_text="vnf Instance Name", required=True)
195 onboardedVnfPkgInfoId = serializers.CharField(
196 help_text="onboarded Vnf Pkg Info Id", required=False, allow_null=True)
197 vnfdVersion = serializers.CharField(
198 help_text="vnfd Version",
201 vnfProvider = serializers.CharField(
202 help_text="vnf Provider",
205 instantiatedVnfInfo = instantiatedVnfInfoSerializer(
206 help_text="instantiatedVnfInfo", required=True)
209 class VnfsInfoSerializer(serializers.ListSerializer):
210 child = VnfInfoSerializer()
213 class ExtVirtualLinkSerizlizer(serializers.Serializer):
214 vlInstanceId = serializers.CharField(
215 help_text="vlInstanceId",
218 resourceSubnetId = serializers.CharField(
219 help_text="resourceSubnetId", required=False, allow_null=True)
220 cpdId = serializers.CharField(
224 resourceId = serializers.CharField(
225 help_text="resourceId",
228 vim = VimInfoSerializer(help_text="vim", required=False, allow_null=True)
229 extCps = ExtCpInfoSerializer(
236 class ExtVirtualLinksSerializer(serializers.ListSerializer):
237 child = ExtVirtualLinkSerizlizer(
238 help_text="extVirtualLink",
243 class AdditionalParamsSerializer(serializers.Serializer):
244 inputs = serializers.DictField(
246 child=serializers.CharField(
247 help_text="but i needed to test these 2 fields somehow",
251 extVirtualLinks = ExtVirtualLinksSerializer(
252 help_text="extVirtualLinks", required=False, allow_null=True)
255 class InstantiateVnfRequestSerializer(serializers.Serializer):
256 flavourId = serializers.CharField(help_text="flavourId", required=True)
257 instantiationLevelId = serializers.CharField(
258 help_text="instantiationLevelId", required=True, allow_null=True)
259 localizationLanguage = serializers.CharField(
260 help_text="localizationLanguage", required=True, allow_null=True)
261 extVirtualLinks = ExtVirtualLinksSerializer(
262 help_text="extVirtualLinks", required=False, allow_null=True)
263 additionalParams = AdditionalParamsSerializer(
264 help_text="additionalParams", required=False, allow_null=True)
267 class InstantiateVnfResponseSerializer(serializers.Serializer):
268 jobId = serializers.CharField(help_text="jobId", required=True)