// Code generated by @openmeter/typespec-typescript. DO NOT EDIT. import { type Client } from '../core.js' import { unwrap, type RequestOptions } from '../lib/types.js' import { paginatePages } from '../lib/paginate.js' import { listAddons, createAddon, updateAddon, getAddon, deleteAddon, archiveAddon, publishAddon, } from '../funcs/addons.js' import type { ListAddonsRequest, ListAddonsResponse, CreateAddonRequest, CreateAddonResponse, UpdateAddonRequest, UpdateAddonResponse, GetAddonRequest, GetAddonResponse, DeleteAddonRequest, DeleteAddonResponse, ArchiveAddonRequest, ArchiveAddonResponse, PublishAddonRequest, PublishAddonResponse, } from '../models/operations/addons.js' import type { Addon } from '../models/types.js' export class Addons { constructor(private readonly _client: Client) {} /** * List add-ons * * List all add-ons. * * GET /openmeter/addons */ async list( request?: ListAddonsRequest, options?: RequestOptions, ): Promise { return unwrap(await listAddons(this._client, request, options)) } /** * List add-ons * * List all add-ons. * * Iterates every item across all pages, fetching more as the returned iterable is consumed. * * GET /openmeter/addons */ listAll( request?: ListAddonsRequest, options?: RequestOptions, ): AsyncIterable { return paginatePages( (req, opts) => listAddons(this._client, req, opts), request ?? {}, options, ) } /** * Create add-on * * Create a new add-on. * * POST /openmeter/addons */ async create( request: CreateAddonRequest, options?: RequestOptions, ): Promise { return unwrap(await createAddon(this._client, request, options)) } /** * Update add-on * * Update an add-on by id. * * PUT /openmeter/addons/{addonId} */ async update( request: UpdateAddonRequest, options?: RequestOptions, ): Promise { return unwrap(await updateAddon(this._client, request, options)) } /** * Get add-on * * Get add-on by id. * * GET /openmeter/addons/{addonId} */ async get( request: GetAddonRequest, options?: RequestOptions, ): Promise { return unwrap(await getAddon(this._client, request, options)) } /** * Soft delete add-on * * Soft delete add-on by id. * * DELETE /openmeter/addons/{addonId} */ async delete( request: DeleteAddonRequest, options?: RequestOptions, ): Promise { return unwrap(await deleteAddon(this._client, request, options)) } /** * Archive add-on version * * Archive an add-on version. * * POST /openmeter/addons/{addonId}/archive */ async archive( request: ArchiveAddonRequest, options?: RequestOptions, ): Promise { return unwrap(await archiveAddon(this._client, request, options)) } /** * Publish add-on version * * Publish an add-on version. * * POST /openmeter/addons/{addonId}/publish */ async publish( request: PublishAddonRequest, options?: RequestOptions, ): Promise { return unwrap(await publishAddon(this._client, request, options)) } }