// 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"; 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. }