2018-05-22 21:43:36 +02:00
|
|
|
// 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.
|
2017-11-17 03:21:41 +01:00
|
|
|
|
|
|
|
syntax = "proto3";
|
|
|
|
|
2017-12-01 22:50:32 +01:00
|
|
|
import "plugin.proto";
|
|
|
|
import "google/protobuf/empty.proto";
|
|
|
|
|
2017-11-17 03:21:41 +01:00
|
|
|
package pulumirpc;
|
|
|
|
|
|
|
|
// LanguageRuntime is the interface that the planning monitor uses to drive execution of an interpreter responsible
|
|
|
|
// for confguring and creating resource objects.
|
|
|
|
service LanguageRuntime {
|
2018-02-06 18:57:32 +01:00
|
|
|
// GetRequiredPlugins computes the complete set of anticipated plugins required by a program.
|
|
|
|
rpc GetRequiredPlugins(GetRequiredPluginsRequest) returns (GetRequiredPluginsResponse) {}
|
|
|
|
// Run executes a program and returns its result.
|
2017-11-17 03:21:41 +01:00
|
|
|
rpc Run(RunRequest) returns (RunResponse) {}
|
2017-12-01 22:50:32 +01:00
|
|
|
// GetPluginInfo returns generic information about this plugin, like its version.
|
|
|
|
rpc GetPluginInfo(google.protobuf.Empty) returns (PluginInfo) {}
|
2017-11-17 03:21:41 +01:00
|
|
|
}
|
|
|
|
|
2018-02-06 18:57:32 +01:00
|
|
|
message GetRequiredPluginsRequest {
|
|
|
|
string project = 1; // the project name.
|
|
|
|
string pwd = 2; // the program's working directory.
|
|
|
|
string program = 3; // the path to the program.
|
|
|
|
}
|
|
|
|
|
|
|
|
message GetRequiredPluginsResponse {
|
|
|
|
repeated PluginDependency plugins = 1; // a list of plugins required by this program.
|
|
|
|
}
|
|
|
|
|
2017-11-17 03:21:41 +01:00
|
|
|
// RunRequest asks the interpreter to execute a program.
|
|
|
|
message RunRequest {
|
|
|
|
string project = 1; // the project name.
|
|
|
|
string stack = 2; // the name of the stack being deployed into.
|
|
|
|
string pwd = 3; // the program's working directory.
|
|
|
|
string program = 4; // the path to the program to execute.
|
|
|
|
repeated string args = 5; // any arguments to pass to the program.
|
|
|
|
map<string, string> config = 6; // the configuration variables to apply before running.
|
|
|
|
bool dryRun = 7; // true if we're only doing a dryrun (preview).
|
|
|
|
int32 parallel = 8; // the degree of parallelism for resource operations (<=1 for serial).
|
2018-02-06 18:57:32 +01:00
|
|
|
string monitor_address = 9; // the address for communicating back to the resource monitor.
|
2019-05-01 03:09:02 +02:00
|
|
|
bool queryMode = 10; // true if we're only doing a query.
|
2017-11-17 03:21:41 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
// RunResponse is the response back from the interpreter/source back to the monitor.
|
|
|
|
message RunResponse {
|
2019-03-20 19:54:32 +01:00
|
|
|
// An unhandled error if any occurred.
|
|
|
|
string error = 1;
|
|
|
|
|
|
|
|
// An error happened. And it was reported to the user. Work should stop immediately
|
|
|
|
// with nothing further to print to the user. This corresponds to a "result.Bail()"
|
|
|
|
// value in the 'go' layer.
|
|
|
|
bool bail = 2;
|
2017-11-17 03:21:41 +01:00
|
|
|
}
|