Skip to content

Update management emitter to 1.0.0-alpha.20260811.2 (part 4/4) - #61971

Merged
Wei Hu (live1206) merged 3 commits into
mainfrom
validate-typespec-20260811.2-mgmt-part-4
Aug 13, 2026
Merged

Update management emitter to 1.0.0-alpha.20260811.2 (part 4/4)#61971
Wei Hu (live1206) merged 3 commits into
mainfrom
validate-typespec-20260811.2-mgmt-part-4

Conversation

@live1206

Copy link
Copy Markdown
Member

Split from #61962 because the combined pull request exceeded the Azure Pipelines YAML expansion size limit.

Contains management SDK regeneration changes for sdk/quota/Azure.ResourceManager.Quota through sdk/websites/Azure.ResourceManager.AppService, plus the management emitter package and lock files.

Generated by branded - http-client-csharp-mgmt build 20260811.2.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 66a55915-e310-4860-a690-1df47405837d
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
11 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the pinned @azure-typespec/http-client-csharp-mgmt emitter dependency to 1.0.0-alpha.20260811.2 and applies the resulting management SDK regenerations across multiple Azure.ResourceManager libraries (part 4/4 of the overall update split).

Changes:

  • Bumped the management emitter package version and refreshed the lock file to the 20260811.2 build.
  • Regenerated multiple management-plane SDKs, including updated ModelReaderWriterContext buildables (notably adding ResponseError in many contexts).
  • Added/adjusted several GA-compatibility shims (factory methods/constructors) and parameter naming updates in a few customizations.

Reviewed changes

Copilot reviewed 42 out of 95 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
sdk/websites/Azure.ResourceManager.AppService/src/Generated/Models/AzureResourceManagerAppServiceContext.cs Adds additional model types to the source-generation buildable context.
sdk/websites/Azure.ResourceManager.AppService/src/Generated/ArmAppServiceModelFactory.cs Removes several factory methods from generated surface (reintroduced via compatibility partial).
sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/StaticSitePrivateEndpointConnectionResource.cs Renames shim parameter (privateEndpointWrapperinfo) for private endpoint approval wrapper overloads.
sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/StaticSitePrivateEndpointConnectionCollection.cs Renames shim parameter (privateEndpointWrapperinfo) for private endpoint approval wrapper overloads.
sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/SiteSlotPrivateEndpointConnectionResource.cs Renames shim parameter (privateEndpointWrapperinfo) for private endpoint approval wrapper overloads.
sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/SiteSlotPrivateEndpointConnectionCollection.cs Renames shim parameter (privateEndpointWrapperinfo) for private endpoint approval wrapper overloads.
sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/SitePrivateEndpointConnectionResource.cs Renames shim parameter (privateEndpointWrapperinfo) for private endpoint approval wrapper overloads.
sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/SitePrivateEndpointConnectionCollection.cs Renames shim parameter (privateEndpointWrapperinfo) for private endpoint approval wrapper overloads.
sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/Models/ArmAppServiceModelFactory.ParameterCompatibility.cs Adds compatibility factory methods to preserve/shape public API surface.
sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/Models/ArmAppServiceModelFactory.cs Updates compatibility mapping for CsmDeploymentStatus factory overloads.
sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/HostingEnvironmentPrivateEndpointConnectionResource.cs Renames shim parameter (privateEndpointWrapperinfo) for private endpoint approval wrapper overloads.
sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/HostingEnvironmentPrivateEndpointConnectionCollection.cs Renames shim parameter (privateEndpointWrapperinfo) for private endpoint approval wrapper overloads.
sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/Extensions/MockableAppServiceTenantResource.ByLocationShims.cs Renames shim parameter to stackOSType and updates usage.
sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/Extensions/AppServiceExtensions.ByLocationShims.cs Propagates stackOSType parameter rename through extension shims.
sdk/storagemover/Azure.ResourceManager.StorageMover/src/Generated/Models/AzureResourceManagerStorageMoverContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/storagediscovery/Azure.ResourceManager.StorageDiscovery/src/Generated/Models/AzureResourceManagerStorageDiscoveryContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/storagecache/Azure.ResourceManager.StorageCache/src/Generated/Models/AzureResourceManagerStorageCacheContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/storageactions/Azure.ResourceManager.StorageActions/src/Generated/Models/AzureResourceManagerStorageActionsContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/storage/Azure.ResourceManager.Storage/src/Generated/Models/AzureResourceManagerStorageContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/standbypool/Azure.ResourceManager.StandbyPool/src/Generated/Models/AzureResourceManagerStandbyPoolContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/sqlvirtualmachine/Azure.ResourceManager.SqlVirtualMachine/src/Generated/Models/AzureResourceManagerSqlVirtualMachineContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/sqlmanagement/Azure.ResourceManager.Sql/src/Generated/Models/AzureResourceManagerSqlContext.cs Adds additional options types and ResponseError to buildable context.
sdk/sqlmanagement/Azure.ResourceManager.Sql/src/Generated/ArmSqlModelFactory.cs Removes several generated factory methods (reintroduced via compatibility partial).
sdk/sqlmanagement/Azure.ResourceManager.Sql/src/Custom/Models/ArmSqlModelFactory.ParameterCompatibility.cs Adds compatibility factory methods for parameter ordering/API-shape.
sdk/sqlmanagement/Azure.ResourceManager.Sql/api/Azure.ResourceManager.Sql.netstandard2.0.cs Updates public API surface for factory parameter ordering.
sdk/sqlmanagement/Azure.ResourceManager.Sql/api/Azure.ResourceManager.Sql.net8.0.cs Updates public API surface for factory parameter ordering.
sdk/sqlmanagement/Azure.ResourceManager.Sql/api/Azure.ResourceManager.Sql.net10.0.cs Updates public API surface for factory parameter ordering.
sdk/sphere/Azure.ResourceManager.Sphere/src/Generated/Models/AzureResourceManagerSphereContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/AzureResourceManagerSiteManagerContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/signalr/Azure.ResourceManager.SignalR/src/Generated/Models/AzureResourceManagerSignalRContext.cs Adds ResponseError and WritableSubResource as buildables and required imports.
sdk/servicefabricmanagedclusters/Azure.ResourceManager.ServiceFabricManagedClusters/src/Generated/Models/ManagedServiceProperties.Serialization.cs Updates doc comment to indicate base class / derived types.
sdk/servicefabricmanagedclusters/Azure.ResourceManager.ServiceFabricManagedClusters/src/Generated/Models/ManagedServiceProperties.cs Updates doc comment to indicate base class / derived types.
sdk/servicefabricmanagedclusters/Azure.ResourceManager.ServiceFabricManagedClusters/src/Generated/Models/AzureResourceManagerServiceFabricManagedClustersContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityMLAnalyticsSettingData.Serialization.cs Updates doc comment to indicate base class / derived types.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityMLAnalyticsSettingData.cs Updates doc comment to indicate base class / derived types.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsThreatIntelligenceIndicatorCollection.cs Renames orderby parameter to orderBy in paging methods.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsThreatIntelligenceIndicatorBaseData.Serialization.cs Updates doc comment to indicate base class / derived types.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsThreatIntelligenceIndicatorBaseData.cs Updates doc comment to indicate base class / derived types.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsIncidentRelationCollection.cs Renames orderby parameter to orderBy in paging methods.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsIncidentCommentCollection.cs Renames orderby parameter to orderBy in paging methods.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsIncidentCollection.cs Renames orderby parameter to orderBy in paging methods.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsEntity.Serialization.cs Updates doc comment to indicate base class / derived types.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsEntity.cs Updates doc comment to indicate base class / derived types.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsDataConnectorData.Serialization.cs Updates doc comment to indicate base class / derived types.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsDataConnectorData.cs Updates doc comment to indicate base class / derived types.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsAlertRuleTemplateData.Serialization.cs Updates doc comment to indicate base class / derived types.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsAlertRuleTemplateData.cs Updates doc comment to indicate base class / derived types.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsAlertRuleData.Serialization.cs Updates doc comment to indicate base class / derived types.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/SecurityInsightsAlertRuleData.cs Updates doc comment to indicate base class / derived types.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Generated/ArmSecurityInsightsModelFactory.cs Removes a generated factory method (reintroduced via compatibility partial).
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/src/Customized/ArmSecurityInsightsModelFactory.ParameterCompatibility.cs Adds compatibility factory method for parameter ordering/API-shape.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/api/Azure.ResourceManager.SecurityInsights.netstandard2.0.cs Updates public API surface for renamed parameters/order in collections and factories.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/api/Azure.ResourceManager.SecurityInsights.net8.0.cs Updates public API surface for renamed parameters/order in collections and factories.
sdk/securityinsights/Azure.ResourceManager.SecurityInsights/api/Azure.ResourceManager.SecurityInsights.net10.0.cs Updates public API surface for renamed parameters/order in collections and factories.
sdk/securitycenter/Azure.ResourceManager.SecurityCenter/src/Generated/SecuritySettingData.Serialization.cs Updates doc comment to indicate base class / derived types.
sdk/securitycenter/Azure.ResourceManager.SecurityCenter/src/Generated/SecuritySettingData.cs Updates doc comment to indicate base class / derived types.
sdk/securitycenter/Azure.ResourceManager.SecurityCenter/src/Generated/Models/SecurityAlertSimulatorRequestProperties.Serialization.cs Updates doc comment to indicate base class / derived types.
sdk/securitycenter/Azure.ResourceManager.SecurityCenter/src/Generated/Models/SecurityAlertSimulatorRequestProperties.cs Updates doc comment to indicate base class / derived types.
sdk/securitycenter/Azure.ResourceManager.SecurityCenter/src/Custom/SecurityAssessmentResource.cs Renames shim parameter (assessmentcontent) for unsupported API stubs.
sdk/securitycenter/Azure.ResourceManager.SecurityCenter/src/Custom/SecurityAssessmentCollection.cs Renames shim parameter (assessmentcontent) for unsupported API stubs.
sdk/securitycenter/Azure.ResourceManager.SecurityCenter/src/Custom/Models/SecuritySolutionsReferenceData.cs Updates compatibility constructor parameter name and mapping.
sdk/securitycenter/Azure.ResourceManager.SecurityCenter/api/Azure.ResourceManager.SecurityCenter.netstandard2.0.cs Updates public API surface for renamed parameters and constructor parameter name.
sdk/securitycenter/Azure.ResourceManager.SecurityCenter/api/Azure.ResourceManager.SecurityCenter.net8.0.cs Updates public API surface for renamed parameters and constructor parameter name.
sdk/securitycenter/Azure.ResourceManager.SecurityCenter/api/Azure.ResourceManager.SecurityCenter.net10.0.cs Updates public API surface for renamed parameters and constructor parameter name.
sdk/search/Azure.ResourceManager.Search/src/Generated/Models/AzureResourceManagerSearchContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/reservations/Azure.ResourceManager.Reservations/src/Generated/Models/AzureResourceManagerReservationsContext.cs Adds additional options types to buildable context.
sdk/reservations/Azure.ResourceManager.Reservations/src/Generated/ArmReservationsModelFactory.cs Removes a generated factory method (reintroduced via compatibility partial).
sdk/reservations/Azure.ResourceManager.Reservations/src/Custom/ArmReservationsModelFactory.ParameterCompatibility.cs Adds compatibility factory method for parameter ordering/API-shape.
sdk/reservations/Azure.ResourceManager.Reservations/api/Azure.ResourceManager.Reservations.netstandard2.0.cs Updates public API surface for factory parameter ordering.
sdk/reservations/Azure.ResourceManager.Reservations/api/Azure.ResourceManager.Reservations.net8.0.cs Updates public API surface for factory parameter ordering.
sdk/reservations/Azure.ResourceManager.Reservations/api/Azure.ResourceManager.Reservations.net10.0.cs Updates public API surface for factory parameter ordering.
sdk/relay/Azure.ResourceManager.Relay/src/Generated/Models/AzureResourceManagerRelayContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/redisenterprise/Azure.ResourceManager.RedisEnterprise/src/Generated/Models/AzureResourceManagerRedisEnterpriseContext.cs Adds SubResource buildable and required using Azure.ResourceManager.Resources.Models;.
sdk/redis/Azure.ResourceManager.Redis/src/Generated/RedisResource.cs Renames default parameter to defaultName in patch schedule accessors.
sdk/redis/Azure.ResourceManager.Redis/src/Generated/RedisPatchScheduleCollection.cs Renames default parameter to defaultName across patch schedule CRUD methods.
sdk/redis/Azure.ResourceManager.Redis/api/Azure.ResourceManager.Redis.netstandard2.0.cs Updates public API surface for renamed parameters.
sdk/redis/Azure.ResourceManager.Redis/api/Azure.ResourceManager.Redis.net8.0.cs Updates public API surface for renamed parameters.
sdk/redis/Azure.ResourceManager.Redis/api/Azure.ResourceManager.Redis.net10.0.cs Updates public API surface for renamed parameters.
sdk/recoveryservices/Azure.ResourceManager.RecoveryServices/src/Generated/Models/AzureResourceManagerRecoveryServicesContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/recoveryservices-siterecovery/Azure.ResourceManager.RecoveryServicesSiteRecovery/src/Generated/Models/VMwareCbtEnableMigrationContent.cs Removes a convenience constructor from generated type (reintroduced via compatibility partial).
sdk/recoveryservices-siterecovery/Azure.ResourceManager.RecoveryServicesSiteRecovery/src/Generated/Models/InMageRcmFabricCreationContent.cs Removes a convenience constructor from generated type (reintroduced via compatibility partial).
sdk/recoveryservices-siterecovery/Azure.ResourceManager.RecoveryServicesSiteRecovery/src/Generated/Models/AzureResourceManagerRecoveryServicesSiteRecoveryContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/recoveryservices-siterecovery/Azure.ResourceManager.RecoveryServicesSiteRecovery/src/Custom/Models/VMwareCbtEnableMigrationContent.Compatibility.cs Restores a convenience constructor for GA/source compatibility.
sdk/recoveryservices-siterecovery/Azure.ResourceManager.RecoveryServicesSiteRecovery/src/Custom/Models/InMageRcmFabricCreationContent.Compatibility.cs Restores a convenience constructor for GA/source compatibility.
sdk/recoveryservices-siterecovery/Azure.ResourceManager.RecoveryServicesSiteRecovery/api/Azure.ResourceManager.RecoveryServicesSiteRecovery.netstandard2.0.cs Updates public API surface for constructor parameter naming.
sdk/recoveryservices-siterecovery/Azure.ResourceManager.RecoveryServicesSiteRecovery/api/Azure.ResourceManager.RecoveryServicesSiteRecovery.net8.0.cs Updates public API surface for constructor parameter naming.
sdk/recoveryservices-siterecovery/Azure.ResourceManager.RecoveryServicesSiteRecovery/api/Azure.ResourceManager.RecoveryServicesSiteRecovery.net10.0.cs Updates public API surface for constructor parameter naming.
sdk/recoveryservices-datareplication/Azure.ResourceManager.RecoveryServicesDataReplication/src/Generated/Models/AzureResourceManagerRecoveryServicesDataReplicationContext.cs Adds ResponseError as buildable and required using Azure;.
sdk/recoveryservices-backup/Azure.ResourceManager.RecoveryServicesBackup/src/Generated/Models/AzureResourceManagerRecoveryServicesBackupContext.cs Adds ResponseError and WritableSubResource as buildables and required imports.
sdk/quota/Azure.ResourceManager.Quota/src/Generated/Models/AzureResourceManagerQuotaContext.cs Adds ResponseError as buildable and required using Azure;.
eng/azure-typespec-http-client-csharp-mgmt-emitter-package.json Bumps mgmt emitter dependency version to 20260811.2.
eng/azure-typespec-http-client-csharp-mgmt-emitter-package-lock.json Updates lockfile to match the new emitter dependency graph.
Files not reviewed (1)
  • eng/azure-typespec-http-client-csharp-mgmt-emitter-package-lock.json: Generated file
Suppressed comments (3)

sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/Models/ArmAppServiceModelFactory.ParameterCompatibility.cs:57

  • The XML doc param tags for PremierAddOnData are out of order vs the method signature (signature has kind before sku, etc.). This makes IntelliSense misleading.
    sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/Models/ArmAppServiceModelFactory.ParameterCompatibility.cs:89
  • The XML doc param tags for DiagnosticCategoryData are out of order vs the method signature (kind then description). This makes IntelliSense misleading.
    sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/Models/ArmAppServiceModelFactory.ParameterCompatibility.cs:108
  • The XML doc param tags for WebSiteAnalysisDefinitionData are out of order vs the method signature (kind then description). This makes IntelliSense misleading.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Management SDK Review Summary

  • Scope: Azure.ResourceManager.Sql, Azure.ResourceManager.AppService, Azure.ResourceManager.SecurityCenter, Azure.ResourceManager.SecurityInsights, Azure.ResourceManager.Redis, Azure.ResourceManager.Reservations, Azure.ResourceManager.RecoveryServicesSiteRecovery, Azure.ResourceManager.RecoveryServicesBackup, Azure.ResourceManager.RecoveryServicesDataReplication, Azure.ResourceManager.Quota, and ~15 other packages with only src/Generated/Models/AzureResourceManager*Context.cs emitter metadata changes
  • Versioning: Pass — ApiCompatVersion present in all packages; no version bumps outside expected ranges
  • API surface: Fail — 54 deterministic scanner errors across 3 packages (23 SQL OPTPARAM001, 29 AppService OPTPARAM001/002, 2 SecurityCenter OPTPARAM001)
  • Contextual naming: Evaluated 56 new public types (13 SQL, 40 AppService, 3 Reservations shims); flagged 0 — all names carry sufficient RP/domain context
  • ApiCompat / breaking changes: CI passed (success); however, 54 OPTPARAM findings are source-compatible breaks that ApiCompat does not detect
  • Migration-specific checks: Not applicable — this is an emitter refresh PR

Blocking Findings

Azure.ResourceManager.Sql — 23 × [OPTPARAM001] (baseline: 1.4.0)

The regenerated code changed multiple collection and resource method parameters from optional to required. None of these are covered by the existing ArmSqlModelFactory.ParameterCompatibility.cs shims. Full list:

Class Method Required params
SqlDatabaseCollection GetAll / GetAllAsync skipToken
SqlServerJobExecutionCollection GetAll / GetAllAsync / GetJobTargetExecutions / GetJobTargetExecutionsAsync createTimeMin, createTimeMax, endTimeMin, endTimeMax, isActive, skip, top, cancellationToken
SqlServerJobExecutionStepCollection GetAll / GetAllAsync same filter params
SqlServerJobExecutionStepTargetCollection GetAll / GetAllAsync same filter params
ManagedDatabaseResource GetManagedDatabaseSecurityEventsByDatabase / Async filter, skip, top, skiptoken, cancellationToken
DataMaskingPolicyResource GetDataMaskingRules / Async filter, cancellationToken
SqlServerResource GetRestorableDroppedDatabaseAsync cancellationToken
MockableSqlResourceGroupResource GetLongTermRetentionBackupsWithLocation/Server/ManagedInstanceBackupsWithInstance/Location (8 overloads) onlyLatestPerDatabase, databaseState, cancellationToken

Fix: Add compat overloads in the existing ArmSqlModelFactory.ParameterCompatibility.cs (or new per-class compat files) using [CodeGenSuppress] + forwarding method for each affected method, restoring the optional defaults from the 1.4.0 baseline. Follow the pattern already established for TdeCertificate and ManagedInstanceVcoresCapability.


Azure.ResourceManager.AppService — 29 × [OPTPARAM001/OPTPARAM002] (baseline: 1.5.0)

See inline comments for the private endpoint connection CancellationToken OPTPARAM002 fixes. Additional model factory findings:

OPTPARAM001 (optional → required in new overload — add compat shims):

  • ArmAppServiceModelFactory.SiteAuthSettingsV2: id, name, resourceType, systemData, platform, globalValidation, identityProviders, login, httpSettings, kind changed to required
  • ArmAppServiceModelFactory.AppServiceEnvironmentAddressResult: id, name, resourceType, systemData, serviceIPAddress, internalIPAddress, outboundIPAddresses, virtualIPMappings, kind changed to required
  • ArmAppServiceModelFactory.CsmDeploymentStatus: id, name, resourceType, systemData, deploymentId, status, numberOfInstancesInProgress/Successful/Failed, failedInstancesLogs, errors, kind changed to required

OPTPARAM002 (required → optional, overload ambiguity risk — add compat shims restoring old required-param overloads):

  • ArmAppServiceModelFactory.ResourceNameAvailability, ResourceNameAvailabilityContent
  • ArmAppServiceModelFactory.AppServiceVirtualNetworkGatewayData, ContinuousWebJobData, CsmPublishingCredentialsPoliciesEntityData, AppServiceDetectorData, AppServiceSourceControlData, AseV3NetworkingConfigurationData, SiteContainerData, CustomDnsSuffixConfigurationData, AppServiceEnvironmentData

Fix: Add compat overloads in src/Customization/AppService/Models/ArmAppServiceModelFactory.ParameterCompatibility.cs using [CodeGenSuppress] + forwarding methods, following the AppServiceIdentifierData/PremierAddOnData pattern and referencing issue #61815.


Azure.ResourceManager.SecurityCenter — 2 × [OPTPARAM001] (baseline: 1.1.0)

SecurityCenterPricingCollection.GetAll and GetAllAsync: the new API adds an overload GetAll(string filter = null, CancellationToken = default) alongside GetAll(CancellationToken cancellationToken) — but the second form makes cancellationToken required while the baseline had it optional. Callers that passed a CancellationToken positionally now bind to the required-param overload instead of the optional one.

Fix: Add a compat shim or ensure the parameterless-compatible GetAll(CancellationToken cancellationToken = default) form is preserved alongside the new GetAll(string filter = null, CancellationToken = default) overload. The source file for SecurityCenterPricingCollection is not in this PR's diff; add it as a new customization file.


Non-Blocking Findings

Azure.ResourceManager.SecurityCenter — warnings (pre-existing from 1.2.0-beta chain)

  • [DATE001] InformationProtectionPolicyData.LastModifiedUtc and InformationProtectionPolicy.LastModifiedUtc — DateTimeOffset properties not ending with On. These are pre-existing from the beta series and not introduced by this PR.

Azure.ResourceManager.SecurityInsights — warnings (pre-existing from 1.2.0-beta chain)

Scanner found 12 warnings all pre-existing relative to the 1.1.0 GA baseline: 5× [DATE001], 4× [TYPE001] (string ResourceId properties that may hold ARM resource IDs), 3× [SUFFIX006/007] (SecurityInsightsThreatIntelligenceIndicatorData, CustomizableConnectorDefinitionData using Data without inheriting ResourceData; ActivityEntityQueryDefinition using Definition suffix). None are introduced by this emitter refresh PR.


Verified Compatibility Shims (no action needed)

The following custom files correctly add backward-compatibility shims with proper [CodeGenSuppress] + TODO comments:

  • Azure.ResourceManager.RecoveryServicesSiteRecoveryInMageRcmFabricCreationContent.Compatibility.cs, VMwareCbtEnableMigrationContent.Compatibility.cs (required-params constructor shims referencing TypeSpec issue #11588)
  • Azure.ResourceManager.ReservationsArmReservationsModelFactory.ParameterCompatibility.cs (ReservationProperties shim)
  • Azure.ResourceManager.SecurityInsightsArmSecurityInsightsModelFactory.ParameterCompatibility.cs (MicrosoftSecurityIncidentCreationAlertRuleTemplate shim)
  • Azure.ResourceManager.SqlArmSqlModelFactory.ParameterCompatibility.cs (TdeCertificate, ManagedInstanceVcoresCapability shims)
  • Azure.ResourceManager.AppService — existing shims for AppServiceIdentifierData, PremierAddOnData, DiagnosticCategoryData, WebSiteAnalysisDefinitionData ✓; private endpoint connection type-change shims ✓

Resolving TypeSpec-related review comments

  1. Open a separate spec PR in azure-rest-api-specs, or update the existing spec PR for this SDK change.
  2. Before the spec PR merges, update tsp-location.yaml to the latest commit from the spec PR, regenerate the SDK, and rerun this review.
  3. If the review reports new findings, address them in the same spec PR, update the SDK from its latest commit, and repeat steps 2 and 3. Do not merge the spec PR while any review findings remain.
  4. Only after the review reports no more findings, merge the spec PR.
  5. After the spec PR merges, update tsp-location.yaml to the latest main commit in azure-rest-api-specs that contains the merged changes, then regenerate the SDK.

Analyzed by Azure .NET Management SDK PR Review: 5 inline comments, 3 packages with blocking OPTPARAM findings.

Analyzed by Azure .NET Management SDK PR Review: https://github.com/Azure/azure-sdk-for-net/actions/runs/31589211011

Comments that could not be inline-anchored

sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/HostingEnvironmentPrivateEndpointConnectionCollection.cs:23

[OPTPARAM002] The GA baseline (1.5.0) shipped CreateOrUpdateAsync with PrivateLinkConnectionApprovalRequestInfo accepting CancellationToken cancellationToken as required (no default). This shim changes it to cancellationToken = default, which is an OPTPARAM002 source-compatibility break that ApiCompat does not catch.

Restore the required signature:

public virtual Task&lt;ArmOperation&lt;HostingEnvironmentPrivateEndpointConnectionResource&gt;&gt; CreateOrUpdateAsync(
    WaitUntil</details>

<details><summary>sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/SitePrivateEndpointConnectionCollection.cs:28</summary>

**[OPTPARAM002]** The GA baseline (1.5.0) shipped both `CreateOrUpdate` and `CreateOrUpdateAsync` accepting `PrivateLinkConnectionApprovalRequestInfo` with `CancellationToken cancellationToken` as **required** (no default). These shims change both to `cancellationToken = default`, which is an OPTPARAM002 source-compatibility break.

Restore the required signatures for both `CreateOrUpdate` and `CreateOrUpdateAsync` in this class, matching the baseline:
```csharp
public virtual ArmOperation&lt;Site</details>

<details><summary>sdk/websites/Azure.ResourceManager.AppService/src/Customization/AppService/HostingEnvironmentPrivateEndpointConnectionResource.cs:96</summary>

**[OPTPARAM002]** The GA baseline (1.5.0) shipped `Update` and `UpdateAsync` accepting `PrivateLinkConnectionApprovalRequestInfo` with `CancellationToken cancellationToken` as **required** (no default). These shims add `= default`, which is an OPTPARAM002 source-compatibility break.

Restore required `CancellationToken` in the shims:
```csharp
public virtual ArmOperation&lt;HostingEnvironmentPrivateEndpointConnectionResource&gt; Update(
    WaitUntil waitUntil, PrivateLinkConnectionApprovalRequestInf</details>

<details><summary>sdk/websites/Azure.ResourceManager.AppService/src/Generated/ArmAppServiceModelFactory.cs:3636</summary>

**[OPTPARAM002]** The GA baseline (1.5.0) shipped several `ArmAppServiceModelFactory` factory methods with required positional parameters. This regeneration made them all optional (adding `= default`), breaking source compatibility for callers who wrote tests against the old factory signatures. ApiCompat passes because the methods still exist, but overload resolution changes.

Methods affected (scanner findings, OPTPARAM002):
- `ResourceNameAvailability(bool isNameAvailable, CheckNameAvailabili</details>

<details><summary>sdk/sqlmanagement/Azure.ResourceManager.Sql/src/Custom/Models/ArmSqlModelFactory.ParameterCompatibility.cs:23</summary>

**[OPTPARAM001]** This compat file adds shims for `TdeCertificate` and `ManagedInstanceVcoresCapability` (good), but there are **23 additional OPTPARAM001 source-compatibility breaks** on collection methods where parameters changed from optional to required. These are not covered here.

Methods affected (representative list — see full scanner output):
- `SqlDatabaseCollection.GetAll(string skipToken, CancellationToken)` — `skipToken` changed from optional to required
- `SqlDatabaseCollection.Ge…

</details>

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 66a55915-e310-4860-a690-1df47405837d
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 66a55915-e310-4860-a690-1df47405837d
@live1206

Copy link
Copy Markdown
Member Author

Addressed the blocking compatibility review in 3b108a2ebe6:

  • Restored GA-required CancellationToken signatures on 15 App Service private-endpoint compatibility shims.
  • Added 9 App Service model-factory compatibility overloads with GA required/optional boundaries, removing the CS0121 ambiguities introduced by the regenerated overloads.
  • Restored optional defaults on 8 SQL MockableSqlResourceGroupResource long-term-retention methods.

The remaining 22 scanner findings are false positives because alternate overloads preserve the GA calls: 15 SQL, 2 Security Center, and 5 App Service. Representative GA calls compile against the updated projects. These cases were added to #61975.

- by copilot

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Management SDK Review Summary

  • Scope: Azure.ResourceManager.Sql (baseline 1.4.0), Azure.ResourceManager.AppService (baseline 1.5.0), Azure.ResourceManager.SecurityCenter (baseline 1.1.0), Azure.ResourceManager.SecurityInsights (baseline 1.1.0) — packages with API file changes. ~21 other packages had only emitter metadata or non-API changes.
  • Versioning: Pass — ApiCompatVersion present in all reviewed packages; no version bumps detected.
  • API surface: Fail — 22 deterministic scanner errors (15 SQL OPTPARAM001, 5 AppService OPTPARAM001/002, 2 SecurityCenter OPTPARAM001). SecurityInsights: ✅ fully fixed by the new ParameterCompatibility.cs in this PR.
  • Contextual naming: Evaluated 13 new public types in SQL (all OK), 40 new public types in AppService (flagged 2). SecurityCenter contextual naming not evaluated (baseline is netstandard2.0 vs current net10.0; 264 apparent new types includes all API surface added since 1.1.0 — impractical to evaluate in this round).
  • ApiCompat / breaking changes: CI passed (success); however, 22 OPTPARAM findings are source-compatibility breaks that ApiCompat does not detect.
  • Migration-specific checks: Not applicable — this is an emitter refresh PR.

Blocking Findings

Azure.ResourceManager.Sql — 15 × [OPTPARAM001] (see inline comment)

The following collection/resource methods still have parameters changed from optional to required relative to the 1.4.0 baseline. The new ArmSqlModelFactory.ParameterCompatibility.cs covers only model factory methods and does not address these:

  • SqlDatabaseCollection.GetAll/GetAllAsyncskipToken
  • SqlServerJobExecutionCollection.GetAll/GetAllAsync/GetJobTargetExecutions/GetJobTargetExecutionsAsync — 8 filter params each
  • SqlServerJobExecutionStepCollection.GetAll/GetAllAsync — same filter params
  • SqlServerJobExecutionStepTargetCollection.GetAll/GetAllAsync — same filter params
  • ManagedDatabaseResource.GetManagedDatabaseSecurityEventsByDatabase/Asyncfilter, skip, top, skiptoken, cancellationToken
  • DataMaskingPolicyResource.GetDataMaskingRules/GetDataMaskingRulesAsynccancellationToken
  • SqlServerResource.GetRestorableDroppedDatabaseAsynccancellationToken

Fix: Create per-class compat files (e.g., SqlDatabaseCollection.Compatibility.cs) using the [CodeGenSuppress] + forwarding method pattern already applied in MockableSqlResourceGroupResource.cs.


Azure.ResourceManager.AppService — 5 × [OPTPARAM001/002] (see inline comment)

Five model factory methods are not yet covered by ArmAppServiceModelFactory.ParameterCompatibility.cs:

  • AppServiceEnvironmentAddressResult — OPTPARAM001 (9 params changed optional → required)
  • CsmDeploymentStatus — OPTPARAM001 (12 params changed optional → required)
  • ResourceNameAvailability — OPTPARAM002 (3 params changed required → optional, creates overload ambiguity)
  • ResourceNameAvailabilityContent — OPTPARAM002 (4 params changed required → optional)
  • SiteAuthSettingsV2 — OPTPARAM001 (10 params changed optional → required)

Fix: Add [CodeGenSuppress] and forwarding overloads for these 5 methods in the existing ArmAppServiceModelFactory.ParameterCompatibility.cs, following the same pattern already used for ContinuousWebJobData, AppServiceEnvironmentData, etc.


Azure.ResourceManager.SecurityCenter — 2 × [OPTPARAM001]

  • SecurityCenterPricingCollection.GetAllcancellationToken changed from optional to required
  • SecurityCenterPricingCollection.GetAllAsynccancellationToken changed from optional to required

Fix: Create SecurityCenterPricingCollection.Compatibility.cs (or equivalent) in src/Custom/ with [CodeGenSuppress] + forwarding methods that restore cancellationToken = default.


Non-inline Findings

Contextual Naming — AppService (2 flagged out of 40 evaluated)

AiIntegration (API line 7546, src/Generated/Models/AiIntegration.cs): The name lacks RP/service context. In IntelliSense without namespace qualification, AiIntegration is ambiguous across the Azure SDK ecosystem. Recommend AppServiceAiIntegration.

Fix: Add @@clientName(AiIntegration, "AppServiceAiIntegration", "csharp"); in the service TypeSpec client.tsp and regenerate.

ErrorEntity (API line 11335, src/Generated/Models/ErrorEntity.cs): Very generic name that competes with many existing error types in the Azure SDK. Recommend AppServiceErrorEntity.

Fix: Add @@clientName(ErrorEntity, "AppServiceErrorEntity", "csharp"); in the service TypeSpec client.tsp and regenerate.


Resolving TypeSpec-related review comments

  1. Open a separate spec PR in azure-rest-api-specs, or update the existing spec PR for this SDK change.
  2. Before the spec PR merges, update tsp-location.yaml to the latest commit from the spec PR, regenerate the SDK, and rerun this review.
  3. If the review reports new findings, address them in the same spec PR, update the SDK from its latest commit, and repeat steps 2 and 3. Do not merge the spec PR while any review findings remain.
  4. Only after the review reports no more findings, merge the spec PR.
  5. After the spec PR merges, update tsp-location.yaml to the latest main commit in azure-rest-api-specs that contains the merged changes, then regenerate the SDK.

Analyzed by Azure .NET Management SDK PR Review: 31609595036

Analyzed by Azure .NET Management SDK PR Review: https://github.com/Azure/azure-sdk-for-net/actions/runs/31609595036

@live1206

Copy link
Copy Markdown
Member Author

The remaining non-inline findings in review #4918075073 are also false positives/out of scope:

  • The two Security Center optionality findings are source-compatible: the filter overload preserves GetAll(), and the cancellation-token overload preserves GetAll(cancellationToken).
  • AiIntegration and ErrorEntity already exist on main, and their generated files are unchanged by this PR, so they are outside the changed-API scope of this emitter refresh.

All 22 optionality false-positive cases are tracked in #61975.

- by copilot

@live1206
Wei Hu (live1206) merged commit 9ba67d1 into main Aug 13, 2026
56 checks passed
@live1206
Wei Hu (live1206) deleted the validate-typespec-20260811.2-mgmt-part-4 branch August 13, 2026 02:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

App Services Do Not Merge Mgmt This issue is related to a management-plane library. Quota Quota Service Recovery Services Backup SiteManager SQL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants