syntax = "proto3";

package blob;

option go_package = "github.com/go-saas/kit/pkg/blob;blob";
import "google/protobuf/struct.proto";
import "google/protobuf/wrappers.proto";
import "validate/validate.proto";

message Config{
  string provider =1;

  string mount_path =2 [(validate.rules).string.min_len=1];

  string public_url=5;
  string internal_url=6;

  ProviderS3 s3=100;
  ProviderOs os=101;
}

message ProviderS3{
  string region=1;
  string key=2;
  string secret=3;
  string bucket=4;
}

message ProviderOs{
  optional google.protobuf.StringValue dir=1;
}

message BlobFile{
  string id=1;
  string name=2;
  string mime=3;
  int64 size=4;
  string url =5;
  google.protobuf.Struct metadata=6;
}