All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xyz.block.ftl.v1.schema.schema.proto Maven / Gradle / Ivy

There is a newer version: 0.368.1
Show newest version
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;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy