Skip to content

Regenerate AzureIoTCentral from the type-identity generator fix - #225

Merged
daviburg merged 1 commit into
mainfrom
fix/regen-azureiotcentral-type-identity
Jul 30, 2026
Merged

Regenerate AzureIoTCentral from the type-identity generator fix#225
daviburg merged 1 commit into
mainfrom
fix/regen-azureiotcentral-type-identity

Conversation

@daviburg

@daviburg daviburg commented Jul 29, 2026

Copy link
Copy Markdown
Member

Regenerates AzureIoTCentral from the paired generator fix in AzureUX-BPM PR 16618864.

What was wrong

The generator strips a version affix when turning a swagger definition name into a type name, so DeviceV1 and DeviceV2 both wanted to be Device. When a connector retains both, only one type was emitted and the other was dropped silently.

azureiotcentral shipped the consequence: a single Device class carrying DeviceV1's seven properties, while DeviceV2 declares eight. The organizations property the service returns on the v2 routes was unreachable from the SDK.

What changes here

Device becomes DeviceV1 and DeviceV2, emitted as distinct models, so callers of the v2 routes can read every field.

This is a breaking rename for anyone referencing Device on this connector, which is the point: the previous name silently mapped to only one of two contracts.

Scope note

The diff is larger than this one fix. The checked-in generated clients predate several merged generator changes, so regenerating any client also picks up that accumulated drift. Of the change here, +204 lines are attributable to the type-identity fix; the rest is drift that a full regeneration would have carried anyway.

The generator fix affects five SDK clients — AzureAD, AzureIoTCentral, Office365, Pipedrive, Planner. This PR carries only AzureIoTCentral as the demonstrating client, since it holds the headline defect. The other four are left to the full regeneration already owed.

Validation

  • All five affected clients were regenerated and compiled against the SDK before this PR was reduced to one.
  • dotnet build succeeds, 912 SDK tests pass.
  • Compiling the generated output is what caught a pagination site the generator fix had missed, where IPageable<Device> was emitted against a class now named DeviceV1. Generation success alone would have shipped code that does not build.

Authored with Dobby agent.

The generator stripped version affixes from definition names without knowing
which definitions a connector retains, so DeviceV1 and DeviceV2 both wanted to be
Device and only one was emitted. The shipped Device carried DeviceV1 seven
properties, and the organizations property that DeviceV2 declares was unreachable
from the SDK.

The connector now exposes DeviceV1 and DeviceV2 as distinct models, so callers of
the v2 routes can read every field the service returns.

This is the demonstrating client for the paired generator change; the fix affects
five SDK clients in total and the remaining four are left to the full
regeneration that is already owed.
Copilot AI review requested due to automatic review settings July 29, 2026 21:05
@daviburg
daviburg requested a review from a team as a code owner July 29, 2026 21:05

Copilot AI 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.

Copilot wasn't able to review any files in this pull request.

@daviburg
daviburg merged commit 53183c7 into main Jul 30, 2026
13 checks passed
@daviburg
daviburg deleted the fix/regen-azureiotcentral-type-identity branch July 30, 2026 16:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants