blob: 227b5e875fe5b4ef2f585b01e0de75aead7ba087 [file] [log] [blame]
syntax = "proto3";
package bufman.dubbo.apache.org.registry.v1alpha1;
import "google/protobuf/timestamp.proto";
message RepositoryTag {
// primary key, unique, immutable
string id = 1;
// immutable
google.protobuf.Timestamp create_time = 2;
// We reserve field number '3' for the update_time.
// google.protobuf.Timestamp update_time = 3;
// The name of the repository tag, e.g. "6e2e7f24718a76caa32a80d0e2b1841ef2c61403".
string name = 4;
// The name of the commit this tag belongs to.
string commit_name = 5;
// The username of the author of the tag.
string author = 6;
}
// RepositoryTagService is the Repository tag service.
service RepositoryTagService {
// CreateRepositoryTag creates a new repository tag.
rpc CreateRepositoryTag(CreateRepositoryTagRequest) returns (CreateRepositoryTagResponse) {
option idempotency_level = IDEMPOTENT;
}
// ListRepositoryTags lists the repository tags associated with a Repository.
rpc ListRepositoryTags(ListRepositoryTagsRequest) returns (ListRepositoryTagsResponse) {
option idempotency_level = NO_SIDE_EFFECTS;
}
// ListRepositoryTagsForReference lists the repository tags associated with a repository
// reference name.
rpc ListRepositoryTagsForReference(ListRepositoryTagsForReferenceRequest) returns (ListRepositoryTagsForReferenceResponse) {
option idempotency_level = NO_SIDE_EFFECTS;
}
}
message CreateRepositoryTagRequest {
// The ID of the repository this tag should be created on.
string repository_id = 1;
// The name of the repository tag, e.g. "6e2e7f24718a76caa32a80d0e2b1841ef2c61403".
string name = 2;
// The name of the commit this tag should be created for.
string commit_name = 3;
}
message CreateRepositoryTagResponse {
RepositoryTag repository_tag = 1;
}
message ListRepositoryTagsRequest {
// The ID of the repository whose tags should be listed.
string repository_id = 1;
uint32 page_size = 2;
// The first page is returned if this is empty.
string page_token = 3;
bool reverse = 4;
}
message ListRepositoryTagsResponse {
repeated RepositoryTag repository_tags = 1;
// There are no more pages if this is empty.
string next_page_token = 2;
}
message ListRepositoryTagsForReferenceRequest {
// The ID of the repository whose tags should be listed.
string repository_id = 1;
// The name of the reference.
string reference = 2;
uint32 page_size = 3;
// The first page is returned if this is empty.
string page_token = 4;
bool reverse = 5;
}
message ListRepositoryTagsForReferenceResponse {
repeated RepositoryTag repository_tags = 1;
// There are no more pages if this is empty.
string next_page_token = 2;
}