pulumi/sdk/proto/languages.proto
joeduffy 599ca8ea43 Add accessors to fetch the Pulumi project and stack names
This change adds functions, `pulumi.getProject()` and `pulumi.getStack()`,
to fetch the names of the project and stack, respectively.  These can be
handy in generating names, specializing areas of the code, etc.

This fixes pulumi/pulumi#429.
2017-10-19 08:26:57 -07:00

57 lines
2.7 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 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).
}
// 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.
repeated string children = 3; // an optional list of child URNs belonging to this parent resource.
bool custom = 4; // true if the resource is a custom, managed by a plugin's CRUD operations.
google.protobuf.Struct object = 5; // 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.
repeated string stables = 5; // an optional list of guaranteed-stable properties.
}