-
Seismic Planner localization values are strongly typed —
CustomPropertyValues.Localizationsis nowDictionary<string, CustomPropertyDataDisplay>instead ofJsonElement?, preserving the SwaggeradditionalPropertiesvalue schema. (#262, AzureUX-BPM PR 17131877) -
Microsoft Dataverse list rows now traverses every result page —
GetItemsAsyncpreserves the connector's@odata.nextLinkcontinuation and returns anAsyncPageable<Item>. Live validation against a synthetic 5,001-row table retrieved all rows across ten connector pages without overlap. (#208, AzureUX-BPM PR 17086991) -
Extensible enum member collisions now preserve every wire value — distinct values that normalize to one C# identifier are allocated stable unique names instead of dropping later claimants. Sign-and-number collisions use readable names, such as
Etc/GMT+4→EtcGmtPlus4andEtc/GMT-4→EtcGmtMinus4; ordinary delimiter hyphens still use the general numeric fallback. Values normalized to mandatory struct members (Equals,GetHashCode,ToString) use an availableValue-suffixed name. The frozen-cache audit tested 100 checked-in SDK names: 97 connectors generated, 96 were unchanged, and Plumsail was the only generated client affected.MsGraphGroupsAndUserswas unavailable from the current ARM catalog, whileConnectorNamesandManagedConnectorsare infrastructure files rather than connector inputs. (#181, AzureUX-BPM PR 16971205)Plumsail exercises the general normalization-collision path, not the reserved-member path. Reserved-member handling is retained as a synthetic generator regression for the historical failure reported in #181; no active reserved-member collision was found in the 97 connectors generated from the frozen snapshot. Of the eleven connector names in the issue, only Etsy remains in the current catalog, and its current Swagger has no such collision.
-
All 98 connector clients re-synchronized with live Swagger — regenerated every shipped client from the ARM catalog captured 2026-08-31. DocuSign and Jira are intentionally excluded from unfiltered generation by the generator skip list, but explicit filtered generation succeeded from their current ARM exports. Seven clients have content changes: Azure Monitor Logs, Google Drive, Jira, Key Vault, Plumsail, SigningHub, and Teams. The other 91 clients are byte-identical to their current versions. Validation found no dangling discovery references or type-name collapses. (AzureUX-BPM PRs 16971205 and 16998561; live cache SHA-256
894FB4C0977736CDF2A3D1103894C75470BF1ADBB2B2E44D742F20AACAFCED25)
-
Azure Monitor Logs: new
PartialQueryErrormodel exposes partial-query error details —Table.ErrorandVisualizeResults.Errornow carry a typedPartialQueryErrorobject with acodeproperty (wire nameerror), available when the service returns partial results. Previously these properties were absent from the model. -
Teams: new operations and models from Swagger expansion —
ArchiveChannelAsyncarchives a Teams channel and accepts anArchiveChannelInput;GetSubscriptionScopeSchemaAsyncreturns the subscription-scope schema used by dynamic discovery. New response modelAsyncOperationResponsecarries an extensibleStatusenum for async operation tracking. New trigger-schema modelsDynamicTranscriptTriggerRequestandDynamicRecordingTriggerRequestsupport transcript and recording trigger subscription registration. -
Google Drive:
BlobMetadatagainsFolderIdandFolderPathproperties — newly added properties (wire namesFolderId,FolderPath) expose the parent folder's identifier and path on file and folder metadata responses. -
Jira: issue search uses current JQL and token pagination contracts —
ListIssuesAsyncnow accepts optionaljQLQueryandnextPageTokeninputs.ListIssuesResponsereplacesMaximumNumberOfItemswithNextPageTokenandIsLastPage, matching the current search response. -
SigningHub: over 60 previously opaque
JsonElement?properties now have typed models — properties such asCertifyPolicyResponse.Certify,GetDocumentDetailsResponse.Certify,GetDocumentDetailsResponse.Template, and many authentication, permission, access-duration, and signature-field objects are now strongly typed with dedicated model classes. Consumer code that read these properties as rawJsonElementand called.GetProperty()must switch to the typed accessors; see the Breaking Changes section.
-
Seismic Planner
CustomPropertyValues.Localizationsnow exposes typed values — callers that previously inspected the nullable rawJsonElementmust use theDictionary<string, CustomPropertyDataDisplay>entries directly. For example, replaceLocalizations.Value.GetProperty("en-US").GetProperty("name").GetString()withLocalizations["en-US"].Name. (#262) -
Automatic retries now default to methods that are safe to replay —
GET,HEAD,OPTIONS, andTRACEretain the configured Azure.Core retry behavior.POST,PUT,PATCH,DELETE, and all other methods make one attempt by default for both transient responses and ambiguous transport failures. SetConnectorClientOptions.RetryUnsafeHttpMethodstotrueonly when replaying side effects is acceptable. A caller-suppliedRetryPolicyremains authoritative, and callers that construct a standaloneConnectorHttpClientpipeline own its retry semantics. See Retry safety. (#269) -
Microsoft Dataverse
GetItemsAsyncnow returnsAsyncPageable<Item>— callers that previously awaited oneItemsListpage must enumerate the pageable withawait foreach, or callAsPages()when page boundaries and continuation tokens are required. This prevents the connector's@odata.nextLinkvalue from being discarded after the first page. (#208, AzureUX-BPM PR 17086991) -
Google Drive
CreateFileAsync: parameter renamed, route updated to v2, query key changed — thefolderPathparameter is now namedfolder, and the method calls/datasets/default/v2/fileswith the query keyfolderIdinstead of the previous/datasets/default/fileswithfolderPath. Callers using the named argumentfolderPath:must rename it tofolder:. Callers using positional arguments compile cleanly but will route to the v2 endpoint automatically.Migration: rename
folderPath:tofolder:— the underlying wire semantics changed (folder path → folder ID), so pass the folder's unique identifier rather than its path string. -
Jira
ListIssuesResponsepagination changed —MaximumNumberOfItemsis removed. UseNextPageTokenandIsLastPageto continue paging.ListIssuesAsynccallers can now passjQLQueryandnextPageToken; the connector no longer injects the previous fixed ten-year JQL filter. -
Plumsail Timezone enum: signed Etc/GMT members now have semantic Plus/Minus names — existing members are renamed according to the wire value they already represented: for example,
EtcGMT4(Etc/GMT-4) becomesEtcGmtMinus4, whileEtcGMT1(Etc/GMT+1) becomesEtcGmtPlus1. Previously dropped counterparts are added under the opposite semantic name, includingEtcGmtPlus4forEtc/GMT+4andEtcGmtMinus1forEtc/GMT-1. For theEtc/GMTthree-way zero group, existingEtcGMT0(Etc/GMT+0) becomesEtcGmtPlus0, with newEtcGmtMinus0andEtcGmt0members. The plainGMTgroup changes similarly: existingGmt0(GMT+0) becomesGmtPlus0, while newGmtMinus0andGmt0members representGMT-0andGMT0. Singleton entries without a colliding counterpart, such asEtcGMT13andEtcGMT14, are unchanged. All underlying wire strings are preserved. (#181) -
Google Tasks and PDF.co operation name typos corrected —
CraeteTaskAsyncis nowCreateTaskAsync, andPDFSerarchTextAsyncis nowPDFSearchTextAsync. PDF.co callers must also renamePDFSerarchTextInputand the corresponding model-factory method toPDFSearchTextInput. Connector routes and wire payload names are unchanged. -
SigningHub: over 60 properties changed from
JsonElement?to typed model classes — properties includingCertifyPolicyResponse.Certify(→CertifyPermissionResponse),GetDocumentDetailsResponse.Certify(→DocumentCertifyResponse),GetDocumentDetailsResponse.Template(→DocumentTemplateResponse), and many authentication, permission, access-duration, and signature-field properties are now strongly typed. Source code that called.GetProperty(...)on theseJsonElement?properties no longer compiles; switch to the typed model accessors. -
Uppercase extensible-enum values now retain PascalCase word boundaries — Key Vault members
RsaoaepandRsaoaep256becomeRsaOaepandRsaOaep256. Plumsail membersWsuandNzchatbecomeWSuandNzChat. SigningHub corrects 20 members, includingAuthenticationpassword→AuthenticationPassword,AUTHENTICATIONOIdC→AuthenticationOidc,Companylogo→CompanyLogo, andVALId→Valid. Exact wire values are unchanged. (AzureUX-BPM PR 16998561)
-
Seven clients preserve wire properties that previously collided after C# name generation — regenerated Etsy, GitHub, Office 365 Outlook, Plumsail Documents, SigningHub, Twitter, and WordPress from the merged collision resolver in AzureUX-BPM PR 16763267. GitHub
PullRequest.DiffUrlnow representsdiff_url, whilePullRequest.PullRequestDiffUrlrepresents the previously droppedcomments_url. Office 365MailTipsClientReceive.ExternalMemberCountnow representsexternalMemberCount, andIsModeratedis corrected fromint?tobool?forisModerated. PlumsailAddPowerAutomateWebhookData.ProcessIdnow representsprocessId, whileProcessNamerepresents the previously droppedhookUrl. Etsy addsBuyerTotalAdjustmentAmount; SigningHub addsDocumentId2fordocument_id; Twitter addsCreatedAtIsoto both tweet models; and WordPress addsId2forguidto both post models. Callers using the three previously misbound GitHub, Office 365, or Plumsail properties must move values to the corrected properties. -
DocuSign embedded-signing discovery now binds the current route to the unsuffixed method name —
StaticResponseForEmbeddedSigningSchemaAsyncnow requiresisThisAnPersonSignerand calls/embeddedSigning_schema_v2. The older/embeddedSigning_schemaoperation is no longer retained, and callers ofStaticResponseForEmbeddedSigningSchemaV2Asyncmust useStaticResponseForEmbeddedSigningSchemaAsync. This follows the generator rule that the current retained revision owns the unsuffixed name. (AzureUX-BPM PR 16671915) -
Unreferenced discovery helpers and their models are no longer retained — discovery reachability now starts from the selected public and trigger surface and continues transitively through retained helpers. This removes methods that survived only because the generator scanned every Swagger definition:
ExcelOnlineBusiness.GetRawAndFormattedTableAsync;GoogleDrive.GetTableAsyncandGetTablesAsync;PowerBI.GetPowerBiButtonClickedOutputsAsync; and Teams'GetAdaptiveCardInputMetadataAsync,GetFlowContinuationSubscriptionOutputMetadataAsync,GetNotificationInputMetadataAsync,GetCardResponseTriggerOutputsMetadataAsync,GetComposeMessageTriggerOutputsMetadataAsync,GetSelectedMessageTriggerOutputsMetadataAsync, andGetSubscriptionScopeSchemaAsync.The removed public models are
GoogleDrive.Models.TableMetadata,TableCapabilitiesMetadata,TableSortRestrictionsMetadata,TableFilterRestrictionsMetadata,TableSelectRestrictionsMetadata,ObjectEntity,TablesList, andTable;PowerBI.Models.PowerBiButtonClickedOutputs; andTeams.Models.SelectedMessageTriggerMetadata,ComposeMessageTriggerMetadata, andCardResponseTriggerMetadata. Their model-factory methods are also removed. (AzureUX-BPM PR 16671915) -
All connector clients regenerated; version-affixed models are no longer collapsed onto one name — the generator stripped a version affix from a definition name without knowing which definitions a connector retains, so
FooV1andFooV2both claimedFooand only one type was emitted. The dropped one produced a model that compiled and looked complete while omitting fields the service returns. Names are now decided against the retained definition set: a single claimant still strips the affix, several claimants describing the same wire shape still collapse to one type, and claimants with differing shapes keep their affixes so no shape is lost.AzureIoTCentralis the clearest case and shipped separately in #225:DevicebecameDeviceV1andDeviceV2, making theorganizationsproperty reachable. In this regeneration the same fix reachesAzureAD,Office365,PipedriveandPlanner. Callers referencing a previously collapsed model name on those clients must move to the affixed name.The remaining 71 regenerated clients carry accumulated output from generator fixes that merged after their last regeneration, rather than new behaviour introduced here. (AzureUX-BPM PR 16618864)
-
purviewAcccountNameparameter corrected topurviewAccountNameon SQL Server and Azure Blob Storage — the shared Purview query parameter declares itsnamecorrectly but carries a triple-c typo in itsx-ms-summary, and the generator derives the C# identifier from the summary. The misspelling therefore reached the public API surface while the wire query key was always correct, so this changes the identifier only, not request behaviour. Callers passing the parameter positionally are unaffected; callers using a named argument must rename it. Affects 12 occurrences inSqlExtensionsand 20 inAzureBlobExtensions. (AzureUX-BPM PR 16639935) -
SQL Server procedure metadata methods now expose distinct default and scoped routes — the unversioned procedure operations own the plain method names, matching the Python SDK. Existing callers to the scoped procedure routes must rename:
Before After GetProceduresAsync(serverName, databaseName)GetProceduresV2Async(serverName, databaseName)GetProcedureAsync(serverName, databaseName, procedureName)GetProcedureV2Async(serverName, databaseName, procedureName)GetTableAsyncandGetPassThroughNativeQueryMetadataAsynccontinue to bind to the server- and database-scoped V2 routes because the default-dataset siblings are not reachable from the selected public surface. Compatibility overloads are deliberately not provided: generated code is never hand-edited, and unreachable internal Swagger routes are not retained. (#222, AzureUX-BPM PRs 16576205 and 16671915) -
Cloudmersive Convert multipart operations removed — 75 current managed-connector operations use Swagger 2.0
formData/multipart payloads that the SDK transport cannot compose, so the regenerated client no longer exposes those methods or their models. This includesConvertDocumentAutodetectGetInfoAsync,ConvertDocumentAutodetectToPdfAsync,ConvertDocumentDocxToPdfAsync,ConvertDocumentPdfToDocxAsync,ConvertImageGetImageInfoAsync,MergeDocumentPdfAsync, andSplitDocumentPdfByPageAsync. The 53 non-multipart operations remain generated. (#210) -
DocuSign deprecated and removed operations are no longer generated — removed
CreateEnvelopeFromTemplateAsync,ListEnvelopesAsync,SalesCopilotListEnvelopesAsync,ScpGetEmailSummaryAsync,ScpGetKeySalesAsync,ScpGetRelatedActivitiesAsync, andScpGetRelatedRecordsAsync.CreateEnvelopeFromTemplateNoRecipientsAsyncremains available. (#210) -
Zoho Sign
CreateDocumentAsyncremoved — the operation remains in current managed-connector Swagger but requires a multipart/form-datafileparameter, which the SDK transport cannot compose. (#210) -
SigningHub upload methods now require file bytes —
AttachmentUploadAttachmentAsyncandDocumentsUploadStreamAsyncnow require abyte[] inputargument. Binary Swagger bodies use the SDK's raw request path, which sends the bytes unchanged withContent-Type: application/octet-streaminstead of JSON/base64 serialization. Existing callers must provide the attachment or document bytes. (#210) -
Generated method parameter names now follow current Swagger metadata — named-argument callers may need updates; for example, DocuSign
GetDocgenFormFieldsAsyncnow usesaccountIdandenvelopeId. Positional calls are unaffected. (#210) -
Docuware multipart-only file operations removed —
StoreToFileCabinetAsync,ImportToDocumentTrayAsync,AppendFileAsync,DeleteFileAsync, andReplaceFileAsync, together with their response models/factories, are no longer generated because the SDK transport cannot compose the required Swagger 2.0formDatapayloads. Other Docuware search, metadata, download, field, and stamp operations remain available. (#210) -
Teams transcript and recording webhook trigger contracts removed — current connector Swagger no longer exposes
DynamicTranscriptTriggerRequest,DynamicRecordingTriggerRequest,TeamsTriggerOperations.OnTranscriptTrigger, orTeamsTriggerOperations.OnRecordingTrigger. (#210) -
Azure Queues message response now matches the connector wire shape —
Messages.QueueMessagesListchanged fromList<QueueMessage>to aQueueMessagesListwrapper whoseQueueMessageproperty contains the list.QueueMessage.TimeNextVisiblewas renamed toNextVisibleTimefrom the owner Swagger summary.DequeueCountremains available because Azure Storage returns it and the connector policy passes it through, although AAPT Swagger omits it. Access messages throughresponse.QueueMessagesList.QueueMessage. (#210) -
DocumentDB query response no longer exposes a synthetic envelope property —
QueryDocumentsResponse.AdditionalPropertiesand the corresponding model-factory parameter were removed. Dynamic document fields are captured byObjectWithoutType.AdditionalPropertieson each item inQueryDocumentsResponse.Documents, matching the V5 response contract. (#210) -
Event Hubs owner-required parameters are now required —
SendEventsAsyncrequirespartitionKey, andGenerateEventSchemaAsyncrequirescontentType. Callers must pass non-null values declared as required by the connector owner Swagger. (#210) -
Microsoft Forms schema helper no longer returns a fabricated response — internal discovery method
GetQuestionsAsyncnow returnsTaskinstead ofTask<List<JsonElement?>>because owner Swagger declares no success response schema. (#210) -
Word Online Business drive discovery hides its internal source parameter — internal discovery method
GetDrivesAsyncno longer exposessource; it sends the owner-declared defaultsource=me. (#210)
-
Zoho ZeptoMail generated client — adds five public mail-agent, send-mail, template-mail, and analytics actions.
SendTemplateMailInput.MergeInforemainsList<JsonElement?>so fixed string fields and arbitrary non-string merge values stay representable. The malformed Swagger typeReplyToAddresssis exposed asReplyToAddresswithout changing thereply_towire property. -
CloudConvert typed client — adds the four public file-conversion operations and five internal discovery helpers referenced exclusively through
x-ms-dynamic-properties. -
MailChimp A/B split options preserve both wait fields —
ABSplitOptsnow exposes distinctWaitUnitsandWaitTimeproperties for thewait_unitsandwait_timewire fields instead of silently dropping one generated-name collision. (#231, AzureUX-BPM PR 16763267) -
Discovery helpers retained from nested trigger and response schemas — regenerated Azure Automation, Azure Monitor Logs, Elfsquad Data, Formstack Forms, Monday, Typeform, and Microsoft Defender ATP clients now include helpers pinned by nested trigger and response schemas in connector Swagger. Added
GetRunbookAsync,GetTimeRangeSelectionControlAsync,GetTriggerSchemaAsync,GetFormSchemaAsync, three Monday column-schema helpers, Typeform's currentGetSchemaAsync, andAdvancedHuntingSchemaAsync, plus five response/request models and four model-factory methods. Elfsquad Data'sGetTriggerSchemaAsyncand Formstack Forms'GetFormSchemaAsyncreturnTaskbecause owner Swagger declares no success response schema. Azure Automation's single-runbook route is likewise typed asRunbookListResultsbecause that is the response definition declared by owner Swagger for both runbook routes. (AzureUX-BPM PR 16671915) -
Zendesk regains four operations lost to internal versioned siblings —
GetTablesAsync,GetItemsAsync,GetItemAsyncand theGetTableAsyncdiscovery method are generated again, and the publicGetOnNewItemstrigger is registered alongsideGetOnUpdatedItemsV2with its own typed callback payload. Version-collision resolution previously ran across the whole operation set, so eachx-ms-visibility: internalV2sibling displaced its public counterpart and was then dropped as unreferenced. Surviving methods also carried a[DynamicValues("GetTables")]reference to an operation no longer present in the client. (#220, AzureUX-BPM PR 16576205) -
SQL Server regains two default-dataset procedure discovery routes —
GetProceduresAsyncandGetProcedureAsyncnow address/datasets/default/...and are joined byGetProceduresV2AsyncandGetProcedureV2Asyncfor the server- and database-scoped routes. Each pair is a distinct reachable contract that previously collapsed onto the V2 route alone.GetTableAsync,GetPassThroughNativeQueryMetadataAsync, andGetTablesAsyncdeliberately continue to target versioned routes because their unversioned siblings are not reachable or are deprecated. (#222, AzureUX-BPM PRs 16576205 and 16671915) -
New operations from current managed connector Swagger — DocuSign adds
GetDocGenTemplateTabsAsyncandGetOrganizationsAsync; Teams addsRemoveMemberFromChatAsyncandUpdateChannelPropertiesAsync; SharePoint addsGetDayOfWeekOptionsAsync. (#210)
-
Discovery methods are now emitted after the public surface — generated clients list customer-facing operations first, then the internal discovery methods retained for dynamic values and dynamic schema. Pipedrive and Plumsail change by this ordering alone; their operation and model sets are unchanged. (AzureUX-BPM PR 16576205)
-
Generated types are documented from their own definition instead of from whatever reached them — a type's summary was derived from the property or operation that happened to reach it first, which produced meaningless text and made the documentation depend on declaration order. A type reached through a bare envelope property such as
valuewas summarized asItem in value, naming the wrapper rather than the element, and raw Swagger keys such asx-ms-capabilitiesandsortRestrictionswere emitted as public API documentation. ZendeskTableandItemnow carry their own names, three Zendesk metadata types gain real descriptions, and seventeen SQL Server summaries improve, for exampleItem in List of datasetsbecomesRepresents a database.andResponse for GetTablesForDeleteItembecomesRepresents a list of tables.Documentation only; no operation, model, or wire change. (AzureUX-BPM PR 16600581) -
Regenerated all 97 existing connector clients using AzureUX-BPM PR 16421737. Generation now uses Azure Identity instead of the legacy ARMClient executable, preserves valid ARM JSON before applying malformed-response fallbacks, filters operations marked
deprecated, and correctly handles connectors that advertise both JSON and multipart content types. Office 365, Docuware, and SigningHub now regenerate successfully from current ARM exports. (#210) -
Corrected generated Swagger documentation text — fixed
seperated/Comma-seperatedandlists’sin generated XML documentation. (#210) -
Connector-specific corrections now preserve owner contracts — Azure Queues receives named types for its nested message response without flattening the wire shape. Current AAPT connector Swagger remains authoritative for Event Hubs required parameters, Microsoft Forms and Word Online Business internal discovery methods, and DocumentDB per-document dynamic fields. (#210)
- Connector path and query values now use invariant-culture wire formatting — regenerated all 98 shipped clients from AzureUX-BPM PR 16770557 so numeric and other formattable parameters no longer depend on
CurrentCulturebefore URI escaping. For example, adoublevalue of3.14now remains3.14underde-DEinstead of becoming3%2C14. The hand-written ISO DateTime converter now parses and formats withInvariantCulture, and CA1305 is build-enforced to prevent regressions. (#200)
ConnectorTriggerPayloadhelper to read trigger callbacks — turns a raw Connector Namespace trigger callback (stringorStream) into a typed payload or decoded file bytes without per-function boilerplate.Read<TPayload>/ReadAsync<TPayload>deserialize metadata triggers (e.g. OneDriveOnNewFilesV2) with case-insensitive property matching, so camelCase wire fields bind correctly instead of silently yielding all-nullitems.TryReadBinaryContent/ReadBinaryContentAsyncdecode binary-content triggers (e.g. OneDriveOnNewFileV2), whose body is a base64 string. TheStreamoverloads read the caller-owned stream without closing it and enforce a generous, overridable body-size limit (DefaultMaxBodySizeBytes, 100 MB);TryReadBinaryContentreturnsfalse(rather than throwing) on malformed JSON. (#190)- Microsoft Dataverse client (
commondataservice) — generated typedCommondataserviceClientexposing the legacy Common Data Model (CDM) REST surface, which is the surface reachable through the Connector Namespace runtime. Covers environment/table discovery (GetDataSetsAsync,GetTablesAsync,GetTableAsync), row operations (GetItemsAsync,GetItemAsync,PostItemAsync,PatchItemAsync,DeleteItemAsync), attachments (CreateAttachmentAsync,GetItemAttachmentsAsync,GetAttachmentContentAsync,DeleteAttachmentAsync), relationships (AssociateRecordsPatchItemAsync,DisassociateRecordsPostItemAsync,DisassociateSingleValueRecordDeleteItemAsync,GetCollectionRelationshipsAsync), choice/metadata discovery, and pagination (GetNextPageAsync). Dataset values are full environment URLs (e.g.,https://contoso.crm.dynamics.com) and are double URL-encoded per the connector'sx-ms-url-encoding: "double"contract. The modern Dataverse Web API routes (/api/data,/getorgs, ...) return HTTP 404 through Connector Namespace and are excluded by the generator's deterministic per-connector route-selection policy, along with the redundant OData-style key-syntax routes.
TriggerCallbackBodyConverter<T>now throws an actionable error for binary-content bodies — when a binary-content trigger callback (a JSON string body, e.g. OneDriveOnNewFileV2) is deserialized into a metadata payload type, the error now explains the cause and points toConnectorTriggerPayload.TryReadBinaryContent/ReadBinaryContentAsyncinstead of failing with a generic token-mismatch message. (#190)
- Breaking: All 1,460
ConnectorNames.*constants renamed to PascalCase derived from ARM display names (e.g.Googledrive→GoogleDrive,Microsoftteams→MicrosoftTeams,Office365→Office365Outlook). Update any references by name. (#170) - Breaking: Optional value-type parameters across all generated clients are now nullable (
int?,bool?,double?) sonullmeans "unspecified"; overriding subclasses must update signatures. (#180) - Breaking: Dynamic model properties changed from
objecttoJsonElement?; pre-serialize arbitrary values toJsonElement. (#157) - Breaking: Output-only model properties changed to
{ get; init; }; use object initializers or the generated*ModelFactoryclasses. (#161) - Breaking:
IConnectorClientmarker interface removed —ConnectorClientBasenow implementsIDisposabledirectly. (#183) - Breaking:
Teams.OnGroupMemberChangeResponseItemremoved; membership trigger payloads are nowTriggerCallbackPayload<object>. (#170) - Added Teams trigger payload types —
TeamsOnNewChannelMessageTriggerPayload,TeamsOnNewChannelMessageMentioningMeTriggerPayload,TeamsOnTeamMemberRemovedTriggerPayload,TeamsOnTeamMemberAddedTriggerPayload, plus theTeamsTriggers.Operationsregistry. (#170) - Added OpenTelemetry distributed tracing — each generated client has a per-connector
ConnectorActivitySource(e.g.,Azure.Connectors.Sdk.teams); subscribe toAzure.Connectors.Sdk.*to capture all connector operations. (#183) - Added
ConnectorExceptionerror-code parsing to populateRequestFailedException.ErrorCode. (#180) - Added
[EditorBrowsable(EditorBrowsableState.Never)]on inheritedObjectmethods. (#160) - Regenerated all 96 connector clients with copyright headers (#158), base-chained mock constructors (#159), and null-guard hardening (#175).
- Fixed:
TriggerCallbackBody<T>now handles both batch and single-item callback shapes, preventing silent zero-item processing when splitOn is enabled. (#149) - Breaking:
TriggerCallbackPayload<T>.Bodyis now init-only andTriggerCallbackBody<T>.ValueisIReadOnlyList<T>?with an internal setter; useConnectorModelFactoryto construct in tests. - Breaking: Removed CamelCase JSON naming policy; properties without
[JsonPropertyName]now serialize as PascalCase. (#84, #85) - Breaking: Renamed
AzuremonitorlogsClient→AzureMonitorLogsClientandOffice365usersClient→Office365UsersClient(namespaces, DI methods, model factories, andConnectorNamesupdated). (#126) - Breaking:
IPageable<T>is now internal;ConnectorClientBase.CreatePageableis private protected; JSON converter types are internal. (#124, #127) - Added constructor overload
(Uri, TokenCredential)withoutClientOptions, andConnectorHttpClientmocking support. (#123, #125) - 36 new connector clients across batches 5–6 (Azure AD, Azure IoT Central, Outlook, Service Bus, Box, DocuSign, GitHub, Google Drive, Jira, Salesforce, SQL, Trello, and more).
- Breaking: Removed CamelCase JSON naming policy from ConnectorClientBase.JsonOptions; properties without
[JsonPropertyName]now serialize as PascalCase. - Breaking: Renamed AzuremonitorlogsClient to AzureMonitorLogsClient; Office365usersClient to Office365UsersClient (namespaces, DI methods, and model factories updated accordingly).
- Breaking:
IPageable<T>is now internal;ConnectorClientBase.CreatePageableis private protected; JSON converter types are internal. - Added constructor overload (Uri, TokenCredential) without ClientOptions on ConnectorClientBase and all generated clients.
- ConnectorHttpClient now supports mocking (protected parameterless constructor, virtual SendAsync).
- 48 new connector clients across 4 batches, including ExcelOnline, AzureEventGrid, Yammer, WdatpClient, AzureAutomation, AzureDataFactory, KeyVault, PowerBI, and many more.
- Regenerated all 12 previously shipped connector clients with PascalCase name overrides.
- Breaking: Constructor overhaul — Uri is now the primary parameter type; default credential changed from DefaultAzureCredential to ManagedIdentityCredential(SystemAssigned); credential parameter is no longer optional.
- Breaking: Output-only model properties now have internal set; use per-connector model factory classes for testing.
- Breaking:
ExceptionExtensions,HttpExtensions,RetryPolicy,ConnectorResponse<T>removed as public API. - Breaking: All namespaces renamed from
Microsoft.Azure.Connectors.*toAzure.Connectors.Sdk.*. - Breaking: ConnectorClientOptions now inherits from Azure.Core.ClientOptions; Polly dependency removed; HttpClient parameter removed from constructors.
- Added extensible enum types for Swagger enum properties, DI integration extension methods, per-connector model factory classes.
- Added Azure Monitor Logs typed client; removed deprecated Azure Log Analytics connector.
- Added Office 365 Users, Azure Log Analytics, SMTP, Azure Blob Storage, and IBM MQ typed clients.
- Added OpenTelemetry ActivitySource instrumentation for distributed tracing.
- Added
IAsyncEnumerable<T>auto-pagination support for paginated connector operations. - Paginated methods now return
ConnectorPageable<TPage, TItem>instead ofTask<TPage>(breaking). - ManagedIdentityCredential updated to ManagedIdentityId API.
- Initial Preview NuGet.org release of the Azure Connectors .NET SDK.
- Added MS Graph Groups and Users typed client with 7 action operations.
- Added Teams unit tests (constructor, dispose, mocked API, error handling, serialization).
- Added OneDrive for Business typed client with 22 action and 4 trigger operations.
- Breaking: Simplified all generated operation names by stripping version suffixes (V2/V3/V4).
- Breaking: Simplified trigger names to use On prefix with natural English.
- Breaking: Simplified type names with per-connector aliases.
- Added trigger operation constants and definition type pruning in the generator.
- Added Azure Data Explorer (Kusto) typed client.
- Added PR template, governance doc, CI code coverage, standard Microsoft OSS community files.
- Dependency bumps for Microsoft.Extensions.Http, test SDK, coverlet, and GitHub Actions.
- Initial SDK release with core abstractions (ConnectorClientBase, IConnectorClient, ConnectorClientOptions).
- Token providers: ManagedIdentityTokenProvider, ConnectionStringTokenProvider.
- HTTP pipeline with configurable retry policies.
- Office 365 connector client (generated).