"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Identities = void 0;
const identitiesCreate_js_1 = require("../funcs/identitiesCreate.js");
const identitiesDelete_js_1 = require("../funcs/identitiesDelete.js");
const identitiesList_js_1 = require("../funcs/identitiesList.js");
const identitiesRetrieve_js_1 = require("../funcs/identitiesRetrieve.js");
const identitiesUpdate_js_1 = require("../funcs/identitiesUpdate.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
class Identities extends sdks_js_1.ClientSDK {
    /**
     * List identities
     *
     * @remarks
     * Retrieves a paginated list of identities in your workspace. Use pagination parameters to navigate through large identity lists efficiently.
     */
    async list(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, identitiesList_js_1.identitiesList)(this, request, options));
    }
    /**
     * Create an identity
     *
     * @remarks
     * Creates a new identity with a unique external_id. If an identity with the same external_id already exists, the operation will fail.
     */
    async create(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, identitiesCreate_js_1.identitiesCreate)(this, request, options));
    }
    /**
     * Retrieve an identity
     *
     * @remarks
     * Retrieves detailed information about a specific identity using their identity ID or external ID from your system.
     */
    async retrieve(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, identitiesRetrieve_js_1.identitiesRetrieve)(this, request, options));
    }
    /**
     * Delete an identity
     *
     * @remarks
     * Permanently deletes an identity from your workspace and cleans up associated budget configurations.
     */
    async delete(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, identitiesDelete_js_1.identitiesDelete)(this, request, options));
    }
    /**
     * Update an identity
     *
     * @remarks
     * Updates specific fields of an existing identity. Only the fields provided in the request body will be updated.
     */
    async update(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, identitiesUpdate_js_1.identitiesUpdate)(this, request, options));
    }
}
exports.Identities = Identities;
//# sourceMappingURL=identities.js.map