Downstream breaking changes
Method impact and affected intents at a glance; expand for before/after evidence.
Clusters.updateThe method uses changed SDK types; its top-level signature need not change.Affected intents (1)Indirect type change
Recorded normalized SDK method: Microsoft.NetworkCloud.Clusters.update
ClusterPatchProperties
Microsoft.NetworkCloud.ClusterPatchProperties
Representative method paths from recorded graph edges:
clusterUpdateParameters.propertiestarget evidence| Contract area | Before | After |
|---|---|---|
| SDK type contractClusterPatchProperties | Microsoft.NetworkCloud.ClusterPatchProperties preserves its existing language-neutral generated SDK contract. | Microsoft.NetworkCloud.ClusterPatchProperties.aggregatorOrSingleRackDefinition changed type, optionality, flattening, or access. |
| SDK type contractClusterPatchProperties | Microsoft.NetworkCloud.ClusterPatchProperties preserves its existing language-neutral generated SDK contract. | Microsoft.NetworkCloud.ClusterPatchProperties.clusterServicePrincipal changed type, optionality, flattening, or access. |
| SDK type contractClusterPatchProperties | Microsoft.NetworkCloud.ClusterPatchProperties preserves its existing language-neutral generated SDK contract. | Microsoft.NetworkCloud.ClusterPatchProperties.runtimeProtectionConfiguration changed type, optionality, flattening, or access. |
| SDK type contractClusterPatchProperties | Microsoft.NetworkCloud.ClusterPatchProperties preserves its existing language-neutral generated SDK contract. | Microsoft.NetworkCloud.ClusterPatchProperties.computeRackDefinitions changed type, optionality, flattening, or access. |
| SDK type contractClusterPatchProperties | Microsoft.NetworkCloud.ClusterPatchProperties preserves its existing language-neutral generated SDK contract. | Microsoft.NetworkCloud.ClusterPatchProperties.updateStrategy changed type, optionality, flattening, or access. |
| SDK type contractClusterPatchProperties | Microsoft.NetworkCloud.ClusterPatchProperties preserves its existing language-neutral generated SDK contract. | Microsoft.NetworkCloud.ClusterPatchProperties.secretArchive changed type, optionality, flattening, or access. |
| SDK type contractClusterPatchProperties | Microsoft.NetworkCloud.ClusterPatchProperties preserves its existing language-neutral generated SDK contract. | Microsoft.NetworkCloud.ClusterPatchProperties.computeDeploymentThreshold changed type, optionality, flattening, or access. |
- ClusterPatchProperties.aggregatorOrSingleRackDefinition changes from RackDefinition to RackDefinitionPatch. Existing Clusters.update callers supplying RackDefinition must construct a different public SDK type.
- ClusterPatchProperties.clusterServicePrincipal changes from ServicePrincipalInformation to ServicePrincipalInformationPatch. Existing Clusters.update callers must migrate to the new public input type.
- ClusterPatchProperties.runtimeProtectionConfiguration changes from RuntimeProtectionConfiguration to RuntimeProtectionConfigurationPatch. Existing Clusters.update callers must replace the SDK model they supply.
- ClusterPatchProperties.computeRackDefinitions changes from RackDefinition[] to RackDefinitionPatch[]. Existing Clusters.update callers must rebuild the collection with a different public SDK element type.
- ClusterPatchProperties.updateStrategy changes from ClusterUpdateStrategy to ClusterUpdateStrategyPatch. Existing Clusters.update callers must migrate their public SDK input model.
- ClusterPatchProperties.secretArchive changes from ClusterSecretArchive to ClusterSecretArchivePatch. Existing Clusters.update callers passing the former public model must migrate.
- ClusterPatchProperties.computeDeploymentThreshold changes from ValidationThreshold to ValidationThresholdPatch. Existing Clusters.update callers must construct the replacement SDK type.
Language-neutral TCGC evidence is shown; generated language signatures are not fabricated.
Consoles.updateThe method uses changed SDK types; its top-level signature need not change.Affected intents (1)Indirect type change
Recorded normalized SDK method: Microsoft.NetworkCloud.Consoles.update
ConsolePatchProperties
Microsoft.NetworkCloud.ConsolePatchProperties
Representative method paths from recorded graph edges:
consoleUpdateParameters.propertiestarget evidence| Contract area | Before | After |
|---|---|---|
| SDK type contractConsolePatchProperties | Microsoft.NetworkCloud.ConsolePatchProperties preserves its existing language-neutral generated SDK contract. | Microsoft.NetworkCloud.ConsolePatchProperties.sshPublicKey changed type, optionality, flattening, or access. |
Language-neutral TCGC evidence is shown; generated language signatures are not fabricated.
VirtualMachines.updateThe method uses changed SDK types; its top-level signature need not change.Affected intents (1)Indirect type change
Recorded normalized SDK method: Microsoft.NetworkCloud.VirtualMachines.update
VirtualMachinePatchProperties
Microsoft.NetworkCloud.VirtualMachinePatchProperties
Representative method paths from recorded graph edges:
virtualMachineUpdateParameters.propertiestarget evidence| Contract area | Before | After |
|---|---|---|
| SDK type contractVirtualMachinePatchProperties | Microsoft.NetworkCloud.VirtualMachinePatchProperties preserves its existing language-neutral generated SDK contract. | Microsoft.NetworkCloud.VirtualMachinePatchProperties.vmImageRepositoryCredentials changed type, optionality, flattening, or access. |
Language-neutral TCGC evidence is shown; generated language signatures are not fabricated.
Semantic intents
Impact links are visible at a glance; expand for changed TypeSpec source, followed by affected operations.
Introduce dedicated cluster patch modelsChanges seven optional properties in ClusterPatchProperties from full resource configuration models to dedicated patch models for Clusters_Update while preserving their serialized wire shapes through 2026-07-01 versioning.Impacts (1)modify
Changed TypeSpec source (1)
waitTimeMinutes?: int64 = 15; } +/** + * RackDefinitionPatch represents details regarding the rack for patch operations. + */ +@added(Versions.v2026_07_01) +model RackDefinitionPatch { + /** + * The zone name used for this rack when created. Availability zones are used for workload placement. + */ + @pattern("^[a-zA-Z0-9]{1,10}$") + availabilityZone?: string; + + /** + * The unordered list of bare metal machine configuration. + */ + @identifiers(#[]) + bareMetalMachineConfigurationData?: BareMetalMachineConfigurationDataPatch[]; + + /** + * The resource ID of the network rack that matches this rack definition. + */ + networkRackId?: Azure.Core.armResourceIdentifier; + + /** + * The free-form description of the rack's location. + */ + @maxLength(256) + rackLocation?: string; + + /** + * The unique identifier for the rack within Network Cloud cluster. An alternate unique alphanumeric value other than a serial number may be provided if desired. + */ + @maxLength(64) + @minLength(1) + rackSerialNumber?: string; + + /** + * The resource ID of the sku for the rack being added. + */ + rackSkuId?: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.NetworkCloud/rackSkus"; + } + ]>; + + /** + * The list of storage appliance configuration data for this rack. + */ + @identifiers(#[]) + storageApplianceConfigurationData?: StorageApplianceConfigurationDataPatch[]; +} + +/** + * BareMetalMachineConfigurationDataPatch represents configuration for the bare metal machine for patch operations. + */ +@added(Versions.v2026_07_01) +model BareMetalMachineConfigurationDataPatch { + /** + * The connection string for the baseboard management controller including IP address and protocol. + */ + @visibility(Lifecycle.Read) + bmcConnectionString?: string; + + /** + * The credentials of the baseboard management controller on this bare metal machine. The password field is expected to be an Azure Key Vault key URL. Until the cluster is converted to utilize managed identity by setting the secret archive settings, the actual password value should be provided instead. + */ + bmcCredentials?: AdministrativeCredentialsPatch; + + /** + * The MAC address of the BMC for this machine. + */ + @pattern("^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$") + bmcMacAddress?: string; + + /** + * The MAC address associated with the PXE NIC card. + */ + @pattern("^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$") + bootMacAddress?: string; + + /** + * The free-form additional information about the machine, e.g. an asset tag. + */ + @maxLength(256) + machineDetails?: string; + + /** + * The user-provided name for the bare metal machine created from this specification. If not provided, the machine name will be generated programmatically. + */ + @pattern("^([a-zA-Z0-9][a-zA-Z0-9]{0,62}[a-zA-Z0-9])$") + machineName?: string; + + /** + * The slot the physical machine is in the rack based on the BOM configuration. + */ + @maxValue(256) + @minValue(1) + rackSlot?: int64; + + /** + * The serial number of the machine. Hardware suppliers may use an alternate value. For example, service tag. + */ + @maxLength(64) + serialNumber?: string; +} + +/** + * StorageApplianceConfigurationDataPatch represents configuration for the storage application for patch operations. + */ +@added(Versions.v2026_07_01) +model StorageApplianceConfigurationDataPatch { + /** + * The credentials of the administrative interface on this storage appliance. The password field is expected to be an Azure Key Vault key URL. Until the cluster is converted to utilize managed identity by setting the secret archive settings, the actual password value should be provided instead. + */ + adminCredentials?: AdministrativeCredentialsPatch; + + /** + * The slot that storage appliance is in the rack based on the BOM configuration. + */ + @maxValue(256) + @minValue(1) + rackSlot?: int64; + + /** + * The serial number of the appliance. + */ + serialNumber?: string; + + /** + * The user-provided name for the storage appliance that will be created from this specification. + */ + @pattern("^([a-zA-Z0-9][a-zA-Z0-9-_]{0,28}[a-zA-Z0-9])$") + storageApplianceName?: string; +} + +/** + * ServicePrincipalInformationPatch represents the details of the service principal to be used by the cluster during Arc Appliance installation for patch operations. + */ +@added(Versions.v2026_07_01) +model ServicePrincipalInformationPatch { + /** + * The application ID, also known as client ID, of the service principal. + */ + applicationId?: string; + + /** + * The password of the service principal. + */ + @secret + password?: string; + + /** + * The principal ID, also known as the object ID, of the service principal. + */ + principalId?: string; + + /** + * The tenant ID, also known as the directory ID, of the tenant in which the service principal is created. + */ + tenantId?: string; +} + +/** + * ValidationThresholdPatch indicates allowed machine and node hardware and deployment failures for patch operations. + */ +@added(Versions.v2026_07_01) +model ValidationThresholdPatch { + /** + * Selection of how the type evaluation is applied to the cluster calculation. + */ + grouping?: ValidationThresholdGrouping; + + /** + * Selection of how the threshold should be evaluated. + */ + type?: ValidationThresholdType; + + /** + * The numeric threshold value. + */ + @minValue(0) + value?: int64; +} + +/** + * RuntimeProtectionConfigurationPatch represents the runtime protection configuration for the cluster for patch operations. + */ +@added(Versions.v2026_07_01) +model RuntimeProtectionConfigurationPatch { + /** + * The definition update mode for runtime protection. + */ + definitionUpdateMode?: RuntimeProtectionDefinitionUpdateMode; + + /** + * The mode of operation for runtime protection. + */ + enforcementLevel?: RuntimeProtectionEnforcementLevel; +} + +/** + * ClusterSecretArchivePatch configures the key vault to archive the secrets of the cluster for later retrieval for patch operations. + */ +@added(Versions.v2026_07_01) +model ClusterSecretArchivePatch { + /** + * The resource ID of the key vault to archive the secrets of the cluster. + */ + keyVaultId?: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.KeyVault/vaults"; + } + ]>; + + /** + * The indicator if the specified key vault should be used to archive the secrets of the cluster. + */ + useKeyVault?: ClusterSecretArchiveEnabled; +} + +/** + * ClusterUpdateStrategyPatch represents the strategy for updating the cluster for patch operations. + */ +@added(Versions.v2026_07_01) +model ClusterUpdateStrategyPatch { + /** + * The maximum number of worker nodes that can be offline within the increment of update, e.g., rack-by-rack. Limited by the maximum number of machines in the increment. Defaults to the whole increment size. + */ + @minValue(1) + maxUnavailable?: int64; + + /** + * The mode of operation for runtime protection. + */ + strategyType?: ClusterUpdateStrategyType; + + /** + * Selection of how the threshold should be evaluated. + */ + thresholdType?: ValidationThresholdType; + + /** + * The numeric threshold value. + */ + @minValue(0) + thresholdValue?: int64; + + /** + * The time to wait between the increments of update defined by the strategy. + */ + @minValue(0) + @maxValue(60) + waitTimeMinutes?: int64; +} + /** * VulnerabilityScanningSettings represents the settings for how security vulnerability scanning is applied to the cluster. */
/** * The rack definition that is intended to reflect only a single rack in a single rack cluster, or an aggregator rack in a multi-rack cluster. */ - aggregatorOrSingleRackDefinition?: RackDefinition; + @typeChangedFrom(Versions.v2026_07_01, RackDefinition) + aggregatorOrSingleRackDefinition?: RackDefinitionPatch; /** * The settings for the log analytics workspace used for output of logs from this cluster.
/** * Field Deprecated: Use managed identity to provide cluster privileges. The service principal to be used by the cluster during Arc Appliance installation. */ - clusterServicePrincipal?: ServicePrincipalInformation; + @typeChangedFrom(Versions.v2026_07_01, ServicePrincipalInformation) + clusterServicePrincipal?: ServicePrincipalInformationPatch; /** * The settings for commands run in this cluster, such as bare metal machine run read only commands and data extracts.
/** * The validation threshold indicating the allowable failures of compute machines during environment validation and deployment. */ - computeDeploymentThreshold?: ValidationThreshold; + @typeChangedFrom(Versions.v2026_07_01, ValidationThreshold) + computeDeploymentThreshold?: ValidationThresholdPatch; /** * The list of rack definitions for the compute racks in a multi-rack cluster, or an empty list in a single-rack cluster. */ @identifiers(#["networkRackId"]) - computeRackDefinitions?: RackDefinition[]; + @typeChangedFrom(Versions.v2026_07_01, RackDefinition[]) + computeRackDefinitions?: RackDefinitionPatch[]; /** * The settings for cluster runtime protection. */ - runtimeProtectionConfiguration?: RuntimeProtectionConfiguration; + @typeChangedFrom(Versions.v2026_07_01, RuntimeProtectionConfiguration) + runtimeProtectionConfiguration?: RuntimeProtectionConfigurationPatch; /** * The configuration for use of a key vault to store secrets for later retrieval by the operator. */ - secretArchive?: ClusterSecretArchive; + @typeChangedFrom(Versions.v2026_07_01, ClusterSecretArchive) + secretArchive?: ClusterSecretArchivePatch; /** * The settings for the secret archive used to hold credentials for the cluster.
/** * The strategy for updating the cluster. */ - updateStrategy?: ClusterUpdateStrategy; + @typeChangedFrom(Versions.v2026_07_01, ClusterUpdateStrategy) + updateStrategy?: ClusterUpdateStrategyPatch; /** * The settings for how security vulnerability scanning is applied to the cluster.
specification/networkcloud/NetworkCloud.Management/clusters/Cluster_models.tsp:1069
Affected operations (1)
Clusters_UpdatePATCH/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/clusters/{clusterName}2026-07-01
| Contract area | Before | After |
|---|---|---|
| Request body propertyproperties.aggregatorOrSingleRackDefinition | RackDefinition | RackDefinitionPatch |
| Request body propertyproperties.clusterServicePrincipal | ServicePrincipalInformation | ServicePrincipalInformationPatch |
| Request body propertyproperties.computeDeploymentThreshold | ValidationThreshold | ValidationThresholdPatch |
| Request body propertyproperties.runtimeProtectionConfiguration | RuntimeProtectionConfiguration | RuntimeProtectionConfigurationPatch |
| Request body propertyproperties.secretArchive | ClusterSecretArchive | ClusterSecretArchivePatch |
| Request body propertyproperties.updateStrategy | ClusterUpdateStrategy | ClusterUpdateStrategyPatch |
| Response body property200 · kind | not present | DeploymentType (optional) |
| Response body property200 · properties.lastSuccessfulVersionUpdateTime | not present | string date-time (optional) |
| Response body property200 · properties.managedCredentials | not present | array (optional) |
REST contract changed: request, responses.
Use a patch-specific console SSH keyChanges ConsolePatchProperties.sshPublicKey from SshPublicKey to SshPublicKeyPatch for Consoles_Update, versioned at 2026-07-01 without changing the REST property name.Impacts (1)modify
Changed TypeSpec source (1)
import "@azure-tools/typespec-azure-resource-manager"; using Azure.ResourceManager; +using TypeSpec.Versioning; namespace Microsoft.NetworkCloud;
/** * The SSH public key that will be provisioned for user access. The user is expected to have the corresponding SSH private key for logging in. */ - sshPublicKey?: SshPublicKey; + @typeChangedFrom(Versions.v2026_07_01, SshPublicKey) + sshPublicKey?: SshPublicKeyPatch; }
specification/networkcloud/NetworkCloud.Management/virtualmachines/Console_models.tsp:164
Affected operations (1)
Consoles_UpdatePATCH/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/virtualMachines/{virtualMachineName}/consoles/{consoleName}2026-07-01
| Contract area | Before | After |
|---|---|---|
| Request body propertyproperties.sshPublicKey | SshPublicKey | SshPublicKeyPatch |
REST contract changed: request.
Publish a new API versionCarries 95 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-05-01-preview API version. */ - @Azure.Core.previewVersion @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) v2026_05_01_preview: "2026-05-01-preview", + + /** + * The 2026-07-01 API version. + */ + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) + v2026_07_01: "2026-07-01", } interface Operations extends Azure.ResourceManager.Operations {}
import "@azure-tools/typespec-azure-resource-manager"; using Azure.ResourceManager; +using TypeSpec.Versioning; namespace Microsoft.NetworkCloud;
username: string; } +/** + * AdministrativeCredentialsPatch represents the admin credentials for the device requiring password-based authentication. + */ +@added(Versions.v2026_07_01) +model AdministrativeCredentialsPatch { + /** + * The password of the administrator of the device used during initialization. + */ + @minLength(1) + @secret + password?: string; + + /** + * The username of the administrator of the device used during initialization. + */ + @minLength(1) + username?: string; +} + /** * CertificateInfo represents the non-private information of an X.509 Certificate. */
keyData: string; } +/** + * SshPublicKeyPatch represents the public key used to authenticate with a resource through SSH. + */ +@added(Versions.v2026_07_01) +model SshPublicKeyPatch { + /** + * The SSH public key data. + */ + @minLength(1) + keyData?: string; +} + /** * NetworkAttachment represents the single network attachment. */
specification/networkcloud/NetworkCloud.Management/main.tsp:51, specification/networkcloud/NetworkCloud.Management/common/models.tsp:321
Affected operations (95)
Showing 10 operation cards; the remaining 85 are listed below.
AgentPools_CreateOrUpdatePUT/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/kubernetesClusters/{kubernetesClusterName}/agentPools/{agentPoolName}2026-07-01
HTTP signature and represented payload contract unchanged.
AgentPools_DeleteDELETE/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/kubernetesClusters/{kubernetesClusterName}/agentPools/{agentPoolName}2026-07-01
HTTP signature and represented payload contract unchanged.
AgentPools_ListByKubernetesClusterGET/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/kubernetesClusters/{kubernetesClusterName}/agentPools2026-07-01
HTTP signature and represented payload contract unchanged.
AgentPools_UpdatePATCH/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/kubernetesClusters/{kubernetesClusterName}/agentPools/{agentPoolName}2026-07-01
HTTP signature and represented payload contract unchanged.
BareMetalMachineKeySets_CreateOrUpdatePUT/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/clusters/{clusterName}/bareMetalMachineKeySets/{bareMetalMachineKeySetName}2026-07-01
HTTP signature and represented payload contract unchanged.
BareMetalMachineKeySets_DeleteDELETE/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/clusters/{clusterName}/bareMetalMachineKeySets/{bareMetalMachineKeySetName}2026-07-01
HTTP signature and represented payload contract unchanged.
BareMetalMachineKeySets_ListByClusterGET/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/clusters/{clusterName}/bareMetalMachineKeySets2026-07-01
HTTP signature and represented payload contract unchanged.
BareMetalMachineKeySets_UpdatePATCH/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/clusters/{clusterName}/bareMetalMachineKeySets/{bareMetalMachineKeySetName}2026-07-01
HTTP signature and represented payload contract unchanged.
BareMetalMachines_CreateOrUpdatePUT/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/bareMetalMachines/{bareMetalMachineName}2026-07-01
| Contract area | Before | After |
|---|---|---|
| Request body propertyproperties.bmcIpv4Address | not present | string (optional) |
| Request body propertyproperties.bmcIpv6Address | not present | string (optional) |
| Request body propertyproperties.monitoringConfigurationStatus | not present | BareMetalMachineMonitoringConfigurationStatus (optional) |
| Response body property200 · properties.bmcIpv4Address | not present | string (optional) |
| Response body property200 · properties.bmcIpv6Address | not present | string (optional) |
| Response body property200 · properties.monitoringConfigurationStatus | not present | BareMetalMachineMonitoringConfigurationStatus (optional) |
| Response body property201 · properties.bmcIpv4Address | not present | string (optional) |
| Response body property201 · properties.bmcIpv6Address | not present | string (optional) |
| Response body property201 · properties.monitoringConfigurationStatus | not present | BareMetalMachineMonitoringConfigurationStatus (optional) |
REST contract changed: request, responses.
BareMetalMachines_DeleteDELETE/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/bareMetalMachines/{bareMetalMachineName}2026-07-01
HTTP signature and represented payload contract unchanged.
Other affected operations (85)
BareMetalMachines_Get (GET, 2026-07-01); BareMetalMachines_ListByResourceGroup (GET, 2026-07-01); BareMetalMachines_ListBySubscription (GET, 2026-07-01); BareMetalMachines_Reimage (POST, 2026-07-01); BareMetalMachines_Update (PATCH, 2026-07-01); BmcKeySets_CreateOrUpdate (PUT, 2026-07-01); BmcKeySets_Delete (DELETE, 2026-07-01); BmcKeySets_ListByCluster (GET, 2026-07-01); BmcKeySets_Update (PATCH, 2026-07-01); CloudServicesNetworks_CreateOrUpdate (PUT, 2026-07-01); CloudServicesNetworks_Delete (DELETE, 2026-07-01); CloudServicesNetworks_Get (GET, 2026-07-01); CloudServicesNetworks_ListByResourceGroup (GET, 2026-07-01); CloudServicesNetworks_ListBySubscription (GET, 2026-07-01); CloudServicesNetworks_Update (PATCH, 2026-07-01); ClusterManagers_CreateOrUpdate (PUT, 2026-07-01); ClusterManagers_Delete (DELETE, 2026-07-01); ClusterManagers_Get (GET, 2026-07-01); ClusterManagers_ListByResourceGroup (GET, 2026-07-01); ClusterManagers_ListBySubscription (GET, 2026-07-01); ClusterManagers_Update (PATCH, 2026-07-01); Clusters_ContinueUpdateVersion (POST, 2026-07-01); Clusters_CreateOrUpdate (PUT, 2026-07-01); Clusters_Delete (DELETE, 2026-07-01); Clusters_Get (GET, 2026-07-01); Clusters_ListByResourceGroup (GET, 2026-07-01); Clusters_ListBySubscription (GET, 2026-07-01); Clusters_Update (PATCH, 2026-07-01); Clusters_UpdateVersion (POST, 2026-07-01); Consoles_CreateOrUpdate (PUT, 2026-07-01); Consoles_Delete (DELETE, 2026-07-01); Consoles_ListByVirtualMachine (GET, 2026-07-01); Consoles_Update (PATCH, 2026-07-01); KubernetesClusterFeatures_CreateOrUpdate (PUT, 2026-07-01); KubernetesClusterFeatures_Delete (DELETE, 2026-07-01); KubernetesClusterFeatures_ListByKubernetesCluster (GET, 2026-07-01); KubernetesClusterFeatures_Update (PATCH, 2026-07-01); KubernetesClusters_CreateOrUpdate (PUT, 2026-07-01); KubernetesClusters_Delete (DELETE, 2026-07-01); KubernetesClusters_ListByResourceGroup (GET, 2026-07-01); KubernetesClusters_ListBySubscription (GET, 2026-07-01); KubernetesClusters_Update (PATCH, 2026-07-01); L2Networks_CreateOrUpdate (PUT, 2026-07-01); L2Networks_Delete (DELETE, 2026-07-01); L2Networks_ListByResourceGroup (GET, 2026-07-01); L2Networks_ListBySubscription (GET, 2026-07-01); L2Networks_Update (PATCH, 2026-07-01); L3Networks_CreateOrUpdate (PUT, 2026-07-01); L3Networks_Delete (DELETE, 2026-07-01); L3Networks_ListByResourceGroup (GET, 2026-07-01); L3Networks_ListBySubscription (GET, 2026-07-01); L3Networks_Update (PATCH, 2026-07-01); MetricsConfigurations_CreateOrUpdate (PUT, 2026-07-01); MetricsConfigurations_Delete (DELETE, 2026-07-01); MetricsConfigurations_ListByCluster (GET, 2026-07-01); MetricsConfigurations_Update (PATCH, 2026-07-01); Racks_CreateOrUpdate (PUT, 2026-07-01); Racks_Delete (DELETE, 2026-07-01); Racks_ListByResourceGroup (GET, 2026-07-01); Racks_ListBySubscription (GET, 2026-07-01); Racks_Update (PATCH, 2026-07-01); RackSkus_Get (GET, 2026-07-01); RackSkus_ListBySubscription (GET, 2026-07-01); StorageAppliances_CreateOrUpdate (PUT, 2026-07-01); StorageAppliances_Delete (DELETE, 2026-07-01); StorageAppliances_Get (GET, 2026-07-01); StorageAppliances_ListByResourceGroup (GET, 2026-07-01); StorageAppliances_ListBySubscription (GET, 2026-07-01); StorageAppliances_Update (PATCH, 2026-07-01); TrunkedNetworks_CreateOrUpdate (PUT, 2026-07-01); TrunkedNetworks_Delete (DELETE, 2026-07-01); TrunkedNetworks_ListByResourceGroup (GET, 2026-07-01); TrunkedNetworks_ListBySubscription (GET, 2026-07-01); TrunkedNetworks_Update (PATCH, 2026-07-01); VirtualMachines_CreateOrUpdate (PUT, 2026-07-01); VirtualMachines_Delete (DELETE, 2026-07-01); VirtualMachines_ListByResourceGroup (GET, 2026-07-01); VirtualMachines_ListBySubscription (GET, 2026-07-01); VirtualMachines_Update (PATCH, 2026-07-01); Volumes_CreateOrUpdate (PUT, 2026-07-01); Volumes_Delete (DELETE, 2026-07-01); Volumes_Get (GET, 2026-07-01); Volumes_ListByResourceGroup (GET, 2026-07-01); Volumes_ListBySubscription (GET, 2026-07-01); Volumes_Update (PATCH, 2026-07-01).
Normalize storage appliance monitoring typesRenames storage appliance monitoring status unions at 2026-07-01 and aligns StorageApplianceSpec property ordering and descriptions without changing the StorageAppliances_CreateOrUpdate wire contract.modify
Changed TypeSpec source (1)
* The log level for the monitoring configuration status of the storage appliance. */ @added(Versions.v2026_05_01_preview) -union StorageApplianceMetricsConfigurationStatusLogLevel { +@renamedFrom( + Versions.v2026_07_01, + "StorageApplianceMetricsConfigurationStatusLogLevel" +) +union StorageApplianceMonitoringConfigurationStatusLogLevel { string, /**
* The metrics level for the monitoring configuration status of the storage appliance. */ @added(Versions.v2026_05_01_preview) -union StorageApplianceMetricsConfigurationStatusMetricsLevel { +@renamedFrom( + Versions.v2026_07_01, + "StorageApplianceMetricsConfigurationStatusMetricsLevel" +) +union StorageApplianceMonitoringConfigurationStatusMetricsLevel { string, /**
*/ model StorageApplianceSpec { /** - * The credentials of the administrative interface on this storage appliance. + * The resource ID of the rack where this storage appliance resides. */ @visibility(Lifecycle.Read, Lifecycle.Create) - administratorCredentials: AdministrativeCredentials; + rackId: Azure.Core.armResourceIdentifier; /** - * The resource ID of the rack where this storage appliance resides. + * The SKU for the storage appliance. */ @visibility(Lifecycle.Read, Lifecycle.Create) - rackId: Azure.Core.armResourceIdentifier; + storageApplianceSkuId: string; /** * The slot the storage appliance is in the rack based on the BOM configuration.
serialNumber: string; /** - * The SKU for the storage appliance. + * The credentials of the administrative interface on this storage appliance. */ @visibility(Lifecycle.Read, Lifecycle.Create) - storageApplianceSkuId: string; + administratorCredentials: AdministrativeCredentials; } /**
/** * The log level for the monitoring configuration status of the storage appliance. */ - logLevel?: StorageApplianceMetricsConfigurationStatusLogLevel; + logLevel?: StorageApplianceMonitoringConfigurationStatusLogLevel; /** * The metrics level for the monitoring configuration status of the storage appliance. */ - metricsLevel?: StorageApplianceMetricsConfigurationStatusMetricsLevel; + metricsLevel?: StorageApplianceMonitoringConfigurationStatusMetricsLevel; }
specification/networkcloud/NetworkCloud.Management/storageappliances/StorageAppliance_models.tsp:109
Affected operations (1)
StorageAppliances_CreateOrUpdatePUT/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/storageAppliances/{storageApplianceName}2026-07-01
| Contract area | Before | After |
|---|---|---|
| Request body propertyproperties.expansionShelves | not present | array (optional) |
| Request body propertyproperties.monitoringConfigurationStatus | not present | StorageApplianceMonitoringConfigurationStatus (optional) |
| Response body property200 · properties.expansionShelves | not present | array (optional) |
| Response body property200 · properties.monitoringConfigurationStatus | not present | StorageApplianceMonitoringConfigurationStatus (optional) |
| Response body property201 · properties.expansionShelves | not present | array (optional) |
| Response body property201 · properties.monitoringConfigurationStatus | not present | StorageApplianceMonitoringConfigurationStatus (optional) |
REST contract changed: request, responses.
Align C# patch-model names and typesAdds C#-specific client names and alternate resource-identifier types for new patch models; these customizations do not alter REST operations or the language-neutral SDK contract.modify
Changed TypeSpec source (1)
using Azure.Core; using Microsoft.NetworkCloud; -// --- go --- @@clientName(HugepagesSize.`1G`, "OneG", "go,javascript"); @@clientName(HugepagesSize.`2M`, "TwoM", "go,javascript"); + +// --- go --- @@alternateType( Azure.ResourceManager.Foundations.ExtendedLocation.type, string,
@@clientName(AccessBridge, "NetworkCloudAccessBridge", "csharp"); @@clientName(KubernetesVersion, "NetworkCloudKubernetesVersion", "csharp"); @@clientName(DeploymentType, "NetworkCloudDeploymentType", "csharp"); +@@clientName( + BareMetalMachineConfigurationDataPatch, + "BareMetalMachineConfigurationPatch", + "csharp" +); @@clientName(BareMetalMachineKeySetProperties.expiration, "ExpireOn", "csharp"); @@alternateType( BareMetalMachineKeySetProperties.jumpHostsAllowed,
"registryUriString", "csharp" ); +@@clientName( + ImageRepositoryCredentialsPatch.registryUrl, + "registryUriString", + "csharp" +); @@alternateType( KubernetesClusterProperties.attachedNetworkIds, armResourceIdentifier[],
"CACertificate", "csharp" ); +@@alternateType( + RackDefinitionPatch.networkRackId, + armResourceIdentifier, + "csharp" +); +@@alternateType(RackDefinitionPatch.rackSkuId, armResourceIdentifier, "csharp"); @@alternateType( StorageApplianceProperties.clusterId, armResourceIdentifier,
"StorageApplianceConfiguration", "csharp" ); +@@clientName( + StorageApplianceConfigurationDataPatch, + "StorageApplianceConfigurationPatch", + "csharp" +); @@alternateType( StorageProfile.volumeAttachments, armResourceIdentifier[],
@@clientName(Nic, "NetworkCloudNic", "csharp"); @@clientName(OsDisk, "NetworkCloudOSDisk", "csharp"); @@clientName(RackDefinition, "NetworkCloudRackDefinition", "csharp"); +@@clientName(RackDefinitionPatch, "NetworkCloudRackDefinitionPatch", "csharp"); @@clientName(SshPublicKey, "NetworkCloudSshPublicKey", "csharp"); +@@clientName(SshPublicKeyPatch, "NetworkCloudSshPublicKeyPatch", "csharp"); @@clientName(StorageProfile, "NetworkCloudStorageProfile", "csharp"); @@clientName( OperationStatusResult,
@@clientName(VirtualMachineBootMethod.BIOS, "Bios", "csharp"); @@clientName(VirtualMachineBootMethod.UEFI, "Uefi", "csharp"); @@clientName(ValidationThreshold.type, "ThresholdType", "csharp"); +@@clientName(ValidationThresholdPatch.type, "ThresholdType", "csharp"); @@clientName(MachineSkuDiskConnectionType.PCIE, "Pcie", "csharp"); @@clientName(MachineSkuDiskConnectionType.RAID, "Raid", "csharp"); @@clientName(MachineSkuDiskConnectionType.SATA, "Sata", "csharp");
specification/networkcloud/NetworkCloud.Management/client.tsp
Affected operations (0)
No directly affected REST operation.
Use patch-specific image repository credentialsChanges VirtualMachinePatchProperties.vmImageRepositoryCredentials from ImageRepositoryCredentials to ImageRepositoryCredentialsPatch for VirtualMachines_Update at 2026-07-01.Impacts (1)modify
Changed TypeSpec source (1)
using Azure.ResourceManager; using Azure.ClientGenerator.Core; +using TypeSpec.Versioning; namespace Microsoft.NetworkCloud;
username: string; } +/** + * ImageRepositoryCredentialsPatch represents the credentials used to login to the image repository for patch operations. + */ +@added(Versions.v2026_07_01) +model ImageRepositoryCredentialsPatch { + /** + * The password or token used to access an image in the target repository. + */ + @minLength(1) + @secret + password?: string; + + /** + * The URL of the authentication server used to validate the repository credentials. + */ + registryUrl?: string; + + /** + * The username used to access an image in the target repository. + */ + @minLength(1) + username?: string; +} + /** * OsDisk represents configuration of the boot disk. */
/** * The credentials used to login to the image repository that has access to the specified image. */ - vmImageRepositoryCredentials?: ImageRepositoryCredentials; + @typeChangedFrom(Versions.v2026_07_01, ImageRepositoryCredentials) + vmImageRepositoryCredentials?: ImageRepositoryCredentialsPatch; } /**
specification/networkcloud/NetworkCloud.Management/virtualmachines/VirtualMachine_models.tsp:323
Affected operations (1)
VirtualMachines_UpdatePATCH/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/virtualMachines/{virtualMachineName}2026-07-01
| Contract area | Before | After |
|---|---|---|
| Request body propertyproperties.vmImageRepositoryCredentials | ImageRepositoryCredentials | ImageRepositoryCredentialsPatch |
REST contract changed: request.
Normalize bare-metal monitoring type namesRenames the bare-metal machine monitoring status log-level and metrics-level unions at 2026-07-01 while retaining their existing wire values and operation behavior.modify
Changed TypeSpec source (1)
* The log level for the monitoring configuration status of the bare metal machine. */ @added(Versions.v2026_05_01_preview) -union BareMetalMachineMetricsConfigurationStatusLogLevel { +@renamedFrom( + Versions.v2026_07_01, + "BareMetalMachineMetricsConfigurationStatusLogLevel" +) +union BareMetalMachineMonitoringConfigurationStatusLogLevel { string, /**
* The metrics level for the monitoring configuration status of the bare metal machine. */ @added(Versions.v2026_05_01_preview) -union BareMetalMachineMetricsConfigurationStatusMetricsLevel { +@renamedFrom( + Versions.v2026_07_01, + "BareMetalMachineMetricsConfigurationStatusMetricsLevel" +) +union BareMetalMachineMonitoringConfigurationStatusMetricsLevel { string, /**
/** * The log level for the monitoring configuration status of the bare metal machine. */ - logLevel?: BareMetalMachineMetricsConfigurationStatusLogLevel; + logLevel?: BareMetalMachineMonitoringConfigurationStatusLogLevel; /** * The metrics level for the monitoring configuration status of the bare metal machine. */ - metricsLevel?: BareMetalMachineMetricsConfigurationStatusMetricsLevel; + metricsLevel?: BareMetalMachineMonitoringConfigurationStatusMetricsLevel; } /**
specification/networkcloud/NetworkCloud.Management/baremetalmachines/BareMetalMachine_models.tsp:99
Affected operations (1)
BareMetalMachines_CreateOrUpdatePUT/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/bareMetalMachines/{bareMetalMachineName}2026-07-01
| Contract area | Before | After |
|---|---|---|
| Request body propertyproperties.bmcIpv4Address | not present | string (optional) |
| Request body propertyproperties.bmcIpv6Address | not present | string (optional) |
| Request body propertyproperties.monitoringConfigurationStatus | not present | BareMetalMachineMonitoringConfigurationStatus (optional) |
| Response body property200 · properties.bmcIpv4Address | not present | string (optional) |
| Response body property200 · properties.bmcIpv6Address | not present | string (optional) |
| Response body property200 · properties.monitoringConfigurationStatus | not present | BareMetalMachineMonitoringConfigurationStatus (optional) |
| Response body property201 · properties.bmcIpv4Address | not present | string (optional) |
| Response body property201 · properties.bmcIpv6Address | not present | string (optional) |
| Response body property201 · properties.monitoringConfigurationStatus | not present | BareMetalMachineMonitoringConfigurationStatus (optional) |
REST contract changed: request, responses.
Azure Guidelines
Findings and affected intents at a glance; expand for expected guidance and actual changes.
6 of 6 semantic intents assessed · 4 documents selected
No applicable guideline was found for: Align C# patch-model names and types.
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 · 9 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/networkcloud/NetworkCloud.Management | new-api-version | 117f3e002839ec70ce585b42f262d5f8ad23b4eb@2025-09-01current · previous-latest-stable | 117f3e002839ec70ce585b42f262d5f8ad23b4eb@2026-07-01current · newest-added-version | succeeded / succeeded | succeeded / succeeded |
Pull request: #43718
Guidance fetched
Guidance coverage and retrieval evidence
{
"status": "passed",
"coverage": {
"semanticIntentCount": 6,
"assessedIntentCount": 6,
"selectedDocumentCount": 4,
"unassessedIntentIds": []
},
"sharedSearch": {
"catalogRanking": [
{
"rank": 1,
"catalogOrder": 25,
"title": "Built-in decorators",
"canonicalUrl": "https://typespec.io/docs/standard-library/built-in-decorators/",
"score": {
"exactSymbol": 4,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 10
},
"selectionRationale": "Directly covers @minLength, @maxLength, @minValue, @maxValue, @pattern, @visibility, and @secret usage."
},
{
"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": "Directly governs versioned property type changes and model renames."
},
{
"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": "Applies to the stable version progression and preview history."
},
{
"rank": 4,
"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": 1,
"total": 6
},
"selectionRationale": "The new 2026-07-01 stable version follows active preview versions."
},
{
"rank": 5,
"catalogOrder": 21,
"title": "Models",
"canonicalUrl": "https://typespec.io/docs/language-basics/models/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "Applies to the patch-model substitutions and optional properties."
},
{
"rank": 6,
"catalogOrder": 22,
"title": "Enums",
"canonicalUrl": "https://typespec.io/docs/language-basics/enums/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "Applies to the monitoring union renames."
},
{
"rank": 7,
"catalogOrder": 24,
"title": "Decorators",
"canonicalUrl": "https://typespec.io/docs/language-basics/decorators/",
"score": {
"exactSymbol": 0,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 6
},
"selectionRationale": "Applies generally to the added versioning and client decorators."
},
{
"rank": 8,
"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": 0,
"servicePlane": 2,
"changeContext": 1,
"total": 3
},
"selectionRationale": "Stable publication is relevant, but preview versions intervene."
},
{
"rank": 9,
"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": 1,
"total": 3
},
"selectionRationale": "The supplied profile is data-plane, but no LRO pattern itself changes."
},
{
"rank": 10,
"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": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "The PR adds a stable version, not another preview."
},
{
"rank": 11,
"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": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "The PR does not add a preview version."
},
{
"rank": 12,
"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": "No pagination construct is changed."
},
{
"rank": 13,
"catalogOrder": 23,
"title": "Scalars",
"canonicalUrl": "https://typespec.io/docs/language-basics/scalars/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "No custom scalar is changed."
},
{
"rank": 14,
"catalogOrder": 26,
"title": "OpenAPI decorators",
"canonicalUrl": "https://typespec.io/docs/libraries/openapi/reference/decorators/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "No OpenAPI-specific decorator is changed."
},
{
"rank": 15,
"catalogOrder": 29,
"title": "Content negotiation",
"canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/azure-core/content-negotiation/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "No content-negotiation behavior is changed."
},
{
"rank": 16,
"catalogOrder": 30,
"title": "Directives",
"canonicalUrl": "https://typespec.io/docs/language-basics/directives/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 2,
"changeContext": 0,
"total": 2
},
"selectionRationale": "No warning suppression is part of the assessed semantic intents."
},
{
"rank": 17,
"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": "No OpenAPI decorator warning is involved."
},
{
"rank": 18,
"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 resource kind or lifecycle structure is changed."
},
{
"rank": 19,
"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 extension resource is changed."
},
{
"rank": 20,
"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 private endpoint resource is changed."
},
{
"rank": 21,
"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 private link resource is changed."
},
{
"rank": 22,
"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 network security perimeter behavior is changed."
},
{
"rank": 23,
"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": "The changes do not alter ARM lifecycle templates."
},
{
"rank": 24,
"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 ARM interface template signature is changed."
},
{
"rank": 25,
"catalogOrder": 14,
"title": "TypeSpec.Rest decorators",
"canonicalUrl": "https://typespec.io/docs/libraries/rest/reference/decorators/",
"score": {
"exactSymbol": 0,
"patternCategory": 0,
"servicePlane": 0,
"changeContext": 0,
"total": 0
},
"selectionRationale": "No resource-semantics decorator is changed."
},
{
"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 ARM lifecycle decorator is changed."
},
{
"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 ARM LRO behavior is changed."
},
{
"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 ARM paging parameter is changed."
},
{
"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 ARM common definition is changed."
},
{
"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": "The provider namespace is unchanged."
},
{
"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 portal default-experience customization is changed."
}
],
"documents": [
{
"rank": 1,
"catalogOrder": 25,
"title": "Built-in decorators",
"canonicalUrl": "https://typespec.io/docs/standard-library/built-in-decorators/",
"score": {
"exactSymbol": 4,
"patternCategory": 3,
"servicePlane": 2,
"changeContext": 1,
"total": 10
},
"selectionRationale": "Directly covers @minLength, @maxLength, @minValue, @maxValue, @pattern, @visibility, and @secret usage.",
"guidance": [
{
"section": "String, numeric, visibility, and secret decorators",
"excerpt": "@minLength specifies the minimum string length, @maxLength the maximum string length, @minValue and @maxValue numeric bounds, @pattern a string regular expression, and @secret marks values that require careful treatment.",
"queryTerms": [
"@minLength",
"@maxLength",
"@minValue",
"@maxValue",
"@pattern",
"@secret"
],
"examples": [
"@minLength(1)",
"@pattern(\"[a-z]+\", \"Must contain only lowercase letters.\")"
],
"applicableDeclarationIds": [
"declaration-484f5a014d519e3a",
"declaration-53c1879bdea5527f",
"declaration-5554c64342be73f0",
"declaration-75337f77f5f4463e",
"declaration-7a7ef9428b23c420",
"declaration-83d4f5caadb819f2",
"declaration-83fd90c0e6eebb35",
"declaration-8e491d60f219489a",
"declaration-983fd4580a9d3ce3",
"declaration-9ccd0de72d1f3471",
"declaration-e6caa350d61d4292"
]
}
],
"noRelevantGuidance": false,
"retrievedAt": "2026-09-18T09:13:36.5627054Z",
"contentHash": "sha256:c8818ba04dedf32a38140733e7d9b6dd0684ef433ad2f7a4617ea6ce49509d58"
},
{
"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": "Directly governs versioned property type changes and model renames.",
"guidance": [
{
"section": "Evolving APIs with versioning decorators",
"excerpt": "Versioning allows an API to evolve without breaking existing clients by specifying when resources, operations, or properties are added, removed, renamed, or changed.",
"queryTerms": [
"@added",
"@typeChangedFrom",
"@renamedFrom",
"property type"
],
"examples": [
"@typeChangedFrom(Versions.v2, OldType) property: NewType;",
"@renamedFrom(Versions.v2, \"OldName\") model NewName {}"
],
"applicableDeclarationIds": [
"declaration-24add68e026049c1",
"declaration-484f5a014d519e3a",
"declaration-53c1879bdea5527f",
"declaration-5554c64342be73f0",
"declaration-75337f77f5f4463e",
"declaration-7a7ef9428b23c420",
"declaration-83d4f5caadb819f2",
"declaration-83fd90c0e6eebb35",
"declaration-8e491d60f219489a",
"declaration-983fd4580a9d3ce3",
"declaration-9ccd0de72d1f3471",
"declaration-aaa25b0c04d2b2db",
"declaration-e6caa350d61d4292"
]
},
{
"section": "Renaming declarations across versions",
"excerpt": "Use @renamedFrom to rename models, properties, operations, enums, and other declarations; the version identifies where the name changed and oldName records the previous name.",
"queryTerms": [
"@renamedFrom",
"model rename",
"union rename"
],
"examples": [
"@renamedFrom(Versions.v3, \"WorkerProperties\") model EmployeeProperties {}"
],
"applicableDeclarationIds": [
"declaration-75112a47b0283920",
"declaration-7d40eba1a19cb06e",
"declaration-a29b9f1429d64453",
"declaration-eb3f7340b30f3243"
]
}
],
"noRelevantGuidance": false,
"retrievedAt": "2026-09-18T09:13:36.5007492Z",
"contentHash": "sha256:51b720949106ee0e50a15c94e429c13aaa4698453919340ce88067d6c05be2ca"
},
{
"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": "Applies to the stable version progression and preview history.",
"guidance": [],
"noRelevantGuidance": true,
"retrievedAt": "2026-09-18T09:13:36.5007587Z",
"contentHash": "sha256:9096bf729185c03094a263380cd15c5a73b64bf68bb572e303dc3596f8fa1bfb"
},
{
"rank": 4,
"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": 1,
"total": 6
},
"selectionRationale": "The new 2026-07-01 stable version follows active preview versions.",
"guidance": [
{
"section": "Normalize preview versioning when adding stable",
"excerpt": "When adding stable after preview, preview-scoped @typeChangedFrom and @renamedFrom changes are folded into the stable shape by replacing the declaration with the desired type or name and removing the preview decorator.",
"queryTerms": [
"stable after preview",
"@typeChangedFrom",
"@renamedFrom"
],
"examples": [
"@typeChangedFrom(Versions.preview, string) property: int32;",
"@renamedFrom(Versions.preview, \"oldProperty\")"
],
"applicableDeclarationIds": [
"declaration-75112a47b0283920",
"declaration-7d40eba1a19cb06e",
"declaration-a29b9f1429d64453",
"declaration-eb3f7340b30f3243"
]
}
],
"noRelevantGuidance": false,
"retrievedAt": "2026-09-18T09:13:36.5420939Z",
"contentHash": "sha256:e588bd3b7013fcfdca8cdb147231c74a6d2d89f1942d7cc4d583cefbe25f6261"
}
]
},
"intentAssessments": [
{
"semanticIntentId": "semantic-0100f60eb3fb8229",
"decision": "applicable-pass",
"blockers": []
},
{
"semanticIntentId": "semantic-418aa19e650d3fa6",
"decision": "applicable-pass",
"blockers": []
},
{
"semanticIntentId": "semantic-58d123da1d0c8c44",
"decision": "applicable-pass",
"blockers": []
},
{
"semanticIntentId": "semantic-6f1e90bccd5d3faf",
"decision": "no-applicable-guidance",
"blockers": []
},
{
"semanticIntentId": "semantic-7536bb35e6d549ff",
"decision": "applicable-pass",
"blockers": []
},
{
"semanticIntentId": "semantic-e27000eaa07e0e95",
"decision": "applicable-pass",
"blockers": []
}
],
"retrievalFailures": [],
"blockers": []
}Changed files
specification/networkcloud/NetworkCloud.Management/baremetalmachines/BareMetalMachine_models.tsp(committed)specification/networkcloud/NetworkCloud.Management/client.tsp(committed)specification/networkcloud/NetworkCloud.Management/clusters/Cluster_models.tsp(committed)specification/networkcloud/NetworkCloud.Management/common/models.tsp(committed)specification/networkcloud/NetworkCloud.Management/main.tsp(committed)specification/networkcloud/NetworkCloud.Management/storageappliances/StorageAppliance_models.tsp(committed)specification/networkcloud/NetworkCloud.Management/virtualmachines/Console_models.tsp(committed)specification/networkcloud/NetworkCloud.Management/virtualmachines/VirtualMachine_models.tsp(committed)
Timing and model input
{
"timings": {
"metadataMs": 1078,
"fetchMs": 144,
"scopeDiscoveryMs": 180,
"setupExcludingFetchMs": 10213,
"comparisonMs": 128,
"changeDiscoveryMs": 106,
"workspacePreparationMs": 8406,
"projectDiscoveryMs": 95,
"totalMs": 143918,
"semanticAnalysisMs": 559,
"restAnalysisMs": 185,
"downstreamAnalysisMs": 6594,
"documentQualityAnalysisMs": 1
},
"inputAccounting": {
"budgetTier": "small",
"budgetBytes": 131072,
"bytes": 122278,
"estimatedTokens": 30570,
"retained": {
"evidenceSets": 21,
"facts": 18,
"semanticReviewUnits": 6,
"restCandidates": 0,
"downstreamCandidates": 10,
"downstreamRootCauses": 4,
"complianceSearchRequests": 6,
"inferenceRequests": 10
},
"omittedRedundant": {
"rawEmitterArtifacts": true,
"compilerLogs": true,
"unchangedInventories": true,
"unreferencedFacts": true,
"unreferencedDeterministicFacts": true,
"sourceChanges": true,
"repeatedDeclarationIds": true,
"repeatedReviewUnitEvidence": true
},
"inference": {
"requestCount": 10,
"inferredCandidateCount": 0,
"noImpactCount": 10,
"blockedCount": 0
},
"compliance": {
"catalogEntriesScored": 31,
"documentsFetched": 4,
"documentBytesFetched": 1694076,
"guidanceExcerptsRetained": 4,
"guidanceExcerptBytesRetained": 777
}
}
}
Provenance: model-input.json, dimensions/document-quality-input.json, inference.json, compliance-search-evidence.json, assessment-judgment.json, preparation-manifest.json