syntax = "proto3"; option go_package = "git.itzana.me/strafesnet/go-grpc/validator"; import "maps_extended.proto"; package validator; service ValidatorMapfixService { rpc Create(MapfixCreate) returns (MapfixID); rpc CreateAuditError(AuditErrorRequest) returns (NullResponse); rpc CreateAuditChecklist(AuditChecklistRequest) returns (NullResponse); rpc SetValidatedModel(ValidatedModelRequest) returns (NullResponse); rpc SetStatusSubmitted(SubmittedRequest) returns (NullResponse); rpc SetStatusRequestChanges(MapfixID) returns (NullResponse); rpc SetStatusValidated(MapfixID) returns (NullResponse); rpc SetStatusNotValidated(MapfixID) returns (NullResponse); rpc SetStatusUploaded(MapfixID) returns (NullResponse); rpc SetStatusNotUploaded(MapfixID) returns (NullResponse); rpc SetStatusReleased(MapfixReleaseRequest) returns (NullResponse); rpc SetStatusNotReleased(MapfixID) returns (NullResponse); } service ValidatorSubmissionService { rpc Create(SubmissionCreate) returns (SubmissionID); rpc CreateAuditError(AuditErrorRequest) returns (NullResponse); rpc CreateAuditChecklist(AuditChecklistRequest) returns (NullResponse); rpc SetValidatedModel(ValidatedModelRequest) returns (NullResponse); rpc SetStatusSubmitted(SubmittedRequest) returns (NullResponse); rpc SetStatusRequestChanges(SubmissionID) returns (NullResponse); rpc SetStatusValidated(SubmissionID) returns (NullResponse); rpc SetStatusNotValidated(SubmissionID) returns (NullResponse); rpc SetStatusUploaded(StatusUploadedRequest) returns (NullResponse); rpc SetStatusNotUploaded(SubmissionID) returns (NullResponse); rpc SetStatusReleased(SubmissionReleaseRequest) returns (NullResponse); } message MapfixID { uint64 ID = 1; } message MapfixCreate { uint32 OperationID = 1; uint32 GameID = 2; uint64 AssetOwner = 3; uint64 AssetID = 4; uint64 AssetVersion = 5; uint64 TargetAssetID = 6; string DisplayName = 7; string Creator = 8; string Description = 9; } message SubmissionID { uint64 ID = 1; } message SubmissionCreate { uint32 OperationID = 1; uint32 GameID = 2; uint32 Status = 3; uint32 Roles = 4; uint64 AssetOwner = 5; uint64 AssetID = 6; uint64 AssetVersion = 7; string DisplayName = 8; string Creator = 9; } message AuditErrorRequest { uint64 ID = 1; string ErrorMessage = 2; } message Check { string Name = 1; string Summary = 2; bool Passed = 3; } message AuditChecklistRequest { uint64 ID = 1; repeated Check CheckList = 2; } message ValidatedModelRequest { uint64 ID = 1; uint64 ValidatedModelID = 2; uint64 ValidatedModelVersion = 3; } message SubmittedRequest { uint64 ID = 1; uint64 ModelVersion = 2; string DisplayName = 3; string Creator = 4; uint32 GameID = 5; } message StatusUploadedRequest { uint64 ID = 1; uint64 UploadedAssetID = 2; } message MapfixReleaseRequest { uint64 MapfixID = 1; uint64 TargetAssetID = 2; uint64 AssetVersion = 3; uint32 Modes = 4; } message SubmissionReleaseRequest { uint64 SubmissionID = 1; maps_extended.MapCreate MapCreate = 2; } message NullResponse {} // Operations service ValidatorOperationService { rpc Success(OperationSuccessRequest) returns (NullResponse); rpc Fail(OperationFailRequest) returns (NullResponse); } message OperationSuccessRequest { uint32 OperationID = 1; string Path = 2; } message OperationFailRequest { uint32 OperationID = 1; string StatusMessage = 2; } message Pagination { uint32 Size = 1; uint32 Number = 2; } // Scripts service ValidatorScriptService { rpc Create(ScriptCreate) returns (ScriptID); rpc Get(ScriptID) returns (Script); rpc List(ScriptListRequest) returns (ScriptListResponse); } enum ResourceType { ResourceTypeNone = 0; ResourceTypeMapfix = 1; ResourceTypeSubmission = 2; } message ScriptCreate { string Name = 1; string Source = 2; ResourceType ResourceType = 3; optional uint64 ResourceID = 4; } message ScriptFilter { optional string Name = 1; optional string Source = 2; optional ResourceType ResourceType = 3; optional uint64 ResourceID = 4; optional uint64 Hash = 5; } message ScriptListRequest { ScriptFilter Filter = 1; Pagination Page = 2; } message ScriptID { uint64 ID = 1; } message Script { uint64 ID = 1; uint64 Hash = 2; string Name = 3; string Source = 4; ResourceType ResourceType = 5; optional uint64 ResourceID = 6; } message ScriptListResponse { repeated Script Scripts = 1; } // ScriptPolicies service ValidatorScriptPolicyService { rpc Create(ScriptPolicyCreate) returns (ScriptPolicyID); rpc List(ScriptPolicyListRequest) returns (ScriptPolicyListResponse); } enum Policy { PolicyNone = 0; PolicyAllowed = 1; PolicyBlocked = 2; PolicyDelete = 3; PolicyReplace = 4; } message ScriptPolicyCreate { uint64 FromScriptID = 1; uint64 ToScriptID = 2; Policy Policy = 3; } message ScriptPolicyFilter { optional uint64 FromScriptHash = 1; optional uint64 ToScriptID = 2; optional Policy Policy = 3; } message ScriptPolicyListRequest { ScriptPolicyFilter Filter = 1; Pagination Page = 2; } message ScriptPolicyID { uint64 ID = 1; } message ScriptPolicy { uint64 ID = 1; uint64 FromScriptHash = 2; uint64 ToScriptID = 3; Policy Policy = 4; } message ScriptPolicyListResponse { repeated ScriptPolicy ScriptPolicies = 1; }