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.
13 lines
349 B
TypeScript
13 lines
349 B
TypeScript
import * as pulumi from "@pulumi/pulumi";
|
|
import * as aws from "@pulumi/aws";
|
|
|
|
const provider = new aws.Provider("provider", {region: "us-west-2"});
|
|
const bucket1 = new aws.s3.Bucket("bucket1", {}, {
|
|
provider: provider,
|
|
dependsOn: [provider],
|
|
protect: true,
|
|
ignoreChanges: [
|
|
"bucket",
|
|
"lifecycleRules[0]",
|
|
],
|
|
});
|