flwrs-plugin 0.0.1

Crate for building plugins for flwrs.
Documentation
syntax = "proto3";

package schema.schema;

import "google/protobuf/wrappers.proto";
import "google/protobuf/timestamp.proto";

message FieldType {
  enum Enum {
    STRING = 0;
    I32 = 1;
    U32 = 2;
    F32 = 3;
    BOOL = 4;
    DATETIME = 5;
    BYTES = 6;
    ARRAY = 7;
    MAP = 8;
    OBJECT = 9;
  }
}

message FieldValue {
  oneof value {
    google.protobuf.StringValue string = 1;
    google.protobuf.Int32Value i32 = 2;
    google.protobuf.UInt32Value u32 = 3;
    google.protobuf.FloatValue f32 = 4;
    google.protobuf.BoolValue bool = 5;
    google.protobuf.Timestamp date_time = 6;
    google.protobuf.BytesValue bytes = 7;
    ArrayValue array = 8;
    MapValue map = 9;
  }
}

message ArrayValue {
  repeated FieldValue value = 1;
}

message MapValue {
  map<string, FieldValue> value = 1;
}

message Field {
  string key = 1;
  FieldValue value = 2;
}

message FieldDefinition {
  string key = 1;
  string description = 2;
  FieldType.Enum type = 3;
  FieldDefinition nested_type_definition = 4;
  repeated FieldDefinition object_fields = 6;
}

message SchemaDefinition {
  repeated FieldDefinition fields = 1;
}

message PluginPayload {
  repeated Field fields = 1;
}