kra/api/kratos/admin/v1/admin.proto

162 lines
4.8 KiB
Protocol Buffer

syntax = "proto3";
package kratos.admin.v1;
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/field_mask.proto";
import "google/api/annotations.proto";
import "google/api/field_behavior.proto";
option go_package = "kra/api/kratos/admin/v1;v1";
option java_multiple_files = true;
option java_package = "api.kratos.admin.v1";
// Admin is the admin message.
message Admin {
// The unique ID of the user.
int64 id = 1;
// The name of the user.
string name = 2;
// The email of the user.
string email = 3;
// The phone number of the user.
string phone = 4;
// The avatar URL of the user.
string avatar = 5;
// The access level of the user.
// Possible values are: "admin", "user", etc.
string access = 6;
// The password of the user.
string password = 7;
// The timestamp at which the user was created.
google.protobuf.Timestamp create_time = 8;
// The latest timestamp at which the user was updated.
google.protobuf.Timestamp update_time = 9;
}
// AdminSet is the set of admins.
message AdminSet {
// The set of admins.
repeated Admin admins = 1;
// The next page token.
string next_page_token = 2;
}
// AdminService is the admin service definition.
service AdminService {
// Login a user and return the username.
rpc Login (LoginRequest) returns (Admin) {
option (google.api.http) = {
post: "/v1/admins/login"
body: "*"
};
}
// Logout the currently logged-in user.
rpc Logout (google.protobuf.Empty) returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1/admins/logout"
body: "*"
};
}
// Current returns the currently logged-in user.
rpc Current (google.protobuf.Empty) returns (Admin) {
option (google.api.http) = {
get: "/v1/admins/current"
};
}
// ListAdmins returns a list of admins.
rpc ListAdmins(ListAdminsRequest) returns (AdminSet) {
option (google.api.http) = {
get: "/v1/admins/list"
};
}
// CreateAdmin creates a new admin.
rpc CreateAdmin(CreateAdminRequest) returns (Admin) {
option (google.api.http) = {
post: "/v1/admins/create"
body: "admin"
};
}
// UpdateAdmin updates an existing admin.
rpc UpdateAdmin(UpdateAdminRequest) returns (Admin) {
option (google.api.http) = {
put: "/v1/admins/update"
body: "admin"
};
}
// DeleteAdmin deletes an admin by ID.
rpc DeleteAdmin(DeleteAdminRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1/admins/{id}"
};
}
// GetAdmin retrieves an admin by ID.
rpc GetAdmin(GetAdminRequest) returns (Admin) {
option (google.api.http) = {
get: "/v1/admins/{id}"
};
}
}
// LoginRequest is the request message for the Login method.
message LoginRequest {
// Required. Password of the user.
string password = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Exactly one identity must be set.
oneof identity {
string username = 2;
string email = 3;
}
}
// GetAdminRequest is the request message for the GetAdmin method.
message GetAdminRequest {
// The ID of the admin to retrieve.
int64 id = 1 [(google.api.field_behavior) = REQUIRED];
}
// ListAdminsResponse is the response message for the ListAdmins method.
message ListAdminsRequest {
// Optional. The number of admins per page.
int32 page_size = 1;
// Optional. The page token.
string page_token = 2;
// Optional. The standard list filter.
// Supported fields:
// * `name` (i.e. `name="John Doe"`)
// * `email` (i.e. `email="admin@go-kratos.dev"`)
// * `phone` (i.e. `phone="+1234567890"`)
// * `create_time` range (i.e. `timestamp>="2025-01-31T11:30:00-04:00"` where
// the timestamp is in RFC 3339 format)
//
// More detail in [AIP-160](https://google.aip.dev/160).
string filter = 3;
// Optional. A comma-separated list of fields to order by, sorted in ascending
// order. Use "desc" after a field name for descending. Supported fields:
// - `create_time`
//
// Example: `create_time desc`.
string order_by = 4;
}
// CreateAdminRequest is the request message for the CreateAdmin method.
message CreateAdminRequest {
// Required. The admin to create.
Admin admin = 1 [(google.api.field_behavior) = REQUIRED];
}
// UpdateAdminRequest is the request message for the UpdateAdmin method.
message UpdateAdminRequest {
// Required. The admin to update.
Admin admin = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Mask of fields to update.
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
}
// DeleteAdminRequest is the request message for the DeleteAdmin method.
message DeleteAdminRequest {
// Required. The ID of the admin to delete.
int64 id = 1 [(google.api.field_behavior) = REQUIRED];
}