// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package google.genomics.v1; import "google/api/annotations.proto"; import "google/iam/v1/iam_policy.proto"; import "google/iam/v1/policy.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/genomics/v1;genomics"; option java_multiple_files = true; option java_outer_classname = "DatasetsProto"; option java_package = "com.google.genomics.v1"; // This service manages datasets, which are collections of genomic data. service DatasetServiceV1 { // Lists datasets within a project. // // For the definitions of datasets and other genomics resources, see // [Fundamentals of Google // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) rpc ListDatasets(ListDatasetsRequest) returns (ListDatasetsResponse) { option (google.api.http) = { get: "/v1/datasets" }; } // Creates a new dataset. // // For the definitions of datasets and other genomics resources, see // [Fundamentals of Google // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) rpc CreateDataset(CreateDatasetRequest) returns (Dataset) { option (google.api.http) = { post: "/v1/datasets" body: "dataset" }; } // Gets a dataset by ID. // // For the definitions of datasets and other genomics resources, see // [Fundamentals of Google // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) rpc GetDataset(GetDatasetRequest) returns (Dataset) { option (google.api.http) = { get: "/v1/datasets/{dataset_id}" }; } // Updates a dataset. // // For the definitions of datasets and other genomics resources, see // [Fundamentals of Google // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) // // This method supports patch semantics. rpc UpdateDataset(UpdateDatasetRequest) returns (Dataset) { option (google.api.http) = { patch: "/v1/datasets/{dataset_id}" body: "dataset" }; } // Deletes a dataset and all of its contents (all read group sets, // reference sets, variant sets, call sets, annotation sets, etc.) // This is reversible (up to one week after the deletion) via // the // [datasets.undelete][google.genomics.v1.DatasetServiceV1.UndeleteDataset] // operation. // // For the definitions of datasets and other genomics resources, see // [Fundamentals of Google // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) rpc DeleteDataset(DeleteDatasetRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1/datasets/{dataset_id}" }; } // Undeletes a dataset by restoring a dataset which was deleted via this API. // // For the definitions of datasets and other genomics resources, see // [Fundamentals of Google // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) // // This operation is only possible for a week after the deletion occurred. rpc UndeleteDataset(UndeleteDatasetRequest) returns (Dataset) { option (google.api.http) = { post: "/v1/datasets/{dataset_id}:undelete" body: "*" }; } // Sets the access control policy on the specified dataset. Replaces any // existing policy. // // For the definitions of datasets and other genomics resources, see // [Fundamentals of Google // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) // // See Setting a // Policy for more information. rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) { option (google.api.http) = { post: "/v1/{resource=datasets/*}:setIamPolicy" body: "*" }; } // Gets the access control policy for the dataset. This is empty if the // policy or resource does not exist. // // See Getting a // Policy for more information. // // For the definitions of datasets and other genomics resources, see // [Fundamentals of Google // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) { option (google.api.http) = { post: "/v1/{resource=datasets/*}:getIamPolicy" body: "*" }; } // Returns permissions that a caller has on the specified resource. // See Testing // Permissions for more information. // // For the definitions of datasets and other genomics resources, see // [Fundamentals of Google // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) { option (google.api.http) = { post: "/v1/{resource=datasets/*}:testIamPermissions" body: "*" }; } } // A Dataset is a collection of genomic data. // // For more genomics resource definitions, see [Fundamentals of Google // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) message Dataset { // The server-generated dataset ID, unique across all datasets. string id = 1; // The Google Cloud project ID that this dataset belongs to. string project_id = 2; // The dataset name. string name = 3; // The time this dataset was created, in seconds from the epoch. google.protobuf.Timestamp create_time = 4; } // The dataset list request. message ListDatasetsRequest { // Required. The Google Cloud project ID to list datasets for. string project_id = 1; // The maximum number of results to return in a single page. If unspecified, // defaults to 50. The maximum value is 1024. int32 page_size = 2; // The continuation token, which is used to page through large result sets. // To get the next page of results, set this parameter to the value of // `nextPageToken` from the previous response. string page_token = 3; } // The dataset list response. message ListDatasetsResponse { // The list of matching Datasets. repeated Dataset datasets = 1; // The continuation token, which is used to page through large result sets. // Provide this value in a subsequent request to return the next page of // results. This field will be empty if there aren't any additional results. string next_page_token = 2; } message CreateDatasetRequest { // The dataset to be created. Must contain projectId and name. Dataset dataset = 1; } message UpdateDatasetRequest { // The ID of the dataset to be updated. string dataset_id = 1; // The new dataset data. Dataset dataset = 2; // An optional mask specifying which fields to update. At this time, the only // mutable field is [name][google.genomics.v1.Dataset.name]. The only // acceptable value is "name". If unspecified, all mutable fields will be // updated. google.protobuf.FieldMask update_mask = 3; } message DeleteDatasetRequest { // The ID of the dataset to be deleted. string dataset_id = 1; } message UndeleteDatasetRequest { // The ID of the dataset to be undeleted. string dataset_id = 1; } message GetDatasetRequest { // The ID of the dataset. string dataset_id = 1; }