Semantic intents
Impact links are visible at a glance; expand for changed TypeSpec source, followed by affected operations.
Publish a new API versionCarries 33 existing operations into the new API version. This publication intent is reported deterministically and is not used for inference, guideline findings, or breaking-change relationships.modify
Changed TypeSpec source (2)
* The 2026-02-23 API version. */ v2026_02_23: "2026-02-23", + + /** + * The 2026-07-31-preview API version. + */ + @Azure.Core.previewVersion + v2026_07_31_preview: "2026-07-31-preview", }
* The collection identifier of the ledger entry. */ collectionId: string; + + /** + * The receipt certifying the committed transaction. + */ + @added(Versions.v2026_07_31_preview) + receipt?: ReceiptContents; + + /** + * State of the write transaction. + */ + @added(Versions.v2026_07_31_preview) + state: TransactionState; + + /** + * The list of application claims. + */ + @added(Versions.v2026_07_31_preview) + applicationClaims?: ApplicationClaim[]; +} + +/** + * The transaction was rolled back before it could be committed. + */ +@added(Versions.v2026_07_31_preview) +@error +model TransactionRolledBackErrorResponse { + /** + * The HTTP status code. + */ + @statusCode + statusCode: 503; + + ...ConfidentialLedgerCommon.ConfidentialLedgerError; } /**
specification/confidentialledger/data-plane/ConfidentialLedger/main.tsp:34, specification/confidentialledger/data-plane/ConfidentialLedger/models.tsp:427
Affected operations (33)
Showing 10 operation cards; the remaining 23 are listed below.
CreateLedgerEntryPOST/app/transactions2026-07-31-preview
| Contract area | Before | After |
|---|---|---|
| Query parameterwaitForCommit | not present | boolean · optional |
| Response body property200 · applicationClaims | not present | ApplicationClaim[] (optional) |
| Response body property200 · receipt | not present | ReceiptContents (optional) |
| Response body property200 · state | not present | TransactionState (required) |
| Response status503 | not present | ConfidentialLedgerCommon.ConfidentialLedgerError |
REST contract changed: parameters, responses.
CreateOrUpdateLedgerUserPATCH/app/ledgerUsers/{userId}2026-07-31-preview
HTTP signature and represented payload contract unchanged.
CreateOrUpdateUserPATCH/app/users/{userId}2026-07-31-preview
HTTP signature and represented payload contract unchanged.
CreateUserDefinedEndpointPUT/app/userDefinedEndpoints2026-07-31-preview
HTTP signature and represented payload contract unchanged.
CreateUserDefinedFunctionPUT/app/userDefinedFunctions/{functionId}2026-07-31-preview
HTTP signature and represented payload contract unchanged.
CreateUserDefinedRolePUT/app/roles2026-07-31-preview
HTTP signature and represented payload contract unchanged.
DeleteLedgerUserDELETE/app/ledgerUsers/{userId}2026-07-31-preview
HTTP signature and represented payload contract unchanged.
DeleteUserDELETE/app/users/{userId}2026-07-31-preview
HTTP signature and represented payload contract unchanged.
DeleteUserDefinedFunctionDELETE/app/userDefinedFunctions/{functionId}2026-07-31-preview
HTTP signature and represented payload contract unchanged.
DeleteUserDefinedRoleDELETE/app/roles2026-07-31-preview
HTTP signature and represented payload contract unchanged.
Other affected operations (23)
ExecuteUserDefinedFunction (POST, 2026-07-31-preview); GetConstitution (GET, 2026-07-31-preview); GetCurrentLedgerEntry (GET, 2026-07-31-preview); GetEnclaveQuotes (GET, 2026-07-31-preview); GetLedgerEntry (GET, 2026-07-31-preview); GetLedgerUser (GET, 2026-07-31-preview); GetReceipt (GET, 2026-07-31-preview); GetRuntimeOptions (GET, 2026-07-31-preview); GetTransactionStatus (GET, 2026-07-31-preview); GetUser (GET, 2026-07-31-preview); GetUserDefinedEndpoint (GET, 2026-07-31-preview); GetUserDefinedEndpointsModule (GET, 2026-07-31-preview); GetUserDefinedFunction (GET, 2026-07-31-preview); GetUserDefinedRole (GET, 2026-07-31-preview); ListCollections (GET, 2026-07-31-preview); ListConsortiumMembers (GET, 2026-07-31-preview); ListLedgerEntries (GET, 2026-07-31-preview); ListLedgerUsers (GET, 2026-07-31-preview); ListTags (GET, 2026-07-31-preview); ListUserDefinedFunctions (GET, 2026-07-31-preview); ListUsers (GET, 2026-07-31-preview); UpdateRuntimeOptions (PATCH, 2026-07-31-preview); UpdateUserDefinedRole (PATCH, 2026-07-31-preview).
Evolve ledger entry creation for the new previewThe new preview versions the ledger-write operation on the existing POST /app/transactions route, adds optional commit-wait behavior and richer write results, and preserves earlier-version naming through versioning decorators.modify
Changed TypeSpec source (1)
* A collection id may optionally be specified. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" +@removed(Versions.v2026_07_31_preview) +@renamedFrom(Versions.v2026_07_31_preview, "createLedgerEntry") @summary("Writes a ledger entry.") +@sharedRoute @route("/app/transactions") @post -op createLedgerEntry is ConfidentialLedgerCommon.LedgerOperation< +op createLedgerEntryAsync is ConfidentialLedgerCommon.LedgerOperation< { /** * The collection id.
LedgerWriteResult >; +/** + * A collection id may optionally be specified. By default, the operation + * returns after local commit with an `x-ms-ccf-transaction-id` that callers can + * use with the `/app/transactions/{transactionId}/status` and + * `/app/transactions/{transactionId}/receipt` endpoints, including after + * reconnecting. + * + * When `waitForCommit` is true, the response is held until the transaction is + * globally committed. If the connection is lost before the response is + * received, the caller might not receive the transaction ID and cannot + * uniquely recover the specific write. Clients that require unambiguous + * per-request recovery should use the default behavior and poll using the + * returned transaction ID. + * + * For more information, see [Azure Confidential Ledger write transaction + * receipts](https://learn.microsoft.com/azure/confidential-ledger/write-transaction-receipts). + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "The versioned ledger write route requires both the service default error and a 503 TransactionRolledBack response." +@added(Versions.v2026_07_31_preview) +@summary("Writes a ledger entry.") +@returnsDoc("Returned as a result of writing to the Confidential Ledger.") +@sharedRoute +@route("/app/transactions") +@post +op createLedgerEntry is ConfidentialLedgerCommon.LedgerOperation< + { + /** + * The collection id. + */ + @query("collectionId") + collectionId?: string; + + /** + * Comma separated tags. + */ + @query("tags") + tags?: string; + + /** + * Ledger entry. + */ + @bodyRoot + entry: LedgerEntry; + + /** + * Whether to wait for the transaction to be globally committed before + * returning. When true, the response includes the transaction receipt, but + * a disconnect before the response is received can prevent recovery of the + * specific write. Use the default behavior and poll the transaction status + * or receipt endpoints when unambiguous per-request recovery is required. + */ + @query("waitForCommit") + waitForCommit?: boolean = false; + }, + LedgerWriteResult, + | ConfidentialLedgerCommon.ConfidentialLedgerError + | TransactionRolledBackErrorResponse +>; + /** * To return older ledger entries, the relevant sections of the ledger must be * read from disk and validated. To prevent blocking within the enclave, the
specification/confidentialledger/data-plane/ConfidentialLedger/routes.tsp:76
Affected operations (1)
CreateLedgerEntryPOST/app/transactions2026-07-31-preview
| Contract area | Before | After |
|---|---|---|
| Query parameterwaitForCommit | not present | boolean · optional |
| Response body property200 · applicationClaims | not present | ApplicationClaim[] (optional) |
| Response body property200 · receipt | not present | ReceiptContents (optional) |
| Response body property200 · state | not present | TransactionState (required) |
| Response status503 | not present | ConfidentialLedgerCommon.ConfidentialLedgerError |
REST contract changed: parameters, responses.
Stop TypeScript REST client emissionThe TypeSpec configuration removes the @azure-tools/typespec-ts emitter and its package metadata; no REST operation is changed by this configuration-only edit.modify
Changed TypeSpec source (1)
"emitter-output-dir": "{output-dir}/{service-dir}/azure-security-confidentialledger" "namespace": "com.azure.security.confidentialledger" "flavor": "azure" - "@azure-tools/typespec-ts": - "emitter-output-dir": "{output-dir}/{service-dir}/confidential-ledger-rest" - "package-details": - "name": "@azure-rest/confidential-ledger" - description: "An isomorphic rest level client library for the Azure Confidential Ledger service." - "flavor": "azure" - is-modular-library: false - generate-metadata: true - generate-sample-project: false "@azure-typespec/http-client-csharp": emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" namespace: Azure.Security.ConfidentialLedger
specification/confidentialledger/data-plane/ConfidentialLedger/tspconfig.yaml
Affected operations (0)
No directly affected REST operation.
Azure Guidelines
Findings and affected intents at a glance; expand for expected guidance and actual changes.
2 of 2 semantic intents assessed · 4 documents selected
No applicable guideline was found for: Stop TypeScript REST client emission.
REST breaking changes
Operation impact and affected intents at a glance; expand for before/after evidence.
Downstream breaking changes
Method impact and affected intents at a glance; expand for before/after evidence.
Documentation Completeness
Checks only whether newly added operation, model, enum, and interface declarations have a nonempty effective TypeSpec description.
0 findings · 1 declaration checked
Appendix
Potential limits
None
Projects and compiler status
| Project | Mode | Baseline commit@version | Target commit@version | Baseline AutoRest / TCGC | Target AutoRest / TCGC |
|---|---|---|---|---|---|
specification/confidentialledger/data-plane/ConfidentialLedger | new-api-version | 50c5c2ebc78c8f876c637f01a90b8171ad7ec3de@2026-02-23current · previous-latest-stable | 50c5c2ebc78c8f876c637f01a90b8171ad7ec3de@2026-07-31-previewcurrent · newest-added-version | succeeded / succeeded | succeeded / succeeded |
Pull request: Not available for this local pre-PR assessment.
Guidance fetched
Guidance coverage and retrieval evidence
{
"status": "passed",
"coverage": {
"semanticIntentCount": 2,
"assessedIntentCount": 2,
"selectedDocumentCount": 4,
"unassessedIntentIds": []
},
"sharedSearch": {
"catalogRanking": [
{
"rank": 1,
"catalogOrder": 29,
"title": "Content negotiation",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/azure-core/content-negotiation/",
"score": {
"exactSymbol": 4,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 0,
"total": 9
},
"selectionRationale": "exact @sharedRoute/shared-route match; matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec"
},
{
"rank": 2,
"catalogOrder": 1,
"title": "Evolving APIs",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/06-evolving-apis/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec; matching existing-version or stable-to-preview change"
},
{
"rank": 3,
"catalogOrder": 2,
"title": "Versioning overview",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/01-about-versioning/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec; matching existing-version or stable-to-preview change"
},
{
"rank": 4,
"catalogOrder": 5,
"title": "Add preview after stable",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/04-preview-after-stable/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec; matching existing-version or stable-to-preview change"
},
{
"rank": 5,
"catalogOrder": 3,
"title": "Add preview after preview",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/02-preview-after-preview/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 0,
"total": 5
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec"
},
{
"rank": 6,
"catalogOrder": 4,
"title": "Add stable after preview",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/03-stable-after-preview/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 0,
"total": 5
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec"
},
{
"rank": 7,
"catalogOrder": 6,
"title": "Add stable after stable",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/05-stable-after-stable/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 0,
"total": 5
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec"
},
{
"rank": 8,
"catalogOrder": 21,
"title": "Models",
"canonicalUrl": "https://typespec.io/docs/language-basics/models/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 0,
"total": 5
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec"
},
{
"rank": 9,
"catalogOrder": 22,
"title": "Enums",
"canonicalUrl": "https://typespec.io/docs/language-basics/enums/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 0,
"total": 5
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec"
},
{
"rank": 10,
"catalogOrder": 24,
"title": "Decorators",
"canonicalUrl": "https://typespec.io/docs/language-basics/decorators/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 0,
"total": 5
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec"
},
{
"rank": 11,
"catalogOrder": 25,
"title": "Built-in decorators",
"canonicalUrl": "https://typespec.io/docs/standard-library/built-in-decorators/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 0,
"total": 5
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec"
},
{
"rank": 12,
"catalogOrder": 26,
"title": "OpenAPI decorators",
"canonicalUrl": "https://typespec.io/docs/libraries/openapi/reference/decorators/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 0,
"total": 5
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec"
},
{
"rank": 13,
"catalogOrder": 14,
"title": "TypeSpec.Rest decorators",
"canonicalUrl": "https://typespec.io/docs/libraries/rest/reference/decorators/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "applicable to data-plane TypeSpec"
},
{
"rank": 14,
"catalogOrder": 17,
"title": "Azure.Core long-running operations",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/azure-core/long-running-operations/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "applicable to data-plane TypeSpec"
},
{
"rank": 15,
"catalogOrder": 19,
"title": "TypeSpec pagination",
"canonicalUrl": "https://typespec.io/docs/standard-library/pagination/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "applicable to data-plane TypeSpec"
},
{
"rank": 16,
"catalogOrder": 23,
"title": "Scalars",
"canonicalUrl": "https://typespec.io/docs/language-basics/scalars/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "applicable to data-plane TypeSpec"
},
{
"rank": 17,
"catalogOrder": 30,
"title": "Directives",
"canonicalUrl": "https://typespec.io/docs/language-basics/directives/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "applicable to data-plane TypeSpec"
},
{
"rank": 18,
"catalogOrder": 31,
"title": "Azure Core `no-openapi` rule",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-openapi/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "applicable to data-plane TypeSpec"
},
{
"rank": 19,
"catalogOrder": 7,
"title": "ARM resource types and modeling",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/resource-type/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No catalog signal matched the bounded query profiles."
},
{
"rank": 20,
"catalogOrder": 8,
"title": "Specific extension resource sample",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/samples/resource-manager/resource-types/specific-extension/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No catalog signal matched the bounded query profiles."
},
{
"rank": 21,
"catalogOrder": 9,
"title": "Private endpoints",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/private-endpoints/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No catalog signal matched the bounded query profiles."
},
{
"rank": 22,
"catalogOrder": 10,
"title": "Private links",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/private-links/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No catalog signal matched the bounded query profiles."
},
{
"rank": 23,
"catalogOrder": 11,
"title": "Network security perimeter",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/network-security-perimeter/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No catalog signal matched the bounded query profiles."
},
{
"rank": 24,
"catalogOrder": 12,
"title": "ARM resource operations",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/resource-operations/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No catalog signal matched the bounded query profiles."
},
{
"rank": 25,
"catalogOrder": 13,
"title": "Azure.ResourceManager interface reference",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/reference/interfaces/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No catalog signal matched the bounded query profiles."
},
{
"rank": 26,
"catalogOrder": 15,
"title": "Azure.ResourceManager decorators",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/reference/decorators/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No catalog signal matched the bounded query profiles."
},
{
"rank": 27,
"catalogOrder": 16,
"title": "ARM long-running operations",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/long-running-operations/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No catalog signal matched the bounded query profiles."
},
{
"rank": 28,
"catalogOrder": 18,
"title": "Azure.ResourceManager data types",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/reference/data-types/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No catalog signal matched the bounded query profiles."
},
{
"rank": 29,
"catalogOrder": 20,
"title": "ARM common types",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/add-common-types/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No catalog signal matched the bounded query profiles."
},
{
"rank": 30,
"catalogOrder": 27,
"title": "Change provider namespace",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/change-provider-namespace/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No catalog signal matched the bounded query profiles."
},
{
"rank": 31,
"catalogOrder": 28,
"title": "Azure Portal default experiences",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/azure-portal/default-experiences/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No catalog signal matched the bounded query profiles."
}
],
"documents": [
{
"rank": 1,
"catalogOrder": 29,
"title": "Content negotiation",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/azure-core/content-negotiation/",
"score": {
"exactSymbol": 4,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 0,
"total": 9
},
"selectionRationale": "exact @sharedRoute/shared-route match; matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec",
"guidance": [],
"noRelevantGuidance": true,
"retrievedAt": "2026-09-17T20:02:42.230+08:00",
"contentHash": "sha256:011f67b99c996d02646401b25c50fbbb3bfa3eed70112822d491f7a415834b07"
},
{
"rank": 2,
"catalogOrder": 1,
"title": "Evolving APIs",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/06-evolving-apis/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec; matching existing-version or stable-to-preview change",
"guidance": [
{
"section": "Converting an operation from synchronous to asynchronous",
"excerpt": "Use @removed for the original operation, @renamedFrom to preserve its earlier name, and @sharedRoute so the versioned operations can use the same route.",
"queryTerms": [
"@removed",
"@renamedFrom",
"@sharedRoute",
"operation"
],
"examples": [
"@removed(Versions.v2)",
"@renamedFrom(Versions.v2, \"createOrUpdate\")"
],
"applicableDeclarationIds": [
"declaration-7e72c20a3e4f864f",
"declaration-7feb90faf7759dae",
"declaration-9a746bfc883ad999",
"declaration-ad1f79cc7b8f22d3",
"declaration-de3da0261ed48ed9",
"declaration-e8a7420c11bdbc9e"
]
},
{
"section": "Adding an optional operation parameter",
"excerpt": "Use @added with the introducing version for a new optional parameter; use @madeOptional only when an existing parameter becomes optional.",
"queryTerms": [
"@added",
"@madeOptional",
"waitForCommit"
],
"examples": [
"@added(Versions.v2) orderBy?: string"
],
"applicableDeclarationIds": [
"declaration-7e72c20a3e4f864f",
"declaration-7feb90faf7759dae",
"declaration-9a746bfc883ad999",
"declaration-ad1f79cc7b8f22d3",
"declaration-de3da0261ed48ed9",
"declaration-e8a7420c11bdbc9e"
]
}
],
"noRelevantGuidance": false,
"retrievedAt": "2026-09-17T20:02:42.230+08:00",
"contentHash": "sha256:36e3148c1c20d730cb4ce73a6c2ec256568426ae6dfe5128ed82c669888444b7"
},
{
"rank": 3,
"catalogOrder": 2,
"title": "Versioning overview",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/01-about-versioning/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec; matching existing-version or stable-to-preview change",
"guidance": [
{
"section": "Preview version guidance",
"excerpt": "Always make the last enum value the preview, apply @previewVersion to it, and mark all changes from the latest stable with versioning decorators that reference that preview version.",
"queryTerms": [
"@previewVersion",
"latest stable",
"versioning decorators"
],
"examples": [
"Versions.<PreviewVersion>"
],
"applicableDeclarationIds": [
"declaration-7e72c20a3e4f864f",
"declaration-7feb90faf7759dae",
"declaration-9a746bfc883ad999",
"declaration-ad1f79cc7b8f22d3",
"declaration-de3da0261ed48ed9",
"declaration-e8a7420c11bdbc9e"
]
}
],
"noRelevantGuidance": false,
"retrievedAt": "2026-09-17T20:02:42.230+08:00",
"contentHash": "sha256:0875599746a9be30c2e273ccf2b117c02b31a9802d69bf11cd6728d1a5c74c42"
},
{
"rank": 4,
"catalogOrder": 5,
"title": "Add preview after stable",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/04-preview-after-stable/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "matching versioning, model/enum, or decorator category; applicable to data-plane TypeSpec; matching existing-version or stable-to-preview change",
"guidance": [
{
"section": "Add preview after stable",
"excerpt": "For a new preview after a stable version, add the preview version and mark removed, added, renamed, or otherwise modified types and operations with the appropriate versioning decorator.",
"queryTerms": [
"preview after stable",
"@removed",
"@added",
"@renamedFrom"
],
"examples": [
"@removed(Versions.`2026-01-01-preview`)",
"@renamedFrom(Versions.`2026-01-01-preview`, \"Bar\")"
],
"applicableDeclarationIds": [
"declaration-7e72c20a3e4f864f",
"declaration-7feb90faf7759dae",
"declaration-9a746bfc883ad999",
"declaration-ad1f79cc7b8f22d3",
"declaration-de3da0261ed48ed9",
"declaration-e8a7420c11bdbc9e"
]
}
],
"noRelevantGuidance": false,
"retrievedAt": "2026-09-17T20:02:42.230+08:00",
"contentHash": "sha256:7497137dcdf0d7d446393b1e0487a2292e2f15e7432934d2f1928c5d5b0a3c3d"
}
]
},
"intentAssessments": [
{
"semanticIntentId": "semantic-87bb545cf3d5041e",
"decision": "applicable-pass",
"blockers": []
},
{
"semanticIntentId": "semantic-ec7af1999e66c93e",
"decision": "no-applicable-guidance",
"blockers": []
}
],
"retrievalFailures": [],
"blockers": []
}Changed files
specification/confidentialledger/data-plane/ConfidentialLedger/main.tsp(committed)specification/confidentialledger/data-plane/ConfidentialLedger/models.tsp(committed)specification/confidentialledger/data-plane/ConfidentialLedger/routes.tsp(committed)specification/confidentialledger/data-plane/ConfidentialLedger/tspconfig.yaml(committed)
Timing and model input
{
"timings": {
"metadataMs": 1112,
"fetchMs": 153,
"scopeDiscoveryMs": 72,
"setupExcludingFetchMs": 5483,
"comparisonMs": 117,
"changeDiscoveryMs": 85,
"workspacePreparationMs": 3830,
"projectDiscoveryMs": 12,
"totalMs": 64785,
"semanticAnalysisMs": 550,
"restAnalysisMs": 19,
"downstreamAnalysisMs": 11,
"documentQualityAnalysisMs": 1
},
"inputAccounting": {
"budgetTier": "small",
"budgetBytes": 131072,
"bytes": 23543,
"estimatedTokens": 5886,
"retained": {
"evidenceSets": 4,
"facts": 6,
"semanticReviewUnits": 2,
"restCandidates": 0,
"downstreamCandidates": 1,
"downstreamRootCauses": 1,
"complianceSearchRequests": 2,
"inferenceRequests": 2
},
"omittedRedundant": {
"rawEmitterArtifacts": true,
"compilerLogs": true,
"unchangedInventories": true,
"unreferencedFacts": true,
"unreferencedDeterministicFacts": true,
"sourceChanges": true,
"repeatedDeclarationIds": true,
"repeatedReviewUnitEvidence": true
},
"inference": {
"requestCount": 2,
"inferredCandidateCount": 0,
"noImpactCount": 2,
"blockedCount": 0
},
"compliance": {
"catalogEntriesScored": 31,
"documentsFetched": 4,
"documentBytesFetched": 14903,
"guidanceExcerptsRetained": 4,
"guidanceExcerptBytesRetained": 655
}
}
}
Provenance: model-input.json, dimensions/document-quality-input.json, inference.json, compliance-search-evidence.json, assessment-judgment.json, preparation-manifest.json