Azure Verified Modules
Glossary GitHub GitHub Issues Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Last updated: 03 Jun 2024

Initial Review of Terraform Modules


The initial AVM module review is a critical step before an AVM terraform module gets published to the Terraform Registry and made publicly available for customers, partners and wider IaC community to consume and contribute to. It serves as a quality assurance step to ensure that the AVM terraform module complies with the shared and terraform specifications of AVM. The below process outlines the steps that both the module owner and module reviewer need to follow.

  1. The module owner completes the development of the module in their branch or fork.

  2. The module owner submits a pull request (PR) titled ‘AVM-Review-PR’ and ensures that all checks are passing on that PR as that is a pre-requisite to request a review.

  3. The module owner assigns the avm-core-team-technical-terraform GitHub team as reviewer on the PR.

  4. The module owner leaves the following comment as is on the module proposal in the AVM Repo by searching for their module proposal issue there.

I would like to request a review of my module. The latest code is in a PR titled AVM-Review-PR on the module repo and all checks on that PR are passing.
  1. The AVM team moves the module proposal from “In Development” to “In Review” in the AVM - Module Triage project.

  2. The AVM team will assign a module reviewer who will open a blank issue on the module titled “AVM-Review” and populate it with the below mark down. This template already marks the specs as compliant which are covered by the checks that run on the PR. There are some specs which don’t need to be checked at the time of publishing the module therefore they are marked as NA.

<!-- markdownlint-disable -->
Dear module owner,

As per the module ownership requirements and responsibilities at the time of assignment, the AVM Team is opening this issue, requesting you to validate your module against the below AVM specifications and confirm its compliance.

Please don't close this issue until the entire initial module review process is fully concluded! This review is a prerequisite of your module's publication as v0.1.0 in the Terraform Registry. The AVM team is happy to assist with any questions you might have.

**Requested Actions**
1. Complete the below task list by ticking off the tasks.
2. Complete the below table by updating the Compliant column with Yes, No or NA as possible values.

Please use the comments columns to provide additional details especially if the Compliant column is updated to `No` or `NA`.

```[tasklist]
### Tasks
- [ ] Address comments on PR if any
- [ ] Ensure that all checks on PR are passing
- [ ] Tick this to acknowledge specs with comment "Module Owner to action this spec post-publish as appropriate".
```

| ID | Spec                                                                                                                                                                                                                                                                                    | Compliant | Comments                                                        |
| -- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------- |
| 1  | [ID: SFR1 - Category: Composition - Preview Services](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-sfr1---category-composition---preview-services)                                                                                                                   |        | NA if no preview services are used|
| 2  | [ID: SFR2 - Category: Composition - WAF Aligned](https://azure.github.io/Azure-Verified-Modules/specs/shared/#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](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-sfr3---category-telemetry---deploymentusage-telemetry)                                                                                                    |        |                                                                 |
| 4  | [ID: SFR4 - Category: Telemetry - Telemetry Enablement Flexibility](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-sfr4---category-telemetry---telemetry-enablement-flexibility)                                                                                       |   Yes  | Yes if AVM Template Repo has been used|
| 5  | [ID: SFR5 - Category: Composition - Availability Zones](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-sfr5---category-composition---availability-zones)                                                                                                               |        |                                                                 |
| 6  | [ID: SFR6 - Category: Composition - Data Redundancy](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-sfr6---category-composition---data-redundancy)                                                                                                                     |        |                                                                 |
| 7  | [ID: SNFR25 - Category: Composition - Resource Naming](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr25---category-composition---resource-naming)                                                                                                                 |        |                                                                 |
| 8  | [ID: SNFR1 - Category: Testing - Prescribed Tests](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr1---category-testing---prescribed-tests)                                                                                                                         |   Yes  | Yes if all e2e test, version-check & linting checks passed |
| 9  | [ID: SNFR2 - Category: Testing - E2E Testing](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr2---category-testing---e2e-testing)                                                                                                                                   |   Yes  | Yes if e2e tests passed                                    |
| 10 | [ID: SNFR3 - Category: Testing - AVM Compliance Tests](https://azure.github.io/Azure-Verified-Modules/specs/shared/#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](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr4---category-testing---unit-tests)                                                                                                                                     |        | NA if no tests created in tests folder                   |
| 12 | [ID: SNFR5 - Category: Testing - Upgrade Tests](https://azure.github.io/Azure-Verified-Modules/specs/shared/#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](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr6---category-testing---static-analysislinting-tests)                                                                                                |   Yes  | Yes if all linting checks passed                           |
| 14 | [ID: SNFR7 - Category: Testing - Idempotency Tests](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr7---category-testing---idempotency-tests)                                                                                                                       |   Yes  | Yes if e2e tests passed                                    |
| 15 | [ID: SNFR24 - Category: Testing - Testing Child, Extension & Interface Resources](https://azure.github.io/Azure-Verified-Modules/specs/shared/#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](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr8---category-contributionsupport---module-owners-github)                                                                                      |        |                                                                 |
| 17 | [ID: SNFR20 - Category: Contribution/Support - GitHub Teams Only](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr20---category-contributionsupport---github-teams-only)                                                                                            |        |                                                                 |
| 18 | [ID: SNFR9 - Category: Contribution/Support - AVM & PG Teams GitHub Repo Permissions](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr9---category-contributionsupport---avm--pg-teams-github-repo-permissions)                                                     |        |                                                                 |
| 19 | [ID: SNFR10 - Category: Contribution/Support - MIT Licensing](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr10---category-contributionsupport---mit-licensing)                                                                                                    |   Yes  | Yes if AVM Template Repo has been used                     |
| 20 | [ID: SNFR11 - Category: Contribution/Support - Issues Response Times](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr11---category-contributionsupport---issues-response-times)                                                                                    |   NA   | Module Owner to action this spec post-publish as appropriate    |
| 21 | [ID: SNFR12 - Category: Contribution/Support - Versions Supported](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr12---category-contributionsupport---versions-supported)                                                                                          |   NA   | Module Owner to action this spec post-publish as appropriate    |
| 22 | [ID: SNFR23 - Category: Contribution/Support - GitHub Repo Labels](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr23---category-contributionsupport---github-repo-labels)                                                                                          |        |                                                                 |
| 23 | [ID: SNFR14 - Category: Inputs - Data Types](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr14---category-inputs---data-types)                                                                                                                                     |        |                                                                 |
| 24 | [ID: SNFR22 - Category: Inputs - Parameters/Variables for Resource IDs](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr22---category-inputs---parametersvariables-for-resource-ids)                                                                                |        |                                                                 |
| 25 | [ID: SNFR15 - Category: Documentation - Automatic Documentation Generation](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr15---category-documentation---automatic-documentation-generation)                                                                       |   Yes  | Yes if linting / docs check passed|
| 26 | [ID: SNFR16 - Category: Documentation - Examples/E2E](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr16---category-documentation---examplese2e)                                                                                                                    |   Yes  | Yes if e2e tests passed                                    |
| 27 | [ID: SNFR17 - Category: Release - Semantic Versioning](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr17---category-release---semantic-versioning)                                                                                                                 |   Yes  | Yes if version-check check passed                          |
| 28 | [ID: SNFR18 - Category: Release - Breaking Changes](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-snfr18---category-release---breaking-changes)                                                                                                                       |   NA   | Module Owner to action this spec post-publish as appropriate    |
| 29 | [ID: SNFR19 - Category: Publishing - Registries Targeted](https://azure.github.io/Azure-Verified-Modules/specs/shared/#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](https://azure.github.io/Azure-Verified-Modules/specs/shared/#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](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-rmfr1---category-composition---single-resource-only)                                                                                                         |        |                                                                 |
| 32 | [ID: RMFR2 - Category: Composition - No Resource Wrapper Modules](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-rmfr2---category-composition---no-resource-wrapper-modules)                                                                                           |        |                                                                 |
| 33 | [ID: RMFR3 - Category: Composition - Resource Groups](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-rmfr3---category-composition---resource-groups)                                                                                                                   |        |                                                                 |
| 34 | [ID: RMFR4 - Category: Composition - AVM Consistent Feature & Extension Resources Value Add](https://azure.github.io/Azure-Verified-Modules/specs/shared/#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](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-rmfr5---category-composition---avm-consistent-feature--extension-resources-value-add-interfacesschemas) |   Yes  | Yes if linting / terraform check passed                    |
| 36 | [ID: RMFR8 - Category: Composition - Dependency on child and other resources](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-rmfr8---category-composition---dependency-on-child-and-other-resources)                                                                   |        |                                                                 |
| 37 | [ID: RMFR6 - Category: Inputs - Parameter/Variable Naming](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-rmfr6---category-inputs---parametervariable-naming)                                                                                                          |        |                                                                 |
| 38 | [ID: RMFR7 - Category: Outputs - Minimum Required Outputs](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-rmfr7---category-outputs---minimum-required-outputs)                                                                                                         |   Yes  | Yes if linting / terraform check passed                    |
| 39 | [ID: RMNFR1 - Category: Naming - Module Naming](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-rmnfr1---category-naming---module-naming)                                                                                                                               |        |                                                                 |
| 40 | [ID: RMNFR2 - Category: Inputs - Parameter/Variable Naming](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-rmnfr2---category-inputs---parametervariable-naming)                                                                                                        |        |                                                                 |
| 41 | [ID: RMNFR3 - Category: Composition - RP Collaboration](https://azure.github.io/Azure-Verified-Modules/specs/shared/#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](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-pmfr1---category-composition---resource-group-creation)                                                                                                   |        | NA if this is not a pattern module|
| 43 | [ID: PMNFR1 - Category: Naming - Module Naming](https://azure.github.io/Azure-Verified-Modules/specs/shared/#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](https://azure.github.io/Azure-Verified-Modules/specs/shared/#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](https://azure.github.io/Azure-Verified-Modules/specs/shared/#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)](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-pmnfr4---category-hygiene---missing-resource-modules)                                                                                                     |        | NA if this is not a pattern module|
| 47 | [ID: PMNFR5 - Category: Inputs - Parameter/Variable Naming](https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-pmnfr5---category-inputs---parametervariable-naming)                                                                                                        |        | NA if this is not a pattern module                       |
| 48 | [ID: TFFR1 - Category: Composition - Cross-Referencing Modules](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tffr1---category-composition---cross-referencing-modules)                                                                                            |        |                                                                 |
| 49 | [ID: TFFR2 - Category: Outputs - Additional Terraform Outputs](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tffr2---category-outputs---additional-terraform-outputs)                                                                                              |   Yes  | Yes if linting / terraform check passed                    |
| 50 | [ID: TFNFR1 - Category: Documentation - Descriptions](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr1---category-documentation---descriptions)                                                                                                                |        |                                                                 |
| 51 | [ID: TFNFR2 - Category: Documentation - Module Documentation Generation](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr2---category-documentation---module-documentation-generation)                                                                          |   Yes  | Yes if linting / docs check passed                         |
| 52 | [ID: TFNFR3 - Category: Contribution/Support - GitHub Repo Branch Protection](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr3---category-contributionsupport---github-repo-branch-protection)                                                                 |   Yes  | Yes if AVM Template Repo has been used                     |
| 53 | [ID: TFNFR4 - Category: Composition - Code Styling - lower snake_casing](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr4---category-composition---code-styling---lower-snake_casing)                                                                          |   Yes  | Yes if linting / terraform check passed                    |
| 54 | [ID: TFNFR5 - Category: Testing - Test Tooling](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr5---category-testing---test-tooling)                                                                                                                            |   Yes  | Yes if linting / terraform check passed                    |
| 55 | [ID: TFNFR6 - Category: Code Style - Resource & Data Order](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr6---category-code-style---resource--data-order)                                                                                                     |        |                                                                 |
| 56 | [ID: TFNFR7 - Category: Code Style - count & for_each Use](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr7---category-code-style---count--for_each-use)                                                                                                       |        |                                                                 |
| 57 | [ID: TFNFR8 - Category: Code Style - Resource & Data Block Orders](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#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](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr9---category-code-style---module-block-order)                                                                                                          |        |                                                                 |
| 59 | [ID: TFNFR10 - Category: Code Style - No Double Quotes in ignore_changes](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr10---category-code-style---no-double-quotes-in-ignore_changes)                                                                        |        |                                                                 |
| 60 | [ID: TFNFR11 - Category: Code Style - Null Comparison Toggle](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr11---category-code-style---null-comparison-toggle)                                                                                                |        |                                                                 |
| 61 | [ID: TFNFR12 - Category: Code Style - Dynamic for Optional Nested Objects](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr12---category-code-style---dynamic-for-optional-nested-objects)                                                                      |        |                                                                 |
| 62 | [ID: TFNFR13 - Category: Code Style - Default Values with coalesce/try](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr13---category-code-style---default-values-with-coalescetry)                                                                             |        |                                                                 |
| 63 | [ID: TFNFR14 - Category: Inputs - Not allowed variables](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr14---category-inputs---not-allowed-variables)                                                                                                          |        |                                                                 |
| 64 | [ID: TFNFR15 - Category: Code Style - Variable Definition Order](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr15---category-code-style---variable-definition-order)                                                                                          |   Yes  | Yes if linting / avmfix check passed                       |
| 65 | [ID: TFNFR16 - Category: Code Style - Variable Naming Rules](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr16---category-code-style---variable-naming-rules)                                                                                                  |   Yes  | Yes if linting / terraform check passed                    |
| 66 | [ID: TFNFR17 - Category: Code Style - Variables with Descriptions](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr17---category-code-style---variables-with-descriptions)                                                                                      |   Yes  | Yes if linting / terraform check passed                    |
| 67 | [ID: TFNFR18 - Category: Code Style - Variables with Types](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr18---category-code-style---variables-with-types)                                                                                                    |   Yes  | Yes if linting / terraform check passed                    |
| 68 | [ID: TFNFR19 - Category: Code Style - Sensitive Data Variables](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr19---category-code-style---sensitive-data-variables)                                                                                            |        |                                                                 |
| 69 | [ID: TFNFR20 - Category: Code Style - Non-Nullable Defaults for collection values](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr20---category-code-style---non-nullable-defaults-for-collection-values)                                                      |        |                                                                 |
| 70 | [ID: TFNFR21 - Category: Code Style - Discourage Nullability by Default](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#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](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#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](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#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](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#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](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#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](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#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](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr27---category-code-style---provider-declarations-in-modules)                                                                            |   Yes  | Yes if linting / terraform check passed                    |
| 77 | [ID: TFNFR28 - Category: Code Style - Provider Declarations in Modules](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr28---category-code-style---provider-declarations-in-modules)                                                                            |   Yes  | Yes if linting / terraform check passed                    |
| 78 | [ID: TFNFR29 - Category: Code Style - Sensitive Data Outputs](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr29---category-code-style---sensitive-data-outputs)                                                                                                |   Yes  | Yes if linting / avmfix check passed                       |
| 79 | [ID: TFNFR30 - Category: Code Style - Handling Deprecated Outputs](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr30---category-code-style---handling-deprecated-outputs)                                                                                      |   NA   | Module Owner to action this spec post-publish as appropriate    |
| 80 | [ID: TFNFR31 - Category: Code Style - locals.tf for Locals Only](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr31---category-code-style---localstf-for-locals-only)                                                                                           |        |                                                                 |
| 81 | [ID: TFNFR32 - Category: Code Style - Alphabetical Local Arrangement](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr32---category-code-style---alphabetical-local-arrangement)                                                                                |   Yes  | Yes if linting / avmfix check passed                       |
| 82 | [ID: TFNFR33 - Category: Code Style - Precise Local Types](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr33---category-code-style---precise-local-types)                                                                                                      |        |                                                                 |
| 83 | [ID: TFNFR34 - Category: Code Style - Using Feature Toggles](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr34---category-code-style---using-feature-toggles)                                                                                                  |   NA   | Module Owner to action this spec post-publish as appropriate    |
| 84 | [ID: TFNFR35 - Category: Code Style - Reviewing Potential Breaking Changes](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr35---category-code-style---reviewing-potential-breaking-changes)                                                                    |   NA   | Module Owner to action this spec post-publish as appropriate    |
| 85 | [ID: TFNFR36 - Category: Code Style - Setting prevent_deletion_if_contains_resources](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr36---category-code-style---setting-prevent_deletion_if_contains_resources)                                                |        |                                                                 |
| 86 | [ID: TFNFR37 - Category: Code Style - Tool Usage by Module Owner](https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tfnfr37---category-code-style---tool-usage-by-module-owner)                                                                                        |        |                                                                 |
<!-- markdownlint-restore -->
  1. The module reviewer can update the Compliance column for specs in line 42 to 47 to NA, in case the module being reviewed isn’t a pattern module.

  2. The module reviewer reviews the code in the PR and leaves comments to request any necessary updates.

  3. The module reviewer assigns the AVM-Review issue to the module owner and responds to the module owner’s comment on the Module Proposal in AVM Repo with the following

Thank you for requesting a review of your module. The AVM module review process has been initiated, please perform the **Requested Actions** on the AVM-Review issue on the module repo.
  1. The module owner updates the check list and the table in the AVM-Review issue and notifies the module reviewer in a comment.

  2. The module reviewer performs the final review and ensures that all checks in the checklist are complete and the specifications table has been updated with no requirements having compliance as ‘No’.

  3. The module reviewer approves the AVM-Review-PR, and closes the AVM-Review issue with the following comment.

Thank you for contributing this module and completing the review process per AVM specs to ensure quality.

You may proceed with publishing this module to the HashiCorp Terraform Registry with the initial pre-release version of v0.1.0.

Please keep future versions also pre-release (e.g., 0.1.0, 0.1.1, 0.2.0, etc.) until AVM becomes generally available (GA) of which the AVM team will notify you.

Requested Action: Once the module is published to the HashiCorp Terraform Registry, please update the module proposal issue with the below comment.

The initial review of this module is complete and the module has been published to the registry. Requesting AVM team to close this module proposal and mark the module available in the module index.

  1. The module owner merges the AVM-Review-PR, publishes the module to Terraform registry and updates the module proposal on the AVM repo with the following comment.
The initial review of this module is complete and the module has been published to the registry. Requesting AVM team to close this module proposal and mark the module available in the module index.
  1. The module reviewer updates the module proposal by performing the following steps:
  • Move the module proposal from “In Review” to “Done” in the AVM - Module Triage project.
  • Assign label Status: Module Available :green_circle:
  • Update the module index
  • Close the module proposal