1 | ID: SFR1 - Category: Composition - Preview Services | | NA if no preview services are used |
2 | ID: SFR2 - Category: Composition - WAF Aligned | | Ensure only high priority reliability & security recommendations are implemented if any |
3 | ID: SFR3 - Category: Telemetry - Deployment/Usage Telemetry | | |
4 | ID: SFR4 - Category: Telemetry - Telemetry Enablement Flexibility | Yes | Yes if AVM Template Repo has been used |
5 | ID: SFR5 - Category: Composition - Availability Zones | | |
6 | ID: SFR6 - Category: Composition - Data Redundancy | | |
7 | ID: SNFR25 - Category: Composition - Resource Naming | | |
8 | ID: SNFR1 - Category: Testing - Prescribed Tests | Yes | Yes if all e2e test, version-check & linting checks passed |
9 | ID: SNFR2 - Category: Testing - E2E Testing | Yes | Yes if e2e tests passed |
10 | ID: SNFR3 - Category: Testing - AVM Compliance Tests | Yes | Yes if all e2e test, version-check & linting checks passed |
11 | ID: SNFR4 - Category: Testing - Unit Tests | | NA if no tests created in tests folder |
12 | ID: SNFR5 - Category: Testing - Upgrade Tests | NA | Module Owner to action this spec post-publish as appropriate |
13 | ID: SNFR6 - Category: Testing - Static Analysis/Linting Tests | Yes | Yes if all linting checks passed |
14 | ID: SNFR7 - Category: Testing - Idempotency Tests | Yes | Yes if e2e tests passed |
15 | ID: SNFR24 - Category: Testing - Testing Child, Extension & Interface Resources | Yes | Yes if e2e tests passed |
16 | ID: SNFR8 - Category: Contribution/Support - Module Owner(s) GitHub | | |
17 | ID: SNFR20 - Category: Contribution/Support - GitHub Teams Only | | |
18 | ID: SNFR9 - Category: Contribution/Support - AVM & PG Teams GitHub Repo Permissions | | |
19 | ID: SNFR10 - Category: Contribution/Support - MIT Licensing | Yes | Yes if AVM Template Repo has been used |
20 | ID: SNFR11 - Category: Contribution/Support - Issues Response Times | NA | Module Owner to action this spec post-publish as appropriate |
21 | ID: SNFR12 - Category: Contribution/Support - Versions Supported | NA | Module Owner to action this spec post-publish as appropriate |
22 | ID: SNFR23 - Category: Contribution/Support - GitHub Repo Labels | | |
23 | ID: SNFR14 - Category: Inputs - Data Types | | |
24 | ID: SNFR22 - Category: Inputs - Parameters/Variables for Resource IDs | | |
25 | ID: SNFR15 - Category: Documentation - Automatic Documentation Generation | Yes | Yes if linting / docs check passed |
26 | ID: SNFR16 - Category: Documentation - Examples/E2E | Yes | Yes if e2e tests passed |
27 | ID: SNFR17 - Category: Release - Semantic Versioning | Yes | Yes if version-check check passed |
28 | ID: SNFR18 - Category: Release - Breaking Changes | NA | Module Owner to action this spec post-publish as appropriate |
29 | ID: SNFR19 - Category: Publishing - Registries Targeted | NA | Module Owner to action this spec post-publish as appropriate |
30 | ID: SNFR21 - Category: Publishing - Cross Language Collaboration | NA | Module Owner to action this spec post-publish as appropriate |
31 | ID: RMFR1 - Category: Composition - Single Resource Only | | |
32 | ID: RMFR2 - Category: Composition - No Resource Wrapper Modules | | |
33 | ID: RMFR3 - Category: Composition - Resource Groups | | |
34 | ID: RMFR4 - Category: Composition - AVM Consistent Feature & Extension Resources Value Add | Yes | Yes if linting / terraform check passed |
35 | ID: RMFR5 - Category: Composition - AVM Consistent Feature & Extension Resources Value Add Interfaces/Schemas | Yes | Yes if linting / terraform check passed |
36 | ID: RMFR8 - Category: Composition - Dependency on child and other resources | | |
37 | ID: RMFR6 - Category: Inputs - Parameter/Variable Naming | | |
38 | ID: RMFR7 - Category: Outputs - Minimum Required Outputs | Yes | Yes if linting / terraform check passed |
39 | ID: RMNFR1 - Category: Naming - Module Naming | | |
40 | ID: RMNFR2 - Category: Inputs - Parameter/Variable Naming | | |
41 | ID: RMNFR3 - Category: Composition - RP Collaboration | NA | Module Owner to action this spec post-publish as appropriate |
42 | ID: PMFR1 - Category: Composition - Resource Group Creation | | NA if this is not a pattern module |
43 | ID: PMNFR1 - Category: Naming - Module Naming | | NA if this is not a pattern module |
44 | ID: PMNFR2 - Category: Composition - Use Resource Modules to Build a Pattern Module | | NA if this is not a pattern module |
45 | ID: PMNFR3 - Category: Composition - Use other Pattern Modules to Build a Pattern Module | | NA if this is not a pattern module |
46 | ID: PMNFR4 - Category: Hygiene - Missing Resource Module(s) | | NA if this is not a pattern module |
47 | ID: PMNFR5 - Category: Inputs - Parameter/Variable Naming | | NA if this is not a pattern module |
48 | ID: TFFR1 - Category: Composition - Cross-Referencing Modules | | |
49 | ID: TFFR2 - Category: Outputs - Additional Terraform Outputs | Yes | Yes if linting / terraform check passed |
50 | ID: TFNFR1 - Category: Documentation - Descriptions | | |
51 | ID: TFNFR2 - Category: Documentation - Module Documentation Generation | Yes | Yes if linting / docs check passed |
52 | ID: TFNFR3 - Category: Contribution/Support - GitHub Repo Branch Protection | Yes | Yes if AVM Template Repo has been used |
53 | ID: TFNFR4 - Category: Composition - Code Styling - lower snake_casing | Yes | Yes if linting / terraform check passed |
54 | ID: TFNFR5 - Category: Testing - Test Tooling | Yes | Yes if linting / terraform check passed |
55 | ID: TFNFR6 - Category: Code Style - Resource & Data Order | | |
56 | ID: TFNFR7 - Category: Code Style - count & for_each Use | | |
57 | ID: TFNFR8 - Category: Code Style - Resource & Data Block Orders | Yes | Yes if linting / avmfix check passed |
58 | ID: TFNFR9 - Category: Code Style - Module Block Order | | |
59 | ID: TFNFR10 - Category: Code Style - No Double Quotes in ignore_changes | | |
60 | ID: TFNFR11 - Category: Code Style - Null Comparison Toggle | | |
61 | ID: TFNFR12 - Category: Code Style - Dynamic for Optional Nested Objects | | |
62 | ID: TFNFR13 - Category: Code Style - Default Values with coalesce/try | | |
63 | ID: TFNFR14 - Category: Inputs - Not allowed variables | | |
64 | ID: TFNFR15 - Category: Code Style - Variable Definition Order | Yes | Yes if linting / avmfix check passed |
65 | ID: TFNFR16 - Category: Code Style - Variable Naming Rules | Yes | Yes if linting / terraform check passed |
66 | ID: TFNFR17 - Category: Code Style - Variables with Descriptions | Yes | Yes if linting / terraform check passed |
67 | ID: TFNFR18 - Category: Code Style - Variables with Types | Yes | Yes if linting / terraform check passed |
68 | ID: TFNFR19 - Category: Code Style - Sensitive Data Variables | | |
69 | ID: TFNFR20 - Category: Code Style - Non-Nullable Defaults for collection values | | |
70 | ID: TFNFR21 - Category: Code Style - Discourage Nullability by Default | Yes | Yes if linting / avmfix check passed |
71 | ID: TFNFR22 - Category: Code Style - Avoid sensitive = false | Yes | Yes if linting / avmfix check passed |
72 | ID: TFNFR23 - Category: Code Style - Sensitive Default Value Conditions | Yes | Yes if linting / terraform check passed |
73 | ID: TFNFR24 - Category: Code Style - Handling Deprecated Variables | NA | Module Owner to action this spec post-publish as appropriate |
74 | ID: TFNFR25 - Category: Code Style - Verified Modules Requirements | Yes | Yes if linting / terraform check passed |
75 | ID: TFNFR26 - Category: Code Style - Providers in required_providers | Yes | Yes if linting / terraform check passed |
76 | ID: TFNFR27 - Category: Code Style - Provider Declarations in Modules | Yes | Yes if linting / terraform check passed |
77 | ID: TFNFR29 - Category: Code Style - Sensitive Data Outputs | Yes | Yes if linting / avmfix check passed |
78 | ID: TFNFR30 - Category: Code Style - Handling Deprecated Outputs | NA | Module Owner to action this spec post-publish as appropriate |
79 | ID: TFNFR31 - Category: Code Style - locals.tf for Locals Only | | |
80 | ID: TFNFR32 - Category: Code Style - Alphabetical Local Arrangement | Yes | Yes if linting / avmfix check passed |
81 | ID: TFNFR33 - Category: Code Style - Precise Local Types | | |
82 | ID: TFNFR34 - Category: Code Style - Using Feature Toggles | NA | Module Owner to action this spec post-publish as appropriate |
83 | ID: TFNFR35 - Category: Code Style - Reviewing Potential Breaking Changes | NA | Module Owner to action this spec post-publish as appropriate |
84 | ID: TFNFR36 - Category: Code Style - Setting prevent_deletion_if_contains_resources | | |
85 | ID: TFNFR37 - Category: Code Style - Tool Usage by Module Owner | | |