cloudflare
Version:
The official TypeScript library for the Cloudflare API
140 lines (123 loc) • 3.83 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../../resource';
import * as Core from '../../../core';
export class MetadataIndex extends APIResource {
/**
* Enable metadata filtering based on metadata property. Limited to 10 properties.
*/
create(
indexName: string,
params: MetadataIndexCreateParams,
options?: Core.RequestOptions,
): Core.APIPromise<MetadataIndexCreateResponse | null> {
const { account_id, ...body } = params;
return (
this._client.post(`/accounts/${account_id}/vectorize/v2/indexes/${indexName}/metadata_index/create`, {
body,
...options,
}) as Core.APIPromise<{ result: MetadataIndexCreateResponse | null }>
)._thenUnwrap((obj) => obj.result);
}
/**
* List Metadata Indexes for the specified Vectorize Index.
*/
list(
indexName: string,
params: MetadataIndexListParams,
options?: Core.RequestOptions,
): Core.APIPromise<MetadataIndexListResponse | null> {
const { account_id } = params;
return (
this._client.get(
`/accounts/${account_id}/vectorize/v2/indexes/${indexName}/metadata_index/list`,
options,
) as Core.APIPromise<{ result: MetadataIndexListResponse | null }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Allow Vectorize to delete the specified metadata index.
*/
delete(
indexName: string,
params: MetadataIndexDeleteParams,
options?: Core.RequestOptions,
): Core.APIPromise<MetadataIndexDeleteResponse | null> {
const { account_id, ...body } = params;
return (
this._client.post(`/accounts/${account_id}/vectorize/v2/indexes/${indexName}/metadata_index/delete`, {
body,
...options,
}) as Core.APIPromise<{ result: MetadataIndexDeleteResponse | null }>
)._thenUnwrap((obj) => obj.result);
}
}
export interface MetadataIndexCreateResponse {
/**
* The unique identifier for the async mutation operation containing the changeset.
*/
mutationId?: string;
}
export interface MetadataIndexListResponse {
/**
* Array of indexed metadata properties.
*/
metadataIndexes?: Array<MetadataIndexListResponse.MetadataIndex>;
}
export namespace MetadataIndexListResponse {
export interface MetadataIndex {
/**
* Specifies the type of indexed metadata property.
*/
indexType?: 'string' | 'number' | 'boolean';
/**
* Specifies the indexed metadata property.
*/
propertyName?: string;
}
}
export interface MetadataIndexDeleteResponse {
/**
* The unique identifier for the async mutation operation containing the changeset.
*/
mutationId?: string;
}
export interface MetadataIndexCreateParams {
/**
* Path param: Identifier
*/
account_id: string;
/**
* Body param: Specifies the type of metadata property to index.
*/
indexType: 'string' | 'number' | 'boolean';
/**
* Body param: Specifies the metadata property to index.
*/
propertyName: string;
}
export interface MetadataIndexListParams {
/**
* Identifier
*/
account_id: string;
}
export interface MetadataIndexDeleteParams {
/**
* Path param: Identifier
*/
account_id: string;
/**
* Body param: Specifies the metadata property for which the index must be deleted.
*/
propertyName: string;
}
export declare namespace MetadataIndex {
export {
type MetadataIndexCreateResponse as MetadataIndexCreateResponse,
type MetadataIndexListResponse as MetadataIndexListResponse,
type MetadataIndexDeleteResponse as MetadataIndexDeleteResponse,
type MetadataIndexCreateParams as MetadataIndexCreateParams,
type MetadataIndexListParams as MetadataIndexListParams,
type MetadataIndexDeleteParams as MetadataIndexDeleteParams,
};
}