The PCL binder has supported resource options for some time, but these options haven't been used or processed by the various code generators. These options--particularly the parent and provider options0--are critical for import codegen. These changes implement the basic set of options, and add a note about fleshing out the rest as necessary. One component of these changes is a new rewriter that rewrites property references into property paths that are understood by the Pulumi engine. This rewriter is used to preprocess the contents of the `ignoreChanges` resource option. These changes also hack around a weakness in the HCL2 type system: In Go, references to resources should be typed as `hcl2.ResourceType`. Unfortunately, this breaks the existing collection semantics associated with resources. Because of this, the Go code generator does not have enough information to know that it should generate a `[]pulumi.Resource` for lists of resources. These changes hack around that limitation using a Go-specific opaque type and some hardcoded comparisons in `argumentTypeName`. Fixes #4923.
30 lines
632 B
C#
30 lines
632 B
C#
using Pulumi;
|
|
using Aws = Pulumi.Aws;
|
|
|
|
class MyStack : Stack
|
|
{
|
|
public MyStack()
|
|
{
|
|
var provider = new Aws.Provider("provider", new Aws.ProviderArgs
|
|
{
|
|
Region = "us-west-2",
|
|
});
|
|
var bucket1 = new Aws.S3.Bucket("bucket1", new Aws.S3.BucketArgs
|
|
{
|
|
}, new CustomResourceOptions
|
|
{
|
|
Provider = provider,
|
|
DependsOn =
|
|
{
|
|
provider,
|
|
},
|
|
Protect = true,
|
|
IgnoreChanges =
|
|
{
|
|
"bucket",
|
|
"lifecycleRules[0]",
|
|
},
|
|
});
|
|
}
|
|
|
|
}
|