Metadata and Policy Default Values
Learn about the metadata file and how the policy_default_values are used.
Table of Contents
Overview
The previous pages covered the core Azure assets in the library, and the various contructs - archetypes, overrides and architectures - that are used to collate those and use against a management group structure designed for governance.
This page will cover the remaining files in the library which are located in the root of the library structure:
- alz_library_metadata.json: Metadata for library management - name, description, path and any dependencies on other libraries.
- alz_policy_defaults_values.json: Enables a map of values to be defined and used across multiple policy assignments.
Metadata
There needs to be a single metadata file per library.
| Folder | |
| Filename | alz_library_metadata.json |
| Formats | JSON only |
| Examples | Azure Landing Zone library |
| Sovereign Landing Zone library | |
| Example Sovereign Landing Zone country pack | |
| Documentation | Metadata |
Azure/Azure-Landing-Zones-Library/blob/main/schemas/library_metadata.json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"display_name": {
"type": "string"
},
"description": {
"type": "string"
},
"dependencies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"ref": {
"type": "string"
},
"custom_url": {
"type": "string"
}
}
}
}
},
"required": [
"name",
"display_name",
"description"
]
}
Metadata example #1: alz
This is the default metadata file for Azure Landing Zone.
{
"$schema": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/library_metadata.json",
"name": "ALZ",
"display_name": "Azure Landing Zones",
"description": "This library provides the reference set of Azure Landing Zones (ALZ) policies, archetypes, and management group architecture.",
"path": "platform/alz"
}
- The path in the repo is
platform/alz - There are no dependencies.
Metadata example #2: alz_custom
This is the default metadata file for a local library in ./lib when stacked on top of the main Azure Landing Zone library.
{
"$schema": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/library_metadata.json",
"name": "local",
"display_name": "ALZ Accelerator - Azure Verified Modules for ALZ Platform Landing Zone",
"description": "This library allows overriding policies, archetypes, and management group architecture in the ALZ Accelerator.",
"dependencies": [
{
"path": "platform/alz",
"ref": "2026.01.0"
}
]
}
- There is a dependency on the
platform/alz/2026.01.0release.
Metadata example #3: slz
This is the default metadata file for Sovereign Landing Zone. This library is essentially a custom platform library stacked on top of the main Azure Landing Zone Library.
{
"$schema": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/library_metadata.json",
"name": "SLZ",
"display_name": "Sovereign Landing Zone",
"description": "This library provides the reference set of Sovereign Landing Zone (SLZ) policies, archetypes, and management group architecture.",
"path": "platform/slz",
"dependencies": [
{
"path": "platform/alz",
"ref": "2026.01.0"
}
]
}
- The path in the repo is
platform/slz - The Sovereign Landing Zone library is dependent on the
platform/alz/2026.01.0release.
Metadata example #4: slz_custom
This is the default metadata file for the local library in ./lib when stacked on top of the Sovereign Landing Zone library.
{
"$schema": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/library_metadata.json",
"name": "local",
"display_name": "ALZ Accelerator - Azure Verified Modules for SLZ Platform Landing Zone",
"description": "This library allows overriding policies, archetypes, and management group architecture in the ALZ Accelerator.",
"dependencies": [
{
"path": "platform/slz",
"ref": "2026.01.0"
}
]
}
- There is a dependency on the
platform/slz/2025.10.1Sovereign Landing Zone library release. - Remember that this is the one above, and therefore the dependency is recursively chained.
- The full dependency chain is therefore
./lib>platform/slz/2025.10.1>platform/alz/2026.01.0.
Policy Default Values
There can be an optional Policy Default Values file per library.
| Folder | |
| Filename | alz_policy_default_values.json |
| Formats | JSON or YAML |
| Examples | Azure Landing Zone library |
| Sovereign Landing Zone library | |
| Example Sovereign Landing Zone country pack | |
| Documentation | Policy Assignment Default Values |
Azure/Azure-Landing-Zones-Library/blob/main/schemas/default_policy_values.json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"defaults": {
"items": {
"properties": {
"default_name": {
"type": "string"
},
"description": {
"type": "string"
},
"policy_assignments": {
"items": {
"properties": {
"parameter_names": {
"items": {
"type": "string"
},
"type": "array"
},
"policy_assignment_name": {
"type": "string"
}
},
"required": [
"policy_assignment_name",
"parameter_names"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"default_name",
"policy_assignments"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"defaults"
],
"type": "object"
}
Metadata example #1: slz
This is the default_policy_values file for the Sovereign Landing Zone.
{
"$schema": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/default_policy_values.json",
"defaults": [
{
"default_name": "allowed_locations",
"description": "Allowed Azure locations for Sovereign Landing Zone policies",
"policy_assignments": [
{
"parameter_names": [
"listOfAllowedLocations"
],
"policy_assignment_name": "Enforce-Sovereign-Conf"
},
{
"parameter_names": [
"listOfAllowedLocations"
],
"policy_assignment_name": "Enforce-Sovereign-Global"
}
]
}
]
}
- The allowed_locations can be defined in the module’s policy_default_values map
- It will be be consistently applied to multiple policy assignments.
- Additional policy_default_values are pulled through from the dependencies, i.e. alz’s alz_policy_default_values.json.
Metadata example #2: nl_slz
This is the metadata file for the example country pack. It relies on the alz provider having `library_overwrite_enabled = true'.
{
"$schema": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/default_policy_values.json",
"defaults": [
{
"default_name": "allowed_locations",
"description": "Allowed Azure locations for Sovereign Landing Zone policies",
"policy_assignments": [
{
"parameter_names": [
"listOfAllowedLocations"
],
"policy_assignment_name": "Enforce-Sovereign-Conf"
},
{
"parameter_names": [
"listOfAllowedLocations"
],
"policy_assignment_name": "Enforce-Sovereign-Global"
},
{
"parameter_names": [
"allowedLocations"
],
"policy_assignment_name": "Deny-NL-Global"
}
]
}
]
}
- The alz provider defines the defaults using the default_name as the key for a map.
- If a duplicate is found then the last occurrence wins.
- Here the local library’s metadata has dependencies on both the slz and the example nl_bio country pack.
- The nl_bio definition is the last occurrence as it is later in the array.
- The same applies to library definitions overwriting those in the dependent arrays.