62b9c5c9e6e42196185a588929c9193d2c470dd5
[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 InstantiateParam */
153 interface InstantiateParam {
154     nsdId: string;
155     nsName: string;
156     nsDescription: string;
157     vimAccountId: string;
158 }
159
160 /** Interface for AdditionalParamForN */
161 interface AdditionalParamForN {
162     _id: string;
163     'ns-instance-config-ref': string;
164     'crete-time': string;
165 }
166
167 /** interface for the History nsdInstanceData */
168 export interface NSDInstanceData {
169     id?: string;
170     lcmOperationType?: string;
171     operationState?: string;
172     startTime?: number;
173     statusEnteredTime?: number;
174     identifier: string;
175     name: string;
176     NsdName: string;
177     OperationalStatus: string;
178     ConfigStatus: string;
179     DetailedStatus: string;
180     state?: string;
181     memberIndex?: DF[];
182     nsConfig?: object;
183     vcaStatus?: object;
184     adminDetails?: object;
185     vnfID?: string[];
186     nsd?: NSD;
187     operationParams?: OPERATIONPARAMS;
188     'nsd-id': string;
189 }
190
191 /** Interface for the operationparams */
192 export interface OPERATIONPARAMS{
193     scaleType?: string;
194     scaleVnfData?: SCALEVNFDATA;
195 }
196
197 /** Interface for the scaleVnfData */
198 export interface SCALEVNFDATA{
199     scaleVnfType?: string;
200     scaleByStepData?: SCALEBYSTEPDATA;
201 }
202
203 /** Interface for the scaleByStepData */
204 export interface SCALEBYSTEPDATA{
205     'scaling-group-descriptor'?: string;
206     'member-vnf-index'?: string;
207 }
208
209 /** Interface for the nsInfo */
210 export interface NSINFO {
211     nsInstanceID: string;
212     nsName: string;
213     nsOperationalStatus: string;
214     nsConfigStatus: string;
215     nsDetailedStatus: string;
216     nsResourceOrchestrator: string;
217 }
218
219 /** Interface for the NSINSTANCENODES */
220 export interface NSINSTANCENODES {
221     id?: string;
222     nodeTypeRef?: string;
223     name?: string;
224     'type'?: string;
225     vnfdCP?: DF[];
226     vimNetworkName?: string;
227     shortName?: string;
228     cp?: CONNECTIONPOINT[];
229     vdur?: string[];
230     vld?: NSDVLD[];
231     nsID?: string;
232     vnfdID?: string;
233     vimID?: string;
234     vndfrID?: string;
235     ipAddress?: string;
236     memberIndex?: string;
237     vnfdRef?: string;
238     vndfCPRef?: string;
239     selectorId?: string;
240     reflexive?: Boolean;
241     nodeIndex?: number;
242 }
243
244 /** Interface for the connection-point */
245 export interface CONNECTIONPOINT {
246     'connection-point-id': string;
247     name: string;
248     id: string;
249 }
250
251 /** Interface for Exec NS Primitive */
252 export interface NSPrimitive {
253     'primitive': string;
254     'primitive_params': NSPrimitiveParams[];
255     'member_vnf_index': string;
256 }
257
258 /** Interface for Exec NS Primitive Params */
259 export interface NSPrimitiveParams {
260     primitive_params_name: string;
261     primitive_params_value: string;
262 }
263
264 /** Interface Nodes Creation */
265 export interface COMPOSERNODES {
266     id: string;
267     reflexive: Boolean;
268     nodeTypeRef: string;
269     name?: string;
270     nodeIndex?: number;
271     selectorId?: string;
272     x?: number;
273     y?: number;
274     fx?: number;
275     fy?: number;
276     shortName?: string;
277     vimNetworkName?: string;
278     'type'?: string;
279     vnfdRef?: string;
280     memberIndex?: string;
281     vimID?: string;
282     vndfrID?: string;
283     ipAddress?: string;
284     nsID?: string;
285     vnfdID?: string;
286 }
287
288 /** Interface for the Virtual Link Info */
289 export interface VLINFO {
290     id: string;
291     name: string;
292     'type': string;
293     shortName: string;
294     vimNetworkName: string;
295 }
296
297 /** Interface for the VNFR Info */
298 export interface VNFRINFO{
299     vimID: string;
300     _id: string;
301     ip: string;
302     nsrID: string;
303     id: string;
304     vnfdRef: string;
305     vnfdId: string;
306     memberIndex: string;
307 }