This change introduces the notion of a computed versus an output property on resources. Technically, output is a subset of computed, however it is a special kind that we want to treat differently during the evaluation of a deployment plan. Specifically: * An output property is any property that is populated by the resource provider, not code running in the Lumi type system. Because these values aren't available during planning -- since we have not yet performed the deployment operations -- they will be latent values in our runtime and generally missing at the time of a plan. This is no problem and we just want to avoid marshaling them in inopportune places. * A computed property, on the other hand, is a different beast altogehter. Although true one of these is missing a value -- by virtue of the fact that they too are latent values, bottoming out in some manner on an output property -- they will appear in serializable input positions. Not only must we treat them differently during the RPC handshake and in the resource providers, but we also want to guarantee they are gone by the time we perform any CRUD operations on a resource. They are purely a planning-time-only construct. |
||
---|---|---|
.. | ||
lumi | ||
lumidl | ||
lumijs | ||
lumipy |