Open
Description
Gaps
azure-core-management-v2
- Resource/ProxyResource/ManagementError
They are parent classes for resource and management errors. Do we still need them in the new v2?
Their properties are shadowed in child classes anyway for azure-json deserialization.
Another use case be type restriction for premium interfaces. Do we need premium interfaces/libs anymore? How about azure-resourcemanager-authorization and azure-resourcemanager-resources?
Guess we could leave these classes out before conclusions are made. Read-only properties are shadowed, and writable properties can be moved upwards to parent classes, which hopefully won't cause breaking changes. - SystemData/AdditionalInfo/etc
They are common properties for resources and management errors. We probably still need them to avoid unnecessary additional classes. - LRO related.
PollerFactory
,SyncPoller
, etc. AzureEnvironment
(AzureCloud
endpoint mapping),AzureProfile
, etc.- (02/20/2025) Introduce new ManagedIdentity classes
azure-core-v2
- No
@Headers
for setting Content-Type forGET
methods. Does that mean we need to add header parameter in proxy method? fixed by Add AzureCloud to azure-core-v2 and LRO enum to ReturnType in clientcore #44301AzureCloud
- TokenCredential and BearerTokenAuthenticationPolicy. issue: [http-client-java] Add TokenCredential and bearer policy to codegen microsoft/typespec#5910
LRO related:fixed by Add sync polling support to azure-core v2 #44670@ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
- Model
Azure-AsyncOperation
response body. See Azure-AsyncOperation Resource format.
codegen
- Generate only sync-stack methods(asked Sandeep to contact customer when there's beta release for core-v2).
- Use
ClassType
instead of Class imports in codegen: https://github.com/microsoft/typespec/blob/9f41c06bf265fd0e0a7cde241cf57d4944355252/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentManagerTemplate.java#L91 - Seems now there's no proxy/client methods with
Context
override. Need to generate them. (02/20/2025, useRequestContext
instead) - New class mapping: a. SimpleResponse -> Response
b. CoreUtils (02/20/2025 No CoreUtils anymore, use direct implementation instead) - TokenCredential
- No strongly typed header Response as
ResponseBase<H, T>
. Implement support for ResponseWithTypedHeaders #42640 - Model
Azure-AsyncOperation
response body, and returnSyncPoller<ArmOperationStatus, Resource>
for POST operations or operations with onlyAzure-AsyncOperation
header.
Premium libraries migration
If we still provide premium libraries support, for backward compatibility, we need to investigate on the migration effort. This will probably take months.
1. Resource creation dependency graph
Previously we use TaskGroup
for resource creation dependencies. E.g. create Network/Storage before creating VM.
Concurrent task execution uses Reactor model. If we support only sync-stack, we either do
- For simplicity, remove
TaskGroup
and execute in a sequential fashion. Though this will hurt performance. - Rewrite task execution using new thread model. We have some edge cases, and need to investigate on the effort.