xyz.block.ftl.v1.schema.schema.proto Maven / Gradle / Ivy
syntax = "proto3";
// This file is generated by github.com/TBD54566975/ftl/backend/schema/protobuf.go, DO NOT MODIFY
package xyz.block.ftl.v1.schema;
import "xyz/block/ftl/v1/schema/runtime.proto";
option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/schema;schemapb";
option java_multiple_files = true;
message Any {
optional Position pos = 1;
}
message Array {
optional Position pos = 1;
Type element = 2;
}
message Bool {
optional Position pos = 1;
}
message Bytes {
optional Position pos = 1;
}
message Config {
optional Position pos = 1;
repeated string comments = 2;
string name = 3;
Type type = 4;
}
message Data {
optional Position pos = 1;
repeated string comments = 2;
bool export = 3;
string name = 4;
repeated TypeParameter typeParameters = 5;
repeated Field fields = 6;
repeated Metadata metadata = 7;
}
message Database {
optional Position pos = 1;
repeated string comments = 2;
string name = 3;
string type = 4;
}
message Decl {
oneof value {
Data data = 1;
Verb verb = 2;
Database database = 3;
Enum enum = 4;
TypeAlias typeAlias = 5;
Config config = 6;
Secret secret = 7;
FSM fsm = 8;
Topic topic = 9;
Subscription subscription = 10;
}
}
message Enum {
optional Position pos = 1;
repeated string comments = 2;
bool export = 3;
string name = 4;
optional Type type = 5;
repeated EnumVariant variants = 6;
}
message EnumVariant {
optional Position pos = 1;
repeated string comments = 2;
string name = 3;
Value value = 4;
}
message Error {
enum ErrorLevel {
INFO = 0;
WARN = 1;
ERROR = 2;
}
string msg = 1;
Position pos = 2;
int64 endColumn = 3;
ErrorLevel level = 4;
}
message ErrorList {
repeated Error errors = 1;
}
message FSM {
optional Position pos = 1;
repeated string comments = 2;
string name = 3;
repeated Ref start = 4;
repeated FSMTransition transitions = 5;
repeated Metadata metadata = 6;
}
message FSMTransition {
optional Position pos = 1;
repeated string comments = 2;
optional Ref from = 3;
Ref to = 4;
}
message Field {
optional Position pos = 1;
string name = 2;
repeated string comments = 3;
Type type = 4;
repeated Metadata metadata = 5;
}
message Float {
optional Position pos = 1;
}
message IngressPathComponent {
oneof value {
IngressPathLiteral ingressPathLiteral = 1;
IngressPathParameter ingressPathParameter = 2;
}
}
message IngressPathLiteral {
optional Position pos = 1;
string text = 2;
}
message IngressPathParameter {
optional Position pos = 1;
string name = 2;
}
message Int {
optional Position pos = 1;
}
message IntValue {
optional Position pos = 1;
int64 value = 2;
}
message Map {
optional Position pos = 1;
Type key = 2;
Type value = 3;
}
message Metadata {
oneof value {
MetadataCalls calls = 1;
MetadataIngress ingress = 2;
MetadataCronJob cronJob = 3;
MetadataDatabases databases = 4;
MetadataAlias alias = 5;
MetadataRetry retry = 6;
MetadataSubscriber subscriber = 7;
MetadataTypeMap typeMap = 8;
MetadataEncoding encoding = 9;
}
}
message MetadataAlias {
optional Position pos = 1;
int64 kind = 2;
string alias = 3;
}
message MetadataCalls {
optional Position pos = 1;
repeated Ref calls = 2;
}
message MetadataCronJob {
optional Position pos = 1;
string cron = 2;
}
message MetadataDatabases {
optional Position pos = 1;
repeated Ref calls = 2;
}
message MetadataEncoding {
optional Position pos = 1;
string type = 2;
bool lenient = 3;
}
message MetadataIngress {
optional Position pos = 1;
string type = 2;
string method = 3;
repeated IngressPathComponent path = 4;
}
message MetadataRetry {
optional Position pos = 1;
optional int64 count = 2;
string minBackoff = 3;
string maxBackoff = 4;
optional Ref catch = 5;
}
message MetadataSubscriber {
optional Position pos = 1;
string name = 2;
}
message MetadataTypeMap {
optional Position pos = 1;
string runtime = 2;
string nativeName = 3;
}
message Module {
optional ModuleRuntime runtime = 31634;
optional Position pos = 1;
repeated string comments = 2;
bool builtin = 3;
string name = 4;
repeated Decl decls = 5;
}
message Optional {
optional Position pos = 1;
optional Type type = 2;
}
message Position {
string filename = 1;
int64 line = 2;
int64 column = 3;
}
message Ref {
optional Position pos = 1;
string name = 2;
string module = 3;
repeated Type typeParameters = 4;
}
message Schema {
optional Position pos = 1;
repeated Module modules = 2;
}
message Secret {
optional Position pos = 1;
repeated string comments = 2;
string name = 3;
Type type = 4;
}
message String {
optional Position pos = 1;
}
message StringValue {
optional Position pos = 1;
string value = 2;
}
message Subscription {
optional Position pos = 1;
repeated string comments = 2;
string name = 3;
Ref topic = 4;
}
message Time {
optional Position pos = 1;
}
message Topic {
optional Position pos = 1;
repeated string comments = 2;
bool export = 3;
string name = 4;
Type event = 5;
}
message Type {
oneof value {
Int int = 1;
Float float = 2;
String string = 3;
Bytes bytes = 4;
Bool bool = 5;
Time time = 6;
Array array = 7;
Map map = 8;
Any any = 9;
Unit unit = 10;
Ref ref = 11;
Optional optional = 12;
}
}
message TypeAlias {
optional Position pos = 1;
repeated string comments = 2;
bool export = 3;
string name = 4;
Type type = 5;
repeated Metadata metadata = 6;
}
message TypeParameter {
optional Position pos = 1;
string name = 2;
}
message TypeValue {
optional Position pos = 1;
Type value = 2;
}
message Unit {
optional Position pos = 1;
}
message Value {
oneof value {
StringValue stringValue = 1;
IntValue intValue = 2;
TypeValue typeValue = 3;
}
}
message Verb {
optional VerbRuntime runtime = 31634;
optional Position pos = 1;
repeated string comments = 2;
bool export = 3;
string name = 4;
Type request = 5;
Type response = 6;
repeated Metadata metadata = 7;
}