125 lines
2.8 KiB
TypeScript
125 lines
2.8 KiB
TypeScript
export type DataServiceUsage = {
|
|
document_count: number;
|
|
total_bytes: number;
|
|
};
|
|
|
|
export type DataServiceCollection = {
|
|
name: string;
|
|
document_count: number;
|
|
total_bytes: number;
|
|
created_at: string;
|
|
};
|
|
|
|
export type DataServiceLimits = {
|
|
max_collections: number;
|
|
max_documents: number;
|
|
max_total_bytes: number;
|
|
max_document_bytes: number;
|
|
list_default_limit: number;
|
|
list_max_limit: number;
|
|
list_max_data_bytes: number;
|
|
mutations_per_minute: number;
|
|
};
|
|
|
|
export type DataServiceInstanceState = {
|
|
instance_id: string;
|
|
project_id: string;
|
|
collections: DataServiceCollection[];
|
|
usage: DataServiceUsage;
|
|
limits: DataServiceLimits;
|
|
created_at: string;
|
|
updated_at: string;
|
|
};
|
|
|
|
export type DataServiceInstanceList = {
|
|
items: DataServiceInstanceState[];
|
|
total: number;
|
|
instance_limit: number;
|
|
};
|
|
|
|
export type DataServiceCollectionRemoval = {
|
|
removed: boolean;
|
|
usage: DataServiceUsage;
|
|
};
|
|
|
|
export type DataServiceInstanceRemoval = {
|
|
removed: boolean;
|
|
};
|
|
|
|
export type DataServiceDocument = {
|
|
id: string;
|
|
data: Record<string, unknown>;
|
|
revision: number;
|
|
created_at: string;
|
|
updated_at: string;
|
|
};
|
|
|
|
export type DataServiceDocumentList = {
|
|
items: DataServiceDocument[];
|
|
next_cursor: string | null;
|
|
limit: number;
|
|
};
|
|
|
|
export type DataServiceErrorContext = Record<string, string | number>;
|
|
|
|
export const DATA_SERVICE_PI_TOOL_NAMES = [
|
|
'data_service_configure',
|
|
'data_service_inspect',
|
|
'data_service_list_projects',
|
|
'data_service_get_document',
|
|
'data_service_list_documents',
|
|
'data_service_put_document',
|
|
'data_service_delete_document',
|
|
'data_service_remove_collection',
|
|
'data_service_reset',
|
|
'data_service_remove_project',
|
|
] as const;
|
|
|
|
export type DataServicePiToolName = (typeof DATA_SERVICE_PI_TOOL_NAMES)[number];
|
|
|
|
export type DataServiceHostResult<T> = {
|
|
success: boolean;
|
|
status: number;
|
|
code: string | null;
|
|
error: string | null;
|
|
retryable: boolean;
|
|
retry_after_seconds?: number;
|
|
context?: DataServiceErrorContext;
|
|
data: T | null;
|
|
};
|
|
|
|
export type DataServiceToolData =
|
|
| DataServiceInstanceState
|
|
| DataServiceInstanceList
|
|
| DataServiceDocument
|
|
| DataServiceDocumentList
|
|
| DataServiceCollectionRemoval
|
|
| DataServiceInstanceRemoval;
|
|
|
|
export type DataServiceToolDetailsV1 = DataServiceHostResult<DataServiceToolData> & {
|
|
schema: 'data-service.v1';
|
|
operation: DataServicePiToolName;
|
|
};
|
|
|
|
export type DataServicePutDocumentInput = {
|
|
collection: string;
|
|
document_id: string;
|
|
data: Record<string, unknown>;
|
|
if_revision?: number;
|
|
};
|
|
|
|
export type DataServiceDocumentTargetInput = {
|
|
collection: string;
|
|
document_id: string;
|
|
if_revision?: number;
|
|
};
|
|
|
|
export type DataServiceCollectionTargetInput = {
|
|
collection: string;
|
|
confirmed: true;
|
|
};
|
|
|
|
export type DataServiceConfirmationInput = {
|
|
confirmed: true;
|
|
};
|