34 lines
944 B
Protocol Buffer
34 lines
944 B
Protocol Buffer
|
// Copyright (c) HashiCorp, Inc.
|
||
|
// SPDX-License-Identifier: MPL-2.0
|
||
|
|
||
|
syntax = "proto3";
|
||
|
package plugin;
|
||
|
option go_package = "plugin";
|
||
|
|
||
|
import "google/protobuf/empty.proto";
|
||
|
|
||
|
// GRPCStdio is a service that is automatically run by the plugin process
|
||
|
// to stream any stdout/err data so that it can be mirrored on the plugin
|
||
|
// host side.
|
||
|
service GRPCStdio {
|
||
|
// StreamStdio returns a stream that contains all the stdout/stderr.
|
||
|
// This RPC endpoint must only be called ONCE. Once stdio data is consumed
|
||
|
// it is not sent again.
|
||
|
//
|
||
|
// Callers should connect early to prevent blocking on the plugin process.
|
||
|
rpc StreamStdio(google.protobuf.Empty) returns (stream StdioData);
|
||
|
}
|
||
|
|
||
|
// StdioData is a single chunk of stdout or stderr data that is streamed
|
||
|
// from GRPCStdio.
|
||
|
message StdioData {
|
||
|
enum Channel {
|
||
|
INVALID = 0;
|
||
|
STDOUT = 1;
|
||
|
STDERR = 2;
|
||
|
}
|
||
|
|
||
|
Channel channel = 1;
|
||
|
bytes data = 2;
|
||
|
}
|