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