types/server/caching.ts (41 lines of code) (raw):

/** * @license * Copyright 2024 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { Content, Part } from "../content"; import { ToolConfig } from "../function-calling"; import { Tool } from "../requests"; /** * @public */ export interface CachedContentBase { model?: string; contents: Content[]; tools?: Tool[]; toolConfig?: ToolConfig; systemInstruction?: string | Part | Content; /** * Expiration time in ISO string format. Specify either this or `ttlSeconds` * when creating a `CachedContent`. */ expireTime?: string; displayName?: string; } /** * Describes `CachedContent` interface for sending to the server (if creating) * or received from the server (using getters or list methods). * @public */ export interface CachedContent extends CachedContentBase { name?: string; /** * protobuf.Duration format (ex. "3.0001s"). */ ttl?: string; /** * `CachedContent` creation time in ISO string format. */ createTime?: string; /** * `CachedContent` update time in ISO string format. */ updateTime?: string; } /** * Params to pass to {@link GoogleAICacheManager.create}. * @public */ export interface CachedContentCreateParams extends CachedContentBase { /** * `CachedContent` ttl in seconds. Specify either this or `expireTime` * when creating a `CachedContent`. */ ttlSeconds?: number; } /** * Fields that can be updated in an existing content cache. * @public */ export interface CachedContentUpdateInputFields { ttlSeconds?: number; expireTime?: string; } /** * Params to pass to {@link GoogleAICacheManager.update}. * @public */ export interface CachedContentUpdateParams { cachedContent: CachedContentUpdateInputFields; /** * protobuf FieldMask. If not specified, updates all provided fields. */ updateMask?: string[]; } /** * Fields that can be updated in an existing content cache. * @internal */ export interface _CachedContentUpdateRequestFields { ttl?: string; expireTime?: string; } /** * Params as sent to the backend (ttl instead of ttlSeconds). * @internal */ export interface _CachedContentUpdateRequest { cachedContent: _CachedContentUpdateRequestFields; /** * protobuf FieldMask */ updateMask?: string[]; } /** * @public */ export interface ListCacheResponse { cachedContents: CachedContent[]; nextPageToken?: string; }