syntax = "proto3"; package sciobjsdb.api.storage.services.v1; option go_package = "github.com/ScienceObjectsDB/go-api/sciobjsdb/api/storage/services/v1"; option java_multiple_files = true; option java_package = "com.github.ScienceObjectsDB.java_api.sciobjsdb.api.storage.services.v1"; option java_outer_classname = "DatasetObjectsServices"; import "sciobjsdb/api/storage/services/v1/dataset_object_service_models.proto"; import "google/api/annotations.proto"; service DatasetObjectsService { // Creates a new object group rpc CreateObjectGroup(CreateObjectGroupRequest) returns (CreateObjectGroupResponse) { option (google.api.http) = { post: "/api/v1/objectgroup/create" body: "*" }; } // Batch request of CreateObjectGroup // The call will preserve the ordering of the request in the response rpc CreateObjectGroupBatch(CreateObjectGroupBatchRequest) returns (CreateObjectGroupBatchResponse) { option (google.api.http) = { post: "/api/v1/objectgroupbatch/create" body: "*" }; } rpc GetObjectGroup(GetObjectGroupRequest) returns (GetObjectGroupResponse) { option (google.api.http) = { post: "/api/v1/objectgroup/get" body: "*" }; } //Returns the object group revision with the given id rpc GetObjectGroupRevision(GetObjectGroupRevisionRequest) returns (GetObjectGroupRevisionResponse) { option (google.api.http) = { post: "/api/v1/objectgrouprevision/get" body: "*" }; } // Updates an ObjectGroup // Adds an existing ObjectGroupRevision as a new revision to the objectgroup rpc UpdateObjectGroup(UpdateObjectGroupRequest) returns (UpdateObjectGroupResponse) { option (google.api.http) = { post: "/api/v1/objectgroup/update" body: "*" }; } // Finishes the upload process for an object // This will change the status of the objects to "available" rpc FinishObjectUpload(FinishObjectUploadRequest) returns (FinishObjectUploadResponse) { option (google.api.http) = { post: "/api/v1/object/finish" body: "*" }; } // Deletes the given object group // This will also delete all associated objects both as metadata objects and the actual objects in the object storage rpc DeleteObjectGroup(DeleteObjectGroupRequest) returns (DeleteObjectGroupResponse) { option (google.api.http) = { delete: "/api/v1/objectgroup/{id}" }; } rpc CreateObject(CreateObjectRequest) returns (CreateObjectResponse) { option (google.api.http) = { post: "/api/v1/object" body: "*" }; } }