Skip to content

Align Plugin Framework provider block cardinality with SDKv2 - #18607

Open
pose wants to merge 1 commit into
GoogleCloudPlatform:mainfrom
pose:fwprovider-block-cardinality
Open

Align Plugin Framework provider block cardinality with SDKv2#18607
pose wants to merge 1 commit into
GoogleCloudPlatform:mainfrom
pose:fwprovider-block-cardinality

Conversation

@pose

@pose pose commented Aug 12, 2026

Copy link
Copy Markdown

The SDKv2 provider schema declares external_credentials and batching with MaxItems: 1. The duplicated Plugin Framework schema declares both as plain ListNestedBlock with no size validator, so the two halves of the muxed provider disagree on cardinality.

Adds listvalidator.SizeAtMost(1) to both blocks.

Note for reviewers: listvalidator.SizeAtMost(1) is deliberate rather than incidental. Downstream consumers (for example the Pulumi Terraform bridge) recover a Plugin Framework block's MaxItems by matching the validator's description string, list must contain at most 1 elements. An equivalent hand-rolled validator would satisfy Terraform but leave the constraint undetectable downstream.

Related: hashicorp/terraform-provider-google#19643 tracks the same class of SDKv2-vs-Plugin-Framework provider schema divergence for string validation.

Release Note Template for Downstream PRs (will be copied)

provider: added validation to reject more than one `external_credentials` or `batching` block, matching the existing SDK behavior

The SDKv2 provider schema declares external_credentials and batching with
MaxItems: 1. The duplicated Plugin Framework schema constrains neither, so
the two halves of the muxed provider disagree on cardinality.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@modular-magician modular-magician added the awaiting-approval Pull requests that need reviewer's approval to run presubmit tests label Aug 12, 2026
@google-cla

google-cla Bot commented Aug 12, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@github-actions
github-actions Bot requested a review from ScottSuarez August 12, 2026 10:53
@github-actions

Copy link
Copy Markdown

Googlers: For automatic test runs see go/terraform-auto-test-runs.

@ScottSuarez, a repository maintainer, has been assigned to review your changes. If you have not received review feedback within 2 business days, please leave a comment on this PR asking them to take a look.

You can help make sure that review is quick by doing a self-review and by running impacted tests locally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-approval Pull requests that need reviewer's approval to run presubmit tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants