---
title: Overview
sidebar_position: 0
toc_min_heading_level: 2
toc_max_heading_level: 3
---

import { Tabs, TabItem } from '@astrojs/starlight/components';

TypeSpec library providing OpenAPI concepts

## Install

<Tabs>
<TabItem  label="In a spec" default>

```bash
npm install @typespec/openapi
```

</TabItem>
<TabItem  label="In a library" default>

```bash
npm install --save-peer @typespec/openapi
```

</TabItem>
</Tabs>

## TypeSpec.OpenAPI

### Decorators

- [`@defaultResponse`](./decorators.md#@TypeSpec.OpenAPI.defaultResponse)
- [`@extension`](./decorators.md#@TypeSpec.OpenAPI.extension)
- [`@externalDocs`](./decorators.md#@TypeSpec.OpenAPI.externalDocs)
- [`@info`](./decorators.md#@TypeSpec.OpenAPI.info)
- [`@operationId`](./decorators.md#@TypeSpec.OpenAPI.operationId)
- [`@tagMetadata`](./decorators.md#@TypeSpec.OpenAPI.tagMetadata)

### Models

- [`AdditionalInfo`](./data-types.md#TypeSpec.OpenAPI.AdditionalInfo)
- [`Contact`](./data-types.md#TypeSpec.OpenAPI.Contact)
- [`ExternalDocs`](./data-types.md#TypeSpec.OpenAPI.ExternalDocs)
- [`License`](./data-types.md#TypeSpec.OpenAPI.License)
- [`TagMetadata`](./data-types.md#TypeSpec.OpenAPI.TagMetadata)
- [`TagMetadataWithName`](./data-types.md#TypeSpec.OpenAPI.TagMetadataWithName)
