@unkey/api
Version:
Developer-friendly & type-safe Typescript SDK specifically catered to leverage *@unkey/api* API.
135 lines (128 loc) • 4.3 kB
text/typescript
/*
* 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,
));
}
}