Downstream breaking changes
Method impact and affected intents at a glance; expand for before/after evidence.
bmsPrepareDataMoveConfirmed SDK type finding retained without a deterministic SDK method mapping.Affected intents (1)Method mapping unavailable
bmsPrepareDataMove
BackupResourceStorageConfigsNonCRR.bmsPrepareDataMove
Precise method path, location and baseline/target role unavailable. Aggregate root locations are not method-specific evidence.
| Contract area | Before | After |
|---|---|---|
| SDK type contractbmsPrepareDataMove | Existing Go SDK client placement remains stable. | Go is newly excluded from the client-location customization for BackupResourceStorageConfigsNonCRR.bmsPrepareDataMove. |
bmsTriggerDataMoveConfirmed SDK type finding retained without a deterministic SDK method mapping.Affected intents (1)Method mapping unavailable
bmsTriggerDataMove
BackupResourceStorageConfigsNonCRR.bmsTriggerDataMove
Precise method path, location and baseline/target role unavailable. Aggregate root locations are not method-specific evidence.
| Contract area | Before | After |
|---|---|---|
| SDK type contractbmsTriggerDataMove | Existing Go SDK client placement remains stable. | Go is newly excluded from the client-location customization for BackupResourceStorageConfigsNonCRR.bmsTriggerDataMove. |
getOperationStatusConfirmed SDK type finding retained without a deterministic SDK method mapping.Affected intents (1)Method mapping unavailable
getOperationStatus
BackupResourceConfigOperationStatuses.getOperationStatus
Precise method path, location and baseline/target role unavailable. Aggregate root locations are not method-specific evidence.
| Contract area | Before | After |
|---|---|---|
| SDK type contractgetOperationStatus | Existing Go SDK client placement remains stable. | Go is newly excluded from the client-location customization for BackupResourceConfigOperationStatuses.getOperationStatus. |
moveRecoveryPointConfirmed SDK type finding retained without a deterministic SDK method mapping.Affected intents (1)Method mapping unavailable
moveRecoveryPoint
RecoveryPoints.moveRecoveryPoint
Precise method path, location and baseline/target role unavailable. Aggregate root locations are not method-specific evidence.
| Contract area | Before | After |
|---|---|---|
| SDK type contractmoveRecoveryPoint | Existing Go SDK client placement remains stable. | Go is newly excluded from the client-location customization for RecoveryPoints.moveRecoveryPoint. |
Semantic intents
Impact links are visible at a glance; expand for changed TypeSpec source, followed by affected operations.
Publish a new API versionCarries 24 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 (3)
* The 2026-01-01 API version. */ v2026_01_01: "2026-01-01", + + /** + * The 2026-02-01 API version. + */ + v2026_02_01: "2026-02-01", } interface Operations
* Threat status of the container */ @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) union SourceSideScanStatus { string,
* Threat summary for the container */ @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) union SourceSideScanSummary { string,
* Source side threat information */ @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) model SourceSideScanInfo { /** * Threat status of the container
* Threat status of the recovery point */ @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) union ThreatStatus { string,
* Threat Status Types */ @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) union ThreatState { string,
* Threat Severity Types */ @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) union ThreatSeverity { string,
* Recovery Point Threat information */ @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) model ThreatInfo { /** * Threat Subject
* Type of the protection policy */ @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) union VMWorkloadPolicyType { string,
* Protection type in case protected as part of a parent. */ @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) union ProtectionLevel { string,
* The state of instance protection. */ @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) union InstanceProtectionReadiness { string,
/** Snapshot restore point type */ @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) Snapshot: "Snapshot", /** Full, differential, and snapshot restore point types */ @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) FullDifferentialAndSnapshot: "FullDifferentialAndSnapshot", }
/** HANA scale-out container type */ @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) HanaScaleoutContainer: "HanaScaleoutContainer", }
* Source side threat information */ @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) sourceSideScanInfo?: SourceSideScanInfo; }
* Threat status of the recovery point */ @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) threatStatus?: ThreatStatus; /** * Recovery point threat information. */ @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) @identifiers(#[]) threatInfo?: ThreatInfo[]; }
* Patch Request content to update recovery point for given RecoveryPointId */ @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) model UpdateRecoveryPointRequest { /** * Resource properties.
* Recovery Point Contract for Update Recovery Point API. */ @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) model PatchRecoveryPointInput { /** * Properties of Recovery Point
* Recovery Point Properties Contract for Update Recovery Point API. */ @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) model PatchRecoveryPointPropertiesInput { /** * Expiry time of Recovery Point in UTC.
* Type of the protection policy */ @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) vmWorkloadPolicyType?: VMWorkloadPolicyType; /**
* Name of the parent protected item (e.g., SQL Instance name) when this database is protected as part of a parent. */ @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) parentProtectedItem?: string; /** * Protection type in case protected as part of a parent. */ @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) protectionLevel?: ProtectionLevel; }
*/ #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API uses SQL acronym in naming" @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) model AzureVmWorkloadSQLInstanceProtectedItem extends ProtectedItem { /** * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.
* List of databases included in recovery point. */ @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) @identifiers(#[]) includedDatabases?: DatabaseInRP[]; }
*/ #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving existing API naming convention from prior swagger versions" @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) baseSnapshotRPId?: string; /**
*/ #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving existing API naming convention from prior swagger versions" @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) baseRPDatasourceId?: string; /**
*/ #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving existing API naming convention from prior swagger versions" @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) getLatestRPOnly?: boolean; }
*/ #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original API naming convention" @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) model DatabaseInRP { /** * Datasource Id for the database.
*/ #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API uses SAP acronym in naming" @added(Versions.v2026_01_31_preview) +@removed(Versions.v2026_02_01) model AzureVmWorkloadSAPHanaScaleoutProtectableItem extends WorkloadProtectableItem { /**
* The 2026-01-31-preview API version. */ v2026_01_31_preview: "2026-01-31-preview", + + /** + * The 2026-02-01 API version. + */ + v2026_02_01: "2026-02-01", } interface Operations
specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/RecoveryServices/main.tsp:37, specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/RecoveryServicesBackup/models.tsp:267, specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/RecoveryServicesBackup/main.tsp:43
Affected operations (24)
Showing 10 operation cards; the remaining 14 are listed below.
DeletedVaults_GetGET/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{location}/deletedVaults/{deletedVaultName}2026-02-01
HTTP signature and represented payload contract unchanged.
DeletedVaults_GetOperationStatusGET/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{location}/deletedVaults/{deletedVaultName}/operations/{operationId}2026-02-01
HTTP signature and represented payload contract unchanged.
DeletedVaults_ListBySubscriptionIdGET/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{location}/deletedVaults2026-02-01
HTTP signature and represented payload contract unchanged.
DeletedVaults_UndeletePOST/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{location}/deletedVaults/{deletedVaultName}/undelete2026-02-01
HTTP signature and represented payload contract unchanged.
GetOperationResultGET/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/operationResults/{operationId}2026-02-01
HTTP signature and represented payload contract unchanged.
GetOperationStatusGET/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/operationStatus/{operationId}2026-02-01
HTTP signature and represented payload contract unchanged.
Operations_ListGET/providers/Microsoft.RecoveryServices/operations2026-02-01
HTTP signature and represented payload contract unchanged.
PrivateLinkResources_GetGET/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/privateLinkResources/{privateLinkResourceName}2026-02-01
HTTP signature and represented payload contract unchanged.
PrivateLinkResources_ListGET/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/privateLinkResources2026-02-01
HTTP signature and represented payload contract unchanged.
RecoveryServices_CapabilitiesPOST/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{location}/capabilities2026-02-01
HTTP signature and represented payload contract unchanged.
Other affected operations (14)
RecoveryServices_CheckNameAvailability (POST, 2026-02-01); RegisteredIdentities_Delete (DELETE, 2026-02-01); ReplicationUsages_List (GET, 2026-02-01); Usages_ListByVaults (GET, 2026-02-01); VaultCertificates_Create (PUT, 2026-02-01); VaultExtendedInfo_CreateOrUpdate (PUT, 2026-02-01); VaultExtendedInfo_Get (GET, 2026-02-01); VaultExtendedInfo_Update (PATCH, 2026-02-01); Vaults_CreateOrUpdate (PUT, 2026-02-01); Vaults_Delete (DELETE, 2026-02-01); Vaults_Get (GET, 2026-02-01); Vaults_ListByResourceGroup (GET, 2026-02-01); Vaults_ListBySubscriptionId (GET, 2026-02-01); Vaults_Update (PATCH, 2026-02-01).
Exclude Go from four client-location customizationsExtends four `@@clientLocation` language filters from `!csharp` to `!csharp,!go`, preserving REST behavior while changing where the affected methods are generated in the Go SDK.modify
Changed TypeSpec source (1)
@@clientLocation(BackupResourceStorageConfigsNonCRR.bmsPrepareDataMove, Microsoft.RecoveryServices, - "!csharp" + "!csharp,!go" ); @@clientLocation(BackupResourceStorageConfigsNonCRR.bmsTriggerDataMove, Microsoft.RecoveryServices, - "!csharp" + "!csharp,!go" ); @@clientLocation(BackupResourceConfigOperationStatuses.getOperationStatus, Microsoft.RecoveryServices, - "!csharp" + "!csharp,!go" ); @@clientLocation(PrivateEndpointConnectionResources.get,
@@clientLocation(RecoveryPoints.moveRecoveryPoint, Microsoft.RecoveryServices, - "!csharp" + "!csharp,!go" ); @@clientLocation(ProtectionContainersOperationGroup.refresh,
specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/RecoveryServicesBackup/back-compatible.tsp
Affected operations (0)
No directly affected REST operation.
Remove the recovery-point update operation in 2026-02-01Applies `@removed(Versions.v2026_02_01)` to `RecoveryPoints.update`, excluding the operation from the new stable API version while retaining it in earlier versions.modify
Changed TypeSpec source (1)
*/ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-patch" "Recovery point updates use UpdateRecoveryPointRequest model which does not include tags property" @added(Versions.v2026_01_31_preview) + @removed(Versions.v2026_02_01) @patch(#{ implicitOptionality: true }) update is ArmCustomPatchSync< RecoveryPointResource,
specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/RecoveryServicesBackup/RecoveryPointResource.tsp:40
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: Exclude Go from four client-location customizations.
REST breaking changes
Operation 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 · 0 declarations checked
Appendix
Potential limits
None
Projects and compiler status
| Project | Mode | Baseline commit@version | Target commit@version | Baseline AutoRest / TCGC | Target AutoRest / TCGC |
|---|---|---|---|---|---|
specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/RecoveryServices | new-api-version | efe76fb07ac03d9c54e2c64de15ef3ff90fc4030@2026-01-01current · previous-latest-stable | efe76fb07ac03d9c54e2c64de15ef3ff90fc4030@2026-02-01current · newest-added-version | succeeded / succeeded | succeeded / succeeded |
specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/RecoveryServicesBackup | new-api-version | efe76fb07ac03d9c54e2c64de15ef3ff90fc4030@2026-01-01current · previous-latest-stable | efe76fb07ac03d9c54e2c64de15ef3ff90fc4030@2026-02-01current · 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": 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": "Directly governs removing operations in a new version of an existing ARM API."
},
{
"rank": 2,
"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": "Covers versioned ARM API evolution and versioning-decorator use."
},
{
"rank": 3,
"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": 1,
"total": 6
},
"selectionRationale": "Exactly matches the 2026-01-01 stable to 2026-02-01 stable transition."
},
{
"rank": 4,
"catalogOrder": 12,
"title": "ARM resource operations",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/resource-operations/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "Covers ARM PATCH operation requirements and recommended templates."
},
{
"rank": 5,
"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": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "Matches the changed ARM operation interface category."
},
{
"rank": 6,
"catalogOrder": 14,
"title": "TypeSpec.Rest decorators",
"canonicalUrl": "https://typespec.io/docs/libraries/rest/reference/decorators/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "Matches operation decorators and resource-operation semantics."
},
{
"rank": 7,
"catalogOrder": 15,
"title": "Azure.ResourceManager decorators",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/reference/decorators/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "Matches ARM operation decorators and the modified operation context."
},
{
"rank": 8,
"catalogOrder": 24,
"title": "Decorators",
"canonicalUrl": "https://typespec.io/docs/language-basics/decorators/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "Matches the decorator-change category but is less specific than versioning guidance."
},
{
"rank": 9,
"catalogOrder": 25,
"title": "Built-in decorators",
"canonicalUrl": "https://typespec.io/docs/standard-library/built-in-decorators/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "Matches standard decorator use but is less specific than the versioning documents."
},
{
"rank": 10,
"catalogOrder": 26,
"title": "OpenAPI decorators",
"canonicalUrl": "https://typespec.io/docs/libraries/openapi/reference/decorators/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "Matches the broad decorator category but not the changed versioning decorator."
},
{
"rank": 11,
"catalogOrder": 27,
"title": "Change provider namespace",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/change-provider-namespace/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "Matches ARM decorator usage, but no provider namespace changed."
},
{
"rank": 12,
"catalogOrder": 28,
"title": "Azure Portal default experiences",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/azure-portal/default-experiences/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "Matches ARM decorator usage, but no portal experience changed."
},
{
"rank": 13,
"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": "Matches ARM versioning but not the stable-to-stable transition."
},
{
"rank": 14,
"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": "Matches ARM versioning but the baseline selected for this change is stable."
},
{
"rank": 15,
"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": 0,
"total": 5
},
"selectionRationale": "Matches ARM versioning but the target version is stable."
},
{
"rank": 16,
"catalogOrder": 29,
"title": "Content negotiation",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/azure-core/content-negotiation/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 0,
"changeContext": 1,
"total": 4
},
"selectionRationale": "Matches decorators and operations but targets data-plane content negotiation."
},
{
"rank": 17,
"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": 2,
"changeContext": 1,
"total": 3
},
"selectionRationale": "Applies to the ARM service and modified resource operation but not specifically to removal/versioning."
},
{
"rank": 18,
"catalogOrder": 21,
"title": "Models",
"canonicalUrl": "https://typespec.io/docs/language-basics/models/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 1,
"total": 3
},
"selectionRationale": "Applies generally to referenced ARM models, but no model declaration changed."
},
{
"rank": 19,
"catalogOrder": 22,
"title": "Enums",
"canonicalUrl": "https://typespec.io/docs/language-basics/enums/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 1,
"total": 3
},
"selectionRationale": "Applies generally to ARM enums, but no enum declaration changed."
},
{
"rank": 20,
"catalogOrder": 23,
"title": "Scalars",
"canonicalUrl": "https://typespec.io/docs/language-basics/scalars/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 1,
"total": 3
},
"selectionRationale": "Applies generally to ARM scalars, but no scalar declaration changed."
},
{
"rank": 21,
"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": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "Applies to ARM but no extension resource pattern changed."
},
{
"rank": 22,
"catalogOrder": 9,
"title": "Private endpoints",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/private-endpoints/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "Applies to ARM but no private endpoint construct changed."
},
{
"rank": 23,
"catalogOrder": 10,
"title": "Private links",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/private-links/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "Applies to ARM but no private link construct changed."
},
{
"rank": 24,
"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": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "Applies to ARM but no network security perimeter construct changed."
},
{
"rank": 25,
"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": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "Applies to ARM but no long-running behavior changed."
},
{
"rank": 26,
"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": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "Applies to ARM but no paging parameter or ARM data type changed."
},
{
"rank": 27,
"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": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "Applies to ARM but no common type definition changed."
},
{
"rank": 28,
"catalogOrder": 30,
"title": "Directives",
"canonicalUrl": "https://typespec.io/docs/language-basics/directives/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "Applies across service planes, but no directive or suppression changed."
},
{
"rank": 29,
"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": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No data-plane long-running operation changed."
},
{
"rank": 30,
"catalogOrder": 19,
"title": "TypeSpec pagination",
"canonicalUrl": "https://typespec.io/docs/standard-library/pagination/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No data-plane paging construct changed."
},
{
"rank": 31,
"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": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No OpenAPI-specific decorator or suppression changed."
}
],
"documents": [
{
"rank": 1,
"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": "Directly governs removing operations in a new version of an existing ARM API.",
"guidance": [
{
"section": "Removing models, properties, and operations",
"excerpt": "To remove models, properties, or operations starting from a specific version, use the `@removed` decorator.",
"queryTerms": [
"@removed",
"operation",
"version"
],
"examples": [],
"applicableDeclarationIds": [
"declaration-5e32102d56ca757f",
"declaration-f2de9808ed873d0d"
]
}
],
"noRelevantGuidance": false,
"retrievedAt": "2026-09-17T11:20:37.0825604Z",
"contentHash": "sha256:0428372857524a5530236ee505534eab1eed3dca4d65727b3ea1b5aaa6046547"
},
{
"rank": 2,
"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": "Covers versioned ARM API evolution and versioning-decorator use.",
"guidance": [
{
"section": "About versioning",
"excerpt": "TypeSpec uses a versioning library that models the changes in each new version of the API, rather than having a separate API description for each api-version.",
"queryTerms": [
"versioning library",
"new version",
"API changes"
],
"examples": [],
"applicableDeclarationIds": [
"declaration-5e32102d56ca757f",
"declaration-f2de9808ed873d0d"
]
}
],
"noRelevantGuidance": false,
"retrievedAt": "2026-09-17T11:20:37.0825604Z",
"contentHash": "sha256:23cdb92562954237e4e8808a7fccee81e4bde9a9611c0bd40945d5b1843a7605"
},
{
"rank": 3,
"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": 1,
"total": 6
},
"selectionRationale": "Exactly matches the 2026-01-01 stable to 2026-02-01 stable transition.",
"guidance": [
{
"section": "Add a stable version after a stable version",
"excerpt": "If any types are removed in this stable (unlikely) mark these with an `@removed` decorator referencing the new version",
"queryTerms": [
"stable",
"@removed",
"new version"
],
"examples": [],
"applicableDeclarationIds": [
"declaration-5e32102d56ca757f",
"declaration-f2de9808ed873d0d"
]
}
],
"noRelevantGuidance": false,
"retrievedAt": "2026-09-17T11:20:37.0825604Z",
"contentHash": "sha256:8b88854537eedc0535924be64376f1e9f8b98c88b1ff4240988061ddf05d96a6"
},
{
"rank": 4,
"catalogOrder": 12,
"title": "ARM resource operations",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/resource-operations/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "Covers ARM PATCH operation requirements and recommended templates.",
"guidance": [
{
"section": "Update (PATCH)",
"excerpt": "The `ArmCustomPatch*` templates are the recommended choice for PATCH operations. They take the resource type and your custom PATCH request type as parameters, giving you full control over the PATCH schema.",
"queryTerms": [
"PATCH",
"update",
"ArmCustomPatch"
],
"examples": [],
"applicableDeclarationIds": [
"declaration-5e32102d56ca757f",
"declaration-f2de9808ed873d0d"
]
}
],
"noRelevantGuidance": false,
"retrievedAt": "2026-09-17T11:20:37.0825604Z",
"contentHash": "sha256:1f056dc387128ebb8c2ebfe774071aed20bd2d9161e14f2bde73bffd83b6a98a"
}
]
},
"intentAssessments": [
{
"semanticIntentId": "semantic-5912dfb5b267fac7",
"decision": "no-applicable-guidance",
"blockers": []
},
{
"semanticIntentId": "semantic-7dfdeff150654217",
"decision": "applicable-pass",
"blockers": []
}
],
"retrievalFailures": [],
"blockers": []
}Changed files
specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/RecoveryServices/main.tsp(committed)specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/RecoveryServicesBackup/back-compatible.tsp(committed)specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/RecoveryServicesBackup/main.tsp(committed)specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/RecoveryServicesBackup/models.tsp(committed)specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/RecoveryServicesBackup/RecoveryPointResource.tsp(committed)
Timing and model input
{
"timings": {
"metadataMs": 952,
"fetchMs": 115,
"scopeDiscoveryMs": 65,
"setupExcludingFetchMs": 14702,
"comparisonMs": 106,
"changeDiscoveryMs": 72,
"workspacePreparationMs": 13123,
"projectDiscoveryMs": 209,
"totalMs": 110804,
"semanticAnalysisMs": 3592,
"restAnalysisMs": 77,
"downstreamAnalysisMs": 665,
"documentQualityAnalysisMs": 1
},
"inputAccounting": {
"budgetTier": "small",
"budgetBytes": 131072,
"bytes": 11029,
"estimatedTokens": 2758,
"retained": {
"evidenceSets": 3,
"facts": 0,
"semanticReviewUnits": 2,
"restCandidates": 0,
"downstreamCandidates": 0,
"downstreamRootCauses": 0,
"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": 4,
"noImpactCount": 0,
"blockedCount": 0
},
"compliance": {
"catalogEntriesScored": 31,
"documentsFetched": 4,
"documentBytesFetched": 588,
"guidanceExcerptsRetained": 4,
"guidanceExcerptBytesRetained": 588
}
}
}
Provenance: model-input.json, dimensions/document-quality-input.json, inference.json, compliance-search-evidence.json, assessment-judgment.json, preparation-manifest.json