Skip to content

Azure/typespec-azure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TypeSpec Azure Libraries

TypeSpec is a language for describing cloud service APIs and generating other API description languages, client and service code, documentation, and other assets.

This repository adds common Azure-specific TypeSpec libraries to the TypeSpec core that is pulled in as a git submodule.

Try TypeSpec without installing anything

You can try TypeSpec on the web without installing anything. TypeSpec playground for Azure services

Prerequisites

  • Please install Node.js 16 LTS and ensure you are able to run the npm command in a command prompt: npm --version.
  • It is recommended to have npm 7+. To update npm run npm install -g npm

Getting Started

For TypeSpec language documentation, see https://typespec.io/docs.

If you are team working on Azure, see TypeSpec Azure development documentation https://azure.github.io/typespec-azure. You should pre-install as well @azure-tools/typespec-azure-core to define Azure resources, and @azure-tools/typespec-autorest to export in Swagger:

npm install @typespec/rest @typespec/openapi3 @azure-tools/typespec-azure-core @azure-tools/typespec-autorest

If you plan to use the output openapi with autorest or any of the azure sdk tooling you should use typespec-autorest, the openapi3 emitter is not going to have any of the ms extensions (pageable, lro, client name, etc.) and so it will be losing information.

Build Pipelines

Information on using TypeSpec within build pipelines can be found here

Packages

Name Changelog Latest Next
@azure-tools/typespec-autorest Changelog
@azure-tools/typespec-azure-core Changelog
@azure-tools/typespec-resource-manager Changelog

@next version of the package are the latest versions available on the main branch.

Package Layering

The main packages in this repository can be considered a series of layers which progressively add functionality for specific scenarios: