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

82 lines
1.8 KiB
Protocol Buffer
Raw Normal View History

2024-08-07 22:38:10 +07:00
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.
//
2024-08-07 23:59:29 +07:00
// If unspecified, devices with either status will be received.
DisabledFilter disabled = 2;
2024-08-07 22:38:10 +07:00
// 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 {
2024-08-08 22:51:53 +07:00
repeated GetDeviceResponse devices = 1;
2024-08-07 22:38:10 +07:00
}
2024-08-07 23:59:29 +07:00
enum DisabledFilter {
DISABLED_FILTER_UNSPECIFIED = 0;
DISABLED_FILTER_TRUE = 1;
DISABLED_FILTER_FALSE = 2;
}
2024-08-07 22:38:10 +07:00
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;
}