6bafcddf99abad7d49120f4dfd756608629f1ea7
[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 { CONSTITUENTVNFD, 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     name: string;
38     'name-ref': string;
39     id: string;
40     'nsd-name-ref': string;
41     description: string;
42     'detailed-status': string;
43     'config-status': string;
44     'resource-orchestrator': string;
45     'nsd-ref': string;
46     vld: VLD[];
47     instantiate_params: InstantiateParam;
48     additionalParamsForNs: AdditionalParamForN;
49     _id?: string;
50 }
51
52 /** Interface for Admin */
53 interface Admin {
54     deployed: DeployedAdmin;
55 }
56
57 /** Interface for DeployedAdmin */
58 interface DeployedAdmin {
59     RO: ROAdmin;
60 }
61
62 /** Interface for ROAdmin */
63 interface ROAdmin {
64     'nsr_status': string;
65 }
66
67 /** Interface for _Admin */
68 // tslint:disable-next-line:class-name
69 interface _Admin {
70     'projects_write': string[];
71     deployed: DeployedAdmin;
72     nslcmop: string;
73     nsState: string;
74     modified: number;
75     projects_read: string[];
76     created: string;
77 }
78
79 /** Interface for Deployed_Admin */
80 interface DeployedAdmin {
81     VCA: string[];
82     RO: ROAdmin;
83 }
84
85 /** Interface for RO_Admin */
86 interface ROAdmin {
87     'nsr_status': string;
88     'nsr_id': string;
89     'nsd_id': string;
90     vnfd: VNFD[];
91 }
92
93 /** Interface for VNFD */
94 interface VNFD {
95     'member-vnf-index': number;
96     id: string;
97 }
98
99 /** Interface for NSD */
100 export interface NSD {
101     description: string;
102     _admin: VNFDAdminDetails;
103     name: string;
104     version: string;
105     _id: string;
106     id: string;
107     'constituent-vnfd': CONSTITUENTVNFD[];
108     vendor: string;
109     vdur: string[];
110     'connection-point': CONNECTIONPOINT[];
111     'virtual-link-desc': NSDVLD[];
112     df: DF[];
113 }
114
115 /** Interface for _AdminDetails */
116 // tslint:disable-next-line:class-name
117 export interface _AdminDetails {
118     usageState: string;
119     projects_write: string[];
120     projects_read: string[];
121     operationalState: string;
122     modified: string;
123     storage: Storage;
124     onboardingState: string;
125     userDefinedData: JSON;
126     created: number;
127 }
128
129 /** Interface for Storage */
130 interface Storage {
131     path: string;
132     'pkg-dir': string;
133     zipfile: string;
134     folder: string;
135     descriptor: string;
136     fs: string;
137 }
138
139 /** Interface for NSDVLD */
140 export interface NSDVLD {
141     'vim-id': string;
142     'status-detailed': string;
143     name: string;
144     status: string;
145     'vim-network-name': string;
146     id: string;
147     'type': string;
148     df: DF[];
149 }
150
151 /** Interface for InstantiateParam */
152 interface InstantiateParam {
153     nsdId: string;
154     nsName: string;
155     nsDescription: string;
156     vimAccountId: string;
157 }
158
159 /** Interface for AdditionalParamForN */
160 interface AdditionalParamForN {
161     _id: string;
162     'ns-instance-config-ref': string;
163     'crete-time': string;
164 }
165
166 /** interface for the History nsdInstanceData */
167 export interface NSDInstanceData {
168     id?: string;
169     lcmOperationType?: string;
170     operationState?: string;
171     startTime?: number;
172     statusEnteredTime?: number;
173     identifier: string;
174     name: string;
175     NsdName: string;
176     OperationalStatus: string;
177     ConfigStatus: string;
178     DetailedStatus: string;
179     state?: string;
180     memberIndex?: DF[];
181     nsConfig?: object;
182 }
183
184 /** Interface for the nsInfo */
185 export interface NSINFO {
186     nsInstanceID: string;
187     nsName: string;
188     nsOperationalStatus: string;
189     nsConfigStatus: string;
190     nsDetailedStatus: string;
191     nsResourceOrchestrator: string;
192 }
193
194 /** Interface for the NSINSTANCENODES */
195 export interface NSINSTANCENODES {
196     id?: string;
197     nodeTypeRef?: string;
198     name?: string;
199     'type'?: string;
200     vnfdCP?: DF[];
201     vimNetworkName?: string;
202     shortName?: string;
203     cp?: CONNECTIONPOINT[];
204     vdur?: string[];
205     vld?: NSDVLD[];
206     nsID?: string;
207     vnfdID?: string;
208     vimID?: string;
209     vndfrID?: string;
210     ipAddress?: string;
211     memberIndex?: string;
212     vnfdRef?: string;
213     vndfCPRef?: string;
214     selectorId?: string;
215     reflexive?: Boolean;
216     nodeIndex?: number;
217 }
218
219 /** Interface for the connection-point */
220 export interface CONNECTIONPOINT {
221     'connection-point-id': string;
222     name: string;
223     id: string;
224 }
225
226 /** Interface for Exec NS Primitive */
227 export interface NSPrimitive {
228     'primitive': string;
229     'primitive_params': NSPrimitiveParams[];
230     'member_vnf_index': string;
231 }
232
233 /** Interface for Exec NS Primitive Params */
234 export interface NSPrimitiveParams {
235     primitive_params_name: string;
236     primitive_params_value: string;
237 }
238
239 /** Interface Nodes Creation */
240 export interface COMPOSERNODES {
241     id: string;
242     reflexive: Boolean;
243     nodeTypeRef: string;
244     name?: string;
245     nodeIndex?: number;
246     selectorId?: string;
247     x?: number;
248     y?: number;
249     fx?: number;
250     fy?: number;
251     shortName?: string;
252     vimNetworkName?: string;
253     'type'?: string;
254     vnfdRef?: string;
255     memberIndex?: string;
256     vimID?: string;
257     vndfrID?: string;
258     ipAddress?: string;
259     nsID?: string;
260     vnfdID?: string;
261 }
262
263 /** Interface for the Virtual Link Info */
264 export interface VLINFO {
265     id: string;
266     name: string;
267     'type': string;
268     shortName: string;
269     vimNetworkName: string;
270 }
271
272 /** Interface for the VNFR Info */
273 export interface VNFRINFO{
274     vimID: string;
275     _id: string;
276     ip: string;
277     nsrID: string;
278     id: string;
279     vnfdRef: string;
280     vnfdId: string;
281     memberIndex: string;
282 }