Leon4gr45's picture
Upload folder using huggingface_hub (part 2)
1477a90 verified
Raw
History Blame Contribute Delete
3.76 kB
// 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 {
createMeter,
getMeter,
listMeters,
updateMeter,
deleteMeter,
queryMeter,
queryMeterCsv,
} from '../funcs/meters.js'
import type {
CreateMeterRequest,
CreateMeterResponse,
GetMeterRequest,
GetMeterResponse,
ListMetersRequest,
ListMetersResponse,
UpdateMeterRequest,
UpdateMeterResponse,
DeleteMeterRequest,
DeleteMeterResponse,
QueryMeterRequest,
QueryMeterResponse,
QueryMeterCsvRequest,
QueryMeterCsvResponse,
} from '../models/operations/meters.js'
import type { Meter } from '../models/types.js'
export class Meters {
constructor(private readonly _client: Client) {}
/**
* Create meter
*
* Create a meter.
*
* POST /openmeter/meters
*/
async create(
request: CreateMeterRequest,
options?: RequestOptions,
): Promise<CreateMeterResponse> {
return unwrap(await createMeter(this._client, request, options))
}
/**
* Get meter
*
* Get a meter by ID.
*
* GET /openmeter/meters/{meterId}
*/
async get(
request: GetMeterRequest,
options?: RequestOptions,
): Promise<GetMeterResponse> {
return unwrap(await getMeter(this._client, request, options))
}
/**
* List meters
*
* List meters.
*
* GET /openmeter/meters
*/
async list(
request?: ListMetersRequest,
options?: RequestOptions,
): Promise<ListMetersResponse> {
return unwrap(await listMeters(this._client, request, options))
}
/**
* List meters
*
* List meters.
*
* Iterates every item across all pages, fetching more as the returned iterable is consumed.
*
* GET /openmeter/meters
*/
listAll(
request?: ListMetersRequest,
options?: RequestOptions,
): AsyncIterable<Meter> {
return paginatePages(
(req, opts) => listMeters(this._client, req, opts),
request ?? {},
options,
)
}
/**
* Update meter
*
* Update a meter.
*
* PUT /openmeter/meters/{meterId}
*/
async update(
request: UpdateMeterRequest,
options?: RequestOptions,
): Promise<UpdateMeterResponse> {
return unwrap(await updateMeter(this._client, request, options))
}
/**
* Delete meter
*
* Delete a meter.
*
* DELETE /openmeter/meters/{meterId}
*/
async delete(
request: DeleteMeterRequest,
options?: RequestOptions,
): Promise<DeleteMeterResponse> {
return unwrap(await deleteMeter(this._client, request, options))
}
/**
* Query meter
*
* Query a meter for usage.
*
* Set `Accept: application/json` (the default) to get a structured JSON response.
* Set `Accept: text/csv` to download the same data as a CSV file suitable for
* spreadsheets. The CSV columns, in order, are:
*
* `from, to, [subject,] [customer_id, customer_key, customer_name,] <dimensions...>, value`
*
* The `subject` column is emitted only when `subject` is in the query's
* `group_by_dimensions`. The three `customer_*` columns are emitted together only
* when `customer_id` is in the query's `group_by_dimensions`.
*
* POST /openmeter/meters/{meterId}/query
*/
async query(
request: QueryMeterRequest,
options?: RequestOptions,
): Promise<QueryMeterResponse> {
return unwrap(await queryMeter(this._client, request, options))
}
/** POST /openmeter/meters/{meterId}/query */
async queryCsv(
request: QueryMeterCsvRequest,
options?: RequestOptions,
): Promise<QueryMeterCsvResponse> {
return unwrap(await queryMeterCsv(this._client, request, options))
}
}