syntax = "proto3"; package images.v1; import "buf/validate/validate.proto"; import "images/v1/types.proto"; message RecentlyAddedImagesRequest { option (buf.validate.message).cel = { id: "RecentlyAddedImagesRequest.after_cannot_exist_with_before" message: "after and before cannot be set at the same time" expression: "this.after > 0 && this.before > 0" }; // subreddits filter the images to be fetched belonging to the given subreddits. // // If empty, images from all subreddits will be fetched. repeated string subreddits = 1; // devices filter the images to be fetched belonging to the given devices. // // If empty, images from all devices will be fetched. repeated string devices = 2; // limit limits the number of images to be fetched. // // if 0 (or not set), the default limit is 100. // // if set, the maximum limit is clamped to 300. int64 limit = 3 [(buf.validate.field).int64.gte = 0]; // after lists the image after the given timestamp. // // using after will return images that are created after the given timestamp. // // cannot be set (value > 0) with before (value > 0). int64 after = 4; // before lists the image before the given timestamp. // // using before will return images that are created before the given timestamp. // // cannot be set (value > 0) with after (value > 0). int64 before = 5; } message RecentlyAddedImagesResponse { // groups are images grouped by devices. // // devices are sorted alphabetically by it's NAME not slug. repeated GroupedBySubredditDevices groups = 1; // after is a unix epoch timestamp given to the client to be used as after in the next request. // // Given if the request has after value set and there are more images to be fetched. optional int64 after = 2; // before is a unix epoch timestamp given to the client to be used as before in the next request. // // Given if the request has before value set and there are more images to be fetched. optional int64 before = 3; }