Docs
Search…
Schemas

GET /v1/schema/{id}/versions

Description

Display all inferred parquet schemas, for a specific schema ID, that batch uses to write customer data.

Header Parameters

Param
Type
Required
Description
Authorization
string
yes
Bearer token containing API key

Path Parameters

Param
Type
Required
Description
TODO
string
yes
Bearer token containing API key

Example response

[
{
"id": "e64ded63-5136-4972-93cf-13de32dc05f5",
"version": 1,
"schema_id": "8d3848ee-c762-49c8-81de-a0472b2a392c",
"definition": {
"Tag": "name=parquet-go-root",
"Fields": [
{
"Tag": "name=name, type=UTF8, repetitiontype=OPTIONAL"
},
{
"Tag": "name=age, type=DOUBLE, repetitiontype=OPTIONAL"
}
]
},
"display": [
{
"name": "name",
"type": "string"
},
{
"name": "age",
"type": "double"
}
]
},
{
"id": "6a3da458-7ecd-4b5e-923a-3a78c07f8202",
"version": 2,
"schema_id": "8d3848ee-c762-49c8-81de-a0472b2a392c",
"definition": {
"Tag": "name=parquet-go-root",
"Fields": [
{
"Tag": "name=name, type=UTF8, repetitiontype=OPTIONAL"
},
{
"Tag": "name=age, type=DOUBLE, repetitiontype=OPTIONAL"
}
]
},
"display": [
{
"name": "name",
"type": "string"
},
{
"name": "age",
"type": "double"
}
]
}
]

GET /v1/schema/{id}

Description

Get a schema by schema_id.

Header Parameters

Param
Type
Required
Description
Authorization
string
yes
Bearer token containing API key

Path Parameters

Param
Type
Required
Description
id
string
yes
Schema ID

Example Response

{
"id":"89114942-a116-4b66-897a-475bc6d900cd",
"name":"Simple",
"root_type":"sample.Message",
"type":"protobuf",
"team_id":"765f94d5-e61d-4043-a4a2-af5913d00f3d",
"shared":false,
"archived":false,
"proto_files":[
{
"id":"c29ca1b2-c34d-4c11-a286-6eca6c027598",
"file_name":"sample-message.proto",
"contents":"syntax = \"proto3\";\n\npackage sample;\n\nmessage Message {\n string data = 1;\n\n // Referenced in sample-message-2.json\n int64 age = 2;\n\n // Referenced in sample-message-3.json\n string foo = 3;\n}\n",
"schema_id":"89114942-a116-4b66-897a-475bc6d900cd",
"inserted_at":"2021-05-11T19:20:15.049974Z",
"updated_at":"2021-05-11T19:20:15.049974Z"
}
],
"inserted_at":"2021-05-11T19:20:15.049974Z",
"updated_at":"2021-05-11T19:20:15.049974Z"
}

GET /v1/schema

Description

Get a list of schemas for a team.

Header Parameters

Param
Type
Required
Description
Authorization
string
yes
Bearer token containing API key

Example Response

[
{
"id":"cb7a8419-9cec-485d-84e6-36d3ae5d331c",
"name":"Generic JSON",
"root_type":"",
"type":"json",
"team_id":"765f94d5-e61d-4043-a4a2-af5913d00f3d",
"shared":false,
"archived":false,
"inserted_at":"2021-03-14T23:42:12.109951Z",
"updated_at":"2021-03-14T23:42:12.109951Z"
},
{
"id":"5f9b79da-933a-4cc3-b57c-f431e04aeaf1",
"name":"Generic Plain",
"root_type":"",
"type":"plain",
"team_id":"765f94d5-e61d-4043-a4a2-af5913d00f3d",
"shared":false,
"archived":false,
"inserted_at":"2021-03-14T23:42:12.109951Z",
"updated_at":"2021-03-14T23:42:12.109951Z"
},
{
"id":"89114942-a116-4b66-897a-475bc6d900cd",
"name":"Simple Protobuf",
"root_type":"sample.Message",
"type":"protobuf",
"team_id":"765f94d5-e61d-4043-a4a2-af5913d00f3d",
"shared":false,
"archived":false,
"inserted_at":"2021-05-11T19:20:15.049974Z",
"updated_at":"2021-05-11T19:20:15.049974Z"
}
]

POST /v1/schema

Description

Create a new schema.

Header Parameters

Param
Type
Required
Description
Authorization
string
yes
Bearer token containing API key

Body Parameters

Param
Type
Required
Description
name
string
yes
Friendly name for the schema
root_type
string
yes
Root type that all events will use for this collection (must include package name)
type
string
yes
Available options: protobuf
schema_archive
base64 string
yes
A base64 encoded ZIP archive containing protobuf schemas
team_id
uuid
yes
Which team is this schema associated with

Example Response

{
"id":"1a52d4af-10b5-4461-8c40-0482efe6adcd",
"name":"SampleSchema",
"root_type":"events.Message",
"type":"protobuf",
"team_id":"765f94d5-e61d-4043-a4a2-af5913d00f3d",
"shared":false,
"archived":false,
"proto_files":[
{
"id":"cdd79947-24c4-49ae-9b5f-5e2ce21932a1",
"file_name":"destinations/redis-streams.proto",
"contents":"syntax = \"proto3\";\n\noption go_package = \"github.com/batchcorp/schemas/build/go/events/destinations\";\n\npackage destinations;\n\nmessage RedisStreams {\n string address = 1;\n int32 database = 2;\n string username = 3;\n string password = 4;\n repeated string streams = 5;\n string write_key = 6;\n}\n",
"schema_id":"1a52d4af-10b5-4461-8c40-0482efe6adcd",
"inserted_at":"2021-06-25T01:29:50.14068Z",
"updated_at":"2021-06-25T01:29:50.14068Z"
},
{
"id":"e2aa7921-45d7-4348-81dd-3babf928bd12",
"file_name":"team.proto",
"contents":"syntax = \"proto3\";\n\noption go_package = \"github.com/batchcorp/schemas/build/go/events\";\n\npackage events;\n\nimport \"account.proto\";\n\nmessage Team {\n string id = 1;\n string name = 2;\n Account account = 3;\n}\n",
"schema_id":"1a52d4af-10b5-4461-8c40-0482efe6adcd",
"inserted_at":"2021-06-25T01:29:50.14068Z",
"updated_at":"2021-06-25T01:29:50.14068Z"
}
],
"inserted_at":"2021-06-25T01:29:50.14068Z",
"updated_at":"2021-06-25T01:29:50.14068Z"
}

PUT /v1/schema

Description

Update an existing schema
If root_type and schema_archive are specified, protobuf definitions for the schema will be updated and an UPDATE_PROTOS event will be emitted.

Header Parameters

Param
Type
Required
Description
Authorization
string
yes
Bearer token containing API key

Body Parameters

Param
Type
Required
Description
schema_id
uuid
yes
Which schema this update pertains to
name
string
no
Update friendly schema name
root_type
string
no
Update the root type that Batch should use when decoding messages
schema_archive
base64 string
no
Base64 encoded ZIP archive containing proto files
archived
bool
no
Whether to archive the schema or not (not reversible!)

Example Response

{
"id":"1a52d4af-10b5-4461-8c40-0482efe6adcd",
"name":"SampleSchema",
"root_type":"events.Message",
"type":"protobuf",
"team_id":"765f94d5-e61d-4043-a4a2-af5913d00f3d",
"shared":false,
"archived":false,
"proto_files":[
{
"id":"5488f468-1e52-4f76-992f-86f1d9d55f47",
"file_name":"account.proto",
"contents":"syntax = \"proto3\";\n\noption go_package = \"github.com/batchcorp/schemas/build/go/events\";\n\npackage events;\n\nmessage Account {\n enum OnboardingState {\n PENDING = 0;\n WELCOME = 1;\n DESTINATION = 2;\n INITIAL_EVENT = 3;\n CLOSED = 4;\n }\n\n enum OnboardingStateStatus {\n STATUS_UNSET = 0;\n COMPLETE = 1;\n PROCESSING = 2;\n ERROR = 3;\n SKIPPED = 4;\n }\n\n string id = 1;\n string full_name = 2;\n string email = 3;\n OnboardingState onboarding_state = 4;\n OnboardingStateStatus onboarding_state_status = 5;\n string billing_plan_id = 6;\n bool billing_skip_create_subscription = 7;\n}\n",
"schema_id":"1a52d4af-10b5-4461-8c40-0482efe6adcd",
"inserted_at":"2021-06-25T01:29:50.14068Z",
"updated_at":"2021-06-25T01:29:50.14068Z"
},
{
"id":"d27a84ba-ce81-4c84-9e66-ee9491a48242",
"file_name":"status.proto",
"contents":"syntax = \"proto3\";\n\noption go_package = \"github.com/batchcorp/schemas/build/go/events\";\n\npackage events;\n\noption java_package = \"sh.batch.events\";\noption java_outer_classname = \"ResponseStatus\";\n\nmessage Status {\n // A simple error code that can be easily handled by the client. The\n // actual error code is defined by `google.rpc.Code`.\n int32 code = 1;\n\n // A developer-facing human-readable error message in English. It should\n // both explain the error and offer an actionable resolution to it.\n string message = 2;\n}\n",
"schema_id":"1a52d4af-10b5-4461-8c40-0482efe6adcd",
"inserted_at":"2021-06-25T01:29:50.14068Z",
"updated_at":"2021-06-25T01:29:50.14068Z"
}
],
"inserted_at":"2021-06-25T01:29:50.14068Z",
"updated_at":"2021-06-25T01:42:20.186794Z"
}
Last modified 1yr ago
Copy link
On this page
GET /v1/schema/{id}/versions
GET /v1/schema/{id}
GET /v1/schema
POST /v1/schema
PUT /v1/schema