// Copyright 2016-2017, Pulumi Corporation. All rights reserved. syntax = "proto3"; import "google/protobuf/struct.proto"; import "provider.proto"; package pulumirpc; // 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. string parent = 3; // an optional parent URN that this child resource belongs to. 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. }