<!---
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->
# Description
<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->
This is a pass over all of /sdk to replace asserts that just checked we
had an error with asserts for what the error value is.
Just checking for an error is a weak test that can result in error paths
being broken and tests not detecting it.
Per Ideation discussion, renames SpecializeOutput to Cast.
This function is a type-safe generic way to convert
any Output type (legacy or typed) to any other Output type
holding the same ElementType.
This DOES NOT change the type of the contained element in any way.
Per discussion in Ideation today,
rename the Cast and MustCast functions
to ConvertTyped and MustConvertTyped.
This is intended to make room for
renaming SpecializeOutput to Cast
which we expect users to use more often.
**Each commit is separately reviewable.**
---
Adds the pulumix subpackage implementing strongly-typed
inputs, outputs, and combinators.
internal/cmd/gen-pux-applyn generates all four variants of `Apply` for
up to 8 parameters.
See individual commits for more details on each change.
Resolves#13586