Skip to content

[Python] TypeSpec migration for azure-mgmt-appcontainers#47072

Draft
msyyc wants to merge 5 commits into
Azure:mainfrom
msyyc:sdk-azure-mgmt-appcontainers
Draft

[Python] TypeSpec migration for azure-mgmt-appcontainers#47072
msyyc wants to merge 5 commits into
Azure:mainfrom
msyyc:sdk-azure-mgmt-appcontainers

Conversation

@msyyc
Copy link
Copy Markdown
Member

@msyyc msyyc commented May 22, 2026

[Python] TypeSpec migration breaking-change analysis for azure-mgmt-appcontainers

Sources

Summary

Bucket Count
MITIGATED in spec 0
ACCEPTED (no mitigation) All listed below

No spec mitigation PR was created — every breaking change matched an "Accept" pattern in the SDK breaking changes guide.

Accepted breaking changes

1. Pageable list-response models removed (Guide §8)

Python no longer surfaces named *Collection / *Result paging models for list operations. The following are removed:

AuthConfigCollection, AvailableOperations, AvailableWorkloadProfilesCollection, CertificateCollection, ConnectedEnvironmentCollection, ContainerAppCollection, DaprComponentsCollection, HttpRouteConfigCollection, JavaComponentsCollection, JobExecutionNamesCollection, JobsCollection, ListUsagesResult, MaintenanceConfigurationCollection, ManagedCertificateCollection, ManagedEnvironmentsCollection, RevisionCollection, SessionPoolCollection, SourceControlCollection, WorkflowEnvelopeCollection, WorkloadProfileStatesCollection

User impact: none — these were never user-instantiated; pagers return ItemPaged[<T>] as before.

2. Multi-level property flattening removed (Guide §11)

  • MaintenanceConfigurationResource lost direct property scheduled_entries; access via the new nested .properties.scheduled_entries (new properties property added, new ScheduledEntries model added).

3. Header/query parameters → keyword-only (Guide §9)

  • ContainerAppsOperations.list_custom_host_name_analysis: parameter custom_hostname changed from positional_or_keyword to keyword_only.

4. Enum singular rename: ExtendedLocationTypesExtendedLocationType

Same wire value ("CustomLocation"). Mitigation via @@clientName was attempted but the old ExtendedLocationTypes is still referenced by @typeChangedFrom in the versioned TypeSpec, causing a duplicate-client-name conflict; mitigation was reverted. Single-member enum, minimal surface, so accepted.

5. Container model __init__ signature: args parameter is now var_positional (*args)

Affects: BaseContainer, Container, InitContainer, JobExecutionContainer, SessionContainer.

The TypeSpec emitter treats the literal property name args specially (it is Python's conventional *args name), converting it from a keyword-only list parameter into variadic positional arguments. This is an emitter convention — applies uniformly across the 5 container models and is not addressable via @@clientName / @@override without renaming the wire property.

Migration: Container(args=["sh","-c"])Container("sh","-c") (or Container(args=...) is no longer valid).

Generated artifacts

  • Swagger pre-migration SDK commit: 364ccc21e9
  • TypeSpec post-migration SDK commit: 3449f008e8
  • Changelog rename consolidation commit: f6bbb89740
  • Spec head: 2f76edc6

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.

1 participant