Skip to content

Commit 56fa46b

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]>
1 parent d0e4539 commit 56fa46b

File tree

56 files changed

+6647
-124
lines changed

Some content is hidden

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

56 files changed

+6647
-124
lines changed

.cspell.json

+4
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,12 @@
4646
"couchdb",
4747
"COUCHDBADDRESS",
4848
"COUCHDBCONFIG",
49+
"CPIV",
4950
"cplcs",
5051
"Creds",
5152
"Crpc",
53+
"CSDE",
54+
"csdetemplate",
5255
"data",
5356
"davecgh",
5457
"dclm",
@@ -197,6 +200,7 @@
197200
"undici",
198201
"unixfs",
199202
"Unmarshal",
203+
"utxoexample",
200204
"uuidv",
201205
"vscc",
202206
"vuln",

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

+5-1
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,18 @@
6161
"@hyperledger/cactus-core": "2.0.0-rc.3",
6262
"@hyperledger/cactus-core-api": "2.0.0-rc.3",
6363
"axios": "1.6.0",
64+
"express": "4.19.2",
6465
"express-openapi-validator": "5.2.0",
66+
"http-errors-enhanced-cjs": "2.0.1",
6567
"internal-ip": "6.2.0",
6668
"joi": "17.13.3",
69+
"node-fetch": "2.7.0",
6770
"node-ssh": "13.1.0",
6871
"prom-client": "15.1.3",
6972
"rxjs": "7.8.1",
7073
"temp": "0.9.4",
71-
"typescript-optional": "2.0.1"
74+
"typescript-optional": "2.0.1",
75+
"urlcat": "3.1.0"
7276
},
7377
"devDependencies": {
7478
"@hyperledger/cactus-test-tooling": "2.0.0-rc.3",

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
@@ -3,6 +3,7 @@ settings.gradle
33
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/api/ApiPluginLedgerConnectorCordaController.kt
44
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/api/ApiPluginLedgerConnectorCordaService.kt
55
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/api/ApiUtil.kt
6+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/CPIIDV1.kt
67
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ClearMonitorTransactionsV1Request.kt
78
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ClearMonitorTransactionsV1Response.kt
89
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/CordaNodeSshCredentials.kt
@@ -16,6 +17,11 @@ src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/mode
1617
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/DiagnoseNodeV1Request.kt
1718
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/DiagnoseNodeV1Response.kt
1819
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/FlowInvocationType.kt
20+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/FlowStatusV1Responses.kt
21+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/FlowStatusV1ResponsesFlowStatusResponsesInner.kt
22+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/FlowV1Error.kt
23+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/GetFlowCidV1Request.kt
24+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/GetFlowCidV1Response.kt
1925
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/GetMonitorTransactionsV1Request.kt
2026
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/GetMonitorTransactionsV1Response.kt
2127
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/GetMonitorTransactionsV1ResponseTxInner.kt
@@ -25,6 +31,10 @@ src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/mode
2531
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/JvmObject.kt
2632
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/JvmType.kt
2733
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/JvmTypeKind.kt
34+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ListCpiV1Request.kt
35+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ListCpiV1Response.kt
36+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ListCpiV1ResponseCpisInner.kt
37+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ListCpiV1ResponseCpisInnerCpksInner.kt
2838
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ListFlowsV1Request.kt
2939
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/ListFlowsV1Response.kt
3040
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/NetworkHostAndPort.kt
@@ -33,6 +43,9 @@ src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/mode
3343
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/Party.kt
3444
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/PublicKey.kt
3545
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/SHA256.kt
46+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/StartFlowV1Request.kt
47+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/StartFlowV1RequestRequestBody.kt
48+
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/StartFlowV1Response.kt
3649
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/StartMonitorV1Request.kt
3750
src/main/kotlin/org/hyperledger/cactus/plugin/ledger/connector/corda/server/model/StartMonitorV1Response.kt
3851
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
@@ -80,6 +87,17 @@ class ApiPluginLedgerConnectorCordaController(@Autowired(required = true) val se
8087
}
8188

8289

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

114132

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

136176

177+
@RequestMapping(
178+
method = [RequestMethod.POST],
179+
value = ["/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/startFlow"],
180+
produces = ["application/json"],
181+
consumes = ["application/json"]
182+
)
183+
fun startFlowV1( @Valid @RequestBody startFlowV1Request: StartFlowV1Request): ResponseEntity<StartFlowV1Response> {
184+
return ResponseEntity(service.startFlowV1(startFlowV1Request), HttpStatus.valueOf(200))
185+
}
186+
187+
137188
@RequestMapping(
138189
method = [RequestMethod.POST],
139190
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
@@ -51,6 +58,17 @@ interface ApiPluginLedgerConnectorCordaService {
5158
*/
5259
fun diagnoseNodeV1(diagnoseNodeV1Request: DiagnoseNodeV1Request?): DiagnoseNodeV1Response
5360

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

98+
/**
99+
* GET /api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/listCPI : List all CPIs uploaded to the cluster
100+
*
101+
* @param listCpiV1Request (required)
102+
* @return OK (status code 200)
103+
* @see ApiPluginLedgerConnectorCorda#listCpiV1
104+
*/
105+
fun listCpiV1(listCpiV1Request: ListCpiV1Request): ListCpiV1Response
106+
107+
/**
108+
* 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.
109+
*
110+
* @param getFlowCidV1Request This method gets the current status of the specified flow instance. (required)
111+
* @return OK (status code 200)
112+
* or Unauthorized (status code 401)
113+
* or Forbidden (status code 403)
114+
* @see ApiPluginLedgerConnectorCorda#listFlowV1
115+
*/
116+
fun listFlowV1(getFlowCidV1Request: GetFlowCidV1Request): FlowStatusV1Responses
117+
80118
/**
81119
* POST /api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/list-flows
82120
* Responds with a list of the flows on the Corda node.
@@ -97,6 +135,15 @@ interface ApiPluginLedgerConnectorCordaService {
97135
*/
98136
fun networkMapV1(body: kotlin.Any?): List<NodeInfo>
99137

138+
/**
139+
* 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.
140+
*
141+
* @param startFlowV1Request Request body for starting a flow (required)
142+
* @return OK (status code 200)
143+
* @see ApiPluginLedgerConnectorCorda#startFlowV1
144+
*/
145+
fun startFlowV1(startFlowV1Request: StartFlowV1Request): StartFlowV1Response
146+
100147
/**
101148
* POST /api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-corda/start-monitor : Start monitoring corda changes (transactions) of given state class
102149
*
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)