Sync Integ to Master
[sdc.git] / catalog-ui / src / app / models / app-config.ts
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 'use strict';
22 export interface IApi {
23     baseUrl:string;
24
25     //***** NEW API *******//
26     GET_component:string;
27     PUT_component:string;
28     GET_component_validate_name:string;
29     POST_changeLifecycleState:string;
30     component_api_root:string;
31     //*********//
32
33     GET_user:string;
34     GET_user_authorize:string;
35     GET_all_users:string;
36     POST_create_user;
37     DELETE_delete_user;
38     POST_edit_user_role;
39     GET_resource:string;
40     GET_resources_latestversion_notabstract:string;
41     GET_resources_certified_not_abstract:string;
42     GET_resources_certified_abstract:string;
43     PUT_resource:string;
44     GET_resource_property:string;
45     GET_resource_artifact:string;
46     GET_download_instance_artifact:string;
47     POST_instance_artifact:string;
48     GET_resource_additional_information:string;
49     GET_service_artifact:string;
50     GET_resource_interface_artifact:string;
51     GET_resource_api_artifact:string;
52     GET_resource_validate_name:string;
53     GET_resource_artifact_types:string;
54     GET_activity_log:string;
55     GET_configuration_ui:string;
56     GET_plugins_configuration:string;
57     GET_service:string;
58     GET_ecomp_menu_items:string;
59     GET_service_validate_name:string;
60     GET_service_distributions:string;
61     GET_service_distributions_components:string;
62     POST_service_distribution_deploy:string;
63     GET_element:string;
64     GET_catalog:string;
65     GET_resource_category:string;
66     GET_service_category:string;
67     resource_instance:string;
68     GET_resource_instance_property:string;
69     GET_relationship:string;
70     GET_lifecycle_state_resource:string;
71     GET_lifecycle_state_CHECKIN:string;
72     GET_lifecycle_state_CERTIFICATIONREQUEST:string;
73     GET_lifecycle_state_UNDOCHECKOUT:string;
74     root:string;
75     no_proxy_root:string;
76     PUT_service:string;
77     GET_download_artifact:string;
78     GET_SDC_Version:string;
79     GET_categories:string;
80     POST_category:string;
81     POST_subcategory:string;
82     POST_change_instance_version:string;
83     GET_requirements_capabilities:string;
84     GET_onboarding:string;
85     GET_component_from_csar_uuid:string;
86     kibana:string;
87     services_api_root:string;
88 }
89
90 export interface ILogConfig {
91     minLogLevel:string;
92     prefix:string;
93 }
94
95 export interface ICookie {
96     junctionName:string;
97     prefix:string;
98     userIdSuffix:string;
99     userFirstName:string;
100     userLastName:string;
101     userEmail:string;
102 }
103 export interface IUserTypes {
104     admin:any;
105     designer:any;
106     tester:any;
107 }
108
109 export interface IConfigStatuses {
110     inDesign:IConfigStatus;
111     readyForCertification:IConfigStatus;
112     inCertification:IConfigStatus;
113     certified:IConfigStatus;
114     distributed:IConfigStatus;
115 }
116
117 export interface IConfigStatus {
118     name:string;
119     values:Array<string>;
120 }
121
122 export interface IConfigRoles {
123     ADMIN:IConfigRole;
124     DESIGNER:IConfigRole;
125     TESTER:IConfigRole;
126     OPS:IConfigRole;
127     GOVERNOR:IConfigRole;
128 }
129
130 export interface IConfigRole {
131     pages:Array<string>;
132     states:IConfigState;
133 }
134
135 export interface IConfigState {
136     NOT_CERTIFIED_CHECKOUT:Array<IConfigDistribution>;
137     NOT_CERTIFIED_CHECKIN:Array<IConfigDistribution>;
138     READY_FOR_CERTIFICATION:Array<IConfigDistribution>;
139     CERTIFICATION_IN_PROGRESS:Array<IConfigDistribution>;
140     CERTIFIED:Array<IConfigDistribution>;
141 }
142
143 export interface IConfigDistribution {
144     DISTRIBUTION_NOT_APPROVED:Array<ConfigMenuItem>;
145     DISTRIBUTION_APPROVED:Array<ConfigMenuItem>;
146     DISTRIBUTED:Array<ConfigMenuItem>;
147     DISTRIBUTION_REJECTED:Array<ConfigMenuItem>;
148 }
149
150 export interface IConfirmationMessage {
151     showComment:boolean;
152     title:string;
153     message:string;
154 }
155
156 export interface IConfirmationMessages {
157     checkin:IConfirmationMessage;
158     checkout:IConfirmationMessage;
159     certify:IConfirmationMessage;
160     failCertification:IConfirmationMessage;
161     certificationRequest:IConfirmationMessage;
162     approve:IConfirmationMessage;
163     reject:IConfirmationMessage;
164 }
165
166 export interface IAlertMessage {
167     title:string;
168     message:string;
169 }
170
171 export interface IAlertMessages {
172     deleteInstance:IAlertMessage;
173     exitWithoutSaving:IConfirmationMessage;
174 }
175
176 class ConfigMenuItem {
177     text:string;
178     action:string;
179     url:string;
180     disable:boolean = false;
181 }
182
183 export interface IAppConfigurtaion {
184     environment:string;
185     api:IApi;
186     hostedApplications:Array<IHostedApplication>;
187     resourceTypesFilter:IResourceTypesFilter;
188     logConfig:ILogConfig;
189     cookie:ICookie;
190     imagesPath:string;
191     toscaFileExtension:string;
192     csarFileExtension:string;
193     testers:Array<ITester>
194     tutorial:any;
195     roles:Array<string>;
196     cpEndPointInstances:Array<string>;
197     openSource:boolean;
198     showOutlook:boolean;
199     validationConfigPath:string;
200 }
201
202 export interface IResourceTypesFilter {
203     resource:Array<string>;
204 }
205
206 export interface IHostedApplication {
207     moduleName:string;
208     navTitle:string;
209     defaultState:string;
210     exists?:boolean;
211     state:IHostedApplicationState;
212 }
213
214 export interface IHostedApplicationState {
215     name:string;
216     url:string;
217     relativeHtmlPath:string;
218     controllerName:string;
219 }
220
221 export interface ITester {
222     email:string;
223 }
224
225 export interface IAppMenu {
226     roles:IConfigRoles;
227     confirmationMessages:IConfirmationMessages;
228     alertMessages:IAlertMessages;
229     statuses:IConfigStatuses;
230     catalogMenuItem:any;
231     categoriesDictionary:any;
232     canvas_buttons:Object;
233     component_workspace_menu_option:any;
234     LifeCycleStatuses:any;
235     DistributionStatuses:any;
236     ChangeLifecycleStateButton:any;
237 }