/** * Identity Security Cloud API - Search * Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs. * * The version of the OpenAPI document: v1 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import type { Configuration } from '../configuration'; import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios'; import type { RequestArgs } from './base'; import { BaseAPI } from './base'; /** * * @export * @interface AggregationResult */ export interface AggregationResult { /** * The document containing the results of the aggregation. This document is controlled by Elasticsearch and depends on the type of aggregation query that is run. See Elasticsearch [Aggregations](https://www.elastic.co/guide/en/elasticsearch/reference/5.2/search-aggregations.html) documentation for information. * @type {object} * @memberof AggregationResult */ 'aggregations'?: object; /** * The results of the aggregation search query. * @type {Array} * @memberof AggregationResult */ 'hits'?: Array; } /** * Enum representing the currently available query languages for aggregations, which are used to perform calculations or groupings on search results. Additional values may be added in the future without notice. * @export * @enum {string} */ export declare const AggregationType: { readonly Dsl: "DSL"; readonly Sailpoint: "SAILPOINT"; }; export type AggregationType = typeof AggregationType[keyof typeof AggregationType]; /** * * @export * @interface Aggregations */ export interface Aggregations { /** * * @type {NestedAggregation} * @memberof Aggregations */ 'nested'?: NestedAggregation; /** * * @type {MetricAggregation} * @memberof Aggregations */ 'metric'?: MetricAggregation; /** * * @type {FilterAggregation} * @memberof Aggregations */ 'filter'?: FilterAggregation; /** * * @type {BucketAggregation} * @memberof Aggregations */ 'bucket'?: BucketAggregation; } /** * * @export * @interface Bound */ export interface Bound { /** * The value of the range\'s endpoint. * @type {string} * @memberof Bound */ 'value': string; /** * Indicates if the endpoint is included in the range. * @type {boolean} * @memberof Bound */ 'inclusive'?: boolean; } /** * The bucket to group the results of the aggregation query by. * @export * @interface BucketAggregation */ export interface BucketAggregation { /** * The name of the bucket aggregate to be included in the result. * @type {string} * @memberof BucketAggregation */ 'name': string; /** * * @type {BucketType} * @memberof BucketAggregation */ 'type'?: BucketType; /** * The field to bucket on. Prefix the field name with \'@\' to reference a nested object. * @type {string} * @memberof BucketAggregation */ 'field': string; /** * Maximum number of buckets to include. * @type {number} * @memberof BucketAggregation */ 'size'?: number; /** * Minimum number of documents a bucket should have. * @type {number} * @memberof BucketAggregation */ 'minDocCount'?: number; } /** * Enum representing the currently supported bucket aggregation types. Additional values may be added in the future without notice. * @export * @enum {string} */ export declare const BucketType: { readonly Terms: "TERMS"; }; export type BucketType = typeof BucketType[keyof typeof BucketType]; /** * * @export * @interface ErrorMessageDto */ export interface ErrorMessageDto { /** * The locale for the message text, a BCP 47 language tag. * @type {string} * @memberof ErrorMessageDto */ 'locale'?: string | null; /** * * @type {LocaleOrigin} * @memberof ErrorMessageDto */ 'localeOrigin'?: LocaleOrigin | null; /** * Actual text of the error message in the indicated locale. * @type {string} * @memberof ErrorMessageDto */ 'text'?: string; } /** * * @export * @interface ErrorResponseDto */ export interface ErrorResponseDto { /** * Fine-grained error code providing more detail of the error. * @type {string} * @memberof ErrorResponseDto */ 'detailCode'?: string; /** * Unique tracking id for the error. * @type {string} * @memberof ErrorResponseDto */ 'trackingId'?: string; /** * Generic localized reason for error * @type {Array} * @memberof ErrorResponseDto */ 'messages'?: Array; /** * Plain-text descriptive reasons to provide additional detail to the text provided in the messages field * @type {Array} * @memberof ErrorResponseDto */ 'causes'?: Array; } /** * * @export * @interface Filter */ export interface Filter { /** * * @type {FilterType} * @memberof Filter */ 'type'?: FilterType; /** * * @type {Range} * @memberof Filter */ 'range'?: Range; /** * The terms to be filtered. * @type {Array} * @memberof Filter */ 'terms'?: Array; /** * Indicates if the filter excludes results. * @type {boolean} * @memberof Filter */ 'exclude'?: boolean; } /** * An additional filter to constrain the results of the search query. * @export * @interface FilterAggregation */ export interface FilterAggregation { /** * The name of the filter aggregate to be included in the result. * @type {string} * @memberof FilterAggregation */ 'name': string; /** * * @type {SearchFilterType} * @memberof FilterAggregation */ 'type'?: SearchFilterType; /** * The search field to apply the filter to. Prefix the field name with \'@\' to reference a nested object. * @type {string} * @memberof FilterAggregation */ 'field': string; /** * The value to filter on. * @type {string} * @memberof FilterAggregation */ 'value': string; } /** * Enum representing the currently supported filter types. Additional values may be added in the future without notice. * @export * @enum {string} */ export declare const FilterType: { readonly Exists: "EXISTS"; readonly Range: "RANGE"; readonly Terms: "TERMS"; }; export type FilterType = typeof FilterType[keyof typeof FilterType]; /** * Enum representing the currently supported indices. Additional values may be added in the future without notice. * @export * @enum {string} */ export declare const Index: { readonly Accessprofiles: "accessprofiles"; readonly Accountactivities: "accountactivities"; readonly Entitlements: "entitlements"; readonly Events: "events"; readonly Identities: "identities"; readonly Roles: "roles"; readonly Star: "*"; }; export type Index = typeof Index[keyof typeof Index]; /** * Inner Hit query object that will cause the specified nested type to be returned as the result matching the supplied query. * @export * @interface InnerHit */ export interface InnerHit { /** * The search query using the Elasticsearch [Query String Query](https://www.elastic.co/guide/en/elasticsearch/reference/5.2/query-dsl-query-string-query.html#query-string) syntax from the Query DSL extended by SailPoint to support Nested queries. * @type {string} * @memberof InnerHit */ 'query': string; /** * The nested type to use in the inner hits query. The nested type [Nested Type](https://www.elastic.co/guide/en/elasticsearch/reference/current/nested.html) refers to a document \"nested\" within another document. For example, an identity can have nested documents for access, accounts, and apps. * @type {string} * @memberof InnerHit */ 'type': string; } /** * An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice. * @export * @enum {string} */ export declare const LocaleOrigin: { readonly Default: "DEFAULT"; readonly Request: "REQUEST"; }; export type LocaleOrigin = typeof LocaleOrigin[keyof typeof LocaleOrigin]; /** * The calculation done on the results of the query * @export * @interface MetricAggregation */ export interface MetricAggregation { /** * The name of the metric aggregate to be included in the result. If the metric aggregation is omitted, the resulting aggregation will be a count of the documents in the search results. * @type {string} * @memberof MetricAggregation */ 'name': string; /** * * @type {MetricType} * @memberof MetricAggregation */ 'type'?: MetricType; /** * The field the calculation is performed on. Prefix the field name with \'@\' to reference a nested object. * @type {string} * @memberof MetricAggregation */ 'field': string; } /** * Enum representing the currently supported metric aggregation types. Additional values may be added in the future without notice. * @export * @enum {string} */ export declare const MetricType: { readonly Count: "COUNT"; readonly UniqueCount: "UNIQUE_COUNT"; readonly Avg: "AVG"; readonly Sum: "SUM"; readonly Median: "MEDIAN"; readonly Min: "MIN"; readonly Max: "MAX"; }; export type MetricType = typeof MetricType[keyof typeof MetricType]; /** * The nested aggregation object. * @export * @interface NestedAggregation */ export interface NestedAggregation { /** * The name of the nested aggregate to be included in the result. * @type {string} * @memberof NestedAggregation */ 'name': string; /** * The type of the nested object. * @type {string} * @memberof NestedAggregation */ 'type': string; } /** * Query parameters used to construct an Elasticsearch query object. * @export * @interface Query */ export interface Query { /** * The query using the Elasticsearch [Query String Query](https://www.elastic.co/guide/en/elasticsearch/reference/5.2/query-dsl-query-string-query.html#query-string) syntax from the Query DSL extended by SailPoint to support Nested queries. * @type {string} * @memberof Query */ 'query'?: string; /** * The fields the query will be applied to. Fields provide you with a simple way to add additional fields to search, without making the query too complicated. For example, you can use the fields to specify that you want your query of \"a*\" to be applied to \"name\", \"firstName\", and the \"source.name\". The response will include all results matching the \"a*\" query found in those three fields. A field\'s availability depends on the indices being searched. For example, if you are searching \"identities\", you can apply your search to the \"firstName\" field, but you couldn\'t use \"firstName\" with a search on \"access profiles\". Refer to the response schema for the respective lists of available fields. * @type {string} * @memberof Query */ 'fields'?: string; /** * The time zone to be applied to any range query related to dates. * @type {string} * @memberof Query */ 'timeZone'?: string; /** * * @type {InnerHit} * @memberof Query */ 'innerHit'?: InnerHit; } /** * Allows the query results to be filtered by specifying a list of fields to include and/or exclude from the result documents. * @export * @interface QueryResultFilter */ export interface QueryResultFilter { /** * The list of field names to include in the result documents. * @type {Array} * @memberof QueryResultFilter */ 'includes'?: Array; /** * The list of field names to exclude from the result documents. * @type {Array} * @memberof QueryResultFilter */ 'excludes'?: Array; } /** * The type of query to use. By default, the `SAILPOINT` query type is used, which requires the `query` object to be defined in the request body. To use the `queryDsl` or `typeAheadQuery` objects in the request, you must set the type to `DSL` or `TYPEAHEAD` accordingly. Additional values may be added in the future without notice. * @export * @enum {string} */ export declare const QueryType: { readonly Dsl: "DSL"; readonly Sailpoint: "SAILPOINT"; readonly Text: "TEXT"; readonly Typeahead: "TYPEAHEAD"; }; export type QueryType = typeof QueryType[keyof typeof QueryType]; /** * The range of values to be filtered. * @export * @interface Range */ export interface Range { /** * * @type {Bound} * @memberof Range */ 'lower'?: Bound; /** * * @type {Bound} * @memberof Range */ 'upper'?: Bound; } /** * * @export * @interface Search */ export interface Search { /** * The names of the Elasticsearch indices in which to search. If none are provided, then all indices will be searched. * @type {Array} * @memberof Search */ 'indices'?: Array; /** * * @type {QueryType} * @memberof Search */ 'queryType'?: QueryType; /** * * @type {string} * @memberof Search */ 'queryVersion'?: string; /** * * @type {Query} * @memberof Search */ 'query'?: Query; /** * The search query using the Elasticsearch [Query DSL](https://www.elastic.co/guide/en/elasticsearch/reference/7.10/query-dsl.html) syntax. * @type {object} * @memberof Search */ 'queryDsl'?: object; /** * * @type {TextQuery} * @memberof Search */ 'textQuery'?: TextQuery; /** * * @type {TypeAheadQuery} * @memberof Search */ 'typeAheadQuery'?: TypeAheadQuery; /** * Indicates whether nested objects from returned search results should be included. * @type {boolean} * @memberof Search */ 'includeNested'?: boolean; /** * * @type {QueryResultFilter} * @memberof Search */ 'queryResultFilter'?: QueryResultFilter; /** * * @type {AggregationType} * @memberof Search */ 'aggregationType'?: AggregationType; /** * * @type {string} * @memberof Search */ 'aggregationsVersion'?: string; /** * The aggregation search query using Elasticsearch [Aggregations](https://www.elastic.co/guide/en/elasticsearch/reference/5.2/search-aggregations.html) syntax. * @type {object} * @memberof Search */ 'aggregationsDsl'?: object; /** * * @type {SearchAggregationSpecification} * @memberof Search */ 'aggregations'?: SearchAggregationSpecification; /** * The fields to be used to sort the search results. Use + or - to specify the sort direction. * @type {Array} * @memberof Search */ 'sort'?: Array; /** * Used to begin the search window at the values specified. This parameter consists of the last values of the sorted fields in the current record set. This is used to expand the Elasticsearch limit of 10K records by shifting the 10K window to begin at this value. It is recommended that you always include the ID of the object in addition to any other fields on this parameter in order to ensure you don\'t get duplicate results while paging. For example, when searching for identities, if you are sorting by displayName you will also want to include ID, for example [\"displayName\", \"id\"]. If the last identity ID in the search result is 2c91808375d8e80a0175e1f88a575221 and the last displayName is \"John Doe\", then using that displayName and ID will start a new search after this identity. The searchAfter value will look like [\"John Doe\",\"2c91808375d8e80a0175e1f88a575221\"] * @type {Array} * @memberof Search */ 'searchAfter'?: Array; /** * The filters to be applied for each filtered field name. * @type {{ [key: string]: Filter; }} * @memberof Search */ 'filters'?: { [key: string]: Filter; }; } /** * * @export * @interface SearchAggregationSpecification */ export interface SearchAggregationSpecification { /** * * @type {NestedAggregation} * @memberof SearchAggregationSpecification */ 'nested'?: NestedAggregation; /** * * @type {MetricAggregation} * @memberof SearchAggregationSpecification */ 'metric'?: MetricAggregation; /** * * @type {FilterAggregation} * @memberof SearchAggregationSpecification */ 'filter'?: FilterAggregation; /** * * @type {BucketAggregation} * @memberof SearchAggregationSpecification */ 'bucket'?: BucketAggregation; /** * * @type {SubSearchAggregationSpecification} * @memberof SearchAggregationSpecification */ 'subAggregation'?: SubSearchAggregationSpecification; } /** * Enum representing the currently supported filter aggregation types. Additional values may be added in the future without notice. * @export * @enum {string} */ export declare const SearchFilterType: { readonly Term: "TERM"; }; export type SearchFilterType = typeof SearchFilterType[keyof typeof SearchFilterType]; /** * * @export * @interface SearchPostV1401Response */ export interface SearchPostV1401Response { /** * A message describing the error * @type {any} * @memberof SearchPostV1401Response */ 'error'?: any; } /** * * @export * @interface SearchPostV1429Response */ export interface SearchPostV1429Response { /** * A message describing the error * @type {any} * @memberof SearchPostV1429Response */ 'message'?: any; } /** * * @export * @interface SubSearchAggregationSpecification */ export interface SubSearchAggregationSpecification { /** * * @type {NestedAggregation} * @memberof SubSearchAggregationSpecification */ 'nested'?: NestedAggregation; /** * * @type {MetricAggregation} * @memberof SubSearchAggregationSpecification */ 'metric'?: MetricAggregation; /** * * @type {FilterAggregation} * @memberof SubSearchAggregationSpecification */ 'filter'?: FilterAggregation; /** * * @type {BucketAggregation} * @memberof SubSearchAggregationSpecification */ 'bucket'?: BucketAggregation; /** * * @type {Aggregations} * @memberof SubSearchAggregationSpecification */ 'subAggregation'?: Aggregations; } /** * Query parameters used to construct an Elasticsearch text query object. * @export * @interface TextQuery */ export interface TextQuery { /** * Words or characters that specify a particular thing to be searched for. * @type {Array} * @memberof TextQuery */ 'terms': Array; /** * The fields to be searched. * @type {Array} * @memberof TextQuery */ 'fields': Array; /** * Indicates that at least one of the terms must be found in the specified fields; otherwise, all terms must be found. * @type {boolean} * @memberof TextQuery */ 'matchAny'?: boolean; /** * Indicates that the terms can be located anywhere in the specified fields; otherwise, the fields must begin with the terms. * @type {boolean} * @memberof TextQuery */ 'contains'?: boolean; } /** * Query parameters used to construct an Elasticsearch type ahead query object. The typeAheadQuery performs a search for top values beginning with the typed values. For example, typing \"Jo\" results in top hits matching \"Jo.\" Typing \"Job\" results in top hits matching \"Job.\" * @export * @interface TypeAheadQuery */ export interface TypeAheadQuery { /** * The type ahead query string used to construct a phrase prefix match query. * @type {string} * @memberof TypeAheadQuery */ 'query': string; /** * The field on which to perform the type ahead search. * @type {string} * @memberof TypeAheadQuery */ 'field': string; /** * The nested type. * @type {string} * @memberof TypeAheadQuery */ 'nestedType'?: string; /** * The number of suffixes the last term will be expanded into. Influences the performance of the query and the number results returned. Valid values: 1 to 1000. * @type {number} * @memberof TypeAheadQuery */ 'maxExpansions'?: number; /** * The max amount of records the search will return. * @type {number} * @memberof TypeAheadQuery */ 'size'?: number; /** * The sort order of the returned records. * @type {string} * @memberof TypeAheadQuery */ 'sort'?: string; /** * The flag that defines the sort type, by count or value. * @type {boolean} * @memberof TypeAheadQuery */ 'sortByValue'?: boolean; } /** * SearchApi - axios parameter creator * @export */ export declare const SearchApiAxiosParamCreator: (configuration?: Configuration) => { /** * Performs a search query aggregation and returns the aggregation result. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging. * @summary Perform a search query aggregation * @param {Search} search * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ searchAggregateV1: (search: Search, offset?: number, limit?: number, count?: boolean, axiosOptions?: RawAxiosRequestConfig) => Promise; /** * Performs a search with a provided query and returns the count of results in the X-Total-Count header. * @summary Count documents satisfying a query * @param {Search} search * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ searchCountV1: (search: Search, axiosOptions?: RawAxiosRequestConfig) => Promise; /** * Fetches a single document from the specified index, using the specified document ID. * @summary Get a document by id * @param {SearchGetV1IndexEnum} index The index from which to fetch the specified document. The currently supported index names are: *accessprofiles*, *accountactivities*, *entitlements*, *events*, *identities*, and *roles*. * @param {string} id ID of the requested document. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ searchGetV1: (index: SearchGetV1IndexEnum, id: string, axiosOptions?: RawAxiosRequestConfig) => Promise; /** * Perform a search with the provided query and return a matching result collection. To page past 10,000 records, you can use `searchAfter` paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement `searchAfter` paging. The search query itself has a size limitation of approximately 800 objects when filtering by large lists of IDs or values (e.g., using `terms` filters with extensive lists). * @summary Perform search * @param {Search} search * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ searchPostV1: (search: Search, offset?: number, limit?: number, count?: boolean, axiosOptions?: RawAxiosRequestConfig) => Promise; }; /** * SearchApi - functional programming interface * @export */ export declare const SearchApiFp: (configuration?: Configuration) => { /** * Performs a search query aggregation and returns the aggregation result. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging. * @summary Perform a search query aggregation * @param {Search} search * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ searchAggregateV1(search: Search, offset?: number, limit?: number, count?: boolean, axiosOptions?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>; /** * Performs a search with a provided query and returns the count of results in the X-Total-Count header. * @summary Count documents satisfying a query * @param {Search} search * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ searchCountV1(search: Search, axiosOptions?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>; /** * Fetches a single document from the specified index, using the specified document ID. * @summary Get a document by id * @param {SearchGetV1IndexEnum} index The index from which to fetch the specified document. The currently supported index names are: *accessprofiles*, *accountactivities*, *entitlements*, *events*, *identities*, and *roles*. * @param {string} id ID of the requested document. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ searchGetV1(index: SearchGetV1IndexEnum, id: string, axiosOptions?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>; /** * Perform a search with the provided query and return a matching result collection. To page past 10,000 records, you can use `searchAfter` paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement `searchAfter` paging. The search query itself has a size limitation of approximately 800 objects when filtering by large lists of IDs or values (e.g., using `terms` filters with extensive lists). * @summary Perform search * @param {Search} search * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ searchPostV1(search: Search, offset?: number, limit?: number, count?: boolean, axiosOptions?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>>; }; /** * SearchApi - factory interface * @export */ export declare const SearchApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => { /** * Performs a search query aggregation and returns the aggregation result. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging. * @summary Perform a search query aggregation * @param {SearchApiSearchAggregateV1Request} requestParameters Request parameters. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ searchAggregateV1(requestParameters: SearchApiSearchAggregateV1Request, axiosOptions?: RawAxiosRequestConfig): AxiosPromise; /** * Performs a search with a provided query and returns the count of results in the X-Total-Count header. * @summary Count documents satisfying a query * @param {SearchApiSearchCountV1Request} requestParameters Request parameters. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ searchCountV1(requestParameters: SearchApiSearchCountV1Request, axiosOptions?: RawAxiosRequestConfig): AxiosPromise; /** * Fetches a single document from the specified index, using the specified document ID. * @summary Get a document by id * @param {SearchApiSearchGetV1Request} requestParameters Request parameters. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ searchGetV1(requestParameters: SearchApiSearchGetV1Request, axiosOptions?: RawAxiosRequestConfig): AxiosPromise; /** * Perform a search with the provided query and return a matching result collection. To page past 10,000 records, you can use `searchAfter` paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement `searchAfter` paging. The search query itself has a size limitation of approximately 800 objects when filtering by large lists of IDs or values (e.g., using `terms` filters with extensive lists). * @summary Perform search * @param {SearchApiSearchPostV1Request} requestParameters Request parameters. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} */ searchPostV1(requestParameters: SearchApiSearchPostV1Request, axiosOptions?: RawAxiosRequestConfig): AxiosPromise>; }; /** * Request parameters for searchAggregateV1 operation in SearchApi. * @export * @interface SearchApiSearchAggregateV1Request */ export interface SearchApiSearchAggregateV1Request { /** * * @type {Search} * @memberof SearchApiSearchAggregateV1 */ readonly search: Search; /** * Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @type {number} * @memberof SearchApiSearchAggregateV1 */ readonly offset?: number; /** * Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @type {number} * @memberof SearchApiSearchAggregateV1 */ readonly limit?: number; /** * If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @type {boolean} * @memberof SearchApiSearchAggregateV1 */ readonly count?: boolean; } /** * Request parameters for searchCountV1 operation in SearchApi. * @export * @interface SearchApiSearchCountV1Request */ export interface SearchApiSearchCountV1Request { /** * * @type {Search} * @memberof SearchApiSearchCountV1 */ readonly search: Search; } /** * Request parameters for searchGetV1 operation in SearchApi. * @export * @interface SearchApiSearchGetV1Request */ export interface SearchApiSearchGetV1Request { /** * The index from which to fetch the specified document. The currently supported index names are: *accessprofiles*, *accountactivities*, *entitlements*, *events*, *identities*, and *roles*. * @type {'accessprofiles' | 'accountactivities' | 'entitlements' | 'events' | 'identities' | 'roles'} * @memberof SearchApiSearchGetV1 */ readonly index: SearchGetV1IndexEnum; /** * ID of the requested document. * @type {string} * @memberof SearchApiSearchGetV1 */ readonly id: string; } /** * Request parameters for searchPostV1 operation in SearchApi. * @export * @interface SearchApiSearchPostV1Request */ export interface SearchApiSearchPostV1Request { /** * * @type {Search} * @memberof SearchApiSearchPostV1 */ readonly search: Search; /** * Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @type {number} * @memberof SearchApiSearchPostV1 */ readonly offset?: number; /** * Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @type {number} * @memberof SearchApiSearchPostV1 */ readonly limit?: number; /** * If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. * @type {boolean} * @memberof SearchApiSearchPostV1 */ readonly count?: boolean; } /** * SearchApi - object-oriented interface * @export * @class SearchApi * @extends {BaseAPI} */ export declare class SearchApi extends BaseAPI { /** * Performs a search query aggregation and returns the aggregation result. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging. * @summary Perform a search query aggregation * @param {SearchApiSearchAggregateV1Request} requestParameters Request parameters. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} * @memberof SearchApi */ searchAggregateV1(requestParameters: SearchApiSearchAggregateV1Request, axiosOptions?: RawAxiosRequestConfig): Promise>; /** * Performs a search with a provided query and returns the count of results in the X-Total-Count header. * @summary Count documents satisfying a query * @param {SearchApiSearchCountV1Request} requestParameters Request parameters. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} * @memberof SearchApi */ searchCountV1(requestParameters: SearchApiSearchCountV1Request, axiosOptions?: RawAxiosRequestConfig): Promise>; /** * Fetches a single document from the specified index, using the specified document ID. * @summary Get a document by id * @param {SearchApiSearchGetV1Request} requestParameters Request parameters. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} * @memberof SearchApi */ searchGetV1(requestParameters: SearchApiSearchGetV1Request, axiosOptions?: RawAxiosRequestConfig): Promise>; /** * Perform a search with the provided query and return a matching result collection. To page past 10,000 records, you can use `searchAfter` paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement `searchAfter` paging. The search query itself has a size limitation of approximately 800 objects when filtering by large lists of IDs or values (e.g., using `terms` filters with extensive lists). * @summary Perform search * @param {SearchApiSearchPostV1Request} requestParameters Request parameters. * @param {*} [axiosOptions] Override http request option. * @throws {RequiredError} * @memberof SearchApi */ searchPostV1(requestParameters: SearchApiSearchPostV1Request, axiosOptions?: RawAxiosRequestConfig): Promise>; } /** * @export */ export declare const SearchGetV1IndexEnum: { readonly Accessprofiles: "accessprofiles"; readonly Accountactivities: "accountactivities"; readonly Entitlements: "entitlements"; readonly Events: "events"; readonly Identities: "identities"; readonly Roles: "roles"; }; export type SearchGetV1IndexEnum = typeof SearchGetV1IndexEnum[keyof typeof SearchGetV1IndexEnum];