syntax = "proto3";
package feast.core;

option go_package = "github.com/feast-dev/feast/go/protos/feast/core";
option java_outer_classname = "FeatureTransformationProto";
option java_package = "feast.proto.core";

// Serialized representation of python function.
message UserDefinedFunctionV2 {
    // The function name
    string name = 1;

    // The python-syntax function body (serialized by dill)
    bytes body = 2;

    // The string representation of the udf
    string body_text = 3;
}

// A feature transformation executed as a user-defined function
message FeatureTransformationV2 {
  oneof transformation {
    UserDefinedFunctionV2 user_defined_function = 1;
    SubstraitTransformationV2 substrait_transformation = 2;
  }
}

message SubstraitTransformationV2 {
  bytes substrait_plan = 1;
  bytes ibis_function = 2;
}
