| syntax = "proto3"; |
| |
| package xos; |
| |
| import "google/protobuf/empty.proto"; |
| import "annotations.proto"; |
| |
| // This API is used by the UI to validate fields. |
| |
| message FieldValidator { |
| string name = 1; |
| oneof val_value { |
| bool bool_value = 2; |
| int64 int_value = 3; |
| string str_value = 4; |
| }; |
| }; |
| |
| message FieldOption { |
| string id = 1; |
| string label = 2; |
| } |
| |
| message FieldRelation { |
| string model = 1; |
| string type = 2; |
| string on_field = 3; |
| }; |
| |
| message ModelField { |
| string name = 1; |
| string hint = 2; |
| string type = 3; |
| FieldRelation relation = 4; |
| repeated FieldValidator validators = 5; |
| repeated FieldOption options = 6; |
| string default = 7; |
| bool read_only = 8; |
| }; |
| |
| message ModelDef { |
| string name = 1; |
| repeated ModelField fields = 2; |
| repeated FieldRelation relations = 3; |
| string app = 4; |
| string verbose_name = 5; |
| string description = 6; |
| }; |
| |
| message ModelDefs { |
| repeated ModelDef items = 1; |
| }; |
| |
| service modeldefs { |
| |
| rpc ListModelDefs(google.protobuf.Empty) returns (ModelDefs) { |
| option (googleapi.http) = { |
| get: "/xosapi/v1/modeldefs" |
| }; |
| } |
| }; |