Hello Mikael Karlgren,
Welcome to the Microsoft Q&A and thank you for posting your questions here.
I understand that you would like finding & fixing Azure resource using Azure SQL Database 2014-04-01 APIs.
To begin, confirm the official retirement advisory and extended deadline now set for June 30 2026 using Microsoft’s announcement notice and the updated [Azure SQL Database REST API documentation - https://free.blessedness.top/en-us/rest/api/sql/
What you need to do next, perform a full inventory of your Infrastructure-as-Code assets. Search all local and remote repositories for "2014-04-01" using standard code search (for example,
grep -RIn --exclude-dir=.git '2014-04-01'
Follow this by scanning Azure Template Specs through the CLI:
az ts show --name <templateSpecName> --resource-group <rg> --query "properties.template" -o json | jq '..|strings|select(test("2014-04-01"))'
to confirm that no template stored in Azure still references the old API version. Then, run a tenant-wide Azure Resource Graph query to identify live resources deployed with that version:
az graph query -q "Resources | where tostring(apiVersion) contains '2014-04-01' | project subscriptionId, resourceGroup, name, type, apiVersion"
If this returns zero results, continue by inspecting deployment history using az deployment sub list or az deployment group list to catch any archived templates referencing the string.
Extend your verification to Azure Policy and Custom Role Definitions, since these can embed old API calls by using:
az policy definition list --query "[?contains(to_string(policyRule),'2014-04-01')]"
az role definition list --query "[?contains(to_string(permissions),'2014-04-01')]"
- https://free.blessedness.top/en-us/cli/azure/policy/definition and
- https://free.blessedness.top/en-us/cli/azure/role/definition for details
Now, you will need to audit Automation Runbooks, Logic Apps, or DevOps pipelines by searching script content for REST endpoints using the retired API version. For an example:
az automation runbook show-content -g <rg> --automation-account-name <acct> --name <runbookName> | grep '2014-04-01'
Then review Activity Logs or Log Analytics for calls containing api-version=2014-04-01 to ensure no background automation is still using it. When outdated usage is confirmed, replace "apiVersion": "2014-04-01" with a supported version such as "2023-08-01", based on the latest Azure SQL REST API versions on https://free.blessedness.top/en-us/rest/api/sql/
So, adjust resource schemas to align with property changes like auditingPolicies becoming auditingSettings or state changing to status in Transparent Data Encryption and validate templates through:
az deployment group validate -g <rg> -f <template.json> --parameters @params.json
For SDKs, migrate from Microsoft.Azure.Management.Sql to the new Azure.ResourceManager.Sql library for compatibility check the Azure SDK migration guide on https://free.blessedness.top/en-us/dotnet/azure/migrate-from-track1-to-track2
If all checks return negative (no references found), it likely indicates that the notice originated from Microsoft-managed dependencies, meaning no customer action is required. You may optionally unregister the provider to suppress further alerts, though only if you do not use SQL services:
az provider unregister --namespace Microsoft.Sql
as documented in https://free.blessedness.top/en-us/azure/azure-resource-manager/management/resource-providers-and-types
If you could follow these end-to-end steps above, I trust your environment is fully compliant with the upcoming retirement, your templates will align with current REST API standards, and any risk of deployment disruption is eliminated.
I hope this is helpful! Do not hesitate to let me know if you have any other questions or clarifications.
Please don't forget to close up the thread here by upvoting and accept it as an answer if it is helpful.