// Copyright 2016-2017, Pulumi Corporation. All rights reserved. syntax = "proto3"; import "google/protobuf/empty.proto"; import "google/protobuf/struct.proto"; package lumirpc; // Engine is an interface into the core engine responsible for orchestrating resource operations. service Engine { // GetResource queries for a single resource object by its type and ID. rpc GetResource(GetResourceRequest) returns (GetResourceResponse) {} // QueryResources queries for one or more resource objects by type and some filtering criteria. rpc QueryResources(QueryResourcesRequest) returns (stream QueryResourcesResponse) {} // Log logs a global message in the engine, including errors and warnings. rpc Log(LogRequest) returns (google.protobuf.Empty) {} // ReadLocation reads the value from a location identified by a token in the current program. rpc ReadLocation(ReadLocationRequest) returns (google.protobuf.Value) {} // ReadLocations reads a list of static or module variables from a single parent token. rpc ReadLocations(ReadLocationsRequest) returns (ReadLocationsResponse) {} } message GetResourceRequest { string type = 1; // the type of resource to get. string id = 2; // the resource ID to get. } message GetResourceResponse { google.protobuf.Struct obj = 1; // a resource object returned from the get request. } message QueryResourcesRequest { string type = 1; // the type of resource to query. google.protobuf.Struct filter = 2; // a set of property key/values to filter the query. } message QueryResourcesResponse { google.protobuf.Struct obj = 1; // a resource object returned from the query request. } // 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 { LogSeverity severity = 1; // the logging level of this message. string message = 2; // the contents of the logged message. } message ReadLocationRequest { string token = 1; // the static or module variable whose value to read. } message ReadLocationsRequest { string token = 1; // the class or module token whose static or property values to read. } message ReadLocationsResponse { google.protobuf.Struct properties = 1; // the resulting static or module properties. }