Open t0yv0 opened 1 month ago
I'm currently investigating how we could document overlay resources as part of pulumi/pulumi#13231. The possible avenues I see are documenting the overlays themselves and replacing them with native provider resources (e.g. MLCs). We can ignore the enum value overlays for now because they've already schematized and the overlays are deprecated.
As mentioned in https://github.com/pulumi/pulumi/issues/13231 we should be able to schematize overlays except resource methods once we have a customizable language chooser. I had a look through all overlay resources, methods and interfaces and they should be schematizable except the serverless mixins (they're resource methods).
We wanted to experiment with schematizing the underlying components of the serverless mixins and turning them into MLCs, but I found a problem with that. They use lambda.CallbackFunction
under the hood which is node exclusive because there's no real alternatives in other languages (see https://github.com/pulumi/pulumi/issues/3820).
If we wanted to turn those components into MLCs we'd have to remove the references to CallbackFunction and just use a regular lambda.Function. Which would be a breaking change.
@t0yv0 Can we in some way specialize a parameter type for one SDK using overlays? I'll experiment a bit with that to see if I can make this work.
I experimented with specializing the the parameter types for one SDK using overlays and that should be possible with overloading.
There's one limitation though, resource methods do not support MultiArgumentInputs
yet (see). It always generates a single object argument which doesn't allow matching the existing resource method overlays (e.g. Bucket.onObjectCreated
). That would be a breaking change for the existing resource methods.
As of v6.38.0 version of the provider, Node SDK carries these overlays
ARN Helpers
IAM Helpers
Serverless Connectors
Interfaces
Would be good to understand how/where these are used?
Miscellany
Deprecated enum value overlays