Update create vl logic
[vfc/nfvo/lcm.git] / lcm / ns / serializers.py
index bce0302..a3b1412 100644 (file)
@@ -64,7 +64,69 @@ class QueryNsRespSerializer(serializers.Serializer):
     nsName = serializers.CharField(help_text="Name of NS instance", required=False, allow_null=True)
     description = serializers.CharField(help_text="Description of NS instance", required=False, allow_null=True)
     nsdId = serializers.CharField(help_text="ID of NSD", required=True)
-    vnfInfo = VnfInstSerializer(help_text="VNF instances", many=True)
-    vlInfo = VlInstSerializer(help_text="VL instances", many=True)
-    vnffgInfo = VnffgInstSerializer(help_text="VNFFG instances", many=True)
+    vnfInfo = VnfInstSerializer(help_text="VNF instances", many=True, required=False, allow_null=True)
+    vlInfo = VlInstSerializer(help_text="VL instances", many=True, required=False, allow_null=True)
+    vnffgInfo = VnffgInstSerializer(help_text="VNFFG instances", many=True, required=False, allow_null=True)
     nsState = serializers.CharField(help_text="State of NS instance", required=False, allow_null=True)
+
+
+class VimSerializer(serializers.Serializer):
+    vimid = serializers.CharField(help_text="ID of VIM", required=False, allow_null=True)
+
+
+class LocationConstraintSerializer(serializers.Serializer):
+    vnfProfileId = serializers.CharField(help_text="ID of VNF profile", required=False, allow_null=True)
+    locationConstraints = VimSerializer(help_text="Location constraints", required=False, allow_null=True)
+
+
+class InstantNsReqSerializer(serializers.Serializer):
+    locationConstraints = LocationConstraintSerializer(required=False, allow_null=True)
+    additionalParamForNs = serializers.CharField(help_text="Additional param for NS", required=False, allow_null=True)
+
+
+class NsOperateJobSerializer(serializers.Serializer):
+    jobId = serializers.CharField(help_text="ID of NS operate job", required=True)
+
+
+class TerminateNsReqSerializer(serializers.Serializer):
+    terminationType = serializers.CharField(help_text="Type of NS termination", required=False, allow_null=True)
+    gracefulTerminationTimeout = serializers.CharField(help_text="Timeout of NS graceful termination", required=False, allow_null=True)
+
+
+class ActionVmSerializer(serializers.Serializer):
+    vmid = serializers.CharField(help_text="ID of VM", required=False, allow_null=True)
+    vmname = serializers.CharField(help_text="Name of VM", required=False, allow_null=True)
+
+
+class HealNsAdditionalParamsSerializer(serializers.Serializer):
+    action = serializers.CharField(help_text="Action of NS heal", required=False, allow_null=True)
+    actionvminfo = ActionVmSerializer(help_text="VM info of action", required=False, allow_null=True)
+
+
+class HealVnfDataSerializer(serializers.Serializer):
+    vnfInstanceId = serializers.CharField(help_text="ID of VNF Instance", required=True)
+    cause = serializers.CharField(help_text="Cause of NS heal", required=False, allow_null=True)
+    additionalParams = HealNsAdditionalParamsSerializer(help_text="Additional params of NS heal", required=False, allow_null=True)
+
+
+class HealNsReqSerializer(serializers.Serializer):
+    healVnfData = HealVnfDataSerializer(help_text="Data of heal VNF", required=False, allow_null=True)
+
+
+class InstNsPostDealReqSerializer(serializers.Serializer):
+    status = serializers.CharField(help_text="Status of NS Inst", required=True)
+
+
+class ScaleNsByStepsSerializer(serializers.Serializer):
+    aspectId = serializers.CharField(help_text="ID of aspect", required=True)
+    numberOfSteps = serializers.CharField(help_text="Number of steps", required=True)
+    scalingDirection = serializers.CharField(help_text="Scaling direction", required=True)
+
+
+class ScaleNsDataSerializer(serializers.Serializer):
+    scaleNsByStepsData = ScaleNsByStepsSerializer(help_text="Scale NS by steps data", many=True)
+
+
+class ManualScaleNsReqSerializer(serializers.Serializer):
+    scaleType = serializers.CharField(help_text="Type of NS Scale", required=True)
+    scaleNsData = ScaleNsDataSerializer(help_text="Scale NS data", many=True)