[AutoPR Azure.ResourceManager.HorizonDb]-generated-from-SDK Generation - .NET-6080418#57579
[AutoPR Azure.ResourceManager.HorizonDb]-generated-from-SDK Generation - .NET-6080418#57579
Conversation
…orizonDb/HorizonDb/tspconfig.yaml', API Version: 2026-01-20-preview, SDK Release Type: beta, and CommitSHA: 'f6e1fbd6268be7712bf96a516ba846f7d42e2baa' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6080418 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
Add README.md, CHANGELOG.md, ci.mgmt.yml, test project, API listings, Directory.Build.props, AssemblyInfo.cs, and fix .sln and .csproj for the new HorizonDb management SDK package. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds the initial, auto-generated Azure.ResourceManager.HorizonDb management package scaffold for API version 2026-01-20-preview (beta.1), including project files and standard SDK documentation/metadata.
Changes:
- Added initial package project (
.csproj) and solution (.sln) scaffolding. - Added package metadata (
metadata.json) for API version tracking. - Added standard README and CHANGELOG documentation files.
Reviewed changes
Copilot reviewed 6 out of 179 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/horizondb/Azure.ResourceManager.HorizonDb/src/Azure.ResourceManager.HorizonDb.csproj | Introduces the package project definition and NuGet metadata. |
| sdk/horizondb/Azure.ResourceManager.HorizonDb/metadata.json | Declares the RP API version used by the generated SDK. |
| sdk/horizondb/Azure.ResourceManager.HorizonDb/README.md | Adds the package readme with getting-started content and links. |
| sdk/horizondb/Azure.ResourceManager.HorizonDb/Directory.Build.props | Adds package-level props and imports repo Directory.Build.props. |
| sdk/horizondb/Azure.ResourceManager.HorizonDb/CHANGELOG.md | Adds initial unreleased changelog entry. |
| sdk/horizondb/Azure.ResourceManager.HorizonDb/Azure.ResourceManager.HorizonDb.sln | Adds a solution referencing src + tests projects. |
API Change CheckAPIView identified API level changes in this PR and created the following API reviews |
There was a problem hiding this comment.
Need do SDK namespace review before release SDK, Please file a ticket at the link below to request a review.

|
Namespace review: Azure/azure-sdk#9798 |
There was a problem hiding this comment.
Mgmt SDK Review Azure.ResourceManager.HorizonDB
Phase 1: Versioning PASS 1.0.0-beta.1, new package, no prior stable version.
Phase 2: API Naming Review Multiple naming issues found in generated API surface. These would need TypeSpec @clientName decorators or similar customizations.
Critical
-
PrivateEndpointConnectionResourceData/PrivateEndpointConnectionResourceCollection/PrivateEndpointConnectionResource"Resource" infix in Data/Collection/Resource names violates mgmt SDK naming guidelines. ThePrivateLinkResourceexception does not apply here. Should beHorizonDBPrivateEndpointConnectionData/HorizonDBPrivateEndpointConnectionCollection. -
HorizonDBExtensions.Delete/UpdateonResourceGroupResourceNon-prefixed extension methods directly onResourceGroupResourcewill collide with methods from other SDKs. These operations for private endpoint connections should be accessed through the resource's collection/resource pattern, not as bare extension methods. -
StateExtremely generic extensible enum with no service context. Should beHorizonDBClusterStateorHorizonDBResourceState. -
ProvisioningStateMissingHorizonDBprefix. Should beHorizonDBProvisioningState. -
PrivateEndpointConnectionPropertiesMissing service prefix. Should beHorizonDBPrivateEndpointConnectionProperties. -
PrivateEndpointConnectionUpdateMissing service prefix, wrong suffix. Should beHorizonDBPrivateEndpointConnectionPatch(PATCH body naming convention). -
OptionalPropertiesUpdateablePropertiesNon-descriptive auto-generated name. Needs a meaningful name likeHorizonDBPrivateEndpointConnectionPatchProperties.
Improvements
-
CreateModeCluster/CreateModePoolInverted naming convention. Should beHorizonDBClusterCreateMode/HorizonDBPoolCreateMode(resource type first, then discriminator). -
PublicNetworkAccessStateMissingHorizonDBprefix. -
ReplicaRoleMissingHorizonDBprefix. -
ZonePlacementPolicyMissingHorizonDBprefix. -
ParameterPropertiesMissingHorizonDBprefix. -
HorizonDBReplicaPatch.HorizonDBReplicaPropertiesForPatchUpdateRoleAuto-generated property name is unwieldy. Should be simplyRole.
ℹ Minor
PointInTimeUTCproperty onHorizonDBClusterPropertiesAcronym casing should follow PascalCase:PointInTimeUtc.
Phase 3: Breaking Changes N/A (no prior stable version).
arcturus-copilot
|
@ArcturusZhang @ArthurMa1978 Since namespace review has comment: .Net should be Azure.ResourceManager.HorizonDB. Should I close this PR and start over for new name? |
|
@ArcturusZhang and @ArthurMa1978 name is now Azure.ResourceManager.HorizonDB . Should I close this PR and re-trigger generation? |
|
@haiyuazhang What is ETA for this to be ready to merge |
|
|
Hi @ArcturusZhang is this PR just waiting for reviews? Anything else need to complete this work? |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ArcturusZhang
left a comment
There was a problem hiding this comment.
Mgmt SDK Review — Azure.ResourceManager.HorizonDB (re-review on 0363bf3)
Phase 1: Versioning ✅ PASS — 1.0.0-beta.1, new package, no ApiCompatVersion.
Phase 2: API Naming Review — After the package rename to HorizonDB, the assembly/namespace and several auto-derived types now use uppercase DB correctly (HorizonDBExtensions, ArmHorizonDBModelFactory, AzureResourceManagerHorizonDBContext, MockableHorizonDB*, HorizonDBPrivateEndpointConnection, HorizonDBPrivateLinkResourceProperties, HorizonDBPrivateLinkServiceConnectionState). However, 30 types still use lowercase Db because their names come from the TypeSpec spec; these need explicit @@clientName overrides in client.tsp. Inline comments cover each one.
Additional naming findings (Resource-infix violations, generic enum names, inverted CreateMode naming, etc.) from the prior review are also included as inline comments.
Phase 3: Breaking Changes — N/A (no prior stable version).
🤖 arcturus-copilot
| public static Azure.ResourceManager.HorizonDB.AzureResourceManagerHorizonDBContext Default { get { throw null; } } | ||
| protected override bool TryGetTypeBuilderCore(System.Type type, out System.ClientModel.Primitives.ModelReaderWriterTypeBuilder builder) { throw null; } | ||
| } | ||
| public partial class HorizonDbClusterCollection : Azure.ResourceManager.ArmCollection, System.Collections.Generic.IAsyncEnumerable<Azure.ResourceManager.HorizonDB.HorizonDbClusterResource>, System.Collections.Generic.IEnumerable<Azure.ResourceManager.HorizonDB.HorizonDbClusterResource>, System.Collections.IEnumerable |
There was a problem hiding this comment.
🔴 HorizonDbClusterCollection uses lowercase Db but the brand/package name is HorizonDB (uppercase B). Rename to HorizonDBClusterCollection via @@clientName(HorizonDbClusterCollection, "HorizonDBClusterCollection", "csharp"); in client.tsp.
🤖 arcturus-copilot
| System.Collections.Generic.IEnumerator<Azure.ResourceManager.HorizonDB.HorizonDbClusterResource> System.Collections.Generic.IEnumerable<Azure.ResourceManager.HorizonDB.HorizonDbClusterResource>.GetEnumerator() { throw null; } | ||
| System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } | ||
| } | ||
| public partial class HorizonDbClusterData : Azure.ResourceManager.Models.TrackedResourceData, System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.HorizonDB.HorizonDbClusterData>, System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.HorizonDB.HorizonDbClusterData> |
There was a problem hiding this comment.
🔴 HorizonDbClusterData uses lowercase Db but the brand/package name is HorizonDB (uppercase B). Rename to HorizonDBClusterData via @@clientName(HorizonDbClusterData, "HorizonDBClusterData", "csharp"); in client.tsp.
🤖 arcturus-copilot
| string System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.HorizonDB.HorizonDbClusterData>.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } | ||
| System.BinaryData System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.HorizonDB.HorizonDbClusterData>.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } | ||
| } | ||
| public partial class HorizonDbClusterResource : Azure.ResourceManager.ArmResource, System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.HorizonDB.HorizonDbClusterData>, System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.HorizonDB.HorizonDbClusterData> |
There was a problem hiding this comment.
🔴 HorizonDbClusterResource uses lowercase Db but the brand/package name is HorizonDB (uppercase B). Rename to HorizonDBClusterResource via @@clientName(HorizonDbClusterResource, "HorizonDBClusterResource", "csharp"); in client.tsp.
🤖 arcturus-copilot
| public static Azure.ResourceManager.ArmOperation<Azure.ResourceManager.HorizonDB.Models.HorizonDBPrivateEndpointConnection> Update(this Azure.ResourceManager.Resources.ResourceGroupResource resourceGroupResource, Azure.WaitUntil waitUntil, string privateEndpointConnectionName, Azure.ResourceManager.HorizonDB.Models.PrivateEndpointConnectionUpdate properties, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } | ||
| public static System.Threading.Tasks.Task<Azure.ResourceManager.ArmOperation<Azure.ResourceManager.HorizonDB.Models.HorizonDBPrivateEndpointConnection>> UpdateAsync(this Azure.ResourceManager.Resources.ResourceGroupResource resourceGroupResource, Azure.WaitUntil waitUntil, string privateEndpointConnectionName, Azure.ResourceManager.HorizonDB.Models.PrivateEndpointConnectionUpdate properties, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } | ||
| } | ||
| public partial class HorizonDbFirewallRuleCollection : Azure.ResourceManager.ArmCollection, System.Collections.Generic.IAsyncEnumerable<Azure.ResourceManager.HorizonDB.HorizonDbFirewallRuleResource>, System.Collections.Generic.IEnumerable<Azure.ResourceManager.HorizonDB.HorizonDbFirewallRuleResource>, System.Collections.IEnumerable |
There was a problem hiding this comment.
🔴 HorizonDbFirewallRuleCollection uses lowercase Db but the brand/package name is HorizonDB (uppercase B). Rename to HorizonDBFirewallRuleCollection via @@clientName(HorizonDbFirewallRuleCollection, "HorizonDBFirewallRuleCollection", "csharp"); in client.tsp.
🤖 arcturus-copilot
| System.Collections.Generic.IEnumerator<Azure.ResourceManager.HorizonDB.HorizonDbFirewallRuleResource> System.Collections.Generic.IEnumerable<Azure.ResourceManager.HorizonDB.HorizonDbFirewallRuleResource>.GetEnumerator() { throw null; } | ||
| System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } | ||
| } | ||
| public partial class HorizonDbFirewallRuleData : Azure.ResourceManager.Models.ResourceData, System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.HorizonDB.HorizonDbFirewallRuleData>, System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.HorizonDB.HorizonDbFirewallRuleData> |
There was a problem hiding this comment.
🔴 HorizonDbFirewallRuleData uses lowercase Db but the brand/package name is HorizonDB (uppercase B). Rename to HorizonDBFirewallRuleData via @@clientName(HorizonDbFirewallRuleData, "HorizonDBFirewallRuleData", "csharp"); in client.tsp.
🤖 arcturus-copilot
| System.BinaryData System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.HorizonDB.Models.PrivateEndpointConnectionUpdate>.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } | ||
| } | ||
| [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] | ||
| public readonly partial struct ProvisioningState : System.IEquatable<Azure.ResourceManager.HorizonDB.Models.ProvisioningState> |
There was a problem hiding this comment.
🔴 ProvisioningState lacks service context. Rename to HorizonDBProvisioningState.
🤖 arcturus-copilot
| public override string ToString() { throw null; } | ||
| } | ||
| [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] | ||
| public readonly partial struct PublicNetworkAccessState : System.IEquatable<Azure.ResourceManager.HorizonDB.Models.PublicNetworkAccessState> |
There was a problem hiding this comment.
🔴 PublicNetworkAccessState lacks service context. Rename to HorizonDBPublicNetworkAccessState (or consider using the common Azure.ResourceManager.Models.PublicNetworkAccess type if applicable).
🤖 arcturus-copilot
| public override string ToString() { throw null; } | ||
| } | ||
| [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] | ||
| public readonly partial struct ReplicaRole : System.IEquatable<Azure.ResourceManager.HorizonDB.Models.ReplicaRole> |
There was a problem hiding this comment.
🔴 ReplicaRole lacks service context. Rename to HorizonDBReplicaRole.
🤖 arcturus-copilot
| public override string ToString() { throw null; } | ||
| } | ||
| [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] | ||
| public readonly partial struct State : System.IEquatable<Azure.ResourceManager.HorizonDB.Models.State> |
There was a problem hiding this comment.
🔴 State is an extremely generic name with no service context. Rename to HorizonDBClusterState (or HorizonDBResourceState if it applies to multiple resources).
🤖 arcturus-copilot
| public override string ToString() { throw null; } | ||
| } | ||
| [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] | ||
| public readonly partial struct ZonePlacementPolicy : System.IEquatable<Azure.ResourceManager.HorizonDB.Models.ZonePlacementPolicy> |
There was a problem hiding this comment.
🟡 ZonePlacementPolicy lacks service context. Rename to HorizonDBZonePlacementPolicy.
🤖 arcturus-copilot
Configurations: 'specification/horizondb/resource-manager/Microsoft.HorizonDb/HorizonDb/tspconfig.yaml', API Version: 2026-01-20-preview, SDK Release Type: beta, and CommitSHA: 'f6e1fbd6268be7712bf96a516ba846f7d42e2baa' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6080418 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. Release plan link: https://web.powerapps.com/apps/821ab569-ae60-420d-8264-d7b5d5ef734c?release-plan-id=a6335704-8c03-f111-8406-000d3a597585 Submitted by: Naia.Scott@microsoft.com
Release Plan Details
Spec pull request: Onboarding Horizon Db with preview version 2026-01-20 azure-rest-api-specs#40119
Spec API version: 2026-01-20-preview