66a6da8e1efc2f1132c970fcb3c3550c2e0c7c51
[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 InstantiateParam */
189 interface InstantiateParam {
190     nsdId: string;
191     nsName: string;
192     nsDescription: string;
193     vimAccountId: string;
194 }
195
196 /** Interface for AdditionalParamForN */
197 interface AdditionalParamForN {
198     _id: string;
199     'ns-instance-config-ref': string;
200     'crete-time': string;
201 }
202
203 /** interface for the History nsdInstanceData */
204 export interface NSDInstanceData {
205     id?: string;
206     lcmOperationType?: string;
207     operationState?: string;
208     startTime?: number;
209     statusEnteredTime?: number;
210     identifier: string;
211     name: string;
212     NsdName: string;
213     OperationalStatus: string;
214     ConfigStatus: string;
215     DetailedStatus: string;
216     state?: string;
217     memberIndex?: DF[];
218     nsConfig?: object;
219     vcaStatus?: object;
220     adminDetails?: object;
221     vnfID?: string[];
222     nsd?: NSD;
223     operationParams?: OPERATIONPARAMS;
224     'nsd-id': string;
225 }
226
227 /** Interface for the operationparams */
228 export interface OPERATIONPARAMS {
229     scaleType?: string;
230     scaleVnfData?: SCALEVNFDATA;
231 }
232
233 /** Interface for the scaleVnfData */
234 export interface SCALEVNFDATA {
235     scaleVnfType?: string;
236     scaleByStepData?: SCALEBYSTEPDATA;
237 }
238
239 /** Interface for the scaleByStepData */
240 export interface SCALEBYSTEPDATA {
241     'scaling-group-descriptor'?: string;
242     'member-vnf-index'?: string;
243 }
244
245 /** Interface for the nsInfo */
246 export interface NSINFO {
247     nsInstanceID: string;
248     nsName: string;
249     nsOperationalStatus: string;
250     nsConfigStatus: string;
251     nsDetailedStatus: string;
252     nsResourceOrchestrator: string;
253 }
254
255 /** Interface for the NSINSTANCENODES */
256 export interface NSINSTANCENODES {
257     id?: string;
258     nodeTypeRef?: string;
259     name?: string;
260     'type'?: string;
261     vnfdCP?: DF[];
262     vimNetworkName?: string;
263     shortName?: string;
264     cp?: CONNECTIONPOINT[];
265     vdur?: string[];
266     vld?: NSDVLD[];
267     nsID?: string;
268     vnfdID?: string;
269     vimID?: string;
270     vndfrID?: string;
271     ipAddress?: string;
272     memberIndex?: string;
273     vnfdRef?: string;
274     vndfCPRef?: string;
275     selectorId?: string;
276     reflexive?: Boolean;
277     nodeIndex?: number;
278 }
279
280 /** Interface for the connection-point */
281 export interface CONNECTIONPOINT {
282     'connection-point-id': string;
283     name: string;
284     id: string;
285 }
286
287 /** Interface for Exec NS Primitive */
288 export interface NSPrimitive {
289     'primitive': string;
290     'primitive_params': NSPrimitiveParams[];
291     'member_vnf_index': string;
292 }
293
294 /** Interface for Exec NS Primitive Params */
295 export interface NSPrimitiveParams {
296     primitive_params_name: string;
297     primitive_params_value: string;
298 }
299
300 /** Interface Nodes Creation */
301 export interface COMPOSERNODES {
302     id: string;
303     reflexive: Boolean;
304     nodeTypeRef: string;
305     name?: string;
306     nodeIndex?: number;
307     selectorId?: string;
308     x?: number;
309     y?: number;
310     fx?: number;
311     fy?: number;
312     shortName?: string;
313     vimNetworkName?: string;
314     'type'?: string;
315     vnfdRef?: string;
316     memberIndex?: string;
317     vimID?: string;
318     vndfrID?: string;
319     ipAddress?: string;
320     nsID?: string;
321     vnfdID?: string;
322 }
323
324 /** Interface for the Virtual Link Info */
325 export interface VLINFO {
326     id: string;
327     name: string;
328     'type': string;
329     shortName: string;
330     vimNetworkName: string;
331 }
332
333 /** Interface for the VNFR Info */
334 export interface VNFRINFO {
335     vimID: string;
336     _id: string;
337     ip: string;
338     nsrID: string;
339     id: string;
340     vnfdRef: string;
341     vnfdId: string;
342     memberIndex: string;
343 }