# Owin.Types

**Kind:** Service

**Source:** `Pams/API/Pams.API/Pams.API.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

`Owin.Types` is a NuGet dependency referenced by `Pams.API.csproj`. It supplies OWIN request, response, and environment type definitions used by the API’s OWIN hosting and middleware integration.

## Diagram

```mermaid
sequenceDiagram
    participant Client
    participant PamsAPI as Pams API
    participant OwinTypes as Owin.Types

    Client->>PamsAPI: Send HTTP request
    PamsAPI->>OwinTypes: Read OWIN request environment
    OwinTypes-->>PamsAPI: Request and response type contracts
    PamsAPI-->>Client: Send HTTP response
```

## Usage

```ts
// Browser clients do not import Owin.Types directly.
// The package is used by the .NET API host that handles this request.

async function getPamsRecord(recordId: string) {
  const response = await fetch(`/api/pams/${encodeURIComponent(recordId)}`);

  if (!response.ok) {
    throw new Error(`API request failed: ${response.status}`);
  }

  return response.json();
}

getPamsRecord("record-id").then(console.log);
```

## AI Coding Instructions

- Keep `Owin.Types` referenced from `Pams.API.csproj`; it is a server-side NuGet dependency, not a browser package.
- Use OWIN environment, request, and response contracts when adding middleware that runs in the API pipeline.
- Do not add JavaScript or TypeScript imports for `Owin.Types`; client code should call API endpoints over HTTP.
- Check package compatibility before changing the OWIN hosting or middleware dependencies.

## Used by

1 reference from 1 file. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (1)

- `Pams.API` — `Pams/API/Pams.API/Pams.API.csproj`:1
