ac2dbc80fa
This change enables us to make progress on exposing data sources (see pulumi/pulumi-terraform#29). The idea is to have an Invoke function that simply takes a function token and arguments, performs the function lookup and invocation, and then returns a return value.
51 lines
2.3 KiB
Protocol Buffer
51 lines
2.3 KiB
Protocol Buffer
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
|
|
|
syntax = "proto3";
|
|
|
|
import "google/protobuf/struct.proto";
|
|
import "provider.proto";
|
|
|
|
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 {
|
|
rpc Run(RunRequest) returns (RunResponse) {}
|
|
}
|
|
|
|
// RunRequest asks the interpreter to execute a program.
|
|
message RunRequest {
|
|
string pwd = 1; // the program's working directory.
|
|
string program = 2; // the path to the program to execute.
|
|
repeated string args = 3; // any arguments to pass to the program.
|
|
map<string, string> config = 4; // the configuration variables to apply before running.
|
|
bool dryRun = 5; // true if we're only doing a dryrun (preview).
|
|
int32 parallel = 6; // the degree of parallelism for resource operations (<=1 for serial).
|
|
}
|
|
|
|
// RunResponse is the response back from the interpreter/source back to the monitor.
|
|
message RunResponse {
|
|
string error = 1; // an unhandled error if any occurred.
|
|
}
|
|
|
|
// ResourceMonitor is the interface a source uses to talk back to the planning monitor orchestrating the execution.
|
|
service ResourceMonitor {
|
|
rpc Invoke(InvokeRequest) returns (InvokeResponse) {}
|
|
rpc NewResource(NewResourceRequest) returns (NewResourceResponse) {}
|
|
}
|
|
|
|
// NewResourceRequest contains information about a resource object that was newly allocated.
|
|
message NewResourceRequest {
|
|
string type = 1; // the type of the object allocated.
|
|
string name = 2; // the name, for URN purposes, of the object.
|
|
google.protobuf.Struct object = 3; // an object produced by the interpreter/source.
|
|
}
|
|
|
|
// NewResourceResponse reflects back the properties initialized during creation, if applicable.
|
|
message NewResourceResponse {
|
|
string id = 1; // the unique ID assigned by the provider.
|
|
string urn = 2; // the URN assigned by the fabric.
|
|
google.protobuf.Struct object = 3; // the resulting object properties, including provider defaults.
|
|
bool stable = 4; // if true, the object's state is stable and may be trusted not to change.
|
|
}
|
|
|