Scott Baker | dab1119 | 2017-02-03 16:42:14 -0800 | [diff] [blame] | 1 | syntax = "proto3"; |
| 2 | |
| 3 | package xos; |
| 4 | |
| 5 | import "google/protobuf/empty.proto"; |
Zack Williams | 6bdd3ea | 2018-03-26 15:21:05 -0700 | [diff] [blame] | 6 | import "annotations.proto"; |
Scott Baker | dab1119 | 2017-02-03 16:42:14 -0800 | [diff] [blame] | 7 | import "common.proto"; |
Matteo Scandolo | 488c88e | 2018-02-01 11:52:33 -0800 | [diff] [blame] | 8 | import "xosoptions.proto"; |
Scott Baker | dab1119 | 2017-02-03 16:42:14 -0800 | [diff] [blame] | 9 | |
| 10 | message LoginRequest { |
| 11 | string username = 1; |
| 12 | string password = 2; |
| 13 | }; |
| 14 | |
| 15 | message LoginResponse { |
| 16 | string sessionid = 1; |
| 17 | }; |
| 18 | |
Scott Baker | 21d5e4f | 2017-03-25 11:00:33 -0700 | [diff] [blame] | 19 | message ModelFilter { |
| 20 | string class_name = 1; |
| 21 | }; |
| 22 | |
| 23 | message ModelListEntry { |
| 24 | string class_name = 1; |
| 25 | int32 id = 2; |
| 26 | string info = 3; |
| 27 | }; |
| 28 | |
| 29 | message ModelList { |
| 30 | repeated ModelListEntry items = 1; |
| 31 | }; |
| 32 | |
Matteo Scandolo | d920855 | 2017-06-21 14:15:16 -0700 | [diff] [blame] | 33 | message XProtos { |
| 34 | string xproto = 1; |
| 35 | }; |
| 36 | |
Scott Baker | 89704b1 | 2019-05-07 16:42:11 -0700 | [diff] [blame] | 37 | message VersionInfo { |
| 38 | string version = 1; |
| 39 | string pythonVersion = 2; |
| 40 | string gitCommit = 3; |
| 41 | string buildTime = 4; |
| 42 | string os = 5; |
| 43 | string arch = 6; |
| 44 | }; |
| 45 | |
Scott Baker | df2a0ac | 2019-06-07 11:56:20 -0700 | [diff] [blame^] | 46 | message DatabaseInfo { |
| 47 | enum DatabaseStatus { |
| 48 | UNKNOWN=0; |
| 49 | OPERATIONAL=1; |
| 50 | ERROR=2; |
| 51 | } |
| 52 | string name = 1; |
| 53 | string connection = 2; |
| 54 | string version = 3; |
| 55 | DatabaseStatus status = 4; |
| 56 | } |
| 57 | |
Matteo Scandolo | 488c88e | 2018-02-01 11:52:33 -0800 | [diff] [blame] | 58 | message PopulatedServiceInstance { |
| 59 | option (contentTypeId) = "core.serviceinstance"; |
| 60 | oneof id_present { |
| 61 | int32 id = 1; |
| 62 | } |
| 63 | oneof leaf_model_name_present { |
| 64 | string leaf_model_name = 2[(val).maxLength = 1024, (val).nonNull = true]; |
| 65 | } |
| 66 | oneof name_present { |
| 67 | string name = 3[(val).maxLength = 200]; |
| 68 | } |
| 69 | oneof owner_present { |
| 70 | int32 owner_id = 4[(val).nonNull = true, (foreignKey).modelName = "Service", (foreignKey).reverseFieldName = "service_instances"]; |
| 71 | } |
| 72 | repeated int32 provided_service_instances = 5; |
| 73 | repeated int32 subscribed_service_instances = 6; |
| 74 | repeated int32 subscribed_service = 7; |
| 75 | repeated int32 subscribed_network = 8; |
| 76 | }; |
| 77 | |
Scott Baker | dab1119 | 2017-02-03 16:42:14 -0800 | [diff] [blame] | 78 | service utility { |
| 79 | |
| 80 | rpc Login(LoginRequest) returns (LoginResponse) { |
Zack Williams | 6bdd3ea | 2018-03-26 15:21:05 -0700 | [diff] [blame] | 81 | option (googleapi.http) = { |
Scott Baker | dab1119 | 2017-02-03 16:42:14 -0800 | [diff] [blame] | 82 | post: "/xosapi/v1/utility/login" |
| 83 | body: "*" |
| 84 | }; |
| 85 | } |
| 86 | |
| 87 | rpc Logout(google.protobuf.Empty) returns (google.protobuf.Empty) { |
Zack Williams | 6bdd3ea | 2018-03-26 15:21:05 -0700 | [diff] [blame] | 88 | option (googleapi.http) = { |
Scott Baker | dab1119 | 2017-02-03 16:42:14 -0800 | [diff] [blame] | 89 | post: "/xosapi/v1/utility/logout" |
| 90 | body: "*" |
| 91 | }; |
| 92 | } |
Scott Baker | afdc468 | 2017-02-14 14:49:05 -0800 | [diff] [blame] | 93 | |
Scott Baker | 5ebcd28 | 2017-03-16 16:11:20 -0700 | [diff] [blame] | 94 | rpc NoOp(google.protobuf.Empty) returns (google.protobuf.Empty) { |
Zack Williams | 6bdd3ea | 2018-03-26 15:21:05 -0700 | [diff] [blame] | 95 | option (googleapi.http) = { |
Scott Baker | 5ebcd28 | 2017-03-16 16:11:20 -0700 | [diff] [blame] | 96 | post: "/xosapi/v1/utility/noop" |
| 97 | body: "*" |
| 98 | }; |
| 99 | } |
Scott Baker | 21d5e4f | 2017-03-25 11:00:33 -0700 | [diff] [blame] | 100 | |
Scott Baker | 1677821 | 2017-05-04 14:35:00 -0700 | [diff] [blame] | 101 | rpc AuthenticatedNoOp(google.protobuf.Empty) returns (google.protobuf.Empty) { |
Zack Williams | 6bdd3ea | 2018-03-26 15:21:05 -0700 | [diff] [blame] | 102 | option (googleapi.http) = { |
Scott Baker | 1677821 | 2017-05-04 14:35:00 -0700 | [diff] [blame] | 103 | post: "/xosapi/v1/utility/auth_noop" |
| 104 | body: "*" |
| 105 | }; |
| 106 | } |
| 107 | |
Scott Baker | 21d5e4f | 2017-03-25 11:00:33 -0700 | [diff] [blame] | 108 | rpc SetDirtyModels(ModelFilter) returns (ModelList) { |
Zack Williams | 6bdd3ea | 2018-03-26 15:21:05 -0700 | [diff] [blame] | 109 | option (googleapi.http) = { |
Scott Baker | 21d5e4f | 2017-03-25 11:00:33 -0700 | [diff] [blame] | 110 | post: "/xosapi/v1/utility/dirty_models" |
| 111 | body: "*" |
| 112 | }; |
| 113 | } |
| 114 | |
| 115 | rpc ListDirtyModels(ModelFilter) returns (ModelList) { |
Zack Williams | 6bdd3ea | 2018-03-26 15:21:05 -0700 | [diff] [blame] | 116 | option (googleapi.http) = { |
Scott Baker | 21d5e4f | 2017-03-25 11:00:33 -0700 | [diff] [blame] | 117 | get: "/xosapi/v1/utility/dirty_models" |
| 118 | }; |
| 119 | } |
Matteo Scandolo | d920855 | 2017-06-21 14:15:16 -0700 | [diff] [blame] | 120 | |
| 121 | rpc GetXproto(google.protobuf.Empty) returns (XProtos) { |
Zack Williams | 6bdd3ea | 2018-03-26 15:21:05 -0700 | [diff] [blame] | 122 | option (googleapi.http) = { |
Matteo Scandolo | d920855 | 2017-06-21 14:15:16 -0700 | [diff] [blame] | 123 | get: "/xosapi/v1/xproto" |
| 124 | }; |
| 125 | } |
Matteo Scandolo | 488c88e | 2018-02-01 11:52:33 -0800 | [diff] [blame] | 126 | |
| 127 | rpc GetPopulatedServiceInstances(ID) returns (PopulatedServiceInstance) { |
Zack Williams | 6bdd3ea | 2018-03-26 15:21:05 -0700 | [diff] [blame] | 128 | option (googleapi.http) = { |
Matteo Scandolo | 488c88e | 2018-02-01 11:52:33 -0800 | [diff] [blame] | 129 | get: "/xosapi/v1/core/populatedserviceinstance/{id}" |
| 130 | }; |
| 131 | } |
Scott Baker | 89704b1 | 2019-05-07 16:42:11 -0700 | [diff] [blame] | 132 | |
| 133 | rpc GetVersion(google.protobuf.Empty) returns (VersionInfo) { |
| 134 | option (googleapi.http) = { |
| 135 | get: "/xosapi/v1/version" |
| 136 | }; |
| 137 | } |
| 138 | |
Scott Baker | df2a0ac | 2019-06-07 11:56:20 -0700 | [diff] [blame^] | 139 | rpc GetDatabaseInfo(google.protobuf.Empty) returns (DatabaseInfo) { |
| 140 | option (googleapi.http) = { |
| 141 | get: "/xosapi/v1/dbinfo" |
| 142 | }; |
| 143 | } |
| 144 | |
Scott Baker | 89704b1 | 2019-05-07 16:42:11 -0700 | [diff] [blame] | 145 | |
Zack Williams | 6bdd3ea | 2018-03-26 15:21:05 -0700 | [diff] [blame] | 146 | }; |