syntax = "proto3"; package corruption.v1; import "common.proto"; option go_package = "github.com/corruption/api/v1"; option java_multiple_files = true; option java_outer_classname = "SourceProto"; option java_package = "com.corruption.api.v1"; // Source service definition service SourceService { // Get a list of sources with pagination rpc ListSources(ListSourcesRequest) returns (ListSourcesResponse) {} // Get a single source by ID rpc GetSource(GetSourceRequest) returns (GetSourceResponse) {} } // Request message for ListSources message ListSourcesRequest { // Pagination parameters PaginationRequest pagination = 1; // Required filter by corruption case ID int32 corruption_case_id = 2; // Optional filter by source type optional string source_type = 3; } // Response message for ListSources message ListSourcesResponse { // List of sources repeated Source sources = 1; // Pagination metadata PaginationResponse pagination = 2; } // Request message for GetSource message GetSourceRequest { // The ID of the source to retrieve int32 id = 1; } // Response message for GetSource message GetSourceResponse { // The requested source Source source = 1; } // Source message message Source { // The unique identifier for the source int32 id = 1; // The corruption case ID int32 corruption_case_id = 2; // The name of the source string name = 3; // The type of the source string source_type = 4; // The URL of the source string url = 5; // Additional notes about the source string notes = 6; // Creation timestamp Timestamp created_at = 7; // Last update timestamp Timestamp updated_at = 8; }