Skip to content

Commit a1761a9

Browse files
committed
feat(corda): support 5.1 via TS/HTTP (no JVM)
Fixes hyperledger-cacti#2978 Fixes hyperledger-cacti#3293 Signed-off-by: adrianbatuto <[email protected]> Signed-off-by: Peter Somogyvari <[email protected]>
1 parent ff6e5af commit a1761a9

File tree

59 files changed

+6587
-126
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+6587
-126
lines changed

.cspell.json

+4
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,12 @@
4545
"couchdb",
4646
"COUCHDBADDRESS",
4747
"COUCHDBCONFIG",
48+
"CPIV",
4849
"cplcs",
4950
"Creds",
5051
"Crpc",
52+
"CSDE",
53+
"csdetemplate",
5154
"data",
5255
"davecgh",
5356
"dclm",
@@ -188,6 +191,7 @@
188191
"undici",
189192
"unixfs",
190193
"Unmarshal",
194+
"utxoexample",
191195
"uuidv",
192196
"vscc",
193197
"vuln",

packages/cactus-plugin-ledger-connector-corda/package.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,12 @@
6060
"@hyperledger/cactus-core": "2.0.0-rc.1",
6161
"@hyperledger/cactus-core-api": "2.0.0-rc.1",
6262
"axios": "1.6.0",
63+
"dotenv": "^16.4.5",
64+
"express": "^4.19.2",
6365
"express-openapi-validator": "5.0.4",
6466
"internal-ip": "6.2.0",
6567
"joi": "17.9.1",
68+
"node-fetch": "2.7.0",
6669
"node-ssh": "13.1.0",
6770
"prom-client": "13.2.0",
6871
"rxjs": "7.8.1",
@@ -77,7 +80,6 @@
7780
"@types/temp": "0.9.1",
7881
"@types/uuid": "9.0.8",
7982
"body-parser": "1.20.2",
80-
"express": "4.19.2",
8183
"uuid": "9.0.1"
8284
},
8385
"engines": {

packages/cactus-plugin-ledger-connector-corda/src/main-server/healthcheck.sh

100755100644
File mode changed.

packages/cactus-plugin-ledger-connector-corda/src/main-server/kotlin/gen/kotlin-spring/.openapi-generator/FILES

+13
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ settings.gradle
44
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/api/ApiPluginLedgerConnectorCordaController.kt
55
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/api/ApiPluginLedgerConnectorCordaService.kt
66
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/api/ApiUtil.kt
7+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/CPIIDV1.kt
78
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ClearMonitorTransactionsV1Request.kt
89
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ClearMonitorTransactionsV1Response.kt
910
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/CordaNodeSshCredentials.kt
@@ -17,6 +18,11 @@ src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/mode
1718
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/DiagnoseNodeV1Request.kt
1819
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/DiagnoseNodeV1Response.kt
1920
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/FlowInvocationType.kt
21+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/FlowStatusV1Responses.kt
22+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/FlowStatusV1ResponsesFlowStatusResponsesInner.kt
23+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/FlowV1Error.kt
24+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/GetFlowCidV1Request.kt
25+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/GetFlowCidV1Response.kt
2026
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/GetMonitorTransactionsV1Request.kt
2127
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/GetMonitorTransactionsV1Response.kt
2228
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/GetMonitorTransactionsV1ResponseTxInner.kt
@@ -26,6 +32,10 @@ src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/mode
2632
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/JvmObject.kt
2733
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/JvmType.kt
2834
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/JvmTypeKind.kt
35+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ListCpiV1Request.kt
36+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ListCpiV1Response.kt
37+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ListCpiV1ResponseCpisInner.kt
38+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ListCpiV1ResponseCpisInnerCpksInner.kt
2939
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ListFlowsV1Request.kt
3040
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ListFlowsV1Response.kt
3141
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/NetworkHostAndPort.kt
@@ -34,6 +44,9 @@ src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/mode
3444
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/Party.kt
3545
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/PublicKey.kt
3646
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/SHA256.kt
47+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/StartFlowV1Request.kt
48+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/StartFlowV1RequestRequestBody.kt
49+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/StartFlowV1Response.kt
3750
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/StartMonitorV1Request.kt
3851
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/StartMonitorV1Response.kt
3952
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/StopMonitorV1Request.kt

packages/cactus-plugin-ledger-connector-corda/src/main-server/kotlin/gen/kotlin-spring/gradlew

100755100644
File mode changed.

packages/cactus-plugin-ledger-connector-corda/src/main-server/kotlin/gen/kotlin-spring/src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/api/ApiPluginLedgerConnectorCordaController.kt

+51
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,20 @@ import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.DeployC
77
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.DeployContractJarsV1Request
88
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.DiagnoseNodeV1Request
99
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.DiagnoseNodeV1Response
10+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.FlowStatusV1Responses
11+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.GetFlowCidV1Request
12+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.GetFlowCidV1Response
1013
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.GetMonitorTransactionsV1Request
1114
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.GetMonitorTransactionsV1Response
1215
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.InvokeContractV1Request
1316
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.InvokeContractV1Response
17+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.ListCpiV1Request
18+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.ListCpiV1Response
1419
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.ListFlowsV1Request
1520
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.ListFlowsV1Response
1621
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.NodeInfo
22+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.StartFlowV1Request
23+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.StartFlowV1Response
1724
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.StartMonitorV1Request
1825
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.StartMonitorV1Response
1926
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.StopMonitorV1Request
@@ -79,6 +86,17 @@ class ApiPluginLedgerConnectorCordaController(@Autowired(required = true) val se
7986
}
8087

8188

89+
@RequestMapping(
90+
method = [RequestMethod.GET],
91+
value = ["/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/getFlowCid"],
92+
produces = ["text/plain"],
93+
consumes = ["application/json"]
94+
)
95+
fun getFlowV1( @Valid @RequestBody getFlowCidV1Request: GetFlowCidV1Request): ResponseEntity<GetFlowCidV1Response> {
96+
return ResponseEntity(service.getFlowV1(getFlowCidV1Request), HttpStatus.valueOf(200))
97+
}
98+
99+
82100
@RequestMapping(
83101
method = [RequestMethod.GET],
84102
value = ["/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/get-monitor-transactions"],
@@ -111,6 +129,28 @@ class ApiPluginLedgerConnectorCordaController(@Autowired(required = true) val se
111129
}
112130

113131

132+
@RequestMapping(
133+
method = [RequestMethod.GET],
134+
value = ["/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/listCPI"],
135+
produces = ["application/json"],
136+
consumes = ["application/json"]
137+
)
138+
fun listCpiV1( @Valid @RequestBody listCpiV1Request: ListCpiV1Request): ResponseEntity<ListCpiV1Response> {
139+
return ResponseEntity(service.listCpiV1(listCpiV1Request), HttpStatus.valueOf(200))
140+
}
141+
142+
143+
@RequestMapping(
144+
method = [RequestMethod.GET],
145+
value = ["/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/listFlows"],
146+
produces = ["text/plain"],
147+
consumes = ["application/json"]
148+
)
149+
fun listFlowV1( @Valid @RequestBody getFlowCidV1Request: GetFlowCidV1Request): ResponseEntity<FlowStatusV1Responses> {
150+
return ResponseEntity(service.listFlowV1(getFlowCidV1Request), HttpStatus.valueOf(200))
151+
}
152+
153+
114154
@RequestMapping(
115155
method = [RequestMethod.POST],
116156
value = ["/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/list-flows"],
@@ -133,6 +173,17 @@ class ApiPluginLedgerConnectorCordaController(@Autowired(required = true) val se
133173
}
134174

135175

176+
@RequestMapping(
177+
method = [RequestMethod.POST],
178+
value = ["/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/startFlow"],
179+
produces = ["application/json"],
180+
consumes = ["application/json"]
181+
)
182+
fun startFlowV1( @Valid @RequestBody startFlowV1Request: StartFlowV1Request): ResponseEntity<StartFlowV1Response> {
183+
return ResponseEntity(service.startFlowV1(startFlowV1Request), HttpStatus.valueOf(200))
184+
}
185+
186+
136187
@RequestMapping(
137188
method = [RequestMethod.POST],
138189
value = ["/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/start-monitor"],

packages/cactus-plugin-ledger-connector-corda/src/main-server/kotlin/gen/kotlin-spring/src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/api/ApiPluginLedgerConnectorCordaService.kt

+47
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,20 @@ import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.DeployC
77
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.DeployContractJarsV1Request
88
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.DiagnoseNodeV1Request
99
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.DiagnoseNodeV1Response
10+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.FlowStatusV1Responses
11+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.GetFlowCidV1Request
12+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.GetFlowCidV1Response
1013
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.GetMonitorTransactionsV1Request
1114
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.GetMonitorTransactionsV1Response
1215
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.InvokeContractV1Request
1316
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.InvokeContractV1Response
17+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.ListCpiV1Request
18+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.ListCpiV1Response
1419
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.ListFlowsV1Request
1520
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.ListFlowsV1Response
1621
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.NodeInfo
22+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.StartFlowV1Request
23+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.StartFlowV1Response
1724
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.StartMonitorV1Request
1825
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.StartMonitorV1Response
1926
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.StopMonitorV1Request
@@ -50,6 +57,17 @@ interface ApiPluginLedgerConnectorCordaService {
5057
*/
5158
fun diagnoseNodeV1(diagnoseNodeV1Request: DiagnoseNodeV1Request?): DiagnoseNodeV1Response
5259

60+
/**
61+
* GET /api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/getFlowCid : This method gets the current status of the specified flow instance.
62+
*
63+
* @param getFlowCidV1Request This method gets the current status of the specified flow instance. (required)
64+
* @return OK (status code 200)
65+
* or Unauthorized (status code 401)
66+
* or Forbidden (status code 403)
67+
* @see ApiPluginLedgerConnectorCorda#getFlowV1
68+
*/
69+
fun getFlowV1(getFlowCidV1Request: GetFlowCidV1Request): GetFlowCidV1Response
70+
5371
/**
5472
* GET /api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/get-monitor-transactions : Get transactions for monitored state classes.
5573
*
@@ -76,6 +94,26 @@ interface ApiPluginLedgerConnectorCordaService {
7694
*/
7795
fun invokeContractV1(invokeContractV1Request: InvokeContractV1Request?): InvokeContractV1Response
7896

97+
/**
98+
* GET /api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/listCPI : List all CPIs uploaded to the cluster
99+
*
100+
* @param listCpiV1Request (required)
101+
* @return OK (status code 200)
102+
* @see ApiPluginLedgerConnectorCorda#listCpiV1
103+
*/
104+
fun listCpiV1(listCpiV1Request: ListCpiV1Request): ListCpiV1Response
105+
106+
/**
107+
* GET /api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/listFlows : This method returns an array containing the statuses of all flows running for a specified holding identity. An empty array is returned if there are no flows running.
108+
*
109+
* @param getFlowCidV1Request This method gets the current status of the specified flow instance. (required)
110+
* @return OK (status code 200)
111+
* or Unauthorized (status code 401)
112+
* or Forbidden (status code 403)
113+
* @see ApiPluginLedgerConnectorCorda#listFlowV1
114+
*/
115+
fun listFlowV1(getFlowCidV1Request: GetFlowCidV1Request): FlowStatusV1Responses
116+
79117
/**
80118
* POST /api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/list-flows
81119
* Responds with a list of the flows on the Corda node.
@@ -96,6 +134,15 @@ interface ApiPluginLedgerConnectorCordaService {
96134
*/
97135
fun networkMapV1(body: kotlin.Any?): List<NodeInfo>
98136

137+
/**
138+
* POST /api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/startFlow : This method starts a new instance for the specified flow for the specified holding identity.
139+
*
140+
* @param startFlowV1Request Request body for starting a flow (required)
141+
* @return OK (status code 200)
142+
* @see ApiPluginLedgerConnectorCorda#startFlowV1
143+
*/
144+
fun startFlowV1(startFlowV1Request: StartFlowV1Request): StartFlowV1Response
145+
99146
/**
100147
* POST /api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/start-monitor : Start monitoring corda changes (transactions) of given state class
101148
*
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.hyperledger.cactus.plugin.ledger.connector.corda.server.model
2+
3+
import java.util.Objects
4+
import com.fasterxml.jackson.annotation.JsonProperty
5+
import javax.validation.constraints.DecimalMax
6+
import javax.validation.constraints.DecimalMin
7+
import javax.validation.constraints.Email
8+
import javax.validation.constraints.Max
9+
import javax.validation.constraints.Min
10+
import javax.validation.constraints.NotNull
11+
import javax.validation.constraints.Pattern
12+
import javax.validation.constraints.Size
13+
import javax.validation.Valid
14+
15+
/**
16+
*
17+
* @param name
18+
* @param version
19+
* @param signerSummaryHash
20+
*/
21+
data class CPIIDV1(
22+
23+
@get:JsonProperty("name", required = true) val name: kotlin.String,
24+
25+
@get:JsonProperty("version", required = true) val version: kotlin.String,
26+
27+
@get:JsonProperty("signerSummaryHash") val signerSummaryHash: kotlin.String? = null
28+
) {
29+
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.hyperledger.cactus.plugin.ledger.connector.corda.server.model
2+
3+
import java.util.Objects
4+
import com.fasterxml.jackson.annotation.JsonProperty
5+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.FlowStatusV1ResponsesFlowStatusResponsesInner
6+
import javax.validation.constraints.DecimalMax
7+
import javax.validation.constraints.DecimalMin
8+
import javax.validation.constraints.Email
9+
import javax.validation.constraints.Max
10+
import javax.validation.constraints.Min
11+
import javax.validation.constraints.NotNull
12+
import javax.validation.constraints.Pattern
13+
import javax.validation.constraints.Size
14+
import javax.validation.Valid
15+
16+
/**
17+
*
18+
* @param flowStatusResponses
19+
*/
20+
data class FlowStatusV1Responses(
21+
22+
@field:Valid
23+
@get:JsonProperty("flowStatusResponses") val flowStatusResponses: kotlin.collections.List<FlowStatusV1ResponsesFlowStatusResponsesInner>? = null
24+
) {
25+
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package org.hyperledger.cactus.plugin.ledger.connector.corda.server.model
2+
3+
import java.util.Objects
4+
import com.fasterxml.jackson.annotation.JsonProperty
5+
import org.hyperledger.cactus.plugin.ledger.connector.corda.server.model.FlowV1Error
6+
import javax.validation.constraints.DecimalMax
7+
import javax.validation.constraints.DecimalMin
8+
import javax.validation.constraints.Email
9+
import javax.validation.constraints.Max
10+
import javax.validation.constraints.Min
11+
import javax.validation.constraints.NotNull
12+
import javax.validation.constraints.Pattern
13+
import javax.validation.constraints.Size
14+
import javax.validation.Valid
15+
16+
/**
17+
*
18+
* @param clientRequestId
19+
* @param flowError
20+
* @param flowId
21+
* @param flowResult
22+
* @param flowStatus
23+
* @param holdingIDShortHash
24+
* @param timestamp
25+
*/
26+
data class FlowStatusV1ResponsesFlowStatusResponsesInner(
27+
28+
@get:JsonProperty("clientRequestId") val clientRequestId: kotlin.String? = null,
29+
30+
@field:Valid
31+
@get:JsonProperty("flowError") val flowError: FlowV1Error? = null,
32+
33+
@get:JsonProperty("flowId") val flowId: kotlin.String? = null,
34+
35+
@get:JsonProperty("flowResult") val flowResult: kotlin.String? = null,
36+
37+
@get:JsonProperty("flowStatus") val flowStatus: kotlin.String? = null,
38+
39+
@get:JsonProperty("holdingIDShortHash") val holdingIDShortHash: kotlin.String? = null,
40+
41+
@get:JsonProperty("timestamp") val timestamp: java.time.OffsetDateTime? = null
42+
) {
43+
44+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.hyperledger.cactus.plugin.ledger.connector.corda.server.model
2+
3+
import java.util.Objects
4+
import com.fasterxml.jackson.annotation.JsonProperty
5+
import javax.validation.constraints.DecimalMax
6+
import javax.validation.constraints.DecimalMin
7+
import javax.validation.constraints.Email
8+
import javax.validation.constraints.Max
9+
import javax.validation.constraints.Min
10+
import javax.validation.constraints.NotNull
11+
import javax.validation.constraints.Pattern
12+
import javax.validation.constraints.Size
13+
import javax.validation.Valid
14+
15+
/**
16+
*
17+
* @param message
18+
* @param type
19+
*/
20+
data class FlowV1Error(
21+
22+
@get:JsonProperty("message", required = true) val message: kotlin.String,
23+
24+
@get:JsonProperty("type", required = true) val type: kotlin.String
25+
) {
26+
27+
}

0 commit comments

Comments
 (0)