syntax = "proto3"; package pkgdash; import "api/annotations.proto"; import "google/protobuf/timestamp.proto"; import "openapiv3/annotations.proto"; import "validate/validate.proto"; option go_package = "go.unistack.org/unistack-org/pkgdash/proto;pkgdashpb"; service PkgdashService { rpc PackagesLookup(PackagesLookupReq) returns (PackagesLookupRsp) { option (micro.openapiv3.openapiv3_operation) = { operation_id: "PackagesLookup"; responses: { default: { reference: {_ref: ".pkgdash.ErrorRsp"}; }; }; }; option (micro.api.http) = { get: "/v1/packages/{id}"; }; } rpc PackagesCreate(PackagesCreateReq) returns (PackagesCreateRsp) { option (micro.openapiv3.openapiv3_operation) = { operation_id: "PackagesCreate"; responses: { default: { reference: {_ref: ".pkgdash.ErrorRsp"}; }; }; }; option (micro.api.http) = { post: "/v1/packages"; body: "*"; }; } rpc PackagesDelete(PackagesDeleteReq) returns (PackagesDeleteRsp) { option (micro.openapiv3.openapiv3_operation) = { operation_id: "PackagesDelete"; responses: { default: { reference: {_ref: ".pkgdash.ErrorRsp"}; }; }; }; option (micro.api.http) = {delete: "/v1/packages/{id}"}; } rpc PackagesList(PackagesListReq) returns (PackagesListRsp) { option (micro.openapiv3.openapiv3_operation) = { operation_id: "PackagesList"; responses: { default: { reference: {_ref: ".pkgdash.ErrorRsp"}; }; }; }; option (micro.api.http) = {get: "/v1/packages"}; } rpc PackagesModules(PackagesModulesReq) returns (PackagesModulesRsp) { option (micro.openapiv3.openapiv3_operation) = { operation_id: "PackagesModules"; responses: { default: { reference: {_ref: ".pkgdash.ErrorRsp"}; }; }; }; option (micro.api.http) = {get: "/v1/packages/{package}/modules"}; } rpc PackagesUpdate(PackagesUpdateReq) returns (PackagesUpdateRsp) { option (micro.openapiv3.openapiv3_operation) = { operation_id: "PackagesUpdate"; responses: { default: { reference: {_ref: ".pkgdash.ErrorRsp"}; }; }; }; option (micro.api.http) = { put: "/v1/packages/{id}"; body: "*"; }; } rpc CommentsCreate(CommentsCreateReq) returns (CommentsCreateRsp) { option (micro.openapiv3.openapiv3_operation) = { operation_id: "CommentsCreate"; responses: { default: { reference: {_ref: ".pkgdash.ErrorRsp"}; }; }; }; option (micro.api.http) = { post: "/v1/packages/{package}/comments"; body: "*"; }; } rpc CommentsLookup(CommentsLookupReq) returns (CommentsLookupRsp) { option (micro.openapiv3.openapiv3_operation) = { operation_id: "CommentsLookup"; responses: { default: { reference: {_ref: ".pkgdash.ErrorRsp"}; }; }; }; option (micro.api.http) = { get: "/v1/comments/{id}/comments"; additional_bindings {get: "/v1/comments/{package}/comments/{id}"}; }; } rpc CommentsList(CommentsListReq) returns (CommentsListRsp) { option (micro.openapiv3.openapiv3_operation) = { operation_id: "CommentsList"; responses: { default: { reference: {_ref: ".pkgdash.ErrorRsp"}; }; }; }; option (micro.api.http) = {get: "/v1/packages/{package}/comments"}; } rpc CommentsDelete(CommentsDeleteReq) returns (CommentsDeleteRsp) { option (micro.openapiv3.openapiv3_operation) = { operation_id: "CommentsDelete"; responses: { default: { reference: {_ref: ".pkgdash.ErrorRsp"}; }; }; }; option (micro.api.http) = { delete: "/v1/packages/{package_id}/comments/{id}"; additional_bindings {delete: "/v1/comments/{id}"}; }; } rpc ModulesList(ModulesListReq) returns (ModulesListRsp) { option (micro.openapiv3.openapiv3_operation) = { operation_id: "ModulesList"; responses: { default: { reference: {_ref: ".pkgdash.ErrorRsp"}; }; }; }; option (micro.api.http) = {get: "/v1/modules"}; } } message PackagesModulesReq { uint64 package = 1 [json_name = "package"]; } message PackagesModulesRsp { repeated Module modules = 1 [json_name = "modules"]; } message PackagesLookupReq { uint64 id = 1 [json_name = "id"]; } message PackagesLookupRsp { Package package = 1 [json_name = "package"]; } message ErrorRsp { string code = 1 [json_name = "code"]; string title = 2 [json_name = "title"]; string uuid = 3 [json_name = "uuid"]; string details = 4 [json_name = "details"]; } message Package { uint64 id = 1 [(validate.rules).uint64.gt = 0]; string name = 2 [(validate.rules).string.min_len = 1]; string url = 3 [(validate.rules).string.min_len = 1]; uint64 modules = 4; uint64 issues = 5; uint64 comments = 6; google.protobuf.Timestamp created = 7; google.protobuf.Timestamp updated = 8; google.protobuf.Timestamp last_check = 9; } message Module { uint64 id = 1 [(validate.rules).uint64.gt = 0]; string name = 2 [(validate.rules).string.min_len = 1]; string version = 3 [(validate.rules).string.min_len = 1]; google.protobuf.Timestamp last_check = 8; } message Issue { uint64 id = 1 [(validate.rules).uint64.gt = 0]; uint64 status = 2 [(validate.rules).uint64.gt = 0]; string desc = 3 [(validate.rules).string.min_len = 1]; uint64 package = 4 [(validate.rules).uint64.gt = 0]; repeated uint64 modules = 5; google.protobuf.Timestamp created = 6; google.protobuf.Timestamp updated = 7; } message Comment { uint64 id = 1 [(validate.rules).uint64.gt = 0]; uint64 package = 2 [(validate.rules).uint64.gt = 0]; string comment = 3; google.protobuf.Timestamp created = 4; google.protobuf.Timestamp updated = 5; } message CommentsDeleteReq { uint64 id = 1 [json_name = "id"]; uint64 package_id = 2 [json_name = "package_id"]; } message CommentsDeleteRsp {} message PackagesDeleteReq { uint64 id = 1 [json_name = "id"]; } message PackagesDeleteRsp {} message PackagesListReq {} message PackagesListRsp { repeated Package packages = 1; } message PackagesUpdateReq { uint64 id = 1 [(validate.rules).uint64.gt = 0]; string name = 2 [(validate.rules).string.min_len = 1]; string url = 3 [(validate.rules).string.min_len = 1]; repeated uint64 modules = 4; repeated uint64 issues = 5; } message PackagesUpdateRsp { Package package = 1 [json_name = "package"]; } message CommentsCreateReq { uint64 package_id = 1 [ json_name = "package_id", (validate.rules).uint64.gt = 0 ]; string comment = 2; } message CommentsCreateRsp { Comment comment = 1 [json_name = "comment"]; } message PackagesCreateReq { string name = 1 [(validate.rules).string.min_len = 1]; string url = 2 [(validate.rules).string.min_len = 1]; repeated uint64 modules = 3; } message PackagesCreateRsp { Package package = 1 [json_name="package"]; } message ModulesListReq {} message ModulesListRsp { repeated Module modules = 1 [json_name="modules"]; } message CommentsListReq { uint64 package_id = 1 [json_name = "package_id"]; } message CommentsListRsp { repeated Comment comments = 1 [json_name = "comments"]; } message CommentsLookupReq { uint64 id = 1 [json_name = "id"]; uint64 package_id = 2 [json_name = "package_id"]; } message CommentsLookupRsp { Comment comment = 1 [json_name = "comment"]; }