aboutsummaryrefslogtreecommitdiffstats
path: root/dcae-controller-service-cdap/dcae-controller-service-cdap-model/src/main/xcore/service.xcore
blob: 4dd1bb3caf1e382c0fea1ecb3c45a02a41b41f42 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
/*-
 * ============LICENSE_START==========================================
 * OPENECOMP - DCAE
 * ===================================================================
 * Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
 * ===================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0 
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ============LICENSE_END============================================
 */
	
@GenModel(modelDirectory="/dcae-controller-service-cdap-model/src/main/xcore-gen")


package org.openecomp.dcae.controller.service.cdap


import org.openecomp.dcae.controller.core.service.DcaeService
import org.openecomp.dcae.controller.core.service.DcaeServiceInstance
import org.openecomp.ncomp.cdap.CdapNamespace
import org.openecomp.dcae.controller.service.cdap.cluster.service.CdapClusterServiceInstance
import org.openecomp.dcae.controller.core.service.DcaeServiceDescriptor
import org.openecomp.ncomp.cdap.CdapKeyPair
import org.openecomp.ncomp.cdap.CdapEntityWithPreferences
import org.openecomp.ncomp.core.NamedEntity

annotation "http://openecomp.org" as ecomp
annotation "http://openecomp.org/cdap" as cdap

class CdapService extends DcaeService {   
	contains CdapServiceInstance[] instances  opposite service
	op void updateInstanceConfiguration(String instanceName)
}

class CdapServiceInstance extends DcaeServiceInstance {
	String cdapName
	String namespace
	String appJar //
	String appConfigFile
	contains CdapArtifact[] artifacts
	contains CdapApplication[] apps
	contains CdapStep[] deploySteps
	contains CdapStep[] undeploySteps
	contains CdapStep[] preConfigurationSteps
	contains CdapStep[] postConfigurationSteps
	String[] appNames
	String[] workerNames 
	String[] flowNames 
	String[] serviceNames 
	@ecomp(^type="configuration")
	contains CdapServiceInstanceConfiguration configuration
	@ecomp(^type="operational")
	contains CdapInternalApplicationConfiguration cdapConfiguration
	@ecomp(^type="operational")
	refers CdapClusterServiceInstance clusterService
	@ecomp(^type="operational")
	refers CdapNamespace cdapNamespace
	@ecomp(^type="operational")
	refers CdapService service opposite instances
}

class CdapApplication extends NamedEntity {
  String jarFile
  String artifactName
  String version 
  String appConfigFileContent
	
}

class CdapArtifact extends NamedEntity {
  String jarFile
  String version
	
}

class CdapServiceInstanceConfiguration {
	
}

class CdapInternalApplicationConfiguration {
	contains unordered CdapKeyPair[] config
	contains unordered CdapKeyPair[] preferences
	contains unordered CdapEntityWithPreferences[] apps
	contains unordered CdapEntityWithPreferences[] workers
	contains unordered CdapEntityWithPreferences[] flows
	contains unordered CdapEntityWithPreferences[] services
}

class CdapServiceDescriptor extends DcaeServiceDescriptor {
	String servicePackage 			
	String serviceClass 			
	String serviceInstanceClass 	
	String jarFile
}

abstract class CdapStep extends NamedEntity {
	
}

class CdapLoadArtifactStep extends CdapStep {
	String artifactName
	String jarFile
	String version
}

class CdapLoadArtifactWithConfigStep extends CdapLoadArtifactStep {
	String config
}

class CdapCreateAppStep extends CdapStep {
	String appId
	String artifactName
	String version
	String scope 
}

class CdapCreateAppWithConfigStep extends CdapCreateAppStep {
	String appConfig
}

class CdapDeployAppStep extends CdapStep {
	String jarFile
}

class CdapStopFlowStep extends CdapStep {
	String appId
	String flowId
}

class CdapStopWorkerStep extends CdapStep {
	String appId
	String workerId
}

class CdapStopServiceStep extends CdapStep {
	String appId
	String serviceId
}

class CdapStopAppStep extends CdapStep {
	String appId
}

class CdapStartFlowStep extends CdapStep {
	String appId
	String flowId
	String extraArgs
}

class CdapStartWorkerStep extends CdapStep {
	String appId
	String workerId
	String extraArgs
}

class CdapStartServiceStep extends CdapStep {
	String appId
	String serviceId
	String extraArgs
}

class CdapStartAppStep extends CdapStep {
	String appId
}

class CdapDeleteAppStep extends CdapStep {
	String appId
}

class CdapDeleteArtifact extends CdapStep {
	String artifactName
	String version
}

class CdapSuspendScheduleStep extends CdapStep {
	String appId
	String scheduleId
}

class CdapResumeScheduleStep extends CdapStep {
	String appId
	String scheduleId
}