From ed45c2a94dd2c587c6e5d103cf94e3ad9eb17fec Mon Sep 17 00:00:00 2001 From: shivam-pareek Date: Mon, 21 Oct 2024 14:47:02 +0530 Subject: [PATCH] feat: Logs Export API endpoints integrated --- src/apis/index.ts | 1 + src/apis/logsExport.ts | 166 +++++++++++++++++++++++++++++++++++++++++ src/client.ts | 3 +- src/utils.ts | 2 + 4 files changed, 171 insertions(+), 1 deletion(-) create mode 100644 src/apis/logsExport.ts diff --git a/src/apis/index.ts b/src/apis/index.ts index 92b00e0..6910ee8 100644 --- a/src/apis/index.ts +++ b/src/apis/index.ts @@ -21,3 +21,4 @@ export { VectorStores } from './vectorStores'; export { BetaChat } from './betaChat'; export { Uploads } from './uploads'; export { ApiKeys } from './apiKeys'; +export { LogsExport } from './logsExport'; \ No newline at end of file diff --git a/src/apis/logsExport.ts b/src/apis/logsExport.ts new file mode 100644 index 0000000..4b2d745 --- /dev/null +++ b/src/apis/logsExport.ts @@ -0,0 +1,166 @@ +import { ApiResource } from "../apiResource"; +import { APIResponseType, ApiClientInterface } from "../_types/generalTypes"; +import { APIPromise, RequestOptions } from "../baseClient"; +import { createHeaders } from "./createHeaders"; +import { toQueryParams } from "../utils"; + +export interface LogsExportCreateParams { + filters?:Record; + workspace_id?:string; + description?:string; + requested_data?:string[]; +} +export interface LogsExportCreateResponse extends APIResponseType { + id?:string; + total?:number; + object?:string; +} +export interface LogsExportListParams{ + workspace_id?:string; +} +export interface LogsExportListResponse extends APIResponseType { + object?:string; + total?: number; + data?: Record[]; +} +export interface LogsExportUpdateParams{ + exportId?:string; + workspace_id?:string; + filters?:Record; + requested_data?:string[]; +} +export interface LogsExportUpdateResponse extends APIResponseType{ + id?:string; + total?:number; + object?:string; +} +export interface LogsExportCancelParams { + exportId?:string; +} +export interface LogsExportCancelResponse extends APIResponseType{ + message?:string; + object?:string; +} +export interface LogsExportRetrieveParams { + exportId:string; +} +export interface LogsExportRetrieveResponse extends APIResponseType{ + id?:string; + organisation_id?: string; + filters?:Record; + requested_data?:string[]; + status?:string; + description?:string; + created_at?: Date; + last_updated_at?:Date; + created_by?: string; + workspace_id?:string; + total_records?:number; + object?:string; +} +export interface LogsExportStartParams{ + exportId?:string; +} +export interface LogsExportStartResponse extends APIResponseType{ + message?:string; + object?:string; +} +export interface LogsExportDownloadParams{ + exportId?: string; +} +export interface LogsExportDownloadResponse extends APIResponseType{ + signed_url?:string; +} + +export class LogsExport extends ApiResource { + create( + _body:LogsExportCreateParams, + params?:ApiClientInterface, + opts?:RequestOptions + ):APIPromise{ + const body = _body; + if (params) { + this.client.customHeaders = { ...this.client.customHeaders, ...createHeaders({ ...params }) } + } + const response = this.post('/logs/exports', { body, ...opts }); + return response; + } + retrieve( + _body:LogsExportRetrieveParams, + params?: ApiClientInterface, + opts?: RequestOptions + ): APIPromise { + const body = _body; + const exportId = body.exportId; + if (params) { + this.client.customHeaders = { ...this.client.customHeaders, ...createHeaders({ ...params }) } + } + const response = this.getMethod(`/logs/exports/${exportId}`, { ...opts }); + return response; + } + list( + _body:LogsExportListParams, + params?: ApiClientInterface, + opts?: RequestOptions + ): APIPromise{ + const body = _body; + const query = toQueryParams(body); + if (params) { + this.client.customHeaders = { ...this.client.customHeaders, ...createHeaders({ ...params }) } + } + const response = this.getMethod(`/logs/exports${query}`, {...opts}); + return response; + } + update( + _body: LogsExportUpdateParams, + params?: ApiClientInterface, + opts?: RequestOptions + ): APIPromise { + const body = _body; + const exportId = body.exportId; + if (params) { + this.client.customHeaders = { ...this.client.customHeaders, ...createHeaders({ ...params }) } + } + const response = this.put(`/logs/exports/${exportId}`, { body, ...opts }); + return response; + } + start( + _body:LogsExportStartParams, + params?:ApiClientInterface, + opts?:RequestOptions + ): APIPromise{ + const body = _body + const exportId = body.exportId; + if (params) { + this.client.customHeaders = { ...this.client.customHeaders, ...createHeaders({ ...params }) } + } + const response = this.post(`/logs/exports/${exportId}/start`, { body, ...opts }); + return response; + } + cancel( + _body:LogsExportCancelParams, + params?:ApiClientInterface, + opts?:RequestOptions + ): APIPromise{ + const body=_body; + const exportId=body.exportId; + if (params) { + this.client.customHeaders = { ...this.client.customHeaders, ...createHeaders({ ...params }) } + } + const response = this.post(`/logs/exports/${exportId}/cancel`, { body, ...opts }); + return response; + } + download( + _body: LogsExportDownloadParams, + params?:ApiClientInterface, + opts?:RequestOptions + ): APIPromise{ + const body=_body; + const exportId=body.exportId; + if (params) { + this.client.customHeaders = { ...this.client.customHeaders, ...createHeaders({ ...params }) } + } + const response = this.getMethod(`/logs/exports/${exportId}/download`, { body, ...opts }); + return response; + } +} \ No newline at end of file diff --git a/src/client.ts b/src/client.ts index 445607a..f6ef325 100644 --- a/src/client.ts +++ b/src/client.ts @@ -162,13 +162,14 @@ export class Portkey extends ApiClient { virtualKeys = new API.VirtualKeys(this); apiKeys = new API.ApiKeys(this); configs = new API.Configs(this); + logsExport = new API.LogsExport(this); beta = { assistants: new API.Assistants(this), threads: new API.Threads(this), vectorStores: new API.VectorStores(this), chat: new API.BetaChat(this), }; - + post = ( url: string, _body: PostBodyParams, diff --git a/src/utils.ts b/src/utils.ts index 5c38ca4..1eb8776 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -11,6 +11,7 @@ import { import { VirtualKeysListParams } from './apis/virtualKeys'; import { ApiKeysListParams } from './apis/apiKeys'; import { CongfigsListParams } from './apis/configs'; +import { LogsExportListParams } from './apis/logsExport'; type PlatformProperties = { 'x-portkey-runtime'?: string; @@ -156,6 +157,7 @@ export function toQueryParams( | VirtualKeysListParams | ApiKeysListParams | CongfigsListParams + | LogsExportListParams ): string { if (!params) { return '';