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 = "DatasetServices"; import "sciobjsdb/api/storage/services/v1/dataset_service_models.proto"; import "google/api/annotations.proto"; // Dataset management service // Manages all dataset related services // All data objects are associated with one data dataset // Dataset versions group these data objects, which makes them reusable service DatasetService { // CreateNewDataset Creates a new dataset and associates it with a dataset rpc CreateDataset(CreateDatasetRequest) returns (CreateDatasetResponse) { option (google.api.http) = { post : "/api/v1/dataset/create" body : "*" }; } // Dataset Returns a specific dataset rpc GetDataset(GetDatasetRequest) returns (GetDatasetResponse) { option (google.api.http) = { post : "/api/v1/dataset/get" body : "*" }; } rpc GetDatasetObjects(GetDatasetObjectsRequest) returns (GetDatasetObjectsResponse) { option (google.api.http) = { post : "/api/v1/datasetobjects/get" body : "*" }; } // Lists Versions of a dataset rpc GetDatasetVersions(GetDatasetVersionsRequest) returns (GetDatasetVersionsResponse) { option (google.api.http) = { post : "/api/v1/datasetversions/list" body : "*" }; } // Lists all object groups of a dataset rpc GetDatasetObjectGroups(GetDatasetObjectGroupsRequest) returns (GetDatasetObjectGroupsResponse) { option (google.api.http) = { post : "/api/v1/dataset/list" body : "*" }; } // Returns a signed link that can be used to download all objects from the // specified request The link is signed using hmac and the resulting data can // be shared without exposing any secrets rpc GetObjectGroupsStreamLink(GetObjectGroupsStreamLinkRequest) returns (GetObjectGroupsStreamLinkResponse) { option (google.api.http) = { post : "/api/v1/objectgroupsstream" body : "*" }; } // Updates a field of a dataset rpc UpdateDatasetField(UpdateDatasetFieldRequest) returns (UpdateDatasetFieldResponse) { option (google.api.http) = { post : "/api/v1/dataset/update" body : "*" }; } // DeleteDataset Delete a dataset rpc DeleteDataset(DeleteDatasetRequest) returns (DeleteDatasetResponse) { option (google.api.http) = { delete : "/api/v1/dataset/{id}" }; } // Returns all object groups that were created within a specific date range // The date range is not the date when the data was created in the system but // byte the externally date that indicates the actual creation of the data // rather than the date the data was ingested into the system rpc GetObjectGroupRevisionsInDateRange(GetObjectGroupRevisionsInDateRangeRequest) returns (GetObjectGroupRevisionsInDateRangeResponse) { option (google.api.http) = { post : "/api/v1/objectgroupsindaterange/query" body : "*" }; } //--------------------------------------------------------------------------------------- // Dataset version calls // ReleaseDatasetVersion Release a new dataset version rpc ReleaseDatasetVersion(ReleaseDatasetVersionRequest) returns (ReleaseDatasetVersionResponse) { option (google.api.http) = { post : "/api/v1/datasetversion/create" body : "*" }; } rpc GetDatasetVersion(GetDatasetVersionRequest) returns (GetDatasetVersionResponse) { option (google.api.http) = { post : "/api/v1/datasetversion/get" body : "*" }; } rpc GetDatasetVersionObjectGroups(GetDatasetVersionObjectGroupsRequest) returns (GetDatasetVersionObjectGroupsResponse) { option (google.api.http) = { post : "/api/v1/datasetversion/list" body : "*" }; } rpc DeleteDatasetVersion(DeleteDatasetVersionRequest) returns (DeleteDatasetVersionResponse) { option (google.api.http) = { delete : "/api/v1/datasetversion/{id}" }; } }