Azure / Azure/bicep-registry-modules

[AVM CI Environment Issue]: Mandate and update all custom types with external relevance to use the `@export()` annotation

Open
#3,263 1 comment 3 reactions 0 assignees View on GitHub
Needs: Core Team :genie: Type: AVM :a: :v: :m: Type: CI :rocket: Type: Feature Request :heavy_plus_sign:
Dominant language
Bicep
Stars
736
Forks
564
Avg merge
3d 15h
Merged PRs (30d)
30

Description

### Check for previous/existing GitHub issues

- [X] I have checked for previous/existing GitHub issues

### Issue Type?

Feature Request

### Description

This issue is based on [this proposal](https://github.com/Azure/Azure-Verified-Modules/issues/1296).

The idea:
- Update both the AVM specs & modules to add the `@export()` annotation to their types (if they should be 'importable')
- This would allow anybody using the modules to also important any custom type and re-use it when defining their own interface that uses the module
- We already do this today in a few cases where parent modules reference exported types of their child modules. This approach would just go a bit further as you could also import the type directly from the Public Bicep Registry.
https://github.com/Azure/bicep-registry-modules/blob/34c5bf10c4cb75fbd51db3fd4a030a7cb6d6bd7b/avm/res/compute/gallery/main.bicep#L251

This should be done for both the top-level modules, as well as the child-modules. The later won't be available for import just yet, but once we finally manage to find a scalable way to publish child-modules, they would automatically become available too.

Contributor guide

Open the contributing guide

Research direction

Start with the proposal in issue 1296 and the referenced avm/res/compute/gallery/main.bicep example around line 251. Review the AVM specs, top-level modules, and child-modules to identify custom types with external relevance; done means the applicable types consistently use @export() in both specs and modules.

Written by the indexing model from the issue text.

Assessment

Domain
infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.