* Protobuf changes * Move management of root resource state to engine This commit fixes a persistent side-by-side issue in the NodeJS SDK by moving the management of root resource state to the engine. Doing so adds two new endpoints to the Engine gRPC service: 1) GetRootResource and 2) SetRootResource, which get and set the root resource respectively. * Rebase against master, regenerate proto
84 lines
3.1 KiB
Protocol Buffer
84 lines
3.1 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;
|
|
|
|
// 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) {}
|
|
}
|
|
|
|
// 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.
|
|
}
|