[AutoPR @azure-arm-securityinsight]-generated-from-SDK Generation - JS-6331956#38622
[AutoPR @azure-arm-securityinsight]-generated-from-SDK Generation - JS-6331956#38622azure-sdk wants to merge 6 commits into
Conversation
…osoft.SecurityInsights/SecurityInsights/tspconfig.yaml', API Version: 2025-07-01-preview, SDK Release Type: beta, and CommitSHA: '0b39d09202614b896019af9fc8df28a8a7ee9c29' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6331956 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
… sdkauto/@azure-arm-securityinsight-6331956
… sdkauto/@azure-arm-securityinsight-6331956
… sdkauto/@azure-arm-securityinsight-6331956
Breaking Change Analysis:
|
| Category | Count |
|---|---|
Type 1 — API version upgrade (2022-09-01-preview → 2025-07-01-preview) |
29 |
| Type 2 — TypeSpec/emitter migration artifacts | 59 |
| Total | 88 |
Methodology: Compared Layer A (old swagger, tag
package-preview-2022-09, commitb41f929) with Layer B (new swagger pre-TypeSpec,2025-07-01-preview, commitc421318) and the final generated SDK (Layer D). Type 1 = change originates from API version upgrade. Type 2 = identical swagger, difference caused by emitter behavior.
Type 1 — API Version Upgrade (29 items)
These breaking changes originate from the service API evolving from 2022-09-01-preview to 2025-07-01-preview.
Removed operation (1)
| # | Entry | Root cause |
|---|---|---|
| 3 | Incidents.createTeam |
Operation removed from API. Not present in 2025-07-01-preview swagger. |
Removed interfaces — API-driven (8)
| # | Entry | Root cause |
|---|---|---|
| 20 | ContentPathMap |
Used by Repository.pathMapping which was removed in 2025-07-01-preview. |
| 22 | DomainWhois |
Old operation group restructured. DomainWhois.get() (subscription-scoped) replaced by listWhoisByDomain() (workspace-scoped) on the client. |
| 23 | DomainWhoisGetOptionalParams |
Options type for removed DomainWhois.get() operation. |
| 31 | IncidentsCreateTeamOptionalParams |
Options type for removed Incidents.createTeam (row 3). |
| 32 | IPGeodata |
Old operation group restructured. IPGeodata.get() (subscription-scoped) replaced by listGeodataByIp() (workspace-scoped) on the client. |
| 33 | IPGeodataGetOptionalParams |
Options type for removed IPGeodata.get() operation. |
| 35 | MstiDataConnectorDataTypesBingSafetyPhishingURL |
Sub-type removed from MstiDataConnectorDataTypes in swagger. |
| 45 | TeamProperties |
Input model for removed Incidents.createTeam (row 3). |
Property removals / renames (5)
| # | Entry | Root cause |
|---|---|---|
| 56 | EnrichmentIpGeodata.cityCf removed |
Renamed to cityConfidenceFactor in 2025-07-01-preview swagger. |
| 57 | EnrichmentIpGeodata.countryCf removed |
Renamed to countryConfidenceFactor in 2025-07-01-preview swagger. |
| 58 | EnrichmentIpGeodata.stateCf removed |
Renamed to stateConfidenceFactor in 2025-07-01-preview swagger. |
| 59 | MstiDataConnectorDataTypes.bingSafetyPhishingURL removed |
Property removed from swagger. |
| 60 | Repository.pathMapping removed |
Property removed from swagger. |
Required property changes (3)
| # | Entry | Root cause |
|---|---|---|
| 61 | PlaybookActionProperties.logicAppResourceId now required |
New swagger adds logicAppResourceId to required array. |
| 62 | Repository.branch now required |
New swagger adds branch to required array. |
| 63 | Repository.url now required |
New swagger adds url to required array. |
Type changes (2)
| # | Entry | Root cause |
|---|---|---|
| 54 | lookbackPeriod type string → Date |
New swagger adds format: date-time to the property. |
| 55 | Webhook.webhookSecretUpdateTime type string → Date |
New swagger adds format: date-time and readOnly: true. |
Enum value removals / renames (6)
| # | Entry | Root cause |
|---|---|---|
| 83 | KnownContentType.AnalyticRule removed |
Renamed to AnalyticsRule in new swagger. |
| 84 | KnownOperator.AND removed |
Enum values changed in new API version. |
| 85 | KnownOperator.OR removed |
Enum values changed in new API version. |
| 86 | KnownRepoType.DevOps removed |
Renamed to AzureDevOps in new swagger. |
| 87 | KnownSourceType.LocalFile removed |
Enum values changed in new API version. |
| 88 | KnownSourceType.RemoteStorage removed |
Enum values changed in new API version. |
New operation signatures — API-driven (4)
| # | Entry | Root cause |
|---|---|---|
| 8 | Entities.queries new signature |
Return type changed from Promise<GetQueriesResponse> to PagedAsyncIterableIterator. New swagger adds x-ms-pageable. |
| 10 | ProductSettings.list new signature |
Return type changed from Promise<SettingList> to PagedAsyncIterableIterator. New swagger adds x-ms-pageable. |
| 11 | SourceControl.listRepositories new signature |
Body parameter restructured from repoType: RepoType to repositoryAccess: RepositoryAccessProperties. |
| 13 | SourceControls.delete new signature |
Operation restructured: DELETE /sourcecontrols/{id} (no body, void response) → POST /sourcecontrols/{id}/delete (with body, returns Warning). |
Type 2 — TypeSpec/Emitter Migration (59 items)
These breaking changes have identical swagger definitions between Layer A and Layer B; the differences are caused by the TypeSpec emitter generating code differently than AutoRest.
Collection wrapper interface removals (24) — Approved pattern: Paging Interface Changes
The TypeSpec emitter inlines paged response arrays instead of emitting named *List wrapper interfaces.
ActionsList, AlertRulesList, AlertRuleTemplatesList, AutomationRulesList, BookmarkList, DataConnectorList, EntityList, EntityQueryList, EntityQueryTemplateList, FileImportList, GetQueriesResponse, IncidentCommentList, IncidentList, MetadataList, OfficeConsentList, OperationsList, RelationList, RepoList, SecurityMLAnalyticsSettingsList, SettingList, SourceControlList, ThreatIntelligenceInformationList, WatchlistItemList, WatchlistList
(Rows 15–19, 21, 24–30, 34, 36–37, 40–44, 46–48)
Discriminator property type changes (5) — Approved pattern: Discriminator Inline Union
The TypeSpec emitter represents discriminator properties as named enum/union types instead of inline string unions.
| # | Entry | Swagger status |
|---|---|---|
| 49 | AutomationRuleAction.actionType |
Both layers use $ref: ActionType — identical. |
| 50 | AutomationRuleCondition.conditionType |
Both layers use $ref: ConditionType — identical. |
| 51 | DataConnectorsCheckRequirements.kind |
Both layers use $ref: DataConnectorKind — identical. |
| 52 | EntityQueryItem.kind |
Same pattern — identical swagger. |
| 53 | EntityTimelineItem.kind |
Both layers use $ref: EntityTimelineKind — identical. |
Discriminator union type alias removals (5) — Cascading from above
| # | Entry | Root cause |
|---|---|---|
| 72 | AutomationRuleActionUnion |
Cascading from row 49 discriminator change. |
| 73 | AutomationRuleConditionUnion |
Cascading from row 50. |
| 75 | DataConnectorsCheckRequirementsUnion |
Cascading from row 51. |
| 76 | EntityQueryItemUnion |
Cascading from row 52. |
| 77 | EntityTimelineItemUnion |
Cascading from row 53. |
LRO representation changes (2) — Emitter artifact
| # | Entry | Root cause |
|---|---|---|
| 1 | FileImports.beginDelete removed |
Both Layer A and B have x-ms-long-running-operation: true. TypeSpec emitter uses a different LRO pattern representation. |
| 2 | FileImports.beginDeleteAndWait removed |
Same as row 1. |
Required property enforcement (4) — Emitter artifact
Swagger has required: ['displayName', 'repoType', 'contentTypes', 'repository'] in both Layer A and B. AutoRest did not enforce these; the TypeSpec emitter does.
| # | Entry |
|---|---|
| 64 | SourceControl.contentTypes now required |
| 65 | SourceControl.displayName now required |
| 66 | SourceControl.repository now required |
| 67 | SourceControl.repoType now required |
Response type changes (2) — Approved pattern: Response Wrapper Removal
| # | Entry | Root cause |
|---|---|---|
| 74 | AutomationRulesDeleteResponse changed |
Emitter generates different response wrapper type. |
| 78 | IncidentsRunPlaybookResponse changed |
Same pattern. |
Operation rename (1) — Approved pattern: Operation Group Naming
| # | Entry | Root cause |
|---|---|---|
| 4 | ThreatIntelligenceIndicator.listQueryIndicators → queryIndicators |
Operation ID is ThreatIntelligenceIndicator_QueryIndicators in both layers. Emitter derives method name differently. |
Orphan type alias / enum removals (8) — Approved pattern: Orphan Model Removal
AutoRest generated type X = string aliases and KnownX enums that the TypeSpec emitter does not produce.
| # | Type alias | Paired enum |
|---|---|---|
| 68, 79 | EntityKind |
KnownEntityKind |
| 69, 80 | Enum13 |
KnownEnum13 |
| 70, 81 | ThreatIntelligenceResourceKindEnum |
KnownThreatIntelligenceResourceKindEnum |
| 71, 82 | ThreatIntelligenceSortingCriteriaEnum |
KnownThreatIntelligenceSortingCriteriaEnum |
Orphan interface removals (2) — Approved pattern: Orphan Model Removal
| # | Entry | Root cause |
|---|---|---|
| 38 | Permissions_2 |
AutoRest name-dedup artifact (suffix _2). Not present as a public interface in API surface. |
| 39 | QueryBasedAlertRuleTemplateProperties |
Properties interface that AutoRest exported separately. TypeSpec emitter inlines into parent type. |
New operation signatures — cascading from Type 2 root causes (6)
| # | Entry | Root cause |
|---|---|---|
| 5 | AutomationRules.createOrUpdate new signature |
Cascading from rows 49–50 via AutomationRule.actions/conditions discriminator changes. |
| 6 | AutomationRules.get new signature |
Same cascade as row 5. |
| 7 | DataConnectorsCheckRequirements.post new signature |
Cascading from row 51 via DataConnectorsCheckRequirementsUnion parameter. |
| 9 | EntitiesGetTimeline.list new signature |
Cascading from row 53 via EntityTimelineResponse.value → EntityTimelineItemUnion. |
| 12 | SourceControls.create new signature |
Cascading from rows 64–67 via SourceControl required property enforcement. |
| 14 | SourceControls.get new signature |
Cascading from rows 64–67 via SourceControl return type. |
Notes
- The CHANGELOG states "Compared with version 1.0.0-beta.6" but main branch has an unreleased 1.0.0-beta.8. The actual diff is between those two versions.
- The
DomainWhoisandIPGeodataoperation groups were subscription-scoped in the old API. The new API moves them to workspace-scoped methods (listWhoisByDomain,listGeodataByIp) directly on the client. - The
SourceControls.deleteoperation underwent a significant restructuring: from HTTPDELETE(no body, void) to HTTPPOST .../delete(with body, returnsWarning).
This analysis was generated by comparing swagger definitions across API versions and emitter layers. Classification confidence: high for all items.
Configurations: 'specification/securityinsights/resource-manager/Microsoft.SecurityInsights/SecurityInsights/tspconfig.yaml', API Version: 2025-07-01-preview, SDK Release Type: beta, and CommitSHA: '0b39d09202614b896019af9fc8df28a8a7ee9c29' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6331956 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.