UNPKG

box-node-sdk

Version:

Official SDK for Box Platform APIs

357 lines 18.4 kB
import { MetadataQueryResults } from '../schemas/metadataQueryResults'; import { MetadataQuery } from '../schemas/metadataQuery'; import { SearchResultsResponse } from '../schemas/searchResultsResponse'; import { MetadataFilter } from '../schemas/metadataFilter'; import { Authentication } from '../networking/auth'; import { NetworkSession } from '../networking/network'; import { CancellationToken } from '../internal/utils'; import { SerializedData } from '../serialization/json'; export declare class SearchByMetadataQueryOptionals { readonly headers: SearchByMetadataQueryHeaders; readonly cancellationToken?: CancellationToken; constructor(fields: Omit<SearchByMetadataQueryOptionals, 'headers' | 'cancellationToken'> & Partial<Pick<SearchByMetadataQueryOptionals, 'headers' | 'cancellationToken'>>); } export interface SearchByMetadataQueryOptionalsInput { readonly headers?: SearchByMetadataQueryHeaders; readonly cancellationToken?: CancellationToken; } export declare class SearchByMetadataQueryHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; constructor(fields: Omit<SearchByMetadataQueryHeaders, 'extraHeaders'> & Partial<Pick<SearchByMetadataQueryHeaders, 'extraHeaders'>>); } export interface SearchByMetadataQueryHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export type SearchForContentQueryParamsScopeField = 'user_content' | 'enterprise_content' | string; export type SearchForContentQueryParamsContentTypesField = 'name' | 'description' | 'file_content' | 'comments' | 'tag' | string; export type SearchForContentQueryParamsTypeField = 'file' | 'folder' | 'web_link'; export type SearchForContentQueryParamsTrashContentField = 'non_trashed_only' | 'trashed_only' | 'all_items' | string; export type SearchForContentQueryParamsSortField = 'modified_at' | 'relevance' | string; export type SearchForContentQueryParamsDirectionField = 'DESC' | 'ASC' | string; export interface SearchForContentQueryParams { /** * The string to search for. This query is matched against item names, * descriptions, text content of files, and various other fields of * the different item types. * * This parameter supports a variety of operators to further refine * the results returns. * * * `""` - by wrapping a query in double quotes only exact matches are * returned by the API. Exact searches do not return search matches * based on specific character sequences. Instead, they return * matches based on phrases, that is, word sequences. For example: * A search for `"Blue-Box"` may return search results including * the sequence `"blue.box"`, `"Blue Box"`, and `"Blue-Box"`; * any item containing the words `Blue` and `Box` consecutively, in * the order specified. * * `AND` - returns items that contain both the search terms. For * example, a search for `marketing AND BoxWorks` returns items * that have both `marketing` and `BoxWorks` within its text in any order. * It does not return a result that only has `BoxWorks` in its text. * * `OR` - returns items that contain either of the search terms. For * example, a search for `marketing OR BoxWorks` returns a result that * has either `marketing` or `BoxWorks` within its text. Using this * operator is not necessary as we implicitly interpret multi-word * queries as `OR` unless another supported boolean term is used. * * `NOT` - returns items that do not contain the search term provided. * For example, a search for `marketing AND NOT BoxWorks` returns a result * that has only `marketing` within its text. Results containing * `BoxWorks` are omitted. * * We do not support lower case (that is, * `and`, `or`, and `not`) or mixed case (that is, `And`, `Or`, and `Not`) * operators. * * This field is required unless the `mdfilters` parameter is defined. */ readonly query?: string; /** * Limits the search results to either the files that the user has * access to, or to files available to the entire enterprise. * * The scope defaults to `user_content`, which limits the search * results to content that is available to the currently authenticated * user. * * The `enterprise_content` can be requested by an admin through our * support channels. Once this scope has been enabled for a user, it * will allow that use to query for content across the entire * enterprise and not only the content that they have access to. */ readonly scope?: SearchForContentQueryParamsScopeField; /** * Limits the search results to any files that match any of the provided * file extensions. This list is a comma-separated list of file extensions * without the dots. */ readonly fileExtensions?: readonly string[]; /** * Limits the search results to any items created within * a given date range. * * Date ranges are defined as comma separated RFC3339 * timestamps. * * If the start date is omitted (`,2014-05-17T13:35:01-07:00`) * anything created before the end date will be returned. * * If the end date is omitted (`2014-05-15T13:35:01-07:00,`) the * current date will be used as the end date instead. */ readonly createdAtRange?: readonly string[]; /** * Limits the search results to any items updated within * a given date range. * * Date ranges are defined as comma separated RFC3339 * timestamps. * * If the start date is omitted (`,2014-05-17T13:35:01-07:00`) * anything updated before the end date will be returned. * * If the end date is omitted (`2014-05-15T13:35:01-07:00,`) the * current date will be used as the end date instead. */ readonly updatedAtRange?: readonly string[]; /** * Limits the search results to any items with a size within * a given file size range. This applied to files and folders. * * Size ranges are defined as comma separated list of a lower * and upper byte size limit (inclusive). * * The upper and lower bound can be omitted to create open ranges. */ readonly sizeRange?: readonly number[]; /** * Limits the search results to any items that are owned * by the given list of owners, defined as a list of comma separated * user IDs. * * The items still need to be owned or shared with * the currently authenticated user for them to show up in the search * results. If the user does not have access to any files owned by any of * the users an empty result set will be returned. * * To search across an entire enterprise, we recommend using the * `enterprise_content` scope parameter which can be requested with our * support team. */ readonly ownerUserIds?: readonly string[]; /** * Limits the search results to any items that have been updated * by the given list of users, defined as a list of comma separated * user IDs. * * The items still need to be owned or shared with * the currently authenticated user for them to show up in the search * results. If the user does not have access to any files owned by any of * the users an empty result set will be returned. * * This feature only searches back to the last 10 versions of an item. */ readonly recentUpdaterUserIds?: readonly string[]; /** * Limits the search results to items within the given * list of folders, defined as a comma separated lists * of folder IDs. * * Search results will also include items within any subfolders * of those ancestor folders. * * The folders still need to be owned or shared with * the currently authenticated user. If the folder is not accessible by this * user, or it does not exist, a `HTTP 404` error code will be returned * instead. * * To search across an entire enterprise, we recommend using the * `enterprise_content` scope parameter which can be requested with our * support team. */ readonly ancestorFolderIds?: readonly string[]; /** * Limits the search results to any items that match the search query * for a specific part of the file, for example the file description. * * Content types are defined as a comma separated lists * of Box recognized content types. The allowed content types are as follows. * * * `name` - The name of the item, as defined by its `name` field. * * `description` - The description of the item, as defined by its * `description` field. * * `file_content` - The actual content of the file. * * `comments` - The content of any of the comments on a file or * folder. * * `tags` - Any tags that are applied to an item, as defined by its * `tags` field. */ readonly contentTypes?: readonly SearchForContentQueryParamsContentTypesField[]; /** * Limits the search results to any items of this type. This * parameter only takes one value. By default the API returns * items that match any of these types. * * * `file` - Limits the search results to files, * * `folder` - Limits the search results to folders, * * `web_link` - Limits the search results to web links, also known * as bookmarks. */ readonly type?: SearchForContentQueryParamsTypeField; /** * Determines if the search should look in the trash for items. * * By default, this API only returns search results for items * not currently in the trash (`non_trashed_only`). * * * `trashed_only` - Only searches for items currently in the trash * * `non_trashed_only` - Only searches for items currently not in * the trash * * `all_items` - Searches for both trashed and non-trashed items. */ readonly trashContent?: SearchForContentQueryParamsTrashContentField; /** * Limits the search results to any items for which the metadata matches the provided filter. * This parameter is a list that specifies exactly **one** metadata template used to filter the search results. * The parameter is required unless the `query` parameter is provided. */ readonly mdfilters?: readonly MetadataFilter[]; /** * Defines the order in which search results are returned. This API * defaults to returning items by relevance unless this parameter is * explicitly specified. * * * `relevance` (default) returns the results sorted by relevance to the * query search term. The relevance is based on the occurrence of the search * term in the items name, description, content, and additional properties. * * `modified_at` returns the results ordered in descending order by date * at which the item was last modified. */ readonly sort?: SearchForContentQueryParamsSortField; /** * Defines the direction in which search results are ordered. This API * defaults to returning items in descending (`DESC`) order unless this * parameter is explicitly specified. * * When results are sorted by `relevance` the ordering is locked to returning * items in descending order of relevance, and this parameter is ignored. */ readonly direction?: SearchForContentQueryParamsDirectionField; /** * Defines the maximum number of items to return as part of a page of * results. */ readonly limit?: number; /** * Defines whether the search results should include any items * that the user recently accessed through a shared link. * * When this parameter has been set to true, * the format of the response of this API changes to return * a list of [Search Results with * Shared Links](https://developer.box.com/reference/resources/search-results-with-shared-links). */ readonly includeRecentSharedLinks?: boolean; /** * A comma-separated list of attributes to include in the * response. This can be used to request fields that are * not normally returned in a standard response. * * Be aware that specifying this parameter will have the * effect that none of the standard fields are returned in * the response unless explicitly specified, instead only * fields for the mini representation are returned, additional * to the fields requested. */ readonly fields?: readonly string[]; /** * The offset of the item at which to begin the response. * * Queries with offset parameter value * exceeding 10000 will be rejected * with a 400 response. */ readonly offset?: number; /** * Limits the search results to items that were deleted by the given * list of users, defined as a list of comma separated user IDs. * * The `trash_content` parameter needs to be set to `trashed_only`. * * If searching in trash is not performed, an empty result set * is returned. The items need to be owned or shared with * the currently authenticated user for them to show up in the search * results. * * If the user does not have access to any files owned by * any of the users, an empty result set is returned. * * Data available from 2023-02-01 onwards. */ readonly deletedUserIds?: readonly string[]; /** * Limits the search results to any items deleted within a given * date range. * * Date ranges are defined as comma separated RFC3339 timestamps. * * If the start date is omitted (`2014-05-17T13:35:01-07:00`), * anything deleted before the end date will be returned. * * If the end date is omitted (`2014-05-15T13:35:01-07:00`), * the current date will be used as the end date instead. * * The `trash_content` parameter needs to be set to `trashed_only`. * * If searching in trash is not performed, then an empty result * is returned. * * Data available from 2023-02-01 onwards. */ readonly deletedAtRange?: readonly string[]; } export declare class SearchForContentHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; constructor(fields: Omit<SearchForContentHeaders, 'extraHeaders'> & Partial<Pick<SearchForContentHeaders, 'extraHeaders'>>); } export interface SearchForContentHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export declare class SearchManager { readonly auth?: Authentication; readonly networkSession: NetworkSession; constructor(fields: Omit<SearchManager, 'networkSession' | 'searchByMetadataQuery' | 'searchForContent'> & Partial<Pick<SearchManager, 'networkSession'>>); /** * Create a search using SQL-like syntax to return items that match specific * metadata. * * By default, this endpoint returns only the most basic info about the items for * which the query matches. To get additional fields for each item, including any * of the metadata, use the `fields` attribute in the query. * @param {MetadataQuery} requestBody Request body of searchByMetadataQuery method * @param {SearchByMetadataQueryOptionalsInput} optionalsInput * @returns {Promise<MetadataQueryResults>} */ searchByMetadataQuery(requestBody: MetadataQuery, optionalsInput?: SearchByMetadataQueryOptionalsInput): Promise<MetadataQueryResults>; /** * Searches for files, folders, web links, and shared files across the * users content or across the entire enterprise. * @param {SearchForContentQueryParams} queryParams Query parameters of searchForContent method * @param {SearchForContentHeadersInput} headersInput Headers of searchForContent method * @param {CancellationToken} cancellationToken Token used for request cancellation. * @returns {Promise<SearchResultsResponse>} */ searchForContent(queryParams?: SearchForContentQueryParams, headersInput?: SearchForContentHeadersInput, cancellationToken?: CancellationToken): Promise<SearchResultsResponse>; } export interface SearchManagerInput { readonly auth?: Authentication; readonly networkSession?: NetworkSession; } export declare function serializeSearchForContentQueryParamsScopeField(val: SearchForContentQueryParamsScopeField): SerializedData; export declare function deserializeSearchForContentQueryParamsScopeField(val: SerializedData): SearchForContentQueryParamsScopeField; export declare function serializeSearchForContentQueryParamsContentTypesField(val: SearchForContentQueryParamsContentTypesField): SerializedData; export declare function deserializeSearchForContentQueryParamsContentTypesField(val: SerializedData): SearchForContentQueryParamsContentTypesField; export declare function serializeSearchForContentQueryParamsTypeField(val: SearchForContentQueryParamsTypeField): SerializedData; export declare function deserializeSearchForContentQueryParamsTypeField(val: SerializedData): SearchForContentQueryParamsTypeField; export declare function serializeSearchForContentQueryParamsTrashContentField(val: SearchForContentQueryParamsTrashContentField): SerializedData; export declare function deserializeSearchForContentQueryParamsTrashContentField(val: SerializedData): SearchForContentQueryParamsTrashContentField; export declare function serializeSearchForContentQueryParamsSortField(val: SearchForContentQueryParamsSortField): SerializedData; export declare function deserializeSearchForContentQueryParamsSortField(val: SerializedData): SearchForContentQueryParamsSortField; export declare function serializeSearchForContentQueryParamsDirectionField(val: SearchForContentQueryParamsDirectionField): SerializedData; export declare function deserializeSearchForContentQueryParamsDirectionField(val: SerializedData): SearchForContentQueryParamsDirectionField; //# sourceMappingURL=search.d.ts.map