@@ -19,11 +19,13 @@ This directory is intended to be governed via CODEOWNERS to ensure proper govern
1919## Lease File Structure
2020
2121Each lease must be placed in the following directory structure:
22+
2223```
2324.github/arm-leases/<orgName>/<rpNamespace>/[<serviceName> (optional)]/lease.yaml
2425```
2526
2627### Path Requirements:
28+
2729- ` <orgName> ` : lowercase alphanumeric only (e.g., testservice, widgetservice)
2830- ` <rpNamespace> ` : alphanumeric with dots, case-sensitive (e.g., Microsoft.TestRP, Azure.Widget)
2931- ` <serviceName> ` : (optional) customer-facing service name within an RP (e.g., DiskRP, ComputeRP). Must not start with "stable" or "preview"
@@ -34,10 +36,10 @@ The `lease.yaml` file must follow this format:
3436
3537``` yaml
3638lease :
37- resource-provider : Microsoft.TestRP # Must match the rpNamespace folder name
38- startdate : 2026-01-07 # ISO 8601 format (YYYY-MM-DD)
39- duration : P180D # ISO 8601 duration (max 180 days, e.g., P180D, P90D, P5M)
40- reviewer : " @evanhissey" # GitHub alias of the approving reviewer
39+ resource-provider : Microsoft.TestRP # Must match the rpNamespace folder name
40+ startdate : 2026-01-07 # ISO 8601 format (YYYY-MM-DD)
41+ duration : P180D # ISO 8601 duration (max 180 days, e.g., P180D, P90D, P5M)
42+ reviewer : " @evanhissey" # GitHub alias of the approving reviewer
4143` ` `
4244
4345### Copy-Paste Template
@@ -50,32 +52,36 @@ lease:
5052 startdate: <YYYY-MM-DD>
5153 duration: P180D
5254 reviewer: "@your-github-alias"
53-
5455` ` `
5556
5657# # Validation Rules
5758
5859All lease files are automatically validated with the following requirements :
5960
6061# ## 1. File Location
62+
6163- Only `lease.yaml` files are allowed in the `.github/arm-leases/` directory
6264- Must follow the folder structure : ` <orgName>/<rpNamespace>/[<serviceName> (optional)]/lease.yaml`
6365
6466# ## 2. Resource Provider Name
67+
6568- Must match the `<rpNamespace>` folder name exactly
6669- Example : If folder is `Microsoft.TestRP`, then `resource-provider` must be `Microsoft.TestRP`
6770
6871# ## 3. Start Date
72+
6973- Must be in ISO 8601 format : ` YYYY-MM-DD`
7074- Must be a valid calendar date
7175
7276# ## 4. Duration
77+
7378- Required field that cannot be empty
7479- Must be a valid ISO 8601 duration (e.g., `P180D`, `P90D`, `P5M`)
7580- **Maximum duration is 180 days**
7681- Supports day-based (`P90D`), month-based (`P5M`), and combined formats
7782
7883# ## 5. Reviewer
84+
7985- Required field that cannot be empty
8086- Must be a GitHub alias starting with `@` (e.g., `@githubUsername`)
8187
@@ -89,4 +95,3 @@ If your PR check **"ARM Lease Validation"** is failing, review the error message
8995- **Invalid duration**: Use a valid ISO 8601 duration that does not exceed 180 days (e.g., `P180D`, `P90D`, `P5M`)
9096- **Missing or empty fields**: All fields (`resource-provider`, `startdate`, `duration`, `reviewer`) are required
9197- **Disallowed files**: Only `lease.yaml` and `README.md` files are permitted in `.github/arm-leases/`
92-
0 commit comments