Chapter 4 of 6
Decisions and stop conditions#
Resolve every __REQUIRED_*__ value. Replace the quoted capacity and minimumUnusedQuotaPercent placeholders, including their quotation marks, with JSON integers.
For each deployment, record:
- the external approval ID and exact model name, version, and format;
- deployment name, SKU, capacity, and named Responsible AI policy;
global,data-zone:us,data-zone:eu,data-zone:apac, orregion:<azure-region>processing;- review date and minimum unused quota percentage.
Keep versionUpgradeOption: NoAutoUpgrade. A version change needs a new external decision and an updated profile.
| Processing requirement | Supported SKU family in this path |
|---|---|
| Global | GlobalStandard, GlobalProvisionedManaged, GlobalBatch |
| US, EU, or APAC data zone | DataZoneStandard, DataZoneProvisionedManaged, DataZoneBatch |
| Regional | Standard, ProvisionedManaged, where the model supports it |
DeveloperTier is excluded. It expires after 24 hours, has no SLA, and gives no data-residency guarantee.
Stop when the scope or operator role is wrong; the model is Deprecating, Deprecated, or Retired; the SKU has reached deprecation; or the review date reaches or follows a published deprecation date. Also stop when processing location does not match the SKU, capacity exceeds live bounds, projected unused quota falls below the approved percentage, the Responsible AI policy is missing, or what-if contains an unrelated resource, deletion, unsupported change, or unresolved value. Preflight maps quota through the SKU's live usageName and credits existing capacity only when the current deployment resolves to that same metric.
Azure may omit lifecycleStatus, quota usageName, or stable data-zone membership. Preflight stops and names the required Microsoft source or Foundry Quota check. Complete that check, then rerun with the matching PowerShell switch or Bash flag:
| Manual check | PowerShell | Bash |
|---|---|---|
| Data-zone membership | -ConfirmManualDataZone | --confirm-manual-data-zone |
| Lifecycle | -ConfirmManualLifecycle | --confirm-manual-lifecycle |
| Quota | -ConfirmManualQuota | --confirm-manual-quota |
These switches record the operator's check for that run. They do not turn missing CLI data into an Azure-validated result.
Approval register and policy#
Complete one approval-register entry for each model before assigning policy. Use an asset ID ending in a trailing slash to approve a model family, or an explicit version to approve one version. Preflight rejects an asset ID that could match a successor version.
Deploy the two built-in policies in Audit, review the owners of noncompliant deployments, then move to Deny through the approved change path. Keep onlyAllowDirectFromAzure and denyPreviewModels set to true unless the decision authority records an exception.