Merge "Introduce WithPermissionProperties as validation-points for RoleValidator"
[vid.git] / vid-app-common / src / main / java / org / onap / vid / model / SOWorkflows.kt
1 /*-
2  * ============LICENSE_START=======================================================
3  * VID
4  * ================================================================================
5  * Copyright (C) 2019 Nokia 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 package org.onap.vid.model
22
23 import com.google.common.collect.Lists
24
25 enum class WorkflowSource(val source: String) {
26     SDC("sdc"), NATIVE("native")
27 }
28
29 data class SOWorkflow constructor(
30         val id: String,
31         val name: String,
32         val source: WorkflowSource,
33         val workflowInputParameters: List<WorkflowInputParameter>
34 ) {
35     fun clone(): SOWorkflow {
36         return copy()
37     }
38 }
39
40 data class SOWorkflows @JvmOverloads constructor(
41         val workflows: List<SOWorkflow> = emptyList()) {
42     fun clone(): SOWorkflows {
43         return copy(workflows.toMutableList())
44     }
45 }
46
47 enum class SOWorkflowType(
48         val type: String) {
49     text("text")
50 }
51
52 enum class LocalWorkflowType(
53         val type: String) {
54     text("text"),
55     FILE("FILE")
56 }
57
58 data class SOWorkflowParameterDefinition constructor(
59         val id: Long,
60         val name: String,
61         val pattern: String,
62         val type: SOWorkflowType,
63         val required: Boolean)
64
65 data class SOWorkflowParameterDefinitions constructor(
66         val parameterDefinitions: List<SOWorkflowParameterDefinition> = emptyList()) {
67     fun clone(): SOWorkflowParameterDefinitions {
68         return copy(parameterDefinitions.toMutableList())
69     }
70 }
71
72 data class LocalWorkflowParameterDefinition @JvmOverloads constructor(
73         val id: Long,
74         val name: String,
75         val displayName: String,
76         val required: Boolean,
77         val type: LocalWorkflowType,
78         val pattern: String? = null,
79         val msgOnPatternError: String? = null,
80         val msgOnContentError: String? = null,
81         val acceptableFileType: String? = null
82 )
83
84 data class LocalWorkflowParameterDefinitions constructor(
85         val parameterDefinitions: List<LocalWorkflowParameterDefinition> = emptyList()
86 ) {
87     fun clone(): LocalWorkflowParameterDefinitions {
88         return copy(parameterDefinitions.toMutableList())
89     }
90 }
91
92
93 data class ArtifactInfo constructor(
94         val artifactType: String,
95         val artifactUuid: String,
96         val artifactName: String,
97         val artifactVersion: String,
98         val artifactDescription: String? = null,
99         val workflowName: String,
100         val operationName: String? = null,
101         val workflowSource: String,
102         val workflowResourceTarget: String
103 )
104
105 data class ActivitySequenceItem constructor(
106         val name: String,
107         val description: String
108 )
109
110 data class WorkflowInputParameter constructor(
111         val label: String,
112         val inputType: String,
113         val required: Boolean,
114         val validation: List<InputParameterValidation>? = Lists.newArrayList(),
115         val soFieldName: String,
116         val soPayloadLocation: String?,
117         val description: String?
118
119 )
120
121 data class InputParameterValidation constructor(
122         val maxLength: String?,
123         val allowableChars: String?
124 )
125
126 data class WorkflowSpecification constructor(
127         val artifactInfo: ArtifactInfo,
128         val activitySequence: List<ActivitySequenceItem>? = Lists.newArrayList(),
129         val workflowInputParameters: List<WorkflowInputParameter>
130 )
131
132 data class WorkflowSpecificationWrapper constructor(
133         val workflowSpecification: WorkflowSpecification
134 )
135
136 data class SOWorkflowList constructor(
137         val workflowSpecificationList: List<WorkflowSpecificationWrapper>? = Lists.newArrayList()
138 )