Microsoft Bicep · Schema

Microsoft Bicep Template Spec

An Azure Template Spec resource that stores reusable Bicep/ARM templates as Azure resources. Template Specs provide versioning, sharing, and access control for infrastructure as code templates compiled from Bicep.

ArmTemplatesAzureCloudDeploymentDevOpsInfrastructure as Code

Properties

Name Type Description
id string The fully qualified Azure resource ID of the Template Spec
name string Name of the Template Spec
type string The resource type
location string The Azure location of the Template Spec. Cannot be changed after creation.
tags object Resource tags
systemData object
properties object
View JSON Schema on GitHub

JSON Schema

microsoft-bicep-template-spec-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://management.azure.com/schemas/microsoft-bicep/template-spec.json",
  "title": "Microsoft Bicep Template Spec",
  "description": "An Azure Template Spec resource that stores reusable Bicep/ARM templates as Azure resources. Template Specs provide versioning, sharing, and access control for infrastructure as code templates compiled from Bicep.",
  "type": "object",
  "required": ["location"],
  "properties": {
    "id": {
      "type": "string",
      "readOnly": true,
      "description": "The fully qualified Azure resource ID of the Template Spec"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 90,
      "pattern": "^[-\\w\\.\\_\\(\\)]+$",
      "description": "Name of the Template Spec"
    },
    "type": {
      "type": "string",
      "const": "Microsoft.Resources/templateSpecs",
      "description": "The resource type"
    },
    "location": {
      "type": "string",
      "description": "The Azure location of the Template Spec. Cannot be changed after creation."
    },
    "tags": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "Resource tags"
    },
    "systemData": {
      "$ref": "#/$defs/SystemData"
    },
    "properties": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "maxLength": 4096,
          "description": "Template Spec description"
        },
        "displayName": {
          "type": "string",
          "maxLength": 64,
          "description": "Template Spec display name"
        },
        "metadata": {
          "type": "object",
          "description": "The Template Spec metadata, typically a collection of key-value pairs"
        },
        "versions": {
          "type": "object",
          "readOnly": true,
          "additionalProperties": {
            "$ref": "#/$defs/TemplateSpecVersionInfo"
          },
          "description": "High-level information about the versions within this Template Spec"
        }
      }
    }
  },
  "$defs": {
    "TemplateSpecVersionInfo": {
      "type": "object",
      "description": "High-level information about a Template Spec version",
      "properties": {
        "description": {
          "type": "string",
          "description": "Template Spec version description"
        },
        "timeCreated": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "description": "The timestamp of when the version was created"
        },
        "timeModified": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "description": "The timestamp of when the version was last modified"
        }
      }
    },
    "TemplateSpecVersion": {
      "type": "object",
      "required": ["location", "properties"],
      "description": "A specific version of a Template Spec containing the compiled template content",
      "properties": {
        "id": {
          "type": "string",
          "readOnly": true,
          "description": "The fully qualified Azure resource ID"
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Name of this version"
        },
        "type": {
          "type": "string",
          "const": "Microsoft.Resources/templateSpecs/versions",
          "description": "The resource type"
        },
        "location": {
          "type": "string",
          "description": "The Azure location of the Template Spec version"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Resource tags"
        },
        "systemData": {
          "$ref": "#/$defs/SystemData"
        },
        "properties": {
          "type": "object",
          "required": ["mainTemplate"],
          "properties": {
            "description": {
              "type": "string",
              "maxLength": 4096,
              "description": "Template Spec version description"
            },
            "mainTemplate": {
              "type": "object",
              "description": "The main ARM/Bicep compiled template content"
            },
            "linkedTemplates": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/LinkedTemplateArtifact"
              },
              "description": "Array of linked template artifacts"
            },
            "metadata": {
              "type": "object",
              "description": "Version metadata, typically a collection of key-value pairs"
            },
            "uiFormDefinition": {
              "type": "object",
              "description": "Azure portal UI form definition for customizing the deployment experience"
            }
          }
        }
      }
    },
    "LinkedTemplateArtifact": {
      "type": "object",
      "required": ["path", "template"],
      "description": "A linked template artifact within a Template Spec version",
      "properties": {
        "path": {
          "type": "string",
          "description": "A filesystem safe relative path of the artifact"
        },
        "template": {
          "type": "object",
          "description": "The compiled ARM/Bicep template content"
        }
      }
    },
    "SystemData": {
      "type": "object",
      "description": "Metadata pertaining to creation and last modification of the resource",
      "properties": {
        "createdBy": {
          "type": "string",
          "description": "The identity that created the resource"
        },
        "createdByType": {
          "type": "string",
          "enum": ["User", "Application", "ManagedIdentity", "Key"],
          "description": "The type of identity that created the resource"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "The timestamp of resource creation (UTC)"
        },
        "lastModifiedBy": {
          "type": "string",
          "description": "The identity that last modified the resource"
        },
        "lastModifiedByType": {
          "type": "string",
          "enum": ["User", "Application", "ManagedIdentity", "Key"],
          "description": "The type of identity that last modified the resource"
        },
        "lastModifiedAt": {
          "type": "string",
          "format": "date-time",
          "description": "The timestamp of resource last modification (UTC)"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/microsoft-bicep-template-spec"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.