Azure / Azure/bicep-registry-modules
[AVM CI Environment Issue]: Mandate and update all custom types with external relevance to use the `@export()` annotation
- 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
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