| /* | |
| * 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); | |
| } |