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.
12 lines
331 B
Python
12 lines
331 B
Python
import pulumi
|
|
import pulumi_aws as aws
|
|
import pulumi_pulumi as pulumi
|
|
|
|
provider = pulumi.providers.Aws("provider", region="us-west-2")
|
|
bucket1 = aws.s3.Bucket("bucket1", opts=ResourceOptions(provider=provider,
|
|
depends_on=[provider],
|
|
protect=True,
|
|
ignore_changes=[
|
|
"bucket",
|
|
"lifecycleRules[0]",
|
|
]))
|