@unkey/api
Version:
Developer-friendly & type-safe Typescript SDK specifically catered to leverage *@unkey/api* API.
95 lines • 4.51 kB
TypeScript
import * as z from "zod/v3";
import { RatelimitRequest, RatelimitRequest$Outbound } from "./ratelimitrequest.js";
import { UpdateKeyCreditsData, UpdateKeyCreditsData$Outbound } from "./updatekeycreditsdata.js";
export type V2KeysUpdateKeyRequestBody = {
/**
* Specifies which key to update using the database identifier returned from `createKey`.
*
* @remarks
* Do not confuse this with the actual API key string that users include in requests.
*/
keyId: string;
/**
* Sets a human-readable name for internal organization and identification.
*
* @remarks
* Omitting this field leaves the current name unchanged, while setting null removes it entirely.
* Avoid generic names like "API Key" when managing multiple keys per user or service.
*/
name?: string | null | undefined;
/**
* Links this key to a user or entity in your system for ownership tracking during verification.
*
* @remarks
* Omitting this field preserves the current association, while setting null disconnects the key from any identity.
* Essential for user-specific analytics, billing, and key management across multiple users.
* Supports letters, numbers, underscores, dots, and hyphens for flexible identifier formats.
*/
externalId?: string | null | undefined;
/**
* Stores arbitrary JSON metadata returned during key verification.
*
* @remarks
* Omitting this field preserves existing metadata, while setting null removes all metadata entirely.
* Avoid storing sensitive data here as it's returned in verification responses.
* Large metadata objects increase verification latency and should stay under 10KB total size.
*/
meta?: {
[k: string]: any;
} | null | undefined;
/**
* Sets when this key automatically expires as a Unix timestamp in milliseconds.
*
* @remarks
* Verification fails with code=EXPIRED immediately after this time passes.
* Omitting this field preserves the current expiration, while setting null makes the key permanent.
*
* Avoid setting timestamps in the past as they immediately invalidate the key.
* Keys expire based on server time, not client time, which prevents timezone-related issues.
* Active sessions continue until their next verification attempt after expiry.
*/
expires?: number | null | undefined;
/**
* Credit configuration and remaining balance for this key.
*/
credits?: UpdateKeyCreditsData | null | undefined;
/**
* Defines time-based rate limits that protect against abuse by controlling request frequency.
*
* @remarks
* Omitting this field preserves existing rate limits, while setting null removes all rate limits.
* Unlike credits which track total usage, rate limits reset automatically after each window expires.
* Multiple rate limits can control different operation types with separate thresholds and windows.
*/
ratelimits?: Array<RatelimitRequest> | undefined;
/**
* Controls whether the key is currently active for verification requests.
*
* @remarks
* When set to `false`, all verification attempts fail with `code=DISABLED` regardless of other settings.
* Omitting this field preserves the current enabled status.
* Useful for temporarily suspending access during billing issues, security incidents, or maintenance windows without losing key configuration.
*/
enabled?: boolean | undefined;
roles?: Array<string> | undefined;
permissions?: Array<string> | undefined;
};
/** @internal */
export type V2KeysUpdateKeyRequestBody$Outbound = {
keyId: string;
name?: string | null | undefined;
externalId?: string | null | undefined;
meta?: {
[k: string]: any;
} | null | undefined;
expires?: number | null | undefined;
credits?: UpdateKeyCreditsData$Outbound | null | undefined;
ratelimits?: Array<RatelimitRequest$Outbound> | undefined;
enabled?: boolean | undefined;
roles?: Array<string> | undefined;
permissions?: Array<string> | undefined;
};
/** @internal */
export declare const V2KeysUpdateKeyRequestBody$outboundSchema: z.ZodType<V2KeysUpdateKeyRequestBody$Outbound, z.ZodTypeDef, V2KeysUpdateKeyRequestBody>;
export declare function v2KeysUpdateKeyRequestBodyToJSON(v2KeysUpdateKeyRequestBody: V2KeysUpdateKeyRequestBody): string;
//# sourceMappingURL=v2keysupdatekeyrequestbody.d.ts.map