/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import { lineItemsCreate } from "../funcs/lineItemsCreate.js";
import { lineItemsDelete } from "../funcs/lineItemsDelete.js";
import { lineItemsGet } from "../funcs/lineItemsGet.js";
import { lineItemsList } from "../funcs/lineItemsList.js";
import { lineItemsUpdate } from "../funcs/lineItemsUpdate.js";
import { ClientSDK } from "../lib/sdks.js";
import { unwrapAsync } from "../types/fp.js";
import { unwrapResultIterator } from "../types/operations.js";
export class LineItems extends ClientSDK {
    /**
     * Get all Line Items
     *
     * @remarks
     * Get all of the Line Items on the service provider.
     */
    async list(request, options) {
        return unwrapResultIterator(lineItemsList(this, request, options));
    }
    /**
     * Create a Line Item
     *
     * @remarks
     * To create a new Line Item. The responding system must return the set of sourcedIds that have been allocated to the newly created Line Item records.
     */
    async create(request, options) {
        return unwrapAsync(lineItemsCreate(this, request, options));
    }
    /**
     * Get a Line Item
     *
     * @remarks
     * Get a specific Line Item on the service provider. If the corresponding record cannot be located, the api will return a 404 error code and message 'Line item not found.'
     */
    async get(request, options) {
        return unwrapAsync(lineItemsGet(this, request, options));
    }
    /**
     * Update a Line Item
     *
     * @remarks
     * To update an existing Line Item. The sourcedId for the record to be updated is supplied by the requesting system.
     */
    async update(request, options) {
        return unwrapAsync(lineItemsUpdate(this, request, options));
    }
    /**
     * Delete a Line Item
     *
     * @remarks
     * Perform a soft delete on a specific Line Item on the service provider. This operation changes the status of the LineItem to 'tobedeleted'.
     */
    async delete(request, options) {
        return unwrapAsync(lineItemsDelete(this, request, options));
    }
}
//# sourceMappingURL=lineitems.js.map