Skip to content

September 2022

Release Notes September 2022 (2022-09-07)

This release contains breaking changes

Change to compiler, rest libraries See TypeSpec Core release notes

  • Api: Remove Type suffix
  • TypeSpec: Rename Page to CollectionWithNextLink
  • Api: Enum.members change typed from EnumMember[] to Map<string, EnumMember>
  • TypeSpec Api: Deprecation of @consumes @produces decorators

Change to Azure libraries:

  • [TypeSpec] Azure.Core Changes to standard operation signatures

[TypeSpec] Azure.Core Changes to standard operation signatures

There have been a few changes to the standard operation signatures provided by the Azure.Core namespace:

The use of standard operation signatures is now enforced

The use-standard-operations diagnostic will now be raised for any operation that is not based on the standard operation signatures in the Azure.Core namespace. This diagnostic is a warning that can be suppressed when there is a legitimate case where a standard signature cannot be used.

For example:

#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is a top-level operation without a resource type."
@get
@route("languages")
op getSupportedLanguages is Foundations.Operation<ListQueryParams, SupportedLanguages>;

New low-level building block signatures have been added

We have added new low-level operation signatures to Azure.Core.Foundations which encode the most fundamental parts of the Azure REST API Guidelines. You may use these when you need to define custom operations that are not covered by the standard signatures in Azure.Core.

  • Operation<TParams, TResponse> - The fundamental operation shape which contains the api-version parameter and the standard ErrorResponse.
  • LongRunningOperation<TParams, TResponse> - Similar to Operation but adds a long-running operation header to the response.
  • ResourceOperation<TResource, TParams, TResponse> - The fundamental operation shape for all resource operations. Adds the @autoRoute decorator and inserts the key properties for the TResource type and its parents.
  • ResourceCollectionOperation<TResource, TParams, TResponse> - The fundamental operation shape for all resource collection operations. Adds the @autoRoute decorator key properties for the parent type(s) of TResource.

The success response type for the ResourceRead operation is now the resource type

There was previously an issue with the ResourceRead signature that caused the resource type in the response to be treated as an anonymous schema. This has now been corrected.