2 Copyright 2020 TATA ELXSI
4 Licensed under the Apache License, Version 2.0 (the 'License');
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
8 http://www.apache.org/licenses/LICENSE-2.0
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
16 Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
19 * @file Model for VNFD related information.
21 /** Interface for Project */
22 export interface ProjectModel {
25 project_name?: string;
38 /** Interface for ProjectDetails */
39 export interface ProjectDetails {
45 /** Interface for AdminDetails */
46 interface AdminDetails {
51 /** Interface for VNFD Details */
52 export interface VNFD {
57 'int-virtual-link-desc'?: IVLD[];
59 onboardingState?: string;
60 operationalState?: string;
61 'product-name'?: string;
63 'sw-image-desc'?: SWIMAGEDESCRIPTION[];
67 'software-version'?: string;
68 'virtual-compute-desc'?: string;
69 'virtual-storage-desc'?: string[];
70 _admin?: VNFDAdminDetails;
73 'vnf-configuration'?: VNFCONFIG[];
76 /** Interface for DF */
77 export interface VNFCONFIG {
79 'config-primitive'?: CONFIGPRIMITIVE[];
80 'initial-config-primitive'?: INITIALCONFIGPRIMITIVE[];
82 /** Interface for DF */
85 'instantiation-level'?: INSTANTIATIONLEVEL[];
86 'vdu-profile'?: VDUPROFILE[];
87 'vnf-configuration-id'?: string;
88 'scaling-aspect'?: SCALING[];
90 /** Interface for INSTANTIATIONLEVEL */
91 export interface INSTANTIATIONLEVEL {
93 'vdu-level': VDULEVEL[];
95 /** Interface for VDULEVEL */
96 export interface VDULEVEL {
97 'number-of-instances': number;
100 /** Interface for VDULEVEL */
101 export interface VDUPROFILE {
104 'min-number-of-instances'?: number;
105 'max-number-of-instances'?: number;
106 'vdu-configuration-id'?: string;
107 'vdu-configuration'?: VDUCONFIG;
109 /** Interface for SCALING */
110 export interface SCALING {
111 'aspect-delta-details'?: object;
114 'max-scale-level'?: number;
115 'scaling-policy'?: SCALINGPOLICY[];
117 /** Interface for SCALINGPOLICY */
118 export interface SCALINGPOLICY {
119 'cooldown-time': number;
121 'scaling-criteria': SCALINGCRITERIA[];
122 'scaling-type'?: string;
123 'threshold-time'?: number;
125 /** Interface for SCALINGCRITERIA */
126 export interface SCALINGCRITERIA {
128 'scale-in-relational-operation': string;
129 'scale-in-threshold'?: string;
130 'scale-out-relational-operation'?: string;
131 'scale-out-threshold'?: string;
132 'vnf-monitoring-param-ref'?: string;
134 /** Interface for VDUCONFIG */
135 export interface VDUCONFIG {
137 'config-primitive': CONFIGPRIMITIVE[];
138 'initial-config-primitive': INITIALCONFIGPRIMITIVE[];
140 /** Interface for CONFIGPRIMITIVE */
141 export interface CONFIGPRIMITIVE {
144 /** Interface for INITIALCONFIGPRIMITIVE */
145 export interface INITIALCONFIGPRIMITIVE {
149 /** Interface for the ext-cpd */
150 export interface EXTCPD {
154 /** Interface for the int-cpd */
155 export interface INTCPD {
159 /** Interface for IVLD */
160 export interface IVLD {
162 description?: string;
164 /** Interface for SWIMAGEDESCRIPTION */
165 export interface SWIMAGEDESCRIPTION {
170 /** Interface for VDU */
171 export interface VDU {
172 'cloud-init-file'?: string;
173 description?: string;
175 'int-cpd'?: VDUINTCPD[];
176 'monitoring-parameter'?: MonitoringParam[];
178 'sw-image-desc'?: string;
179 'virtual-compute-desc'?: string;
180 'virtual-storage-desc'?: string[];
182 /** Interface for the vdu int-cpd */
183 export interface VDUINTCPD {
185 'int-virtual-link-desc'?: string;
186 'virtual-network-interface-requirement': VNIR[];
188 /** Interface for the vdu int-cpd => VNIR */
189 export interface VNIR {
192 'virtual-interface': VIRTUALINTERFACE;
194 /** Interface for the VIRTUALINTERFACE */
195 export interface VIRTUALINTERFACE {
198 /** Interface for monitoring params */
199 export interface MonitoringParam {
202 'performance-metric'?: string;
203 'collection-period'?: number;
205 /** Interface for VNFDATA */
206 export interface VNFDATA {
210 /** Interface for VDU InternalCPD */
211 export interface InternalCPD {
213 'int-virtual-link-desc'?: string;
214 'virtual-network-interface-requirement'?: VIRTUALNETWORKINTERFACEREQUIREMENT;
217 /** Interface for VIRTUALNETWORKINTERFACEREQUIREMENT */
218 export interface VIRTUALNETWORKINTERFACEREQUIREMENT {
221 'virtual-interface'?: VirtualInterface;
224 /** Interface for VirutalInterface */
225 interface VirtualInterface {
229 /** Interface for _AdminDetails */
230 export interface VNFDAdminDetails {
233 onboardingState: string;
234 operationalState: string;
235 projects_read: string[];
236 projects_write: string[];
240 userDefinedData: JSON;
243 /** Interface for Storage */
253 /** Interface for VNFData */
254 export interface VNFData {
261 productName?: string;
265 /** Interface for the Tick */
266 export interface Tick {
273 /** Interface for the Path */
274 export interface TickPath {
281 /** Interface Nodes Creation */
282 export interface COMPOSERNODES {
295 /** Interface for the GRAPHDETAILS */
296 export interface GRAPHDETAILS {
308 sourcePaddingYes: number;
309 sourcePaddingNo: number;
310 targetPaddingYes: number;
311 targetPaddingNo: number;
315 shiftKeyCode: number;