You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
all: Add support for write-only attributes (#1375)
* Update `terraform-plugin-go` dependency
* Add `WriteOnly` attribute to schema and internal schema validation.
* Add `WriteOnly` validation for data source, provider, and provider meta schemas.
* Add WriteOnly capabilities validation to `ValidateResourceTypeConfig` RPC
* Skip value validation for `Required` + `WriteOnly` attributes.
* Fix intermittent test failures for `hasWriteOnly()`
* Validate non-null values for `Required` and `WriteOnly` attributes in `PlanResourceChange()`
* Add initial implementation for `PreferWriteOnlyAttribute()` validator
* Finish `PreferWriteOnlyAttribute()` validator implementation.
* Move `schema.ValidateResourceConfigFuncs` to `schema.Resource` and implement validation in `ValidateResourceTypeConfig()` RPC
* Add automatic state handling for writeOnly attributes
* Apply suggestions from code review
Co-authored-by: Austin Valle <[email protected]>
* Wrap `setWriteOnlyNullValues` call in client capabilities check
* Refactor tests to match diag summary changes
* Move write-only helper functions and tests to their own files.
* Refactor test attribute names for clarity
* Refactor `validateWriteOnlyNullValues()` to build an attribute path.`
* Refactor `validateWriteOnlyRequiredValues()` to build an attribute path.`
* Refactor field and function names based on PR feedback.
* Add clarifying comments.
* Add internal validation preventing data sources from defining `ValidateRawResourceConfigFuncs`
* Change `writeOnlyAttributeName` parameter to use `cty.Path`
* Simplify validation condition logic
* run `go mod tidy`
* update `terraform-plugin-go` dependency
* Add write-only support to `ProtoToConfigSchema()`
* Nullify write-only attributes during Plan and Apply regardless of client capability
* Introduce `(*ResourceData).GetRawWriteOnly()` and `(*ResourceData).GetWriteOnly()` for retrieving write-only values during apply
* Revert "Introduce `(*ResourceData).GetRawWriteOnly()` and `(*ResourceData).GetWriteOnly()` for retrieving write-only values during apply"
This reverts commit 1479d62.
* Introduce `(*ResourceData).GetRawConfigAt()` helper method for retrieving write-only attributes during apply.
* null out write-only values
* Return `diag.Diagnostics` instead of error for `(*ResourceData).GetRawConfigAt()`
* Update `terraform-plugin-go` dependency
* Add additional tests for automatic write-only value nullification
* Resolve linting errors and add copyright headers
* Remove "incorrect" test case
* Use `cty.DynamicVal` as default value for `GetRawConfigAt()`
* Throw validation error for computed blocks with write-only attributes
* add `GetRawConfigAt` to `ResourceDiff` for usage in `CustomizeDiff` functions
* unit tests for `ResourceDiff`
* Add validation error for `WriteOnly` and `ForceNew`
* Add write-only value nullification to `ImportResourceState` and `UpgradeResourceState` RPCs
* Move `Required` + `WriteOnly` attribute validation to `ValidateResourceTypeConfig` RPC
* Add website documentation
* Add changelog entries
* Update `terraform-plugin-go` dependency to `v0.24.0`
* Replace fully qualified links with relative links in website documentation
* Add more test cases for `GetRawConfigAt()`
* Add link to ephemeral resource documentation
* Apply suggestions from code review
Co-authored-by: Austin Valle <[email protected]>
* Apply suggestions from code review
Co-authored-by: Austin Valle <[email protected]>
* Fix write-only attribute error assertions
* Prevent `WriteOnly` from being used with `Default` and `DefaultFunc`.
* Update error messaging
* Add null value test case
* Rename "write-only attributes" to "write-only arguments" in website documentation
* Add configuration examples to `cty.Path` documentation
* Add changelog entry for `ValidateRawResourceConfigFuncs`
---------
Co-authored-by: Austin Valle <[email protected]>
body: 'schema/resource: Added `ValidateRawResourceConfigFuncs` field which allows resources to define validation logic during the `ValidateResourceTypeConfig` RPC.'
0 commit comments