[[reference-shared-types-async_search]]

////////
===========================================================================================================================
||                                                                                                                       ||
||                                                                                                                       ||
||                                                                                                                       ||
||        ██████╗ ███████╗ █████╗ ██████╗ ███╗   ███╗███████╗                                                            ||
||        ██╔══██╗██╔════╝██╔══██╗██╔══██╗████╗ ████║██╔════╝                                                            ||
||        ██████╔╝█████╗  ███████║██║  ██║██╔████╔██║█████╗                                                              ||
||        ██╔══██╗██╔══╝  ██╔══██║██║  ██║██║╚██╔╝██║██╔══╝                                                              ||
||        ██║  ██║███████╗██║  ██║██████╔╝██║ ╚═╝ ██║███████╗                                                            ||
||        ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═════╝ ╚═╝     ╚═╝╚══════╝                                                            ||
||                                                                                                                       ||
||                                                                                                                       ||
||    This file is autogenerated, DO NOT send pull requests that changes this file directly.                             ||
||    You should update the script that does the generation, which can be found in:                                      ||
||    https://github.com/elastic/elastic-client-generator-js                                                             ||
||                                                                                                                       ||
||    You can run the script with the following command:                                                                 ||
||       npm run elasticsearch -- --version <version>                                                                    ||
||                                                                                                                       ||
||                                                                                                                       ||
||                                                                                                                       ||
===========================================================================================================================
////////



== Shared AsyncSearch types


[discrete]
[[AsyncSearchAsyncSearch]]
=== AsyncSearchAsyncSearch

[pass]
++++
<pre>
++++
interface AsyncSearchAsyncSearch<TDocument = unknown, TAggregations = Record<<<AggregateName>>, <<AggregationsAggregate>>>> {
  pass:[/**] @property aggregations Partial aggregations results, coming from the shards that have already completed the execution of the query. */
  aggregations?: TAggregations
  _clusters?: <<ClusterStatistics>>
  fields?: Record<string, any>
  hits: <<SearchHitsMetadata>><TDocument>
  max_score?: <<double>>
  pass:[/**] @property num_reduce_phases Indicates how many reductions of the results have been performed. If this number increases compared to the last retrieved results for a get asynch search request, you can expect additional results included in the search response. */
  num_reduce_phases?: <<long>>
  profile?: <<SearchProfile>>
  pit_id?: <<Id>>
  _scroll_id?: <<ScrollId>>
  pass:[/**] @property _shards Indicates how many shards have run the query. Note that in order for shard results to be included in the search response, they need to be reduced first. */
  _shards: <<ShardStatistics>>
  suggest?: Record<<<SuggestionName>>, <<SearchSuggest>><TDocument>[]>
  terminated_early?: boolean
  timed_out: boolean
  took: <<long>>
}
[pass]
++++
</pre>
++++

[discrete]
[[AsyncSearchAsyncSearchDocumentResponseBase]]
=== AsyncSearchAsyncSearchDocumentResponseBase

[pass]
++++
<pre>
++++
interface AsyncSearchAsyncSearchDocumentResponseBase<TDocument = unknown, TAggregations = Record<<<AggregateName>>, <<AggregationsAggregate>>>> extends <<AsyncSearchAsyncSearchResponseBase>> {
  response: <<AsyncSearchAsyncSearch>><TDocument, TAggregations>
}
[pass]
++++
</pre>
++++

[discrete]
[[AsyncSearchAsyncSearchResponseBase]]
=== AsyncSearchAsyncSearchResponseBase

[pass]
++++
<pre>
++++
interface AsyncSearchAsyncSearchResponseBase {
  id?: <<Id>>
  pass:[/**] @property is_partial When the query is no longer running, this property indicates whether the search failed or was successfully completed on all shards. While the query is running, `is_partial` is always set to `true`. */
  is_partial: boolean
  pass:[/**] @property is_running Indicates whether the search is still running or has completed. NOTE: If the search failed after some shards returned their results or the node that is coordinating the async search dies, results may be partial even though `is_running` is `false`. */
  is_running: boolean
  pass:[/**] @property expiration_time Indicates when the async search will expire. */
  expiration_time?: <<DateTime>>
  expiration_time_in_millis: <<EpochTime>><<<UnitMillis>>>
  start_time?: <<DateTime>>
  start_time_in_millis: <<EpochTime>><<<UnitMillis>>>
  pass:[/**] @property completion_time Indicates when the async search completed. Only present when the search has completed. */
  completion_time?: <<DateTime>>
  completion_time_in_millis?: <<EpochTime>><<<UnitMillis>>>
}
[pass]
++++
</pre>
++++
