pulumi/proto/pulumi/engine.proto

98 lines
3.8 KiB
Protocol Buffer

// Copyright 2016-2018, Pulumi Corporation.
//
// 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";
import "google/protobuf/empty.proto";
import "google/protobuf/struct.proto";
package pulumirpc;
option go_package = "github.com/pulumi/pulumi/sdk/v3/proto/go;pulumirpc";
// Engine is an auxiliary service offered to language and resource provider plugins. Its main purpose today is
// to serve as a common logging endpoint, but it also serves as a state storage mechanism for language hosts
// that can't store their own global state.
service Engine {
// Log logs a global message in the engine, including errors and warnings.
rpc Log(LogRequest) returns (google.protobuf.Empty) {}
// GetRootResource gets the URN of the root resource, the resource that should be the root of all
// otherwise-unparented resources.
rpc GetRootResource(GetRootResourceRequest) returns (GetRootResourceResponse) {}
// SetRootResource sets the URN of the root resource.
rpc SetRootResource(SetRootResourceRequest) returns (SetRootResourceResponse) {}
// StartDebugging indicates to the engine that the program has started under a debugger, and the engine
// should notify the user of how to connect to the debugger.
rpc StartDebugging(StartDebuggingRequest) returns (google.protobuf.Empty) {}
}
// LogSeverity is the severity level of a log message. Errors are fatal; all others are informational.
enum LogSeverity {
DEBUG = 0; // a debug-level message not displayed to end-users (the default).
INFO = 1; // an informational message printed to output during resource operations.
WARNING = 2; // a warning to indicate that something went wrong.
ERROR = 3; // a fatal error indicating that the tool should stop processing subsequent resource operations.
}
message LogRequest {
// the logging level of this message.
LogSeverity severity = 1;
// the contents of the logged message.
string message = 2;
// the (optional) resource urn this log is associated with.
string urn = 3;
// the (optional) stream id that a stream of log messages can be associated with. This allows
// clients to not have to buffer a large set of log messages that they all want to be
// conceptually connected. Instead the messages can be sent as chunks (with the same stream id)
// and the end display can show the messages as they arrive, while still stitching them together
// into one total log message.
//
// 0/not-given means: do not associate with any stream.
int32 streamId = 4;
// Optional value indicating whether this is a status message.
bool ephemeral = 5;
}
message GetRootResourceRequest {
// empty.
}
message GetRootResourceResponse {
// the URN of the root resource, or the empty string if one was not set.
string urn = 1;
}
message SetRootResourceRequest {
// the URN of the root resource, or the empty string.
string urn = 1;
}
message SetRootResourceResponse {
// empty.
}
message StartDebuggingRequest {
// the debug configuration parameters. These are meant to be in the right format for the DAP protocol to consume.
google.protobuf.Struct config = 1;
// the string to display to the user with instructions on how to connect to the debugger.
string message = 2;
}