/* tslint:disable */ /* eslint-disable */ /** * Boat Public API v1 * Public JSON API for creating, operating, prompting, observing, and exposing Boat sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1. * * The version of the OpenAPI document: 1.0.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { mapValues } from '../runtime'; import type { ApiKeyScope } from './ApiKeyScope'; import { ApiKeyScopeFromJSON, ApiKeyScopeFromJSONTyped, ApiKeyScopeToJSON, ApiKeyScopeToJSONTyped, } from './ApiKeyScope'; import type { ApiKeyRequestUsage } from './ApiKeyRequestUsage'; import { ApiKeyRequestUsageFromJSON, ApiKeyRequestUsageFromJSONTyped, ApiKeyRequestUsageToJSON, ApiKeyRequestUsageToJSONTyped, } from './ApiKeyRequestUsage'; import type { ApiKeyCreatedResource } from './ApiKeyCreatedResource'; import { ApiKeyCreatedResourceFromJSON, ApiKeyCreatedResourceFromJSONTyped, ApiKeyCreatedResourceToJSON, ApiKeyCreatedResourceToJSONTyped, } from './ApiKeyCreatedResource'; import type { ApiKeyResourceTotals } from './ApiKeyResourceTotals'; import { ApiKeyResourceTotalsFromJSON, ApiKeyResourceTotalsFromJSONTyped, ApiKeyResourceTotalsToJSON, ApiKeyResourceTotalsToJSONTyped, } from './ApiKeyResourceTotals'; /** * * @export * @interface ApiKeyUsageResponse */ export interface ApiKeyUsageResponse { /** * * @type {boolean} * @memberof ApiKeyUsageResponse */ ok: boolean; /** * Stable success envelope discriminator added by v1. * @type {string} * @memberof ApiKeyUsageResponse */ type: string; /** * * @type {string} * @memberof ApiKeyUsageResponse */ id: string; /** * * @type {string} * @memberof ApiKeyUsageResponse */ name: string; /** * Credential storage lane. Scoped secrets are never stored in the legacy hash column. * @type {ApiKeyUsageResponseCredentialLaneEnum} * @memberof ApiKeyUsageResponse */ credentialLane: ApiKeyUsageResponseCredentialLaneEnum; /** * * @type {string} * @memberof ApiKeyUsageResponse */ keyPrefix: string; /** * * @type {string} * @memberof ApiKeyUsageResponse */ keyLastFour: string; /** * Box ID for a platform-managed machine key, or null for a user-created key. * @type {string} * @memberof ApiKeyUsageResponse */ sandboxId: string; /** * * @type {Date} * @memberof ApiKeyUsageResponse */ createdAt: Date; /** * * @type {Date} * @memberof ApiKeyUsageResponse */ lastUsedAt: Date; /** * * @type {ApiKeyRequestUsage} * @memberof ApiKeyUsageResponse */ usage: ApiKeyRequestUsage; /** * * @type {ApiKeyResourceTotals} * @memberof ApiKeyUsageResponse */ resources: ApiKeyResourceTotals; /** * * @type {Date} * @memberof ApiKeyUsageResponse */ expiresAt?: Date; /** * * @type {boolean} * @memberof ApiKeyUsageResponse */ expired?: boolean; /** * * @type {boolean} * @memberof ApiKeyUsageResponse */ expiringSoon?: boolean; /** * * @type {ApiKeyScope} * @memberof ApiKeyUsageResponse */ scope?: ApiKeyScope; /** * * @type {Array} * @memberof ApiKeyUsageResponse */ createdResources: Array; } /** * @export */ export const ApiKeyUsageResponseCredentialLaneEnum = { Legacy: 'legacy', ScopedV1: 'scoped-v1' } as const; export type ApiKeyUsageResponseCredentialLaneEnum = typeof ApiKeyUsageResponseCredentialLaneEnum[keyof typeof ApiKeyUsageResponseCredentialLaneEnum]; /** * Check if a given object implements the ApiKeyUsageResponse interface. */ export function instanceOfApiKeyUsageResponse(value: object): value is ApiKeyUsageResponse { if (!('ok' in value) || value['ok'] === undefined) return false; if (!('type' in value) || value['type'] === undefined) return false; if (!('id' in value) || value['id'] === undefined) return false; if (!('name' in value) || value['name'] === undefined) return false; if (!('credentialLane' in value) || value['credentialLane'] === undefined) return false; if (!('keyPrefix' in value) || value['keyPrefix'] === undefined) return false; if (!('keyLastFour' in value) || value['keyLastFour'] === undefined) return false; if (!('sandboxId' in value) || value['sandboxId'] === undefined) return false; if (!('createdAt' in value) || value['createdAt'] === undefined) return false; if (!('lastUsedAt' in value) || value['lastUsedAt'] === undefined) return false; if (!('usage' in value) || value['usage'] === undefined) return false; if (!('resources' in value) || value['resources'] === undefined) return false; if (!('createdResources' in value) || value['createdResources'] === undefined) return false; return true; } export function ApiKeyUsageResponseFromJSON(json: any): ApiKeyUsageResponse { return ApiKeyUsageResponseFromJSONTyped(json, false); } export function ApiKeyUsageResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApiKeyUsageResponse { if (json == null) { return json; } return { 'ok': json['ok'], 'type': json['type'], 'id': json['id'], 'name': json['name'], 'credentialLane': json['credentialLane'], 'keyPrefix': json['keyPrefix'], 'keyLastFour': json['keyLastFour'], 'sandboxId': json['sandboxId'], 'createdAt': (new Date(json['createdAt'])), 'lastUsedAt': (new Date(json['lastUsedAt'])), 'usage': ApiKeyRequestUsageFromJSON(json['usage']), 'resources': ApiKeyResourceTotalsFromJSON(json['resources']), 'expiresAt': json['expiresAt'] == null ? undefined : (new Date(json['expiresAt'])), 'expired': json['expired'] == null ? undefined : json['expired'], 'expiringSoon': json['expiringSoon'] == null ? undefined : json['expiringSoon'], 'scope': json['scope'] == null ? undefined : ApiKeyScopeFromJSON(json['scope']), 'createdResources': ((json['createdResources'] as Array).map(ApiKeyCreatedResourceFromJSON)), }; } export function ApiKeyUsageResponseToJSON(json: any): ApiKeyUsageResponse { return ApiKeyUsageResponseToJSONTyped(json, false); } export function ApiKeyUsageResponseToJSONTyped(value?: ApiKeyUsageResponse | null, ignoreDiscriminator: boolean = false): any { if (value == null) { return value; } return { 'ok': value['ok'], 'type': value['type'], 'id': value['id'], 'name': value['name'], 'credentialLane': value['credentialLane'], 'keyPrefix': value['keyPrefix'], 'keyLastFour': value['keyLastFour'], 'sandboxId': value['sandboxId'], 'createdAt': value['createdAt'].toISOString(), 'lastUsedAt': value['lastUsedAt'].toISOString(), 'usage': ApiKeyRequestUsageToJSON(value['usage']), 'resources': ApiKeyResourceTotalsToJSON(value['resources']), 'expiresAt': value['expiresAt'] == null ? value['expiresAt'] : value['expiresAt'].toISOString(), 'expired': value['expired'], 'expiringSoon': value['expiringSoon'], 'scope': ApiKeyScopeToJSON(value['scope']), 'createdResources': ((value['createdResources'] as Array).map(ApiKeyCreatedResourceToJSON)), }; }