/** * Copyright © 2016-2018 The Thingsboard Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ syntax = "proto3"; package js; option java_package = "org.thingsboard.server.gen.js"; option java_outer_classname = "JsInvokeProtos"; enum JsInvokeErrorCode{ COMPILATION_ERROR = 0; RUNTIME_ERROR = 1; CPU_USAGE_ERROR = 2; } message RemoteJsRequest { JsCompileRequest compileRequest = 1; JsInvokeRequest invokeRequest = 2; JsReleaseRequest releaseRequest = 3; } message RemoteJsResponse { JsCompileResponse compileResponse = 1; JsInvokeResponse invokeResponse = 2; JsReleaseResponse releaseResponse = 3; } message JsCompileRequest { int64 scriptIdMSB = 1; int64 scriptIdLSB = 2; string functionName = 3; string scriptBody = 4; } message JsReleaseRequest { int64 scriptIdMSB = 1; int64 scriptIdLSB = 2; string functionName = 3; } message JsReleaseResponse { bool success = 1; int64 scriptIdMSB = 2; int64 scriptIdLSB = 3; } message JsCompileResponse { bool success = 1; int64 scriptIdMSB = 2; int64 scriptIdLSB = 3; JsInvokeErrorCode errorCode = 4; string errorDetails = 5; } message JsInvokeRequest { int64 scriptIdMSB = 1; int64 scriptIdLSB = 2; string functionName = 3; string scriptBody = 4; repeated string args = 5; } message JsInvokeResponse { bool success = 1; string result = 2; JsInvokeErrorCode errorCode = 3; string errorDetails = 4; }