| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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"; |
| option go_package = "beam.apache.org/playground/backend/internal;playground"; |
| |
| package api.v1; |
| |
| enum Sdk { |
| SDK_UNSPECIFIED = 0; |
| SDK_JAVA = 1; |
| SDK_GO = 2; |
| SDK_PYTHON = 3; |
| SDK_SCIO = 4; |
| } |
| |
| enum Status { |
| STATUS_UNSPECIFIED = 0; |
| STATUS_VALIDATING = 1; |
| STATUS_VALIDATION_ERROR = 2; |
| STATUS_PREPARING = 3; |
| STATUS_PREPARATION_ERROR = 4; |
| STATUS_COMPILING = 5; |
| STATUS_COMPILE_ERROR = 6; |
| STATUS_EXECUTING = 7; |
| STATUS_FINISHED = 8; |
| STATUS_RUN_ERROR = 9; |
| STATUS_ERROR = 10; |
| STATUS_RUN_TIMEOUT = 11; |
| STATUS_CANCELED = 12; |
| } |
| |
| enum PrecompiledObjectType { |
| PRECOMPILED_OBJECT_TYPE_UNSPECIFIED = 0; |
| PRECOMPILED_OBJECT_TYPE_EXAMPLE = 1; |
| PRECOMPILED_OBJECT_TYPE_KATA = 2; |
| PRECOMPILED_OBJECT_TYPE_UNIT_TEST = 3; |
| } |
| |
| enum Complexity { |
| COMPLEXITY_UNSPECIFIED = 0; |
| COMPLEXITY_BASIC = 1; |
| COMPLEXITY_MEDIUM = 2; |
| COMPLEXITY_ADVANCED = 3; |
| } |
| |
| enum EmulatorType { |
| EMULATOR_TYPE_UNSPECIFIED = 0; |
| EMULATOR_TYPE_KAFKA = 1; |
| } |
| |
| message Dataset { |
| EmulatorType type = 1; |
| map<string, string> options = 2; |
| string dataset_path = 3; |
| } |
| |
| // RunCodeRequest represents a code text and options of SDK which executes the code. |
| message RunCodeRequest { |
| string code = 1; |
| Sdk sdk = 2; |
| // The pipeline options as they would be passed to the program (e.g. "--option1 value1 --option2 value2") |
| string pipeline_options = 3; |
| repeated Dataset datasets = 4; |
| repeated SnippetFile files = 5; |
| } |
| |
| // RunCodeResponse contains information of the pipeline uuid. |
| message RunCodeResponse { |
| string pipeline_uuid = 1; |
| } |
| |
| // CheckStatusRequest contains information of the pipeline uuid. |
| message CheckStatusRequest { |
| string pipeline_uuid = 1; |
| } |
| |
| // StatusInfo contains information about the status of the code execution. |
| message CheckStatusResponse { |
| Status status = 1; |
| } |
| |
| // GetValidationOutputRequest contains information of the pipeline uuid. |
| message GetValidationOutputRequest { |
| string pipeline_uuid = 1; |
| } |
| |
| // GetValidationOutputResponse represents the result of the code validation. |
| message GetValidationOutputResponse { |
| string output = 1; |
| } |
| |
| // GetPreparationOutputRequest contains information of the pipeline uuid. |
| message GetPreparationOutputRequest { |
| string pipeline_uuid = 1; |
| } |
| |
| // GetPreparationOutputResponse represents the result of the code preparation. |
| message GetPreparationOutputResponse { |
| string output = 1; |
| } |
| |
| // GetCompileOutputRequest contains information of the pipeline uuid. |
| message GetCompileOutputRequest { |
| string pipeline_uuid = 1; |
| } |
| |
| // GetCompileOutputResponse represents the result of the compiled code. |
| message GetCompileOutputResponse { |
| string output = 1; |
| } |
| |
| // GetRunOutputRequest contains information of the pipeline uuid. |
| message GetRunOutputRequest { |
| string pipeline_uuid = 1; |
| } |
| |
| // RunOutputResponse represents the result of the executed code. |
| message GetRunOutputResponse { |
| string output = 1; |
| } |
| |
| // GetRunErrorRequest contains information of the pipeline uuid. |
| message GetRunErrorRequest { |
| string pipeline_uuid = 1; |
| } |
| |
| // GetRunErrorResponse represents the error of the executed code. |
| message GetRunErrorResponse { |
| string output = 1; |
| } |
| |
| // GetLogsRequest contains information of the pipeline uuid. |
| message GetLogsRequest { |
| string pipeline_uuid = 1; |
| } |
| |
| // RunOutputResponse represents the logs of the executed code. |
| message GetLogsResponse { |
| string output = 1; |
| } |
| |
| // GetGraphRequest contains information of the pipeline uuid. |
| message GetGraphRequest { |
| string pipeline_uuid = 1; |
| } |
| |
| // GetGraphResponse represents the string representation of pipeline execution graph in DOT format. |
| message GetGraphResponse { |
| string graph = 1; |
| } |
| |
| // CancelRequest request to cancel code processing |
| message CancelRequest { |
| string pipeline_uuid = 1; |
| } |
| |
| // CancelResponse response for cancel request |
| message CancelResponse { |
| } |
| |
| // PrecompiledObject represents one PrecompiledObject with its information |
| message PrecompiledObject{ |
| string cloud_path = 1; |
| string name = 2; |
| string description = 3; |
| PrecompiledObjectType type = 4; |
| string pipeline_options = 5; |
| // TODO mark reserved after #24402 update sequence is done |
| string link = 6; |
| bool multifile = 7; |
| int32 context_line = 8; |
| bool default_example = 9; |
| Sdk sdk = 10; |
| Complexity complexity = 11; |
| repeated string tags = 12; |
| repeated Dataset datasets = 13; |
| |
| // Link to the example in the Beam repository |
| string url_vcs = 14; |
| string url_notebook = 15; |
| bool always_run = 16; |
| bool never_run = 17; |
| } |
| |
| // Categories represent the array of messages with sdk and categories at this sdk |
| message Categories{ |
| message Category{ |
| string category_name = 1; |
| repeated PrecompiledObject precompiled_objects = 2; |
| } |
| Sdk sdk = 1; |
| repeated Category categories = 2; |
| } |
| |
| // GetPrecompiledObjectsRequest contains information of the needed PrecompiledObjects sdk and categories. |
| message GetPrecompiledObjectsRequest{ |
| Sdk sdk = 1; |
| string category = 2; |
| } |
| |
| // GetPrecompiledObjectRequest contains information of the needed PrecompiledObject. |
| message GetPrecompiledObjectRequest{ |
| string cloud_path = 1; |
| } |
| |
| // GetPrecompiledObjectCodeRequest contains information of the PrecompiledObject uuid. |
| message GetPrecompiledObjectCodeRequest{ |
| string cloud_path = 1; |
| } |
| |
| // GetPrecompiledObjectOutputRequest contains information of the PrecompiledObject uuid. |
| message GetPrecompiledObjectOutputRequest{ |
| string cloud_path = 1; |
| } |
| |
| // GetPrecompiledObjectLogsRequest contains information of the PrecompiledObject uuid. |
| message GetPrecompiledObjectLogsRequest{ |
| string cloud_path = 1; |
| } |
| |
| // GetPrecompiledObjectGraphRequest contains information of the PrecompiledObject cloud path. |
| message GetPrecompiledObjectGraphRequest{ |
| string cloud_path = 1; |
| } |
| |
| // GetDefaultPrecompiledObjectRequest contains information of the needed PrecompiledObject sdk. |
| message GetDefaultPrecompiledObjectRequest { |
| Sdk sdk = 1; |
| } |
| |
| // GetPrecompiledObjectsResponse represent the map between sdk and categories for the sdk. |
| message GetPrecompiledObjectsResponse{ |
| repeated Categories sdk_categories = 1; |
| } |
| |
| // GetPrecompiledObjectResponse represent the PrecompiledObject. |
| message GetPrecompiledObjectResponse{ |
| PrecompiledObject precompiled_object = 1; |
| } |
| |
| // GetPrecompiledObjectResponse represents the source code of the PrecompiledObject. |
| message GetPrecompiledObjectCodeResponse{ |
| string code = 1; |
| repeated SnippetFile files = 2; |
| } |
| |
| // GetPrecompiledObjectOutputResponse represents the result of the executed code. |
| message GetPrecompiledObjectOutputResponse { |
| string output = 1; |
| } |
| |
| // GetPrecompiledObjectLogsResponse represents the result of the executed code. |
| message GetPrecompiledObjectLogsResponse { |
| string output = 1; |
| } |
| |
| // GetPrecompiledObjectGraphResponse represents the string representation of the executed code graph in DOT format. |
| message GetPrecompiledObjectGraphResponse { |
| string graph = 1; |
| } |
| |
| // GetDefaultPrecompiledObjectResponse represents the default PrecompiledObject and his category for the sdk. |
| message GetDefaultPrecompiledObjectResponse { |
| PrecompiledObject precompiled_object = 1; |
| } |
| |
| // SnippetFile represents the snippet file content and its name to save. |
| message SnippetFile { |
| string name = 1; |
| string content = 2; |
| bool is_main = 3; |
| } |
| |
| // SaveSnippetRequest represents a snippet content and options of SDK which executes the snippet. |
| message SaveSnippetRequest { |
| repeated SnippetFile files = 1; |
| Sdk sdk = 2; |
| // The pipeline options as they would be passed to the program (e.g. "--option1 value1 --option2 value2") |
| string pipeline_options = 3; |
| Complexity complexity = 4; |
| string persistence_key = 5; |
| } |
| |
| // SaveSnippetResponse contains information of the generated ID. |
| message SaveSnippetResponse { |
| string id = 1; |
| } |
| |
| // GetSnippetRequest represents the generated ID. |
| message GetSnippetRequest { |
| string id = 1; |
| } |
| |
| // GetSnippetResponse contains information of a snippet content and options of SDK which executes the snippet. |
| message GetSnippetResponse { |
| repeated SnippetFile files = 1; |
| Sdk sdk = 2; |
| // The pipeline options as they would be passed to the program (e.g. "--option1 value1 --option2 value2") |
| string pipeline_options = 3; |
| Complexity complexity = 4; |
| } |
| |
| // GetMetadataRequest represents request for runner metadata |
| message GetMetadataRequest {} |
| |
| // GetMetadataResponse contains metadata about the runner |
| message GetMetadataResponse { |
| string runner_sdk = 1; |
| string build_commit_hash = 2; |
| int64 build_commit_timestamp_seconds_since_epoch = 3; |
| string beam_sdk_version = 4; |
| } |
| |
| service PlaygroundService { |
| |
| // Submit the job for an execution and get the pipeline uuid. |
| rpc RunCode(RunCodeRequest) returns (RunCodeResponse); |
| |
| // Get the status of pipeline execution. |
| rpc CheckStatus(CheckStatusRequest) returns (CheckStatusResponse); |
| |
| // Get the result of pipeline execution. |
| rpc GetRunOutput(GetRunOutputRequest) returns (GetRunOutputResponse); |
| |
| // Get the logs of pipeline execution. |
| rpc GetLogs(GetLogsRequest) returns (GetLogsResponse); |
| |
| // Get the string representation of the pipeline execution graph in DOT format. |
| rpc GetGraph(GetGraphRequest) returns (GetGraphResponse); |
| |
| // Get the error of pipeline execution. |
| rpc GetRunError(GetRunErrorRequest) returns (GetRunErrorResponse); |
| |
| // Get the result of pipeline validation. |
| rpc GetValidationOutput(GetValidationOutputRequest) returns (GetValidationOutputResponse); |
| |
| // Get the result of pipeline preparation. |
| rpc GetPreparationOutput(GetPreparationOutputRequest) returns (GetPreparationOutputResponse); |
| |
| // Get the result of pipeline compilation. |
| rpc GetCompileOutput(GetCompileOutputRequest) returns (GetCompileOutputResponse); |
| |
| // Cancel code processing |
| rpc Cancel(CancelRequest) returns (CancelResponse); |
| |
| // Get all precompiled objects from the cloud datastore. |
| rpc GetPrecompiledObjects(GetPrecompiledObjectsRequest) returns (GetPrecompiledObjectsResponse); |
| |
| // Get precompiled object from the cloud datastore. |
| rpc GetPrecompiledObject(GetPrecompiledObjectRequest) returns (GetPrecompiledObjectResponse); |
| |
| // Get the code of an PrecompiledObject. |
| rpc GetPrecompiledObjectCode(GetPrecompiledObjectCodeRequest) returns (GetPrecompiledObjectCodeResponse); |
| |
| // Get the precompiled details of an PrecompiledObject. |
| rpc GetPrecompiledObjectOutput(GetPrecompiledObjectOutputRequest) returns (GetPrecompiledObjectOutputResponse); |
| |
| // Get the logs of an PrecompiledObject. |
| rpc GetPrecompiledObjectLogs(GetPrecompiledObjectLogsRequest) returns (GetPrecompiledObjectLogsResponse); |
| |
| // Get the graph of an PrecompiledObject. |
| rpc GetPrecompiledObjectGraph(GetPrecompiledObjectGraphRequest) returns (GetPrecompiledObjectGraphResponse); |
| |
| // Get the default precompile object for the sdk. |
| rpc GetDefaultPrecompiledObject(GetDefaultPrecompiledObjectRequest) returns (GetDefaultPrecompiledObjectResponse); |
| |
| // Save the snippet required for the sharing. |
| rpc SaveSnippet(SaveSnippetRequest) returns (SaveSnippetResponse); |
| |
| // Get the snippet of playground. |
| rpc GetSnippet(GetSnippetRequest) returns (GetSnippetResponse); |
| |
| // Get the runner metadata. |
| rpc GetMetadata(GetMetadataRequest) returns (GetMetadataResponse); |
| } |