127 lines
4.1 KiB
Protocol Buffer
127 lines
4.1 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package memos.api.v1;
|
|
|
|
import "google/api/annotations.proto";
|
|
import "google/api/client.proto";
|
|
import "google/api/field_behavior.proto";
|
|
import "google/api/resource.proto";
|
|
import "google/protobuf/empty.proto";
|
|
import "google/protobuf/field_mask.proto";
|
|
|
|
option go_package = "gen/api/v1";
|
|
|
|
service MemoViewService {
|
|
// ListMemoViews returns a user's memo views. Each view is a named, reusable
|
|
// CEL filter (see MemoView.filter); pass its filter string directly to the
|
|
// ListMemos `filter` argument.
|
|
rpc ListMemoViews(ListMemoViewsRequest) returns (ListMemoViewsResponse) {
|
|
option (google.api.http) = {get: "/api/v1/{parent=users/*}/views"};
|
|
option (google.api.method_signature) = "parent";
|
|
}
|
|
|
|
// GetMemoView gets a memo view by name.
|
|
rpc GetMemoView(GetMemoViewRequest) returns (MemoView) {
|
|
option (google.api.http) = {get: "/api/v1/{name=users/*/views/*}"};
|
|
option (google.api.method_signature) = "name";
|
|
}
|
|
|
|
// CreateMemoView creates a new memo view for a user.
|
|
rpc CreateMemoView(CreateMemoViewRequest) returns (MemoView) {
|
|
option (google.api.http) = {
|
|
post: "/api/v1/{parent=users/*}/views"
|
|
body: "memo_view"
|
|
};
|
|
option (google.api.method_signature) = "parent,memo_view";
|
|
}
|
|
|
|
// UpdateMemoView updates a memo view for a user.
|
|
rpc UpdateMemoView(UpdateMemoViewRequest) returns (MemoView) {
|
|
option (google.api.http) = {
|
|
patch: "/api/v1/{memo_view.name=users/*/views/*}"
|
|
body: "memo_view"
|
|
};
|
|
option (google.api.method_signature) = "memo_view,update_mask";
|
|
}
|
|
|
|
// DeleteMemoView deletes a memo view for a user.
|
|
rpc DeleteMemoView(DeleteMemoViewRequest) returns (google.protobuf.Empty) {
|
|
option (google.api.http) = {delete: "/api/v1/{name=users/*/views/*}"};
|
|
option (google.api.method_signature) = "name";
|
|
}
|
|
}
|
|
|
|
message MemoView {
|
|
option (google.api.resource) = {
|
|
type: "memos.api.v1/MemoView"
|
|
pattern: "users/{user}/views/{view}"
|
|
singular: "view"
|
|
plural: "views"
|
|
};
|
|
|
|
// The resource name of the memo view.
|
|
// Format: users/{user}/views/{view}
|
|
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
|
|
|
|
// The title of the memo view.
|
|
string title = 2 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// The CEL filter expression for the memo view, using the same grammar as the
|
|
// ListMemos `filter` argument. Reuse it by passing this value to ListMemos.
|
|
string filter = 3 [(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
message ListMemoViewsRequest {
|
|
// Required. The parent resource where memo views are listed.
|
|
// Format: users/{user}
|
|
string parent = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {child_type: "memos.api.v1/MemoView"}
|
|
];
|
|
}
|
|
|
|
message ListMemoViewsResponse {
|
|
// The list of memo views.
|
|
repeated MemoView memo_views = 1;
|
|
}
|
|
|
|
message GetMemoViewRequest {
|
|
// Required. The resource name of the memo view to retrieve.
|
|
// Format: users/{user}/views/{view}
|
|
string name = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {type: "memos.api.v1/MemoView"}
|
|
];
|
|
}
|
|
|
|
message CreateMemoViewRequest {
|
|
// Required. The parent resource where this memo view will be created.
|
|
// Format: users/{user}
|
|
string parent = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {child_type: "memos.api.v1/MemoView"}
|
|
];
|
|
|
|
// Required. The memo view to create.
|
|
MemoView memo_view = 2 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. If set, validate the request, but do not actually create the memo view.
|
|
bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
message UpdateMemoViewRequest {
|
|
// Required. The memo view resource which replaces the resource on the server.
|
|
MemoView memo_view = 1 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. The list of fields to update.
|
|
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
message DeleteMemoViewRequest {
|
|
// Required. The resource name of the memo view to delete.
|
|
// Format: users/{user}/views/{view}
|
|
string name = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {type: "memos.api.v1/MemoView"}
|
|
];
|
|
}
|