scaleway/iam-policy v4.0.0
iam-policy bundled three independent concerns into one module: scaleway_iam_application, scaleway_iam_policy, and scaleway_iam_api_key. A repo-wide census found exactly two real consumers, and confirmed zero consumers use bucket_names/bucket_actions/admin_project_id -- that bucket-scoped policy feature (ADR-0066/ADR-0069) never had a second real caller.
This PR splits the bundle into three modules:
- New
iam-application: wrapsscaleway_iam_applicationonly. Inputsname(required),description(optional). Outputsid,name. - New
iam-api-key: wrapsscaleway_iam_api_keyonly. Inputsapplication_id(required),description(optional),expires_at(optional -- defaults to 30 days after the key is first created, anchored via atime_staticresource so the default doesn't drift on everyplan). Outputsaccess_key/secret_key(both sensitive). iam-policy, slimmed to policy-only: no longer creates an application or API key -- takes a new requiredapplication_idinput instead. Dropsbucket_names,bucket_actions,admin_project_id, andexpires_atentirely (none were used by any real consumer), along with theaccess_key/secret_keyoutputs. Gains a newidoutput for the policy itself.
This lets one iam-application be shared across several iam-policy calls instead of each policy call minting its own throwaway application -- the motivating use case is a shared pigeon-cli identity with multiple job policies attached to it.
Breaking for every iam-policy consumer: existing callers need to add an iam-application module call and pass its id as application_id, add a separate iam-api-key call to get a credential, and drop any bucket_names/bucket_actions/admin_project_id/expires_at arguments (moving expires_at to the new iam-api-key call if still needed).
See docs/adr/0119-decouple-scaleway-iam-application-api-key-rename-object-bucket.md for the full decision record (this PR covers the IAM-module half of that ADR).