add java codegen from json schema (#16)
This commit is contained in:
34
conduit-config/build.gradle
Normal file
34
conduit-config/build.gradle
Normal file
@@ -0,0 +1,34 @@
|
||||
group 'io.dataline.conduit'
|
||||
version '0.1.0'
|
||||
|
||||
// todo: make sure we use the non-deprecated version of this.
|
||||
// https://github.com/joelittlejohn/jsonschema2pojo/tree/master/jsonschema2pojo-gradle-plugin
|
||||
apply plugin: 'jsonschema2pojo'
|
||||
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'org.jsonschema2pojo:jsonschema2pojo-gradle-plugin:1.0.2'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
testCompile group: 'junit', name: 'junit', version: '4.12'
|
||||
|
||||
// Required if generating JSR-303 annotations
|
||||
compile 'javax.validation:validation-api:1.1.0.CR2'
|
||||
// Required if generating Jackson 2 annotations
|
||||
compile 'com.fasterxml.jackson.core:jackson-databind:2.9.7'
|
||||
}
|
||||
|
||||
jsonSchema2Pojo {
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "StandardConnectionStatus",
|
||||
"title": "StandardConnectionStatus",
|
||||
"description": "describes the result of a 'test connection' action.",
|
||||
"type": "object",
|
||||
"required": ["status"],
|
||||
"properties": {
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": ["success", "failure"]
|
||||
},
|
||||
"message": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "StandardDataSchema",
|
||||
"title": "StandardDataSchema",
|
||||
"type": "object",
|
||||
"definitions": {
|
||||
"schema": {
|
||||
"description": "describes the available schema.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"tables": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"name",
|
||||
"columns"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"columns": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"name",
|
||||
"dataType"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"dataType": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"string",
|
||||
"number",
|
||||
"boolean"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "StandardDiscoveryOutput",
|
||||
"title": "StandardDiscoveryOutput",
|
||||
"description": "describes the standard output for any discovery run.",
|
||||
"type": "object",
|
||||
"required": ["schema"],
|
||||
"properties": {
|
||||
"schema": {
|
||||
"description": "describes the available schema.",
|
||||
"$ref": "StandardDataSchema.json#/definitions/schema"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "StandardScheduleConfiguration",
|
||||
"title": "StandardScheduleConfiguration",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"timeUnit": {
|
||||
"type": "string",
|
||||
"enum": ["minutes", "hours", "days", "weeks"]
|
||||
},
|
||||
"units": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "StandardSyncConfiguration",
|
||||
"title": "StandardSyncConfiguration",
|
||||
"description": "configuration required for sync for ALL taps",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"syncMode": {
|
||||
"type": "string",
|
||||
"enum": ["full_refresh", "append"]
|
||||
},
|
||||
"schema": {
|
||||
"description": "describes the elements of the schema that will be synced.",
|
||||
"$ref": "StandardDataSchema.json#/definitions/schema"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "StandardSyncSummary",
|
||||
"title": "StandardSyncSummary",
|
||||
"description": "standard information output by ALL taps for a sync step (our version of state.json)",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"attemptId": {
|
||||
"type": "string",
|
||||
"format": "uuid"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": ["pending", "in_progress","completed", "failed", "cancelled"]
|
||||
},
|
||||
"recordsSynced": {
|
||||
"type": "integer",
|
||||
"minValue": 0
|
||||
},
|
||||
"version": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tables": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"lastRecord": {
|
||||
"description": "blob of the last record",
|
||||
"type": "object"
|
||||
},
|
||||
"version": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"startTime": {
|
||||
"type": "integer"
|
||||
},
|
||||
"endTime": {
|
||||
"type": "integer"
|
||||
},
|
||||
"logs": {
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,3 +3,5 @@ rootProject.name = 'conduit'
|
||||
include 'conduit-api'
|
||||
include 'conduit-server'
|
||||
include 'conduit-commons'
|
||||
include 'conduit-config'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user