Fix Bug 2336: Manual Healing option in Ui
[osm/NG-UI.git] / src / models / CommonModel.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 import { HttpHeaders } from '@angular/common/http';
19 import { NSD } from 'NSInstanceModel';
20 import { EXECUTEDACTIONS } from 'OperationalModel';
21 import { VNFD } from 'VNFDModel';
22
23 /**
24  * @file  Model for Commonly used information.
25  */
26 /* eslint-disable */
27 /**
28  * handle count @enum
29  */
30 export enum CONSTANTNUMBER {
31     randomNumber = 4,
32     osmapviewlong = 77.673,
33     osmapviewlat = 19.166,
34     chennailong = 80.2809,
35     chennailat = 13.0781,
36     bangalorelong = 77.5868,
37     bangalorelat = 12.9718,
38     mumbailong = 72.8342,
39     mumbailat = 18.9394,
40     tirvandrumlong = 76.9544,
41     tirvandrumlat = 8.5009,
42     oneMB = 1048576,
43     paginationDefaultValue = 10,
44     splitLongitude = 1,
45     splitLatitude = 2,
46     timeOutDefaultSeconds = 5,
47     oneGB = 1024
48 }
49 /**
50  * handle count @enum
51  */
52 export enum CONFIGCONSTANT {
53     operationalStateFirstStep = 'init',
54     operationalStateSecondStep = 'running',
55     operationalStateThirdStep = 'failed',
56     operationalStateFourthStep = 'scaling',
57     operationalStateFifthStep = 'healing',
58     configStateFirstStep = 'init',
59     configStateSecondStep = 'configured',
60     configStateThirdStep = 'failed',
61     historyStateFirstStep = 'PROCESSING',
62     historyStateSecondStep = 'COMPLETED',
63     historyStateThirdStep = 'FAILED',
64     wimOperationalStateFirstStep = 'PROCESSING',
65     wimOperationalStateStateSecondStep = 'ENABLED',
66     wimOperationalStateThirdStep = 'ERROR',
67     vimOperationalStateFirstStep = 'PROCESSING',
68     vimOperationalStateStateSecondStep = 'ENABLED',
69     vimOperationalStateThirdStep = 'ERROR',
70     sdnOperationalStateFirstStep = 'PROCESSING',
71     sdnOperationalStateStateSecondStep = 'ENABLED',
72     sdnOperationalStateThirdStep = 'ERROR',
73     k8OperationalStateFirstStep = 'PROCESSING',
74     k8OperationalStateStateSecondStep = 'ENABLED',
75     k8OperationalStateThirdStep = 'ERROR',
76     done = 'done',
77     close = 'close',
78     userActive = 'active',
79     userLocked = 'locked',
80     userExpired = 'expired',
81     userAlwaysActive = 'always-active'
82 }
83 /** Interface for Post options */
84 export interface POSTAPIRESOURCE {
85     apiURLHeader: APIURLHEADER;
86     payload?: object;
87 }
88 /** Interface for ApiURL Header */
89 export interface APIURLHEADER {
90     url: string;
91     httpOptions?: APIHEADERS;
92 }
93 /** Interface for the Get Method with response type */
94 export interface GETAPIURLHEADER {
95     headers: HttpHeaders;
96     responseType: string;
97 }
98 /** Interface for Httpoptions Header */
99 interface APIHEADERS {
100     headers: HttpHeaders;
101 }
102 /** Interface for the Error */
103 export interface ERRORDATA {
104     error: ERRORDETAILSDATA;
105 }
106 /** Interface for the Error Details */
107 interface ERRORDETAILSDATA {
108     detail: string;
109     code?: string;
110     status?: number;
111     text?: Function;
112 }
113 /** Handle the URL params */
114 export interface URLPARAMS {
115     page: string;
116     id: string;
117     titleName?: string;
118     forceDeleteType?: boolean;
119     name?: string;
120     memberIndex?: object;
121     nsConfig?: object;
122     projectID?: string;
123     username?: string;
124     vnfID?: [];
125     nsID?: string;
126     nsd?: NSD;
127     data?: VNFD[];
128     configs?: object;
129     actions?: object;
130     executedActions?: EXECUTEDACTIONS[];
131 }
132 /** Handle the Delete params */
133 export interface DELETEPARAMS {
134     identifier: string;
135     name?: string;
136     projectName?: string;
137     userName?: string;
138     username?: string;
139     page?: string;
140     id?: string;
141     productName?: string;
142 }
143
144 /** Interface for the Delete Details */
145 export interface MODALCLOSERESPONSEDATA {
146     message: string;
147 }
148
149 /** Interface for the modal closer */
150 export interface MODALCLOSERESPONSEWITHCP {
151     message: string;
152     connection_point?: string;
153 }
154
155 /** Interface for local storage settings */
156 export interface LOCALSTORAGE {
157     id_token?: string;
158     project_id?: string;
159     expires?: string;
160     username?: string;
161     project?: string;
162     project_name?: string;
163     id?: string;
164     admin?: boolean;
165     isAdmin?: string;
166     token_state?: string;
167 }
168 /** Interface for Tar settings */
169 export interface TARSETTINGS {
170     name?: string;
171     'type'?: string;
172     readAsString?: Function;
173     buffer: ArrayBuffer;
174     header_offset?: Number;
175     size?: number;
176     linkname?: string;
177     uname?: string;
178     gname?: string;
179 }
180 /** Interface for File Settings */
181 export interface FILESETTINGS {
182     'type'?: string;
183     linkname?: string;
184     owner?: string;
185     group?: string;
186 }
187 /** Interface for Package information */
188 export interface PACKAGEINFO {
189     id?: string;
190     packageType?: string;
191     descriptor: string;
192 }
193
194 /** Interface For the Pagination pager in ng-smarttable */
195 export interface PAGERSMARTTABLE {
196     display: boolean;
197     perPage: number;
198 }
199 /** Interface for breadcrumb item */
200 export interface BREADCRUMBITEM {
201     title: string;
202     url: string;
203 }
204 /** Interface For the Pagination pager in ng-smarttable */
205 export interface SMARTTABLECLASS {
206     class: string;
207 }
208 /** Constants of the VIM Types */
209 export const VIM_TYPES: TYPESECTION[] = [
210     { value: 'openstack', title: 'Openstack' },
211     { value: 'aws', title: 'AWS' },
212     { value: 'vmware', title: 'VMware vCD' },
213     { value: 'openvim', title: 'OpenVIM' },
214     { value: 'opennebula', title: 'OpenNebula' },
215     { value: 'azure', title: 'Azure' },
216     { value: 'dummy', title: 'Dummy' }
217 ];
218 /** Constants of the SDN Types */
219 export const SDN_TYPES: TYPESECTION[] = [
220     { value: 'arista', title: 'Arista' },
221     { value: 'floodlightof', title: 'Floodlight openflow' },
222     { value: 'odlof', title: 'OpenDaylight openflow' },
223     { value: 'onosof', title: 'ONOS openflow' },
224     { value: 'onos_vpls', title: 'ONOS vpls' }
225 ];
226 /** Constants of the WIM Types */
227 export const WIM_TYPES: TYPESECTION[] = [
228     { value: 'arista', title: 'Arista' },
229     { value: 'dynpac', title: 'DynPac' },
230     { value: 'floodlightof', title: 'Floodlight openflow' },
231     { value: 'odlof', title: 'OpenDaylight openflow' },
232     { value: 'onosof', title: 'ONOS openflow' },
233     { value: 'onos_vpls', title: 'ONOS vpls' },
234     { value: 'tapi', title: 'TAPI' }
235 ];
236 /** Constants of the OSM Repo Types */
237 export const OSMREPO_TYPES: TYPESECTION[] = [
238     { value: 'osm', title: 'OSM' }
239 ];
240 /** Interface for List, Add WIM & SDN Types */
241 export interface TYPESECTION {
242     value: string;
243     title: string;
244 }
245 /** Interface for PRIMITIVETYPES */
246 export interface PRIMITIVETYPES {
247     title: string;
248     value: string;
249 }
250 /** Interface for the PRIMITIVEDATA */
251 export interface PRIMITIVEDATA {
252     parameter: {}[];
253 }
254 /** Constant for VIM type Openstack's Config */
255 export const TYPEOPENSTACK: {} = {
256     sdn_controller: '',
257     APIversion: '',
258     sdn_port_mapping: '',
259     project_domain_id: '',
260     vim_network_name: '',
261     project_domain_name: '',
262     config_vim_ype: '',
263     user_domain_id: '',
264     security_groups: '',
265     user_domain_name: '',
266     availability_zone: '',
267     keypair: '',
268     region_name: '',
269     dataplane_physical_net: '',
270     insecure: '',
271     use_floating_ip: '',
272     use_internal_endpoint: '',
273     microversion: '',
274     additional_conf: '',
275     use_existing_flavors: ''
276 };
277 /** Constant for VIM type AWS's Config */
278 export const TYPEAWS: {} = {
279     sdn_controller: '',
280     vpc_cidr_block: '',
281     sdn_port_mapping: '',
282     security_groups: '',
283     vim_network_name: '',
284     keypair: '',
285     region_name: '',
286     flavor_info: '',
287     additional_conf: ''
288 };
289 /** Constant for VIM type VMWARE's Config */
290 export const TYPEVMWARE: {} = {
291     sdn_controller: '',
292     orgname: '',
293     sdn_port_mapping: '',
294     vcenter_ip: '',
295     vim_network_name: '',
296     admin_username: '',
297     admin_password: '',
298     vcenter_port: '',
299     vcenter_user: '',
300     vcenter_password: '',
301     nsx_manager: '',
302     nsx_user: '',
303     nsx_password: '',
304     vrops_site: '',
305     vrops_user: '',
306     vrops_password: '',
307     additional_conf: ''
308 };
309 /** Constant for VIM type OPENVIMNEBULA's Config */
310 export const TYPEOPENVIMNEBULA: {} = {
311     sdn_controller: '',
312     sdn_port_mapping: '',
313     vim_network_name: '',
314     additional_conf: ''
315 };
316 /** Constant for VIM type AZURE's Config */
317 export const TYPEAZURE: {} = {
318     subscription_id: '',
319     region_name: '',
320     resource_group: '',
321     vnet_name: '',
322     flavors_pattern: ''
323 };
324 /** Constant for VIM other type Config */
325 export const TYPEOTERS: {} = {
326     sdn_controller: '',
327     sdn_port_mapping: '',
328     vim_network_name: '',
329     use_floating_ip: '',
330     use_internal_endpoint: '',
331     additional_conf: '',
332     use_existing_flavors: ''
333 };
334 /** Interface for Domains */
335 export interface DOMAINS {
336     project_domain_name: string;
337     user_domain_name: string;
338 }
339 /** Interface for Login */
340 export interface LOGINPARAMS {
341     username?: string;
342     password?: string;
343     old_password?: string;
344 }
345 /** Interface for the LABELVALUE */
346 export interface LABELVALUE {
347     label: string;
348     value: string;
349 }
350 /** Interface for Login */
351 export interface UNLOCKPARAMS {
352     system_admin_id?: string;
353     unlock?: boolean;
354     renew?: boolean;
355 }