// 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 { createTaxCode, getTaxCode, listTaxCodes, upsertTaxCode, deleteTaxCode, } from '../funcs/tax.js' import type { CreateTaxCodeRequest, CreateTaxCodeResponse, GetTaxCodeRequest, GetTaxCodeResponse, ListTaxCodesRequest, ListTaxCodesResponse, UpsertTaxCodeRequest, UpsertTaxCodeResponse, DeleteTaxCodeRequest, DeleteTaxCodeResponse, } from '../models/operations/tax.js' import type { TaxCode } from '../models/types.js' export class Tax { constructor(private readonly _client: Client) {} /** * Create tax code * * POST /openmeter/tax-codes */ async createCode( request: CreateTaxCodeRequest, options?: RequestOptions, ): Promise { return unwrap(await createTaxCode(this._client, request, options)) } /** * Get tax code * * GET /openmeter/tax-codes/{taxCodeId} */ async getCode( request: GetTaxCodeRequest, options?: RequestOptions, ): Promise { return unwrap(await getTaxCode(this._client, request, options)) } /** * List tax codes * * GET /openmeter/tax-codes */ async listCodes( request?: ListTaxCodesRequest, options?: RequestOptions, ): Promise { return unwrap(await listTaxCodes(this._client, request, options)) } /** * List tax codes * * Iterates every item across all pages, fetching more as the returned iterable is consumed. * * GET /openmeter/tax-codes */ listCodesAll( request?: ListTaxCodesRequest, options?: RequestOptions, ): AsyncIterable { return paginatePages( (req, opts) => listTaxCodes(this._client, req, opts), request ?? {}, options, ) } /** * Upsert tax code * * PUT /openmeter/tax-codes/{taxCodeId} */ async upsertCode( request: UpsertTaxCodeRequest, options?: RequestOptions, ): Promise { return unwrap(await upsertTaxCode(this._client, request, options)) } /** * Delete tax code * * DELETE /openmeter/tax-codes/{taxCodeId} */ async deleteCode( request: DeleteTaxCodeRequest, options?: RequestOptions, ): Promise { return unwrap(await deleteTaxCode(this._client, request, options)) } }