summaryrefslogtreecommitdiffstats
path: root/lcm/lcm/v2/serializers.py
blob: 3aaad319676b39b4351038bf6a04d7b289b843fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# Copyright 2018 ZTE Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from rest_framework import serializers


class VimInfoSerializer(serializers.Serializer):
    id = serializers.CharField(
        help_text="The identifier of the VIM Connection. This identifier is managed by the NFVO.",
        required=False,
        max_length=255,
        allow_null=True)
    vimId = serializers.CharField(
        help_text="The identifier of the VIM instance. This identifier is managed by the NFVO.",
        required=False,
        max_length=255,
        allow_null=True)
    vimType = serializers.CharField(
        help_text="Discriminator for the different types of the VIM information.",
        required=False,
        max_length=255,
        allow_null=True)
    interfaceInfo = serializers.DictField(
        help_text="Information about the interface or interfaces to the VIM",
        child=serializers.CharField(allow_blank=True),
        required=False,
        allow_null=True)
    accessInfo = serializers.DictField(
        help_text="Authentication credentials for accessing the VIM, and other access-related information",
        child=serializers.CharField(allow_blank=True),
        required=False,
        allow_null=True)
    extra = serializers.DictField(
        help_text="VIM type specific additional information.",
        child=serializers.CharField(allow_blank=True),
        required=False,
        allow_null=True)


class ScaleInfoSerializer(serializers.Serializer):
    aspectId = serializers.CharField(
        help_text="Identifier of the scaling aspect.",
        required=True,
        max_length=255,
        allow_null=True)
    scaleLevel = serializers.IntegerField(
        help_text="Indicates the scale level.",
        required=True)


class CpProtocolInfoSerializer(serializers.Serializer):
    layerProtocol = serializers.ChoiceField(
        help_text="The identifier of layer(s) and protocol(s) associated to the network address information.",
        choices=["IP_OVER_ETHERNET"],
        required=False,
        allow_null=True)
    ipOverEthernet = serializers.DictField(
        help_text="IP addresses over Ethernet to assign to the extCP instance.",
        child=serializers.CharField(allow_blank=True),
        required=False,
        allow_null=True)


class ExtCpInfoSerializer(serializers.Serializer):
    id = serializers.CharField(
        help_text="Identifier of the external CP instance and the related information instance.",
        required=False,
        max_length=255,
        allow_null=True)
    cpdId = serializers.CharField(
        help_text="Identifier of the external CPD, VnfExtCpd, in the VNFD.",
        required=True,
        max_length=255,
        allow_null=True)
    cpProtocolInfo = CpProtocolInfoSerializer(
        help_text="Network protocol information for this CP.",
        required=False,
        allow_null=True)
    extLinkPortId = serializers.CharField(
        help_text="Identifier of the 'extLinkPortInfo' structure inside the 'extVirtualLinkInfo' structure.",
        required=False,
        max_length=255,
        allow_null=True)


class instantiatedVnfInfoSerializer(serializers.Serializer):
    flavourId = serializers.CharField(
        help_text="Identifier of the VNF deployment flavour applied to this VNF instance.",
        required=True,
        max_length=255,
        allow_null=True)
    vnfState = serializers.ChoiceField(
        help_text="State of the VNF instance.",
        choices=["STARTED", "STOPPED"],
        required=True,
        allow_null=True)
    scaleStatus = ScaleInfoSerializer(
        help_text="Scale status of the VNF, one entry per aspect.",
        required=False,
        many=True)
    extCpInfo = ExtCpInfoSerializer(
        help_text="Information about the external CPs exposed by the VNF instance.",
        required=False,
        many=True)


class VnfInstanceSerializer(serializers.Serializer):
    id = serializers.CharField(
        help_text="Identifier of the VNF instance",
        required=True)
    vnfInstanceName = serializers.CharField(
        help_text="Name of the VNF instance.",
        required=False,
        allow_null=True,
        allow_blank=True)
    vnfInstanceDescription = serializers.CharField(
        help_text="Human-readable description of the VNF instance.",
        required=False,
        allow_null=True,
        allow_blank=True)
    vnfdId = serializers.CharField(
        help_text="Identifier of the VNFD on which the VNF instance is based.",
        required=False,
        allow_null=True,
        allow_blank=True)
    vnfProvider = serializers.CharField(
        help_text="Provider of the VNF and the VNFD. The value is copied from the VNFD.",
        required=False,
        allow_null=True,
        allow_blank=True)
    vnfProductName = serializers.CharField(
        help_text="Name to identify the VNF Product. The value is copied from the VNFD.",
        required=False,
        allow_null=True,
        allow_blank=True)
    vnfSoftwareVersion = serializers.CharField(
        help_text="Software version of the VNF. The value is copied from the VNFD.",
        required=False,
        allow_null=True,
        allow_blank=True)
    vnfdVersion = serializers.CharField(
        help_text="Identifies the version of the VNFD. The value is copied from the VNFD.",
        required=False,
        allow_null=True,
        allow_blank=True)
    vnfPkgId = serializers.CharField(
        help_text="Identifier of information held by the NFVO about the specific VNF package on which the VNF is based.",
        required=False,
        allow_null=True,
        allow_blank=True)
    vnfConfigurableProperties = serializers.DictField(
        help_text="Current values of the configurable properties of the VNF instance.",
        child=serializers.CharField(allow_blank=True),
        required=False,
        allow_null=True)
    vimConnectionInfo = VimInfoSerializer(
        help_text="Information about VIM connections to be used for managing the resources for the VNF instance.",
        required=False,
        allow_null=True)
    instantiationState = serializers.ChoiceField(
        help_text="The instantiation state of the VNF.",
        choices=["NOT_INSTANTIATED", "INSTANTIATED"],
        required=False,
        allow_null=True)
    instantiatedVnfInfo = instantiatedVnfInfoSerializer(
        help_text="Information specific to an instantiated VNF instance.",
        required=False)