# MacModels

## MacModelsService

The Mac model registry (`GET /mac-models`): the models `reservations.create({ model })`
accepts, with each model's whole vCPUs, physical memory, physical SSD capacity and
sandbox disk room in MiB, and the layouts it offers. `catalog()` adds free Macs and prices.

### Constructors

#### Constructor

```ts
new MacModelsService(http: AxiosInstance): MacModelsService;
```

**Parameters**:

- `http` _AxiosInstance_

**Returns**:

- `MacModelsService`

### Methods

#### catalog()

```ts
catalog(options: { region?: string } = {}): Promise<MacCatalog>;
```

Free Macs and prices per Mac model (GET /mac-catalog). available is advisory; price is null on a cell without billing.

**Parameters**:

- `options` _\{ region?: string \} = \{\}_

**Returns**:

- `Promise<MacCatalog>`

#### list()

```ts
list(): Promise<MacModel[]>;
```

Every registered Mac model, ordered by `id`.

**Returns**:

- `Promise<MacModel[]>`

***

## MacModel

```ts
type MacModel = api.MacModel
```

A registered Mac model (`GET /mac-models`), in wire field names: `id`, `name`, `vcpus`, `memory_mib`, `disk_mib`,
`sandbox_disk_mib` (the disk room sandboxes on one Mac share) and `layouts` (the layouts a reservation of it can take).

***

## MacCatalog

```ts
type MacCatalog = api.MacCatalog
```

`GET /mac-catalog`: per region, the default model and each model's `MacModel`, free Macs (`available`) and `price` (null on a cell without billing).