|
| 1 | +/* |
| 2 | + * This Source Code Form is subject to the terms of the Mozilla Public |
| 3 | + * License, v. 2.0. If a copy of the MPL was not distributed with this |
| 4 | + * file, you can obtain one at https://mozilla.org/MPL/2.0/. |
| 5 | + * |
| 6 | + * Copyright Oxide Computer Company |
| 7 | + */ |
| 8 | +import type { Merge } from 'type-fest' |
| 9 | + |
| 10 | +export type Project = Readonly<{ project?: string }> |
| 11 | +export type Instance = Readonly<Merge<Project, { instance?: string }>> |
| 12 | +export type Disk = Readonly<Merge<Project, { disk?: string }>> |
| 13 | +export type Image = Readonly<Merge<Project, { image?: string }>> |
| 14 | +export type SiloImage = Readonly<{ image?: string }> |
| 15 | +export type NetworkInterface = Readonly<Merge<Instance, { interface?: string }>> |
| 16 | +export type Snapshot = Readonly<Merge<Project, { snapshot?: string }>> |
| 17 | +export type Vpc = Readonly<Merge<Project, { vpc?: string }>> |
| 18 | +export type VpcRouter = Readonly<Merge<Vpc, { router?: string }>> |
| 19 | +export type InternetGateway = Readonly<Merge<Vpc, { gateway?: string }>> |
| 20 | +export type InternetGatewayIpAddress = Readonly< |
| 21 | + Merge<InternetGateway, { address?: string }> |
| 22 | +> |
| 23 | +export type InternetGatewayIpPool = Merge<InternetGateway, { pool?: string }> |
| 24 | +export type VpcRouterRoute = Readonly<Merge<VpcRouter, { route?: string }>> |
| 25 | +export type VpcSubnet = Readonly<Merge<Vpc, { subnet?: string }>> |
| 26 | +export type FirewallRule = Readonly<Merge<Vpc, { rule?: string }>> |
| 27 | +export type Silo = Readonly<{ silo?: string }> |
| 28 | +export type IdentityProvider = Readonly<Merge<Silo, { provider: string }>> |
| 29 | +export type SystemUpdate = Readonly<{ version: string }> |
| 30 | +export type SshKey = Readonly<{ sshKey: string }> |
| 31 | +export type Sled = Readonly<{ sledId?: string }> |
| 32 | +export type IpPool = Readonly<{ pool?: string }> |
| 33 | +export type FloatingIp = Readonly<Merge<Project, { floatingIp?: string }>> |
| 34 | + |
| 35 | +export type Id = Readonly<{ id: string }> |
0 commit comments