Skip to content

Improve documentation for ARM library decorators, interfaces, and models#4494

Open
tadelesh wants to merge 4 commits into
mainfrom
fix/arm-lib-docs-improvement
Open

Improve documentation for ARM library decorators, interfaces, and models#4494
tadelesh wants to merge 4 commits into
mainfrom
fix/arm-lib-docs-improvement

Conversation

@tadelesh
Copy link
Copy Markdown
Member

@tadelesh tadelesh commented May 26, 2026

Summary

Adds clear documentation to decorators, template interfaces, and models in the ARM library that were missing docs or had unclear/incorrect documentation.

Changes

lib/decorators.tsp

  • Fixed typo in @armLibraryNamespace
  • Added descriptions to @armResourceAction, @armResourceCreateOrUpdate, @armResourceRead, @armResourceUpdate, @armResourceDelete, @armResourceList
  • Expanded @armResourceCollectionAction description
  • Fixed @armProviderNameValue wrong description
  • Removed ghost @param tags from @armProviderNamespace and @armVirtualResource
  • Fixed @resourceBaseType param name to match implementation

lib/interfaces.tsp

  • Fixed misleading doc on ResourceDeleteWithoutOkAsync

lib/models.tsp

  • Improved docs for ResourceListCustomResult

lib/legacy-types/

- Fix typos and ghost @param/@template tags in decorators.tsp
- Add clear descriptions to @armResourceAction, @armResourceCreateOrUpdate,
  @armResourceRead, @armResourceUpdate, @armResourceDelete, @armResourceList
- Expand @armResourceCollectionAction description
- Fix @armProviderNameValue wrong description
- Fix @resourceBaseType param name to match implementation
- Add doc comments to undocumented aliases in interfaces.tsp
- Fix misleading doc on ResourceDeleteWithoutOkAsync
- Improve ResourceListCustomResult and deprecated alias docs in models.tsp
- Fix empty @doc on ExternalResource/ExternalChildResource
- Fix empty @doc on legacy ExtensionOperations/RoutedOperations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@microsoft-github-policy-service microsoft-github-policy-service Bot added lib:azure-resource-manager Issues for @azure-tools/typespec-azure-core library meta:website TypeSpec.io updates labels May 26, 2026
@azure-sdk
Copy link
Copy Markdown
Collaborator

azure-sdk commented May 26, 2026

All changed packages have been documented.

  • @azure-tools/typespec-azure-resource-manager
Show changes

@azure-tools/typespec-azure-resource-manager - internal ✏️

Update documentation.

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented May 26, 2026

Open in StackBlitz

npm i https://pkg.pr.new/@azure-tools/typespec-azure-resource-manager@4494

commit: 465bd6d

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 26, 2026

⚡ Benchmark Results

⚠️ 1 metric(s) regressed above the +5% threshold:

Metric Baseline Current Change
 ↳ linter/@azure-tools/typespec-azure-resource-manager/lro-location-header 🟡 12.7ms 🟡 13.9ms +9.4% 🔴
Full details – comparing 0240538 vs baseline a16a6ea
Metric Baseline Current Change
total 🔴 714.1ms 🔴 710.3ms -0.5%
loader 🟢 138.4ms 🟢 137.7ms -0.5%
resolver 🟢 16.1ms 🟢 16.3ms +0.9%
checker 🟢 167.8ms 🟢 166.7ms -0.6%
validation 🟢 38.9ms 🟢 38.9ms -0.1%
 ↳ validation/@azure-tools/typespec-azure-core 🟢 5.5ms 🟢 5.4ms -1.4%
 ↳ validation/@typespec/http 🟢 5.1ms 🟢 4.9ms -3.8%
 ↳ validation/@typespec/rest 🟢 0.5ms 🟢 0.5ms +7.1%
 ↳ validation/@typespec/versioning 🔴 26.1ms 🔴 26.2ms +0.5%
 ↳ validation/compiler 🟢 1.4ms 🟢 1.4ms -0.3%
linter 🟢 116.4ms 🟢 116.2ms -0.2%
 ↳ linter/@azure-tools/typespec-azure-core/auth-required 🟢 0.0ms 🟢 0.0ms -4.2%
 ↳ linter/@azure-tools/typespec-azure-core/bad-record-type 🟢 0.2ms 🟢 0.2ms -0.6%
 ↳ linter/@azure-tools/typespec-azure-core/byos 🟢 5.1ms 🟢 5.1ms -0.5%
 ↳ linter/@azure-tools/typespec-azure-core/casing-style 🟢 0.5ms 🟢 0.5ms -2.8%
 ↳ linter/@azure-tools/typespec-azure-core/composition-over-inheritance 🟢 0.1ms 🟢 0.1ms +17.1%
 ↳ linter/@azure-tools/typespec-azure-core/documentation-required 🟢 0.7ms 🟢 0.7ms -0.6%
 ↳ linter/@azure-tools/typespec-azure-core/friendly-name 🟢 0.5ms 🟢 0.5ms -0.9%
 ↳ linter/@azure-tools/typespec-azure-core/key-visibility-required 🟢 0.1ms 🟢 0.1ms +0.2%
 ↳ linter/@azure-tools/typespec-azure-core/known-encoding 🟢 0.2ms 🟢 0.2ms -5.3%
 ↳ linter/@azure-tools/typespec-azure-core/long-running-polling-operation-required 🟢 0.3ms 🟢 0.3ms +2.8%
 ↳ linter/@azure-tools/typespec-azure-core/no-case-mismatch 🟢 0.2ms 🟢 0.2ms +6.1%
 ↳ linter/@azure-tools/typespec-azure-core/no-closed-literal-union 🟢 0.2ms 🟢 0.2ms +3.2%
 ↳ linter/@azure-tools/typespec-azure-core/no-enum 🟢 0.0ms 🟢 0.0ms +3.0%
 ↳ linter/@azure-tools/typespec-azure-core/no-error-status-codes 🟢 0.1ms 🟢 0.1ms +3.5%
 ↳ linter/@azure-tools/typespec-azure-core/no-explicit-routes-resource-ops 🟢 0.1ms 🟢 0.1ms +1.0%
 ↳ linter/@azure-tools/typespec-azure-core/no-format 🟢 0.4ms 🟢 0.4ms -4.8%
 ↳ linter/@azure-tools/typespec-azure-core/no-generic-numeric 🟢 0.4ms 🟢 0.4ms +0.7%
 ↳ linter/@azure-tools/typespec-azure-core/no-header-explode 🟡 16.0ms 🟡 15.8ms -0.8%
 ↳ linter/@azure-tools/typespec-azure-core/no-legacy-usage 🟢 1.0ms 🟢 1.0ms +0.1%
 ↳ linter/@azure-tools/typespec-azure-core/no-multiple-discriminator 🟢 0.1ms 🟢 0.1ms +0.2%
 ↳ linter/@azure-tools/typespec-azure-core/no-nullable 🟢 0.2ms 🟢 0.2ms -3.2%
 ↳ linter/@azure-tools/typespec-azure-core/no-offsetdatetime 🟢 1.1ms 🟢 1.1ms +0.1%
 ↳ linter/@azure-tools/typespec-azure-core/no-openapi 🟢 1.7ms 🟢 1.7ms -0.9%
 ↳ linter/@azure-tools/typespec-azure-core/no-private-usage 🟢 1.7ms 🟢 1.7ms +0.7%
 ↳ linter/@azure-tools/typespec-azure-core/no-query-explode 🟡 16.8ms 🟡 16.6ms -1.1%
 ↳ linter/@azure-tools/typespec-azure-core/no-response-body 🔴 21.4ms 🟡 19.8ms -7.4% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/no-rest-library-interfaces 🟢 0.0ms 🟢 0.0ms +3.5%
 ↳ linter/@azure-tools/typespec-azure-core/no-route-parameter-name-mismatch 🟢 4.4ms 🟢 4.4ms +0.1%
 ↳ linter/@azure-tools/typespec-azure-core/no-rpc-path-params 🟢 0.2ms 🟢 0.2ms +4.4%
 ↳ linter/@azure-tools/typespec-azure-core/no-string-discriminator 🟢 0.0ms 🟢 0.0ms +1.9%
 ↳ linter/@azure-tools/typespec-azure-core/no-unknown 🟢 0.1ms 🟢 0.1ms +0.7%
 ↳ linter/@azure-tools/typespec-azure-core/no-unnamed-union 🟢 0.3ms 🟢 0.3ms +2.5%
 ↳ linter/@azure-tools/typespec-azure-core/operation-missing-api-version 🟢 0.2ms 🟢 0.2ms +0.2%
 ↳ linter/@azure-tools/typespec-azure-core/request-body-problem 🟢 0.2ms 🟢 0.2ms +5.7%
 ↳ linter/@azure-tools/typespec-azure-core/require-versioned 🟢 0.0ms 🟢 0.0ms -9.6%
 ↳ linter/@azure-tools/typespec-azure-core/response-schema-problem 🟡 19.0ms 🟡 19.1ms +0.2%
 ↳ linter/@azure-tools/typespec-azure-core/rpc-operation-request-body 🟢 0.3ms 🟢 0.3ms -2.5%
 ↳ linter/@azure-tools/typespec-azure-core/spread-discriminated-model 🟢 0.2ms 🟢 0.2ms -1.2%
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-names 🟢 4.2ms 🟢 4.2ms -1.5%
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-operations 🟢 0.1ms 🟢 0.1ms -4.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-common-types-version 🟢 3.6ms 🟢 3.6ms +0.5%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key 🟢 0.1ms 🟢 0.1ms -5.7%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage 🟢 0.1ms 🟢 0.1ms +2.6%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes 🟢 4.6ms 🟢 5.5ms +19.2%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts 🟢 4.1ms 🟢 3.9ms -6.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-record 🟢 0.3ms 🟢 0.3ms -8.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes 🟢 0.4ms 🟢 0.4ms +0.5%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes 🟢 0.0ms 🟢 0.0ms +2.5%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment 🟢 0.2ms 🟢 0.2ms -3.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property 🟢 0.1ms 🟢 0.1ms -7.6%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator 🟢 0.0ms 🟢 0.0ms -1.2%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb 🟢 0.1ms 🟢 0.1ms +3.7%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property 🟢 0.1ms 🟢 0.1ms +3.5%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format 🟢 0.0ms 🟢 0.0ms +7.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars 🟢 0.2ms 🟢 0.2ms +5.2%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern 🟢 0.0ms 🟢 0.0ms +0.9%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation 🟢 0.1ms 🟢 0.2ms +6.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response 🟢 4.1ms 🟢 4.1ms -1.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-patch 🟢 0.3ms 🟢 0.3ms -4.5%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars 🟢 0.2ms 🟢 0.2ms +0.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state 🟢 0.1ms 🟢 0.1ms -4.5%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels 🟢 0.1ms 🟢 0.1ms -6.1%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/empty-updateable-properties 🟢 0.1ms 🟢 0.1ms +3.6%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation 🟢 0.0ms 🟢 0.0ms +2.2%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/lro-location-header 🟡 12.7ms 🟡 13.9ms +9.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint 🟢 0.0ms 🟢 0.0ms +1.2%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers 🟢 0.3ms 🟢 0.3ms +0.7%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-empty-model 🟢 0.1ms 🟢 0.1ms +5.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation 🟢 0.2ms 🟢 0.1ms -2.1%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-response-body 🟡 18.8ms 🟡 19.1ms +1.5%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/patch-envelope 🟢 0.1ms 🟢 0.1ms +1.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/resource-name 🟢 0.1ms 🟢 0.1ms +1.5%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/secret-prop 🟢 2.2ms 🟢 2.1ms -0.9%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/unsupported-type 🟢 0.3ms 🟢 0.3ms +0.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/version-progression 🟢 0.0ms 🟢 0.0ms -8.1%
 ↳ linter/@azure-tools/typespec-client-generator-core/property-name-conflict 🟢 0.9ms 🟢 0.9ms +0.2%
 ↳ linter/@azure-tools/typespec-client-generator-core/require-client-suffix 🟢 0.2ms 🟢 0.2ms +0.6%
emit 🟡 232.2ms 🟡 229.3ms -1.2%
 ↳ emit/@azure-tools/typespec-autorest 🟢 144.4ms 🟢 143.3ms -0.7%
 ↳ emit/@typespec/openapi3 🟢 129.9ms 🟢 129.0ms -0.7%
 ↳ emit/@typespec/openapi3/compute 🟢 115.7ms 🟢 114.7ms -0.8%
 ↳ emit/@typespec/openapi3/write 🟢 13.6ms 🟢 14.4ms +6.5%

Averaged across 3 specs (azure-arm-resource-manager, azure-core-dataplane, azure-full).
Threshold: changes > ±5% are highlighted.
🟢 Fast · 🟡 Moderate (stages >200ms, rules >10ms) · 🔴 Slow (stages >400ms, rules >20ms)

@tadelesh
Copy link
Copy Markdown
Member Author

@markcowl I saw lots of @dev for template's doc, which caused empty description in the doc site (example). Shall we remove the @dev or shall we refine the doc generation tool to add @dev doc?

@azure-sdk
Copy link
Copy Markdown
Collaborator

azure-sdk commented May 26, 2026

You can try these changes here

🛝 Playground 🌐 Website

@timotheeguerin
Copy link
Copy Markdown
Member

@markcowl I saw lots of @dev for template's doc, which caused empty description in the doc site (example). Shall we remove the @dev or shall we refine the doc generation tool to add @dev doc?

We never established a final descision on this but the goal is to separate teh documentation that is meant for user of the typespec template and what should be the default doc for the resutling type in the service.
However I believe the pattern we have done instead if you need to differentiate is to have @doc for the service doc and /** for the dev doc.

Comment thread packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.ts Outdated
Comment thread packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.ts Outdated
Comment thread packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.ts Outdated
Comment thread packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.ts Outdated
Comment thread packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.ts Outdated
Comment thread packages/typespec-azure-resource-manager/lib/decorators.tsp Outdated
Comment thread packages/typespec-azure-resource-manager/lib/decorators.tsp Outdated
Comment thread packages/typespec-azure-resource-manager/lib/decorators.tsp Outdated
Comment thread packages/typespec-azure-resource-manager/README.md Outdated
Comment thread packages/typespec-azure-resource-manager/README.md Outdated
@tadelesh
Copy link
Copy Markdown
Member Author

@markcowl Resolved your comment. Also, I removed all the @dev (with additional @doc("") if the template does not have one), which makes all template has the correct doc in doc site.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lib:azure-resource-manager Issues for @azure-tools/typespec-azure-core library meta:website TypeSpec.io updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants