-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathfunction_stream.proto
More file actions
136 lines (111 loc) · 3.29 KB
/
function_stream.proto
File metadata and controls
136 lines (111 loc) · 3.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// 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.
// Function Stream Protocol Buffers Definition
// This file defines the gRPC interfaces for Function Stream service
syntax = "proto3";
package function_stream;
// Status codes for API responses
enum StatusCode {
// Unknown status (default)
STATUS_UNKNOWN = 0;
// Success codes (2xx)
OK = 200;
CREATED = 201;
ACCEPTED = 202;
NO_CONTENT = 204;
// Client error codes (4xx)
BAD_REQUEST = 400;
UNAUTHORIZED = 401;
FORBIDDEN = 403;
NOT_FOUND = 404;
METHOD_NOT_ALLOWED = 405;
CONFLICT = 409;
UNPROCESSABLE_ENTITY = 422;
TOO_MANY_REQUESTS = 429;
// Server error codes (5xx)
INTERNAL_SERVER_ERROR = 500;
NOT_IMPLEMENTED = 501;
BAD_GATEWAY = 502;
SERVICE_UNAVAILABLE = 503;
GATEWAY_TIMEOUT = 504;
}
// Unified response structure
message Response {
StatusCode status_code = 1;
string message = 2;
optional bytes data = 3;
}
// SQL execution request
message SqlRequest {
string sql = 1;
}
// Create function request
message CreateFunctionRequest {
bytes config_bytes = 1;
bytes function_bytes = 2;
}
// Python module information
message PythonModule {
string module_name = 1;
bytes module_bytes = 2;
}
// Create Python function request (for creating Python function dynamically)
message CreatePythonFunctionRequest {
string class_name = 1;
repeated PythonModule modules = 2;
string config_content = 3;
}
// Function information (for ShowFunctions response)
message FunctionInfo {
string name = 1;
string task_type = 2;
string status = 3;
}
// Drop function request
message DropFunctionRequest {
string function_name = 1;
}
// Show functions request (optional filter, empty for list all)
message ShowFunctionsRequest {
optional string filter = 1;
}
// Show functions response (status_code, message, and list of FunctionInfo)
message ShowFunctionsResponse {
StatusCode status_code = 1;
string message = 2;
repeated FunctionInfo functions = 3;
}
// Start function request
message StartFunctionRequest {
string function_name = 1;
}
// Stop function request
message StopFunctionRequest {
string function_name = 1;
}
// Function Stream service
service FunctionStreamService {
// SQL execution
rpc ExecuteSql(SqlRequest) returns (Response);
// Create function
rpc CreateFunction(CreateFunctionRequest) returns (Response);
// Create Python function dynamically
rpc CreatePythonFunction(CreatePythonFunctionRequest) returns (Response);
// Drop function
rpc DropFunction(DropFunctionRequest) returns (Response);
// Show functions (returns list of FunctionInfo)
rpc ShowFunctions(ShowFunctionsRequest) returns (ShowFunctionsResponse);
// Start function
rpc StartFunction(StartFunctionRequest) returns (Response);
// Stop function
rpc StopFunction(StopFunctionRequest) returns (Response);
}