Skip to content

`ProvisioningStateMustBeReadOnly` lintdiff violation in TypeSpec for ARM Service

When trying to check in an ARM specification to the azure-rest-api-specs repository, your specification shows violations of the ProvisioningStateMustBeReadOnly lintdiff check.

Symptoms

In the Swagger LintDiff or Swagger(RPaaS) LintDiff checks, your specification shows one or more violations of the ProvisioningStateMustBeReadOnly lintdiff check.

Cause

The LintDiff swagger scripts use an old validation mechanism that does not detect readOnly properties, but requires the type schema referenced by the properties to be readOnly instead.

Workaround

Until this validation is fixed, you can configure the @azure-tools/typespec-autorest emitter in tspConfig.yaml to always output any ProvisioningState schema as readOnly, using the read-only-status-schema option. This resolves the LintDiff violation. Note that if you use the scaffolding template for ARM, this configuration is enabled automatically.

tspconfig.yaml
emit:
- "@azure-tools/typespec-autorest"
options:
"@azure-tools/typespec-autorest":
use-read-only-status-schema: true