syntax = "proto3"; package mapfixes; option go_package = "git.itzana.me/strafesnet/go-grpc/mapfixes"; service MapfixesService { rpc Get(MapfixId) returns (MapfixResponse); rpc GetList(MapfixIdList) returns (MapfixList); rpc List(ListRequest) returns (MapfixList); } message MapfixIdList { repeated int64 ID = 1; } message MapfixId { int64 ID = 1; } enum MapfixStatus { // Phase: Creation MapfixStatusUnderConstruction = 0; MapfixStatusChangesRequested = 1; // Phase: Review MapfixStatusSubmitting = 2; MapfixStatusSubmitted = 3; // Phase: Testing MapfixStatusAcceptedUnvalidated = 4; // pending script review, can re-trigger validation MapfixStatusValidating = 5; MapfixStatusValidated = 6; MapfixStatusUploading = 7; MapfixStatusUploaded = 8; // uploaded to the group, but pending release MapfixStatusReleasing = 11; // Phase: Final MapfixStatus MapfixStatusRejected = 9; MapfixStatusReleased = 10; } message MapfixResponse { int64 ID = 1; string DisplayName = 2; string Creator = 3; uint32 GameID = 4; int64 CreatedAt = 5; int64 UpdatedAt = 6; uint64 Submitter = 7; uint64 AssetID = 8; uint64 AssetVersion = 9; optional uint64 ValidatedAssetID = 10; optional uint64 ValidatedAssetVersion = 11; uint64 TargetAssetID = 12; MapfixStatus StatusID = 13; } message MapfixFilter { optional MapfixStatus StatusID = 1; optional string DisplayName = 2; optional string Creator = 3; optional uint32 GameID = 4; optional uint64 Submitter = 5; } message MapfixList { repeated MapfixResponse Mapfixes = 1; } message ListRequest { MapfixFilter Filter = 1; Pagination Page = 2; } message Pagination { uint32 Size = 1; uint32 Number = 2; } message NullResponse {}