/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { productsCreate } from "../funcs/productsCreate.js"; import { productsGet } from "../funcs/productsGet.js"; import { productsList } from "../funcs/productsList.js"; import { productsUpdate } from "../funcs/productsUpdate.js"; import { productsUpdateBenefits } from "../funcs/productsUpdateBenefits.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import { Product } from "../models/components/product.js"; import { ProductCreate } from "../models/components/productcreate.js"; import { ProductsGetRequest } from "../models/operations/productsget.js"; import { ProductsListRequest, ProductsListResponse, } from "../models/operations/productslist.js"; import { ProductsUpdateRequest } from "../models/operations/productsupdate.js"; import { ProductsUpdateBenefitsRequest } from "../models/operations/productsupdatebenefits.js"; import { unwrapAsync } from "../types/fp.js"; import { PageIterator, unwrapResultIterator } from "../types/operations.js"; export class Products extends ClientSDK { /** * List Products * * @remarks * List products. * * **Scopes**: `products:read` `products:write` */ async list( request: ProductsListRequest, options?: RequestOptions, ): Promise> { return unwrapResultIterator(productsList( this, request, options, )); } /** * Create Product * * @remarks * Create a product. * * **Scopes**: `products:write` */ async create( request: ProductCreate, options?: RequestOptions, ): Promise { return unwrapAsync(productsCreate( this, request, options, )); } /** * Get Product * * @remarks * Get a product by ID. * * **Scopes**: `products:read` `products:write` */ async get( request: ProductsGetRequest, options?: RequestOptions, ): Promise { return unwrapAsync(productsGet( this, request, options, )); } /** * Update Product * * @remarks * Update a product. * * **Scopes**: `products:write` */ async update( request: ProductsUpdateRequest, options?: RequestOptions, ): Promise { return unwrapAsync(productsUpdate( this, request, options, )); } /** * Update Product Benefits * * @remarks * Update benefits granted by a product. * * **Scopes**: `products:write` */ async updateBenefits( request: ProductsUpdateBenefitsRequest, options?: RequestOptions, ): Promise { return unwrapAsync(productsUpdateBenefits( this, request, options, )); } }