Bluemage/schemas/proto/device/v1/list.proto

77 lines
1.7 KiB
Protocol Buffer

syntax = "proto3";
package device.v1;
// import "buf/validate/validate.proto";
import "device/v1/get.proto";
option go_package = "github.com/tigorlazuardi/bluemage/go/gen/proto/device/v1";
message ListDevicesRequest {
// searches the name and slug of the devices.
// case insensitive.
//
// If empty or not given, lists all devices.
// (Limit, Offset, Order, Sort still applies).
//
// default: empty string.
string search = 1;
// disabled limit the listing devides only
// to disabled devices.
//
// default: false.
bool disabled = 2;
// limits the number of results.
//
// if value is 0 or not given, limit is set to 25.
//
// if limit is higher than 100, it is clamped to 100.
uint32 limit = 3;
// offset for the given data.
//
// If offset is 0 or not given, the query begins from start.
uint32 offset = 4;
// order_by is the field to order the devices by.
//
// If not given, the default is `created_at`.
OrderBy order_by = 5;
// sort is the direction of the order_by result.
//
// If not given, the default is `ascending`.
Sort sort = 6;
}
message ListDevicesResponse {
uint64 count = 1;
repeated GetDeviceResponse devices = 2;
}
enum OrderBy {
ORDER_BY_UNSPECIFIED = 0;
ORDER_BY_SLUG = 1;
ORDER_BY_DISABLED = 2;
ORDER_BY_NAME = 3;
ORDER_BY_RESOLUTION_X = 4;
ORDER_BY_RESOLUTION_Y = 5;
ORDER_BY_ASPECT_RATIO_TOLERANCE = 6;
ORDER_BY_MIN_X = 7;
ORDER_BY_MIN_Y = 8;
ORDER_BY_MAX_X = 9;
ORDER_BY_MAX_Y = 10;
ORDER_BY_NSFW = 11;
ORDER_BY_SINGLE_FOLDER_MODE = 12;
ORDER_BY_CREATED_AT = 13;
ORDER_BY_UPDATED_AT = 14;
}
enum Sort {
SORT_UNSPECIFIED = 0;
SORT_ASCENDING = 1;
SORT_DESCENDING = 2;
}