feat(sdk): batch 5 — 8 new connector clients (Azure Queues, Tables, CosmosDB, Event Hubs, Excel Online Business, Outlook, Service Bus, Word Online Business)#146
Merged
Conversation
…ients (batch 5) Adds three new generated connector clients to the SDK. These required fixing two generator bugs before generation was possible. Generator bugs fixed (in AzureUX-BPM PR feature/directclient-generator-fixes): - Bug 1 (#135, #136): IPageable property name derived from x-ms-summary instead of the required 'Value' identifier, causing CS0535 compile errors. - Bug 3 (#137): Array-typed \ definitions (e.g., FormsList) were referenced as named classes that the class generator never emitted, causing CS0246. New connector clients: - AzureADClient (azuread) - GetUser, CreateUser, GetGroup, GetGroupMembers (pageable via AsyncPageable<GetUserResponse>), CreateGroup, UpdateUser - AzureIoTCentralClient (azureiotcentral) - Applications (pageable), DeviceGroups (pageable), Devices (pageable), DeviceTemplates, Jobs, and more - MicrosoftFormsClient (microsoftforms) - ListForms, GetFormDetailsById, GetFormResponseById, GetQuestions Files changed: - src/Azure.Connectors.Sdk/Generated/AzureADExtensions.cs (new) - src/Azure.Connectors.Sdk/Generated/AzureIoTCentralExtensions.cs (new) - src/Azure.Connectors.Sdk/Generated/MicrosoftFormsExtensions.cs (new) - src/Azure.Connectors.Sdk/Generated/ConnectorNames.cs (AzureAD, AzureIoTCentral, MicrosoftForms) - src/Azure.Connectors.Sdk/Generated/ManagedConnectors.cs (azuread, azureiotcentral, microsoftforms) - tests/Azure.Connectors.Sdk.Tests/AzureADClientTests.cs (new, 10 tests) - tests/Azure.Connectors.Sdk.Tests/AzureIoTCentralClientTests.cs (new, 9 tests) - tests/Azure.Connectors.Sdk.Tests/MicrosoftFormsClientTests.cs (new, 8 tests) - README.md, CHANGELOG.md, .github/skills/connection-setup/SKILL.md Tests: 569 passing (was 542)
There was a problem hiding this comment.
Pull request overview
This PR adds three new generated connector clients (Azure AD, Azure IoT Central, Microsoft Forms) to the SDK as the 5th batch of connector additions, along with the supporting registrations and documentation updates.
Changes:
- New generated
AzureADClient,AzureIoTCentralClient, andMicrosoftFormsClienttogether with their model types and model factories. - Registers the three new connectors in
ConnectorNames.cs,ManagedConnectors.cs,README.md, and the connection-setup skill doc; adds CHANGELOG entry under Unreleased/Added. - Adds unit tests covering construction, dispose, mocked success/error responses, and serialization round-trips for each new client.
Reviewed changes
Copilot reviewed 6 out of 11 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| src/Azure.Connectors.Sdk/Generated/AzureADExtensions.cs | New generated AzureAD client + models + factory |
| src/Azure.Connectors.Sdk/Generated/AzureIoTCentralExtensions.cs | New generated AzureIoTCentral client + extensive models |
| src/Azure.Connectors.Sdk/Generated/MicrosoftFormsExtensions.cs | New generated MicrosoftForms client + models |
| src/Azure.Connectors.Sdk/Generated/ConnectorNames.cs | Registers azuread/azureiotcentral/microsoftforms constants |
| src/Azure.Connectors.Sdk/Generated/ManagedConnectors.cs | Adds new entries to AvailableConnectors and snippet comments |
| tests/Azure.Connectors.Sdk.Tests/AzureADClientTests.cs | Unit tests for AzureADClient |
| tests/Azure.Connectors.Sdk.Tests/AzureIoTCentralClientTests.cs | Unit tests for AzureIoTCentralClient |
| tests/Azure.Connectors.Sdk.Tests/MicrosoftFormsClientTests.cs | Unit tests for MicrosoftFormsClient |
| README.md | Adds new connectors to the validated/SDK-generated tables |
| CHANGELOG.md | Adds batch 5 entry under Unreleased/Added |
| .github/skills/connection-setup/SKILL.md | Adds new connector API names to supported list |
Generated from fixed CodefulSdkGenerator (BPM feature/directclient-generator-fixes): - AzurequeuesClient - Azure Storage Queues - AzuretablesClient - Azure Storage Tables - DocumentdbClient - Azure Cosmos DB (connector API name: documentdb) - EventhubsClient - Azure Event Hubs (connector API name: eventhubs) - ExcelOnlineBusinessClient - Excel Online (Business) - OutlookClient - Outlook - ServicebusClient - Azure Service Bus - WordOnlineBusinessClient - Word Online (Business) Also updates ConnectorNames.cs, ManagedConnectors.cs, README.md, CHANGELOG.md, and connection-setup skill with the 8 new connector names. Closes #138, #139. Related: #135, #136, #137 (generator fixes already applied)
Discovered that parameterValues for non-OAuth connectors (azurequeues, azuretables, eventhubs, servicebus, documentdb, smtp) are stored in the Connector Namespace PUT body, but require charset=utf-8 in Content-Type header and WriteAllText with UTF8 encoding to reliably store keys with base64 characters (+, =, /). Must DELETE existing connection and recreate fresh - retrying PUT on existing connection does not apply parameterValues. Also documents the parameterNames for common credential-based connectors.
…rk batch-5 as E2E validated in README
- AzureADExtensions: fix DisplayName/MailNickname typed as DateTime? → string in CreateGroupResponse - AzureADExtensions: rename AdditionalProperties → CustomProperties in UpdateUserRequest to match JSON name - AzureADExtensions: change GetGroupMembersAsync top from int to int? so top=0 is not silently dropped - AzureIoTCentralExtensions: rename UserCollection.Users → Value for IPageable<T> symmetry - AzureIoTCentralExtensions: change SchemaScheduledJobAsync/SchemaUserAsync bool patch → bool? so patch=false is not silently dropped - AzureIoTCentralExtensions: make WorkflowGetCapabilities/Components/ModulesAsync template parameter optional (= default) to match body guard behavior - ManagedConnectors: fix alphabetical order — MicrosoftForms must appear before Mq - MicrosoftFormsExtensions: remove responseId guard so responseId=0 is not silently dropped - EventhubsExtensions: make SendEventsAsync partitionKey optional (= default) for parity with SendEventAsync - README: update Validated Operations method names to match actual generated client API surface
…Time types, PascalCase client/factory names, README/CHANGELOG fixes, alphabetical connector order
…es to PascalCase, README status to SDK Generated
…ired-param guards in DeleteMessageAsync and WordOnlineBusiness methods
…ist, EntityItem rename, IPageable test assertions
…o use renamed PascalCase client names
…ayloads region, sort README table, trim validated ops, fix CHANGELOG issue refs, add missing DI registrations
…expose source param in GetDrivesAsync
…torClient to match registered type
…name, EntityData to AdditionalProperties, GetDocumentResponse extension data
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds 8 new generated connector clients using the fixed CodefulSdkGenerator from the BPM
feature/directclient-generator-fixesbranch.New Clients (8)
AzurequeuesClientAzurequeuesAzuretablesClientAzuretablesDocumentdbClientdocumentdbEventhubsClientEventhubsExcelOnlineBusinessClientExcelonlinebusinessOutlookClientoutlookServicebusClientservicebusWordOnlineBusinessClientwordonlinebusinessPreviously generated connectors (earlier commit on this branch)
AzureADClient,AzureIoTCentralClient,MicrosoftFormsClient— generated with the fixed generator in a prior commit.Generator Fixes (BPM repo — separate PR)
These connectors required fixes to
CodefulSdkGeneratorbefore they could be generated correctly:IPageable<T>.Valueproperty was renamed byx-ms-summarymetadata, breaking the interface contract$refpointing to an array-typed definition emitted undefined class name instead ofList<T>Files Changed
src/.../Generated/*.Extensions.cs— 8 new generated files (never hand-edited)src/.../Generated/ConnectorNames.cs— 8 new constants in alphabetical ordersrc/.../Generated/ManagedConnectors.cs— 8 new registrations in alphabetical ordertests/.../*ClientTests.cs— 8 new test files (constructor, dispose, mocked API, error handling)README.md,CHANGELOG.md,.github/skills/connection-setup/SKILL.md— documentation updatesTest Results
Includes
ConnectorNames_AllConstantsAreRegisteredvalidation test.