16

We are authoring Azure Resource Manager templates. We are using the following deployment template schema, because it is the one that we saw in an example.

http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#

It is from early 2014. Where can we find a list of more recent schema versions?

We have looked at the list of resource Manager providers, regions, API versions and schemas. It references a schema for each provider not for the entire template.

When we do find a list of more recent schema, how do we evaluate which deployment template schema to use? Is more recent better?

Shaun Luttin
  • 133,272
  • 81
  • 405
  • 467

4 Answers4

22

Here is our current hack:

  1. Go to https://github.com/Azure/azure-resource-manager-schemas
  2. Press t to enter the [GitHub File Finder][3].
  3. Type DeploymentTemplate.

Voila. We have a list of deployment template schema, which displays two API versions.

GitHub File Finder Results

Shaun Luttin
  • 133,272
  • 81
  • 405
  • 467
11

More recent is better. But in general you should be able to stick with the top level schema of:

http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#

That will pull in the proper version of all the child schemas. We update the child schemas so all your existing templates don't have to be updated. Multiple API versions are supported in the child schemas to support "backward compat".

If you do peruse GH, look at the readme.md (that tells you what to test and therefore what's in use) and the file you want to watch is:

https://github.com/Azure/azure-resource-manager-schemas/blob/master/schemas/2015-01-01/deploymentTemplate.json

As that's the top level schema file.

bmoore-msft
  • 8,376
  • 20
  • 22
  • the only downside is that using this "old" schema leads to lots of warnings from the ARM TTK (lint testing) as well as Bicep complaining if you use APIs that haven't had a new version pushed in a while. – dragon788 Feb 08 '22 at 23:13
1

Still no official list in 2020, until we found one, here's the current root schemas for quick reference

Resource group:

Subscription:

Management Group:

Tenant:

This will definitely be outdated in the future, this is sourced from here so be sure to check too if you want the latest. Feel free to update the list in the future.

Louie Almeda
  • 5,366
  • 30
  • 38
  • please see my comment at https://stackoverflow.com/a/62791919/455201 maybe it helps you. – morwed Jul 08 '20 at 09:43
  • 1
    I believe the question was asking for the list of the root template schemas instead of the list of API versions for each resource @morwed – Louie Almeda Jul 13 '20 at 09:49
  • hey Louie, yes, i've understood same thing. on that link there are the root schemas + latest versions, among all other schemas. i agree that's too much and not clear + easy to follow, but is an official alternative. maybe helps someone like me, which searched for more than the latest version number. stay frosty :) – morwed Jul 13 '20 at 11:36
  • I can't seem to find any reference or list of the root schemas in the links you've provided, something that you will put in the $schema of the root template, I'm only seeing API versions of different resources. If you can point us at the specific page that contains the list, that would be wonderful :) @morwed – Louie Almeda Jul 14 '20 at 12:20
0

I was searching for same answer, found this question.

Sorry for all those who answered before, i wasn't satisfied with the proposed solutions. So i found another way, maybe this is suitable :)

At this page https://learn.microsoft.com/en-us/azure/templates/ you'll find on the left side a list of all types of resources that can be defined in an ARM template.

For each resource (e.g. CosmosDB) you'll find a link with All resources (e.g. https://learn.microsoft.com/en-us/azure/templates/microsoft.documentdb/allversions for CosmosDB) which lists all versions for that resource.

Hope it helps!

p.s.: also there's the link of Latest (e.g. for CosmosDB https://learn.microsoft.com/en-us/azure/templates/microsoft.documentdb/databaseaccounts) which gives the latest format of that resource ;)

morwed
  • 201
  • 1
  • 4
  • 10