Shared Terraform-Plugin-Framework runtime for the Microsoft admin providers — Exchange Online, Purview and Teams. Factors out the parts every one of these providers needs so each provider repo only carries its own resources.
go get github.com/terraprovider/tf-msadminA provider embeds authschema.Model in its config struct, merges
authschema.Attributes() into its schema, and calls Model.Config() to get a
resolved authx.Config. The surface is
aligned field-for-field with the hashicorp/azuread and azurerm providers
(same attribute names, ARM_*/AZURE_* env fallbacks, every OIDC/workload-identity
flavour), so operators configure them all identically.
The admin APIs are eventually consistent and sometimes normalise written values,
so a read-back right after a create/update can disagree with what was configured
— which Terraform rejects as an inconsistent result. KeepStr/KeepSet/… keep a
configured (known) value authoritative while letting computed attributes take the
freshly-read value. ReflectsFields builds the predicate used to wait out
write-propagation lag.
LoadUntil wraps consistency: it
retries a read until the resource is visible (rides out post-create lag) and,
after an update, until it reflects the written values — returning the last-seen
value rather than dropping the resource when it is present but not yet reflected.
MIT — see LICENSE. Not affiliated with or endorsed by Microsoft.