syntax = "proto3"; package music_agregator.indexer.v1; option go_package = "homelab.lan/music-agregator/gen/music_agregator/v1/indexer"; service IndexerService { rpc Search(SearchRequest) returns (SearchResponse) {} rpc Capabilities(CapabilitiesRequest) returns (CapabilitiesResponse) {} } message SearchRequest { string indexer = 1; string query = 2; int32 limit = 3; } message SearchResponse { } message CapabilitiesRequest { string indexer = 1; } message CapabilitiesResponse { Server server = 1; Limits limits = 2; Searching searching = 3; repeated Category categories = 4; } message Server { string title = 1; } message Limits { int32 default = 1; int32 max = 2; } message Searching { SearchCapability search = 1; SearchCapability tv_search = 2; SearchCapability movie_search = 3; SearchCapability music_search = 4; SearchCapability audio_search = 5; SearchCapability book_search = 6; } message SearchCapability { bool available = 1; repeated string supported_params = 2; string search_engine = 3; } message Category { int32 id = 1; string name = 2; repeated Subcat subcats = 3; } message Subcat { int32 id = 1; string name = 2; }