/** * @distilled.cloud/hetzner -- Hetzner Cloud API SDK for Effect. * * `./services` is generated by `scripts/generate.ts` from the Smithy models in * `.generated-specs` (written by `scripts/convert.ts` from the OpenAPI * document `scripts/download-spec.ts` downloads into `specs/`). Everything * else in this folder is hand-written. * * One module per Hetzner API tag, so `Servers` and the 27 Server Actions are * separate surfaces -- the same split the API reference uses. * * Note that most mutating Hetzner endpoints are ASYNCHRONOUS: they answer * with an `action` object whose `status` is `running`, and the work completes * later. Poll `actions.getAction` (or the resource's own action * list) until `status` is `success` or `error`. * * @example * ```ts * import * as Hetzner from "@distilled.cloud/hetzner"; * * const { servers } = yield* Hetzner.servers.listServers({ * status: ["running"], * }); * ``` */ export * from "./credentials.ts"; export * from "./errors.ts"; export * as T from "./traits.ts"; export { HetznerProtocol, type HetznerOpError, type HetznerOpContext } from "./protocol.ts"; export { paginatePageNumber } from "./pagination.ts"; export * as Retry from "./retry.ts"; export * from "./services/index.ts";