syntax = "proto3"; package generated; import "Shared.proto"; message PutObjectRequest { string plugin = 1; string bucket = 2; string key = 3; bytes body = 4; } message ObjectExistsRequest { string plugin = 1; string bucket = 2; string key = 3; } message ObjectExistsResponse { bool exists = 1; } message GetObjectRequest { string plugin = 1; string bucket = 2; string key = 3; } message Bytes { bytes data = 1; } message ListCommonPrefixesRequest { string plugin = 1; string bucket = 2; string delimiter = 3; string prefix = 4; } message ListCommonPrefixesResponse { repeated string prefixes = 1; } message ListObjectsRequest { string plugin = 1; string bucket = 2; string prefix = 3; } message ListObjectsResponse { repeated string keys = 1; } message DeleteObjectRequest { string plugin = 1; string bucket = 2; string key = 3; } message CreateSignedURLRequest { string plugin = 1; string bucket = 2; string key = 3; int64 ttl = 4; } message CreateSignedURLResponse { string url = 1; } message ObjectStoreInitRequest { string plugin = 1; map config = 2; } service ObjectStore { rpc Init(ObjectStoreInitRequest) returns (Empty); rpc PutObject(stream PutObjectRequest) returns (Empty); rpc ObjectExists(ObjectExistsRequest) returns (ObjectExistsResponse); rpc GetObject(GetObjectRequest) returns (stream Bytes); rpc ListCommonPrefixes(ListCommonPrefixesRequest) returns (ListCommonPrefixesResponse); rpc ListObjects(ListObjectsRequest) returns (ListObjectsResponse); rpc DeleteObject(DeleteObjectRequest) returns (Empty); rpc CreateSignedURL(CreateSignedURLRequest) returns (CreateSignedURLResponse); }