UNPKG

@unkey/api

Version:

Developer-friendly & type-safe Typescript SDK specifically catered to leverage *@unkey/api* API.

135 lines (128 loc) 4.3 kB
/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { identitiesCreateIdentity } from "../funcs/identitiesCreateIdentity.js"; import { identitiesDeleteIdentity } from "../funcs/identitiesDeleteIdentity.js"; import { identitiesGetIdentity } from "../funcs/identitiesGetIdentity.js"; import { identitiesListIdentities } from "../funcs/identitiesListIdentities.js"; import { identitiesUpdateIdentity } from "../funcs/identitiesUpdateIdentity.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; import { PageIterator, unwrapResultIterator } from "../types/operations.js"; export class Identities extends ClientSDK { /** * Create Identity * * @remarks * Create an identity to group multiple API keys under a single entity. Identities enable shared rate limits and metadata across all associated keys. * * Perfect for users with multiple devices, organizations with multiple API keys, or when you need unified rate limiting across different services. * * **Important** * Requires `identity.*.create_identity` permission */ async createIdentity( request: components.V2IdentitiesCreateIdentityRequestBody, options?: RequestOptions, ): Promise<components.V2IdentitiesCreateIdentityResponseBody> { return unwrapAsync(identitiesCreateIdentity( this, request, options, )); } /** * Delete Identity * * @remarks * Permanently delete an identity. This operation cannot be undone. * * Use this for data cleanup, compliance requirements, or when removing entities from your system. * * > **Important** * > Requires `identity.*.delete_identity` permission * > Associated API keys remain functional but lose shared resources * > External ID becomes available for reuse immediately */ async deleteIdentity( request: components.V2IdentitiesDeleteIdentityRequestBody, options?: RequestOptions, ): Promise<components.V2IdentitiesDeleteIdentityResponseBody> { return unwrapAsync(identitiesDeleteIdentity( this, request, options, )); } /** * Get Identity * * @remarks * Retrieve an identity by external ID. Returns metadata, rate limits, and other associated data. * * Use this to check if an identity exists, view configurations, or build management dashboards. * * > **Important** * > Requires `identity.*.read_identity` permission */ async getIdentity( request: components.V2IdentitiesGetIdentityRequestBody, options?: RequestOptions, ): Promise<components.V2IdentitiesGetIdentityResponseBody> { return unwrapAsync(identitiesGetIdentity( this, request, options, )); } /** * List Identities * * @remarks * Get a paginated list of all identities in your workspace. Returns metadata and rate limit configurations. * * Perfect for building management dashboards, auditing configurations, or browsing your identities. * * > **Important** * > Requires `identity.*.read_identity` permission */ async listIdentities( request: components.V2IdentitiesListIdentitiesRequestBody, options?: RequestOptions, ): Promise< PageIterator< operations.IdentitiesListIdentitiesResponse, { cursor: string } > > { return unwrapResultIterator(identitiesListIdentities( this, request, options, )); } /** * Update Identity * * @remarks * Update an identity's metadata and rate limits. Only specified fields are modified - others remain unchanged. * * Perfect for subscription changes, plan upgrades, or updating user information. Changes take effect immediately. * * > **Important** * > Requires `identity.*.update_identity` permission * > Rate limit changes propagate within 30 seconds */ async updateIdentity( request: components.V2IdentitiesUpdateIdentityRequestBody, options?: RequestOptions, ): Promise<components.V2IdentitiesUpdateIdentityResponseBody> { return unwrapAsync(identitiesUpdateIdentity( this, request, options, )); } }