← Public packages
@cameronpak/box
Full Box Public API v1 client: lifecycle, prompts, files, commands, snapshots, environments, webhooks, desktop, hosting, and account.
src/update-data-retention.ts
28 lines · 1.1 KB · TypeScriptimport { boxRequest, type Result } from './client.ts'
import type { DataRetentionPolicy } from './types.ts'
export type UpdateDataRetentionInput = {
enabled: boolean
/** Required when enabling and must exactly equal `delete archived box data`. */
confirmation?: string
}
/**
* Enable or disable account zero data retention.
* Official docs: this requires an interactive Box session and refuses API keys
* (`403 session_required`). The package still calls the endpoint so a session
* token mounted as boxApiKey can use it; a normal service key will fail.
* Enabling also requires confirmation exactly equal to `delete archived box data`.
* Disabling affects future archives only and cannot cancel accepted deletions.
*/
export default async function updateDataRetention(
input: UpdateDataRetentionInput,
): Promise<Result<DataRetentionPolicy>> {
const body: Record<string, unknown> = { enabled: input.enabled }
if (input.confirmation !== undefined) body.confirmation = input.confirmation
return boxRequest<DataRetentionPolicy>({
path: '/account/data-retention',
method: 'PATCH',
body,
})
}