99af8d7c3d9d7a52bcc3f32f185e134ff1a841f7
[osm/NG-UI.git] / src / models / NSInstanceModel.ts
1 /*
2  Copyright 2020 TATA ELXSI
3
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
7
8     http://www.apache.org/licenses/LICENSE-2.0
9
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.
15
16  Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
17  */
18 /**
19  * @file  Model for NS Instance related information.
20  */
21 // tslint:disable: completed-docs
22 import { DF, VLD } from 'NSDModel';
23 import { VNFDAdminDetails } from 'VNFDModel';
24
25 /** Interface for NSInstanceDetails */
26 export interface NSInstanceDetails {
27     'orchestration-progress': JSON;
28     'constituent-vnfr-ref': string[];
29     'operational-events': string[];
30     admin: Admin;
31     'ssh-authorized-key': string;
32     _admin: _Admin;
33     'admin-status': string;
34     'operational-status': string;
35     'datacenter': string;
36     nsd: NSD;
37     'nsd-id': string;
38     name: string;
39     'name-ref': string;
40     id: string;
41     'nsd-name-ref': string;
42     description: string;
43     'detailed-status': string;
44     'config-status': string;
45     'resource-orchestrator': string;
46     'nsd-ref': string;
47     vld: VLD[];
48     instantiate_params: InstantiateParam;
49     additionalParamsForNs: AdditionalParamForN;
50     _id?: string;
51     vcaStatus?: object;
52 }
53
54 /** Interface for Admin */
55 interface Admin {
56     deployed: DeployedAdmin;
57 }
58
59 /** Interface for DeployedAdmin */
60 interface DeployedAdmin {
61     RO: ROAdmin;
62 }
63
64 /** Interface for ROAdmin */
65 interface ROAdmin {
66     'nsr_status': string;
67 }
68
69 /** Interface for _Admin */
70 // tslint:disable-next-line:class-name
71 interface _Admin {
72     'projects_write': string[];
73     deployed: DeployedAdmin;
74     nslcmop: string;
75     nsState: string;
76     modified: number;
77     projects_read: string[];
78     created: string;
79 }
80
81 /** Interface for Deployed_Admin */
82 interface DeployedAdmin {
83     VCA: string[];
84     RO: ROAdmin;
85 }
86
87 /** Interface for RO_Admin */
88 interface ROAdmin {
89     'nsr_status': string;
90     'nsr_id': string;
91     'nsd_id': string;
92     vnfd: VNFD[];
93 }
94
95 /** Interface for VNFD */
96 interface VNFD {
97     'member-vnf-index': number;
98     id: string;
99 }
100
101 /** Interface for NSD */
102 export interface NSD {
103     description: string;
104     _admin: VNFDAdminDetails;
105     name: string;
106     version: string;
107     _id: string;
108     id: string;
109     vendor: string;
110     vdur: string[];
111     'connection-point': CONNECTIONPOINT[];
112     'virtual-link-desc': NSDVLD[];
113     df: DF[];
114 }
115
116 /** Interface for _AdminDetails */
117 // tslint:disable-next-line:class-name
118 export interface _AdminDetails {
119     usageState: string;
120     projects_write: string[];
121     projects_read: string[];
122     operationalState: string;
123     modified: string;
124     storage: Storage;
125     onboardingState: string;
126     userDefinedData: JSON;
127     created: number;
128 }
129
130 /** Interface for Storage */
131 interface Storage {
132     path: string;
133     'pkg-dir': string;
134     zipfile: string;
135     folder: string;
136     descriptor: string;
137     fs: string;
138 }
139
140 /** Interface for NSDVLD */
141 export interface NSDVLD {
142     'vim-id': string;
143     'status-detailed': string;
144     name: string;
145     status: string;
146     'vim-network-name': string;
147     id: string;
148     'type': string;
149     df: DF[];
150 }
151
152 /** Interface for Vm Migration */
153 export interface VMMIGRATION {
154     lcmOperationType: string;
155     vnfInstanceId: string;
156     migrateToHost?: string;
157     vdu?: VDUPARAM;
158 }
159
160 /** Interface for vdu for Vm Migration */
161 export interface VDUPARAM {
162     vduId?: string;
163     vduCountIndex?: string;
164 }
165
166 /** Interface for Ns Update */
167 export interface NSUPDATE {
168     lcmOperationType: string;
169     updateType: string;
170     nsInstanceId: string;
171     changeVnfPackageData: CHANGEVNFDATA;
172 }
173
174 /** Interface for changeVnfPackageData in Ns Update */
175 export interface CHANGEVNFDATA {
176     vnfdId: string;
177     vnfInstanceId: string;
178 }
179
180 /** Interface for terminate vnf in Ns Update */
181 export interface TERMINATEVNF {
182     lcmOperationType: string;
183     updateType: string;
184     nsInstanceId: string;
185     removeVnfInstanceId: string;
186 }
187
188 /** Interface for Start, Stop & Rebuild */
189 export interface StartStopRebuild {
190     updateType: string;
191     operateVnfData: OPERATEVNFDATA;
192 }
193
194 /** Interface for operateVnfData  in Start, Stop and Rebuild */
195 export interface OPERATEVNFDATA {
196     additionalParam: ADDITIONALPARAMS;
197     vnfInstanceId: string;
198     changeStateTo: string;
199 }
200
201 /** Interface for additionalParam in Start, Stop and Rebuild */
202 export interface ADDITIONALPARAMS {
203     'run-day1': boolean;
204     'vdu_id': string;
205     'count-index': string;
206 }
207
208 /** Interface for InstantiateParam */
209 interface InstantiateParam {
210     nsdId: string;
211     nsName: string;
212     nsDescription: string;
213     vimAccountId: string;
214 }
215
216 /** Interface for AdditionalParamForN */
217 interface AdditionalParamForN {
218     _id: string;
219     'ns-instance-config-ref': string;
220     'crete-time': string;
221 }
222
223 /** interface for the History nsdInstanceData */
224 export interface NSDInstanceData {
225     id?: string;
226     lcmOperationType?: string;
227     operationState?: string;
228     startTime?: number;
229     statusEnteredTime?: number;
230     identifier: string;
231     name: string;
232     NsdName: string;
233     OperationalStatus: string;
234     ConfigStatus: string;
235     DetailedStatus: string;
236     state?: string;
237     memberIndex?: DF[];
238     nsConfig?: object;
239     vcaStatus?: object;
240     adminDetails?: object;
241     vnfID?: string[];
242     nsd?: NSD;
243     operationParams?: OPERATIONPARAMS;
244     'nsd-id': string;
245 }
246
247 /** Interface for the operationparams */
248 export interface OPERATIONPARAMS {
249     scaleType?: string;
250     scaleVnfData?: SCALEVNFDATA;
251 }
252
253 /** Interface for the scaleVnfData */
254 export interface SCALEVNFDATA {
255     scaleVnfType?: string;
256     scaleByStepData?: SCALEBYSTEPDATA;
257 }
258
259 /** Interface for the scaleByStepData */
260 export interface SCALEBYSTEPDATA {
261     'scaling-group-descriptor'?: string;
262     'member-vnf-index'?: string;
263 }
264
265 /** Interface for the nsInfo */
266 export interface NSINFO {
267     nsInstanceID: string;
268     nsName: string;
269     nsOperationalStatus: string;
270     nsConfigStatus: string;
271     nsDetailedStatus: string;
272     nsResourceOrchestrator: string;
273 }
274
275 /** Interface for the NSINSTANCENODES */
276 export interface NSINSTANCENODES {
277     id?: string;
278     nodeTypeRef?: string;
279     name?: string;
280     'type'?: string;
281     vnfdCP?: DF[];
282     vimNetworkName?: string;
283     shortName?: string;
284     cp?: CONNECTIONPOINT[];
285     vdur?: string[];
286     vld?: NSDVLD[];
287     nsID?: string;
288     vnfdID?: string;
289     vimID?: string;
290     vndfrID?: string;
291     ipAddress?: string;
292     memberIndex?: string;
293     vnfdRef?: string;
294     vndfCPRef?: string;
295     selectorId?: string;
296     reflexive?: Boolean;
297     nodeIndex?: number;
298 }
299
300 /** Interface for the connection-point */
301 export interface CONNECTIONPOINT {
302     'connection-point-id': string;
303     name: string;
304     id: string;
305 }
306
307 /** Interface for Exec NS Primitive */
308 export interface NSPrimitive {
309     'primitive': string;
310     'primitive_params': NSPrimitiveParams[];
311     'member_vnf_index': string;
312 }
313
314 /** Interface for Exec NS Primitive Params */
315 export interface NSPrimitiveParams {
316     primitive_params_name: string;
317     primitive_params_value: string;
318 }
319
320 /** Interface Nodes Creation */
321 export interface COMPOSERNODES {
322     id: string;
323     reflexive: Boolean;
324     nodeTypeRef: string;
325     name?: string;
326     nodeIndex?: number;
327     selectorId?: string;
328     x?: number;
329     y?: number;
330     fx?: number;
331     fy?: number;
332     shortName?: string;
333     vimNetworkName?: string;
334     'type'?: string;
335     vnfdRef?: string;
336     memberIndex?: string;
337     vimID?: string;
338     vndfrID?: string;
339     ipAddress?: string;
340     nsID?: string;
341     vnfdID?: string;
342 }
343
344 /** Interface for the Virtual Link Info */
345 export interface VLINFO {
346     id: string;
347     name: string;
348     'type': string;
349     shortName: string;
350     vimNetworkName: string;
351 }
352
353 /** Interface for the VNFR Info */
354 export interface VNFRINFO {
355     vimID: string;
356     _id: string;
357     ip: string;
358     nsrID: string;
359     id: string;
360     vnfdRef: string;
361     vnfdId: string;
362     memberIndex: string;
363 }