## File: README.md

# ⚠️ Deprecation Notice

**AutoRest is deprecated and will be retired on July 1, 2026.**

AutoRest is no longer under active development. No new features, language generators, or plugins will be added.

### ✅ Recommended replacement: TypeSpec

The recommended successor to AutoRest is **[TypeSpec](https://typespec.io/)** — a modern, actively developed API description language and code generation platform.

### 📌 Deprecation tracking issue for more details: https://github.com/Azure/autorest/issues/5175

## AutoRest

The **AutoRest** tool generates client libraries for accessing RESTful web services. Input to _AutoRest_ is a spec that describes the REST API using the [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification) format.

[Release notes](./docs/releases)

## Packages

| Name                                            | Changelog                       | Latest                                                       | Next                                                              |
| ----------------------------------------------- | ------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------- |
| Core functionality                              |
| [autorest][autorest_src]                        | [Changelog][autorest_chg]       |                    |                    |
| [@autorest/core][core_src]                      | [Changelog][core_chg]           |              |              |
| [@autorest/modelerfour][modelerfour_src]        | [Changelog][modelerfour_chg]    |       |       |
| Language generators                             |
| [@autorest/csharp][csharp_src]                  | [Changelog][csharp_chg]         |            |                                                                   |
| [@autorest/go][go_src]                          | [Changelog][go_chg]             |                |                                                                   |
| [@autorest/java][java_src]                      | [Changelog][java_chg]           |              |                                                                   |
| [@autorest/powershell][powershell_src]          | [Changelog][powershell_chg]     |        |                                                                   |
| [@autorest/python][python_src]                  | [Changelog][python_chg]         |            |                                                                   |
| [@autorest/swift][swift_src]                    | [Changelog][swift_chg]          |             |                                                                   |
| [@autorest/typescript][typescript_src]          | [Changelog][typescript_chg]     |        |                                                                   |
| Internal packages                               |
| [@autorest/codemodel][codemodel_src]            | [Changelog][codemodel_chg]      |         |         |
| [@autorest/common][common_src]                  | [Changelog][common_chg]         |            |            |
| [@autorest/configuration][configuration_src]    | [Changelog][configuration_chg]  |     |     |
| [@autorest/extension-base][extension_base_src]  | [Changelog][extension_base_chg] |    |    |
| [@azure-tools/extension][extension_src]         | [Changelog][extension_chg]      |      |      |
| [@azure-tools/codegen][codegen_src]             | [Changelog][codemodel_chg]      |        |        |
| [@azure-tools/openapi][openapi_src]             | [Changelog][openapi_chg]        |        |        |
| [@azure-tools/deduplication][deduplication_src] | [Changelog][deduplication_chg]  |  |  |
| [@azure-tools/datastore][datastore_src]         | [Changelog][datastore_chg]      |      |      |
| [@azure-tools/oai2-to-oai3][oai2-to-oai3_src]   | [Changelog][oai2-to-oai3_chg]   |   |   |
| [@azure-tools/jsonschema][jsonschema_src]       | [Changelog][jsonschema_chg]     |     |     |

[autorest_src]: packages/apps/autorest
[core_src]: packages/extensions/core
[modelerfour_src]: packages/extensions/modelerfour
[csharp_src]: https://github.com/Azure/autorest.csharp
[python_src]: https://github.com/Azure/autorest.python
[go_src]: https://github.com/Azure/autorest.go
[java_src]: https://github.com/Azure/autorest.java
[swift_src]: https://github.com/Azure/autorest.swift
[typescript_src]: https://github.com/Azure/autorest.typescript
[powershell_src]: https://github.com/Azure/autorest.powershell
[codemodel_src]: packages/libs/codemodel
[common_src]: packages/libs/common
[configuration_src]: packages/libs/configuration
[extension_base_src]: packages/libs/extension-base
[oai2-to-oai3_src]: packages/libs/oai2-to-oai3_src
[extension_src]: packages/libs/extension
[codegen_src]: packages/libs/codegen
[openapi_src]: packages/libs/openapi
[deduplication_src]: packages/libs/deduplication
[datastore_src]: packages/libs/datastore
[jsonschema_src]: packages/libs/oai2-to-oai3
[autorest_chg]: packages/apps/autorest/CHANGELOG.md
[core_chg]: packages/extensions/core/CHANGELOG.md
[modelerfour_chg]: packages/extensions/modelerfour/CHANGELOG.md
[csharp_chg]: https://github.com/Azure/autorest.csharp
[python_chg]: https://github.com/Azure/autorest.python/blob/main/packages/autorest.python/ChangeLog.md
[go_chg]: https://github.com/Azure/autorest.go
[java_chg]: https://github.com/Azure/autorest.java/releases
[swift_chg]: https://github.com/Azure/autorest.swift
[typescript_chg]: https://github.com/Azure/autorest.typescript
[powershell_chg]: https://github.com/Azure/autorest.powershell/releases
[codemodel_chg]: packages/libs/codemodel/CHANGELOG.md
[common_chg]: packages/libs/common/CHANGELOG.md
[configuration_chg]: packages/libs/configuration/CHANGELOG.md
[extension_base_chg]: packages/libs/extension-base/CHANGELOG.md
[extension_chg]: packages/libs/extension/CHANGELOG.md
[codegen_chg]: packages/libs/codegen/CHANGELOG.md
[openapi_chg]: packages/libs/openapi/CHANGELOG.md
[deduplication_chg]: packages/libs/deduplication/CHANGELOG.md
[datastore_chg]: packages/libs/datastore/CHANGELOG.md
[oai2-to-oai3_chg]: packages/libs/oai2-to-oai3/CHANGELOG.md
[jsonschema_chg]: packages/libs/jsonschema/CHANGELOG.md

## Getting Started using AutoRest 

View our [docs readme][docs_readme] as a starting point to find both general information and language-generator specific information

## Contributing

### Contributing guide

Check our [internal developer docs](./docs/developer/readme.md) to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to Autorest.

### Code of Conduct

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.



[docs_readme]: docs/readme.md

---

## File: Readme.md

# ⚠️ Deprecation Notice

**AutoRest is deprecated and will be retired on July 1, 2026.**

AutoRest is no longer under active development. No new features, language generators, or plugins will be added.

### ✅ Recommended replacement: TypeSpec

The recommended successor to AutoRest is **[TypeSpec](https://typespec.io/)** — a modern, actively developed API description language and code generation platform.

### 📌 Deprecation tracking issue for more details: https://github.com/Azure/autorest/issues/5175

## AutoRest

The **AutoRest** tool generates client libraries for accessing RESTful web services. Input to _AutoRest_ is a spec that describes the REST API using the [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification) format.

[Release notes](./docs/releases)

## Packages

| Name                                            | Changelog                       | Latest                                                       | Next                                                              |
| ----------------------------------------------- | ------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------- |
| Core functionality                              |
| [autorest][autorest_src]                        | [Changelog][autorest_chg]       |                    |                    |
| [@autorest/core][core_src]                      | [Changelog][core_chg]           |              |              |
| [@autorest/modelerfour][modelerfour_src]        | [Changelog][modelerfour_chg]    |       |       |
| Language generators                             |
| [@autorest/csharp][csharp_src]                  | [Changelog][csharp_chg]         |            |                                                                   |
| [@autorest/go][go_src]                          | [Changelog][go_chg]             |                |                                                                   |
| [@autorest/java][java_src]                      | [Changelog][java_chg]           |              |                                                                   |
| [@autorest/powershell][powershell_src]          | [Changelog][powershell_chg]     |        |                                                                   |
| [@autorest/python][python_src]                  | [Changelog][python_chg]         |            |                                                                   |
| [@autorest/swift][swift_src]                    | [Changelog][swift_chg]          |             |                                                                   |
| [@autorest/typescript][typescript_src]          | [Changelog][typescript_chg]     |        |                                                                   |
| Internal packages                               |
| [@autorest/codemodel][codemodel_src]            | [Changelog][codemodel_chg]      |         |         |
| [@autorest/common][common_src]                  | [Changelog][common_chg]         |            |            |
| [@autorest/configuration][configuration_src]    | [Changelog][configuration_chg]  |     |     |
| [@autorest/extension-base][extension_base_src]  | [Changelog][extension_base_chg] |    |    |
| [@azure-tools/extension][extension_src]         | [Changelog][extension_chg]      |      |      |
| [@azure-tools/codegen][codegen_src]             | [Changelog][codemodel_chg]      |        |        |
| [@azure-tools/openapi][openapi_src]             | [Changelog][openapi_chg]        |        |        |
| [@azure-tools/deduplication][deduplication_src] | [Changelog][deduplication_chg]  |  |  |
| [@azure-tools/datastore][datastore_src]         | [Changelog][datastore_chg]      |      |      |
| [@azure-tools/oai2-to-oai3][oai2-to-oai3_src]   | [Changelog][oai2-to-oai3_chg]   |   |   |
| [@azure-tools/jsonschema][jsonschema_src]       | [Changelog][jsonschema_chg]     |     |     |

[autorest_src]: packages/apps/autorest
[core_src]: packages/extensions/core
[modelerfour_src]: packages/extensions/modelerfour
[csharp_src]: https://github.com/Azure/autorest.csharp
[python_src]: https://github.com/Azure/autorest.python
[go_src]: https://github.com/Azure/autorest.go
[java_src]: https://github.com/Azure/autorest.java
[swift_src]: https://github.com/Azure/autorest.swift
[typescript_src]: https://github.com/Azure/autorest.typescript
[powershell_src]: https://github.com/Azure/autorest.powershell
[codemodel_src]: packages/libs/codemodel
[common_src]: packages/libs/common
[configuration_src]: packages/libs/configuration
[extension_base_src]: packages/libs/extension-base
[oai2-to-oai3_src]: packages/libs/oai2-to-oai3_src
[extension_src]: packages/libs/extension
[codegen_src]: packages/libs/codegen
[openapi_src]: packages/libs/openapi
[deduplication_src]: packages/libs/deduplication
[datastore_src]: packages/libs/datastore
[jsonschema_src]: packages/libs/oai2-to-oai3
[autorest_chg]: packages/apps/autorest/CHANGELOG.md
[core_chg]: packages/extensions/core/CHANGELOG.md
[modelerfour_chg]: packages/extensions/modelerfour/CHANGELOG.md
[csharp_chg]: https://github.com/Azure/autorest.csharp
[python_chg]: https://github.com/Azure/autorest.python/blob/main/packages/autorest.python/ChangeLog.md
[go_chg]: https://github.com/Azure/autorest.go
[java_chg]: https://github.com/Azure/autorest.java/releases
[swift_chg]: https://github.com/Azure/autorest.swift
[typescript_chg]: https://github.com/Azure/autorest.typescript
[powershell_chg]: https://github.com/Azure/autorest.powershell/releases
[codemodel_chg]: packages/libs/codemodel/CHANGELOG.md
[common_chg]: packages/libs/common/CHANGELOG.md
[configuration_chg]: packages/libs/configuration/CHANGELOG.md
[extension_base_chg]: packages/libs/extension-base/CHANGELOG.md
[extension_chg]: packages/libs/extension/CHANGELOG.md
[codegen_chg]: packages/libs/codegen/CHANGELOG.md
[openapi_chg]: packages/libs/openapi/CHANGELOG.md
[deduplication_chg]: packages/libs/deduplication/CHANGELOG.md
[datastore_chg]: packages/libs/datastore/CHANGELOG.md
[oai2-to-oai3_chg]: packages/libs/oai2-to-oai3/CHANGELOG.md
[jsonschema_chg]: packages/libs/jsonschema/CHANGELOG.md

## Getting Started using AutoRest 

View our [docs readme][docs_readme] as a starting point to find both general information and language-generator specific information

## Contributing

### Contributing guide

Check our [internal developer docs](./docs/developer/readme.md) to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to Autorest.

### Code of Conduct

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.



[docs_readme]: docs/readme.md

---

## File: readme.md

# ⚠️ Deprecation Notice

**AutoRest is deprecated and will be retired on July 1, 2026.**

AutoRest is no longer under active development. No new features, language generators, or plugins will be added.

### ✅ Recommended replacement: TypeSpec

The recommended successor to AutoRest is **[TypeSpec](https://typespec.io/)** — a modern, actively developed API description language and code generation platform.

### 📌 Deprecation tracking issue for more details: https://github.com/Azure/autorest/issues/5175

## AutoRest

The **AutoRest** tool generates client libraries for accessing RESTful web services. Input to _AutoRest_ is a spec that describes the REST API using the [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification) format.

[Release notes](./docs/releases)

## Packages

| Name                                            | Changelog                       | Latest                                                       | Next                                                              |
| ----------------------------------------------- | ------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------- |
| Core functionality                              |
| [autorest][autorest_src]                        | [Changelog][autorest_chg]       |                    |                    |
| [@autorest/core][core_src]                      | [Changelog][core_chg]           |              |              |
| [@autorest/modelerfour][modelerfour_src]        | [Changelog][modelerfour_chg]    |       |       |
| Language generators                             |
| [@autorest/csharp][csharp_src]                  | [Changelog][csharp_chg]         |            |                                                                   |
| [@autorest/go][go_src]                          | [Changelog][go_chg]             |                |                                                                   |
| [@autorest/java][java_src]                      | [Changelog][java_chg]           |              |                                                                   |
| [@autorest/powershell][powershell_src]          | [Changelog][powershell_chg]     |        |                                                                   |
| [@autorest/python][python_src]                  | [Changelog][python_chg]         |            |                                                                   |
| [@autorest/swift][swift_src]                    | [Changelog][swift_chg]          |             |                                                                   |
| [@autorest/typescript][typescript_src]          | [Changelog][typescript_chg]     |        |                                                                   |
| Internal packages                               |
| [@autorest/codemodel][codemodel_src]            | [Changelog][codemodel_chg]      |         |         |
| [@autorest/common][common_src]                  | [Changelog][common_chg]         |            |            |
| [@autorest/configuration][configuration_src]    | [Changelog][configuration_chg]  |     |     |
| [@autorest/extension-base][extension_base_src]  | [Changelog][extension_base_chg] |    |    |
| [@azure-tools/extension][extension_src]         | [Changelog][extension_chg]      |      |      |
| [@azure-tools/codegen][codegen_src]             | [Changelog][codemodel_chg]      |        |        |
| [@azure-tools/openapi][openapi_src]             | [Changelog][openapi_chg]        |        |        |
| [@azure-tools/deduplication][deduplication_src] | [Changelog][deduplication_chg]  |  |  |
| [@azure-tools/datastore][datastore_src]         | [Changelog][datastore_chg]      |      |      |
| [@azure-tools/oai2-to-oai3][oai2-to-oai3_src]   | [Changelog][oai2-to-oai3_chg]   |   |   |
| [@azure-tools/jsonschema][jsonschema_src]       | [Changelog][jsonschema_chg]     |     |     |

[autorest_src]: packages/apps/autorest
[core_src]: packages/extensions/core
[modelerfour_src]: packages/extensions/modelerfour
[csharp_src]: https://github.com/Azure/autorest.csharp
[python_src]: https://github.com/Azure/autorest.python
[go_src]: https://github.com/Azure/autorest.go
[java_src]: https://github.com/Azure/autorest.java
[swift_src]: https://github.com/Azure/autorest.swift
[typescript_src]: https://github.com/Azure/autorest.typescript
[powershell_src]: https://github.com/Azure/autorest.powershell
[codemodel_src]: packages/libs/codemodel
[common_src]: packages/libs/common
[configuration_src]: packages/libs/configuration
[extension_base_src]: packages/libs/extension-base
[oai2-to-oai3_src]: packages/libs/oai2-to-oai3_src
[extension_src]: packages/libs/extension
[codegen_src]: packages/libs/codegen
[openapi_src]: packages/libs/openapi
[deduplication_src]: packages/libs/deduplication
[datastore_src]: packages/libs/datastore
[jsonschema_src]: packages/libs/oai2-to-oai3
[autorest_chg]: packages/apps/autorest/CHANGELOG.md
[core_chg]: packages/extensions/core/CHANGELOG.md
[modelerfour_chg]: packages/extensions/modelerfour/CHANGELOG.md
[csharp_chg]: https://github.com/Azure/autorest.csharp
[python_chg]: https://github.com/Azure/autorest.python/blob/main/packages/autorest.python/ChangeLog.md
[go_chg]: https://github.com/Azure/autorest.go
[java_chg]: https://github.com/Azure/autorest.java/releases
[swift_chg]: https://github.com/Azure/autorest.swift
[typescript_chg]: https://github.com/Azure/autorest.typescript
[powershell_chg]: https://github.com/Azure/autorest.powershell/releases
[codemodel_chg]: packages/libs/codemodel/CHANGELOG.md
[common_chg]: packages/libs/common/CHANGELOG.md
[configuration_chg]: packages/libs/configuration/CHANGELOG.md
[extension_base_chg]: packages/libs/extension-base/CHANGELOG.md
[extension_chg]: packages/libs/extension/CHANGELOG.md
[codegen_chg]: packages/libs/codegen/CHANGELOG.md
[openapi_chg]: packages/libs/openapi/CHANGELOG.md
[deduplication_chg]: packages/libs/deduplication/CHANGELOG.md
[datastore_chg]: packages/libs/datastore/CHANGELOG.md
[oai2-to-oai3_chg]: packages/libs/oai2-to-oai3/CHANGELOG.md
[jsonschema_chg]: packages/libs/jsonschema/CHANGELOG.md

## Getting Started using AutoRest 

View our [docs readme][docs_readme] as a starting point to find both general information and language-generator specific information

## Contributing

### Contributing guide

Check our [internal developer docs](./docs/developer/readme.md) to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to Autorest.

### Code of Conduct

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.



[docs_readme]: docs/readme.md

---

## File: docs/README.md

# AutoRest Documentation

1. Introduction

   - Get an [introduction][introduction] to the fundamental concepts of AutoRest

2. Installing AutoRest

   - You can [install AutoRest][install] on Windows, Mac, or Linux.

3. Defining Clients with OpenAPI

   - Learn [how to define your REST API][openapi] with OpenAPI

4. Generating Clients with AutoRest

   - How do I generate code? See [here][generate]

5. Using Your Generated Client

   - How do I [use my client][client] now that I've generated it?

6. Migrating from AutoRest 2.0 to 3.0

   - I have old generated code using the previous version of AutoRest. How do I [upgrade][migrate] my generation and use my new code?

7. Developing with AutoRest

   - How do I generate or contribute to AutoRest in [dev mode][dev]?

8. `Powershell` documentation

   - [How][powershell] do I use AutoRest to build `Powershell` cmdlets?

9. Use `autorest` via [docker][docker]

10. [Troubleshooting][troubleshooting]

11. [FAQ][faq]



[introduction]: https://github.com/Azure/autorest/blob/main/docs/introduction.md
[install]: https://github.com/Azure/autorest/blob/main/docs/install/readme.md
[openapi]: https://github.com/Azure/autorest/blob/main/docs/openapi/readme.md
[generate]: https://github.com/Azure/autorest/blob/main/docs/generate/readme.md
[client]: https://github.com/Azure/autorest/blob/main/docs/client/readme.md
[migrate]: https://github.com/Azure/autorest/blob/main/docs/migrate/readme.md
[dev]: https://github.com/Azure/autorest/blob/main/docs/developer/readme.md
[powershell]: https://github.com/Azure/autorest.powershell/blob/master/docs/readme.md
[docker]: https://github.com/Azure/autorest/blob/main/docs/docker.md
[troubleshooting]: https://github.com/Azure/autorest/blob/main/docs/troubleshooting.md
[faq]: https://github.com/Azure/autorest/blob/main/docs/faq.md

---

## File: docs/Readme.md

# AutoRest Documentation

1. Introduction

   - Get an [introduction][introduction] to the fundamental concepts of AutoRest

2. Installing AutoRest

   - You can [install AutoRest][install] on Windows, Mac, or Linux.

3. Defining Clients with OpenAPI

   - Learn [how to define your REST API][openapi] with OpenAPI

4. Generating Clients with AutoRest

   - How do I generate code? See [here][generate]

5. Using Your Generated Client

   - How do I [use my client][client] now that I've generated it?

6. Migrating from AutoRest 2.0 to 3.0

   - I have old generated code using the previous version of AutoRest. How do I [upgrade][migrate] my generation and use my new code?

7. Developing with AutoRest

   - How do I generate or contribute to AutoRest in [dev mode][dev]?

8. `Powershell` documentation

   - [How][powershell] do I use AutoRest to build `Powershell` cmdlets?

9. Use `autorest` via [docker][docker]

10. [Troubleshooting][troubleshooting]

11. [FAQ][faq]



[introduction]: https://github.com/Azure/autorest/blob/main/docs/introduction.md
[install]: https://github.com/Azure/autorest/blob/main/docs/install/readme.md
[openapi]: https://github.com/Azure/autorest/blob/main/docs/openapi/readme.md
[generate]: https://github.com/Azure/autorest/blob/main/docs/generate/readme.md
[client]: https://github.com/Azure/autorest/blob/main/docs/client/readme.md
[migrate]: https://github.com/Azure/autorest/blob/main/docs/migrate/readme.md
[dev]: https://github.com/Azure/autorest/blob/main/docs/developer/readme.md
[powershell]: https://github.com/Azure/autorest.powershell/blob/master/docs/readme.md
[docker]: https://github.com/Azure/autorest/blob/main/docs/docker.md
[troubleshooting]: https://github.com/Azure/autorest/blob/main/docs/troubleshooting.md
[faq]: https://github.com/Azure/autorest/blob/main/docs/faq.md

---

## File: docs/readme.md

# AutoRest Documentation

1. Introduction

   - Get an [introduction][introduction] to the fundamental concepts of AutoRest

2. Installing AutoRest

   - You can [install AutoRest][install] on Windows, Mac, or Linux.

3. Defining Clients with OpenAPI

   - Learn [how to define your REST API][openapi] with OpenAPI

4. Generating Clients with AutoRest

   - How do I generate code? See [here][generate]

5. Using Your Generated Client

   - How do I [use my client][client] now that I've generated it?

6. Migrating from AutoRest 2.0 to 3.0

   - I have old generated code using the previous version of AutoRest. How do I [upgrade][migrate] my generation and use my new code?

7. Developing with AutoRest

   - How do I generate or contribute to AutoRest in [dev mode][dev]?

8. `Powershell` documentation

   - [How][powershell] do I use AutoRest to build `Powershell` cmdlets?

9. Use `autorest` via [docker][docker]

10. [Troubleshooting][troubleshooting]

11. [FAQ][faq]



[introduction]: https://github.com/Azure/autorest/blob/main/docs/introduction.md
[install]: https://github.com/Azure/autorest/blob/main/docs/install/readme.md
[openapi]: https://github.com/Azure/autorest/blob/main/docs/openapi/readme.md
[generate]: https://github.com/Azure/autorest/blob/main/docs/generate/readme.md
[client]: https://github.com/Azure/autorest/blob/main/docs/client/readme.md
[migrate]: https://github.com/Azure/autorest/blob/main/docs/migrate/readme.md
[dev]: https://github.com/Azure/autorest/blob/main/docs/developer/readme.md
[powershell]: https://github.com/Azure/autorest.powershell/blob/master/docs/readme.md
[docker]: https://github.com/Azure/autorest/blob/main/docs/docker.md
[troubleshooting]: https://github.com/Azure/autorest/blob/main/docs/troubleshooting.md
[faq]: https://github.com/Azure/autorest/blob/main/docs/faq.md

---

## File: docs/introduction.md

#  Introduction to AutoRest

The **AutoRest** tool generates client libraries for accessing RESTful web services. Input to _AutoRest_ is a spec that describes the REST API using the [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification) format.
Here we go into some of the general terms you'll see when going through our documentation and interacting with AutoRests.

## What is OpenAPI?

OpenAPI is a specification language used to describe a web service API in terms of its operations and the data types it understands. It was originally conceived as a specification called **Swagger**, so you commonly see these two terms used interchangeably.

OpenAPI is primarily concerned with describing web services that follow the [Representational State Transfer (REST)][rest] architectural model where operations are exposed via URI paths that accept HTTP verbs like GET, PUT, POST, and DELETE. These URI paths generally refer to “resources” understood by the service where the request and response bodies of most operations contain the details of the resource at that path. For example, a POST request with the body containing the desired state of a resource will create that resource, a PUT request with changes to some properties will update the resource, and a DELETE request will cause the resource to be deleted. OpenAPI provides a schema language which enables this type of API to be described in a machine-readable form, usually encoded in JSON.

The main [swagger docs][swagger_basic_structure] have a good example for the basic structure. For more information on how to write an OpenAPI definition for your service, feel free to refer to the [main swagger docs][swagger_docs] or [our own documentation][openapi_docs] for more AutoRest-specific information.

## What is AutoRest?

AutoRest is a tool that provides a code generation framework for converting OpenAPI 2.0 and 3.0 specifications into client libraries for the services described by those specifications. It was developed by Microsoft around the time the OpenAPI Initiative was formed so that Azure service teams could start producing generated client libraries from new Swagger and OpenAPI 2.0 specifications. AutoRest has created a [few extensions][extensions] to augment swagger functionality (a lot were created due to OpenAPI2 shortcomings).

At the core of AutoRest is a flexible pipeline where a series of pre-configured phases transform and merge various OpenAPI input files to produce a “code model” that can be consumed by a language-specific code generator. These code generator extensions will interpret the code model and produce code that aligns with the design guidelines for each language. The generated code for a language will use the corresponding Azure Core implementation so that we can provide configurable behavior for how HTTP requests are made in the generated code.

# 

See our [landing page][landing_page] to get started with writing your OpenAPI definitions and generating with AutoRest!



[rest]: https://en.wikipedia.org/wiki/Representational_state_transfer
[swagger_basic_structure]: https://swagger.io/docs/specification/basic-structure/
[swagger_docs]: https://swagger.io/docs/
[openapi_docs]: ./openapi/readme.md
[landing_page]: readme.md
[extensions]: extensions/readme.md