tfjson: Add `DeferredChanges` and `Complete` to `Plan` JSON (#123)
* initial deferred response support
* add `complete` flag
diff --git a/plan.go b/plan.go
index 38ea778..67a5b6e 100644
--- a/plan.go
+++ b/plan.go
@@ -60,6 +60,14 @@
// plan.
ResourceChanges []*ResourceChange `json:"resource_changes,omitempty"`
+ // DeferredChanges contains the change operations for resources that are deferred
+ // for this plan.
+ DeferredChanges []*DeferredResourceChange `json:"deferred_changes,omitempty"`
+
+ // Complete indicates that all resources have successfully planned changes.
+ // This will be false if there are DeferredChanges or if the -target flag is used.
+ Complete bool `json:"complete,omitempty"`
+
// The change operations for outputs within this plan.
OutputChanges map[string]*Change `json:"output_changes,omitempty"`
@@ -269,3 +277,13 @@
// The value for this variable at plan time.
Value interface{} `json:"value,omitempty"`
}
+
+// DeferredResourceChange is a description of a resource change that has been
+// deferred for some reason.
+type DeferredResourceChange struct {
+ // Reason is the reason why this resource change was deferred.
+ Reason string `json:"reason,omitempty"`
+
+ // Change contains any information we have about the deferred change.
+ ResourceChange *ResourceChange `json:"resource_change,omitempty"`
+}