From c132519fa285e81441e42237a8438f9827b84e44 Mon Sep 17 00:00:00 2001 From: Enrico Zimuel Date: Thu, 14 Nov 2024 13:57:11 +0100 Subject: [PATCH] Updated endpoints to 8.16.0 --- src/Client.php | 2 +- src/Endpoints/Cluster.php | 4 +- src/Endpoints/Indices.php | 29 ++++--- src/Endpoints/Inference.php | 45 ++++++++++ src/Endpoints/Ingest.php | 122 +++++++++++++++++++++++++++- src/Endpoints/QueryRules.php | 40 +++++++++ src/Traits/ClientEndpointsTrait.php | 3 +- util/YamlTests.php | 5 ++ 8 files changed, 232 insertions(+), 18 deletions(-) diff --git a/src/Client.php b/src/Client.php index 64d2608dc..9ad4817f9 100644 --- a/src/Client.php +++ b/src/Client.php @@ -28,7 +28,7 @@ final class Client implements ClientInterface { const CLIENT_NAME = 'es'; - const VERSION = '8.15.0'; + const VERSION = '8.16.0'; const API_COMPATIBILITY_HEADER = '%s/vnd.elasticsearch+%s; compatible-with=8'; const SEARCH_ENDPOINTS = [ diff --git a/src/Endpoints/Cluster.php b/src/Endpoints/Cluster.php index 203fcaf5b..196e2e78d 100644 --- a/src/Endpoints/Cluster.php +++ b/src/Endpoints/Cluster.php @@ -639,7 +639,7 @@ public function state(array $params = []) * * @param array{ * node_id: list, // A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes - * flat_settings: boolean, // Return settings in flat format (default: false) + * include_remotes: boolean, // Include remote cluster data into the response (default: false) * timeout: time, // Explicit operation timeout * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) * human: boolean, // Return human readable values for statistics. (DEFAULT: true) @@ -663,7 +663,7 @@ public function stats(array $params = []) $url = '/_cluster/stats'; $method = 'GET'; } - $url = $this->addQueryString($url, $params, ['flat_settings','timeout','pretty','human','error_trace','source','filter_path']); + $url = $this->addQueryString($url, $params, ['include_remotes','timeout','pretty','human','error_trace','source','filter_path']); $headers = [ 'Accept' => 'application/json', ]; diff --git a/src/Endpoints/Indices.php b/src/Endpoints/Indices.php index 9ab3c7df0..f8f2eaeb6 100644 --- a/src/Endpoints/Indices.php +++ b/src/Endpoints/Indices.php @@ -293,6 +293,8 @@ public function create(array $params = []) * * @param array{ * name: string, // (REQUIRED) The name of the data stream + * timeout: time, // Specify timeout for acknowledging the cluster state update + * master_timeout: time, // Specify timeout for connection to master * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) * human: boolean, // Return human readable values for statistics. (DEFAULT: true) * error_trace: boolean, // Include the stack trace of returned errors. (DEFAULT: false) @@ -313,7 +315,7 @@ public function createDataStream(array $params = []) $url = '/_data_stream/' . $this->encode($params['name']); $method = 'PUT'; - $url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']); + $url = $this->addQueryString($url, $params, ['timeout','master_timeout','pretty','human','error_trace','source','filter_path']); $headers = [ 'Accept' => 'application/json', ]; @@ -448,7 +450,6 @@ public function deleteAlias(array $params = []) * Deletes the data stream lifecycle of the selected data streams. * * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams-delete-lifecycle.html - * @internal This API is EXPERIMENTAL and may be changed or removed completely in a future release * * @param array{ * name: list, // (REQUIRED) A comma-separated list of data streams of which the data stream lifecycle will be deleted; use `*` to get all data streams @@ -493,6 +494,7 @@ public function deleteDataLifecycle(array $params = []) * @param array{ * name: list, // (REQUIRED) A comma-separated list of data streams to delete; use `*` to delete all data streams * expand_wildcards: enum, // Whether wildcard expressions should get expanded to open or closed indices (default: open) + * master_timeout: time, // Specify timeout for connection to master * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) * human: boolean, // Return human readable values for statistics. (DEFAULT: true) * error_trace: boolean, // Include the stack trace of returned errors. (DEFAULT: false) @@ -513,7 +515,7 @@ public function deleteDataStream(array $params = []) $url = '/_data_stream/' . $this->encode($params['name']); $method = 'DELETE'; - $url = $this->addQueryString($url, $params, ['expand_wildcards','pretty','human','error_trace','source','filter_path']); + $url = $this->addQueryString($url, $params, ['expand_wildcards','master_timeout','pretty','human','error_trace','source','filter_path']); $headers = [ 'Accept' => 'application/json', ]; @@ -858,7 +860,6 @@ public function existsTemplate(array $params = []) * Retrieves information about the index's current data stream lifecycle, such as any potential encountered error, time since creation etc. * * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams-explain-lifecycle.html - * @internal This API is EXPERIMENTAL and may be changed or removed completely in a future release * * @param array{ * index: string, // (REQUIRED) The name of the index to explain @@ -1125,12 +1126,12 @@ public function getAlias(array $params = []) * Returns the data stream lifecycle of the selected data streams. * * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams-get-lifecycle.html - * @internal This API is EXPERIMENTAL and may be changed or removed completely in a future release * * @param array{ * name: list, // (REQUIRED) A comma-separated list of data streams to get; use `*` to get all data streams * expand_wildcards: enum, // Whether wildcard expressions should get expanded to open or closed indices (default: open) * include_defaults: boolean, // Return all relevant default configurations for the data stream (default: false) + * master_timeout: time, // Specify timeout for connection to master * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) * human: boolean, // Return human readable values for statistics. (DEFAULT: true) * error_trace: boolean, // Include the stack trace of returned errors. (DEFAULT: false) @@ -1151,7 +1152,7 @@ public function getDataLifecycle(array $params = []) $url = '/_data_stream/' . $this->encode($params['name']) . '/_lifecycle'; $method = 'GET'; - $url = $this->addQueryString($url, $params, ['expand_wildcards','include_defaults','pretty','human','error_trace','source','filter_path']); + $url = $this->addQueryString($url, $params, ['expand_wildcards','include_defaults','master_timeout','pretty','human','error_trace','source','filter_path']); $headers = [ 'Accept' => 'application/json', ]; @@ -1170,6 +1171,8 @@ public function getDataLifecycle(array $params = []) * name: list, // A comma-separated list of data streams to get; use `*` to get all data streams * expand_wildcards: enum, // Whether wildcard expressions should get expanded to open or closed indices (default: open) * include_defaults: boolean, // Return all relevant default configurations for the data stream (default: false) + * master_timeout: time, // Specify timeout for connection to master + * verbose: boolean, // Whether the maximum timestamp for each data stream should be calculated and returned (default: false) * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) * human: boolean, // Return human readable values for statistics. (DEFAULT: true) * error_trace: boolean, // Include the stack trace of returned errors. (DEFAULT: false) @@ -1192,7 +1195,7 @@ public function getDataStream(array $params = []) $url = '/_data_stream'; $method = 'GET'; } - $url = $this->addQueryString($url, $params, ['expand_wildcards','include_defaults','pretty','human','error_trace','source','filter_path']); + $url = $this->addQueryString($url, $params, ['expand_wildcards','include_defaults','master_timeout','verbose','pretty','human','error_trace','source','filter_path']); $headers = [ 'Accept' => 'application/json', ]; @@ -1438,6 +1441,8 @@ public function getTemplate(array $params = []) * * @param array{ * name: string, // (REQUIRED) The name of the alias to migrate + * timeout: time, // Specify timeout for acknowledging the cluster state update + * master_timeout: time, // Specify timeout for connection to master * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) * human: boolean, // Return human readable values for statistics. (DEFAULT: true) * error_trace: boolean, // Include the stack trace of returned errors. (DEFAULT: false) @@ -1458,7 +1463,7 @@ public function migrateToDataStream(array $params = []) $url = '/_data_stream/_migrate/' . $this->encode($params['name']); $method = 'POST'; - $url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']); + $url = $this->addQueryString($url, $params, ['timeout','master_timeout','pretty','human','error_trace','source','filter_path']); $headers = [ 'Accept' => 'application/json', ]; @@ -1555,6 +1560,7 @@ public function open(array $params = []) * * @param array{ * name: string, // (REQUIRED) The name of the data stream + * master_timeout: time, // Specify timeout for connection to master * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) * human: boolean, // Return human readable values for statistics. (DEFAULT: true) * error_trace: boolean, // Include the stack trace of returned errors. (DEFAULT: false) @@ -1575,7 +1581,7 @@ public function promoteDataStream(array $params = []) $url = '/_data_stream/_promote/' . $this->encode($params['name']); $method = 'POST'; - $url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']); + $url = $this->addQueryString($url, $params, ['master_timeout','pretty','human','error_trace','source','filter_path']); $headers = [ 'Accept' => 'application/json', ]; @@ -1631,7 +1637,6 @@ public function putAlias(array $params = []) * Updates the data stream lifecycle of the selected data streams. * * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams-put-lifecycle.html - * @internal This API is EXPERIMENTAL and may be changed or removed completely in a future release * * @param array{ * name: list, // (REQUIRED) A comma-separated list of data streams whose lifecycle will be updated; use `*` to set the lifecycle to all data streams @@ -2021,6 +2026,8 @@ public function resolveCluster(array $params = []) * @param array{ * name: list, // (REQUIRED) A comma-separated list of names or wildcard expressions * expand_wildcards: enum, // Whether wildcard expressions should get expanded to open or closed indices (default: open) + * ignore_unavailable: boolean, // Whether specified concrete indices should be ignored when unavailable (missing or closed) + * allow_no_indices: boolean, // Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) * human: boolean, // Return human readable values for statistics. (DEFAULT: true) * error_trace: boolean, // Include the stack trace of returned errors. (DEFAULT: false) @@ -2041,7 +2048,7 @@ public function resolveIndex(array $params = []) $url = '/_resolve/index/' . $this->encode($params['name']); $method = 'GET'; - $url = $this->addQueryString($url, $params, ['expand_wildcards','pretty','human','error_trace','source','filter_path']); + $url = $this->addQueryString($url, $params, ['expand_wildcards','ignore_unavailable','allow_no_indices','pretty','human','error_trace','source','filter_path']); $headers = [ 'Accept' => 'application/json', ]; diff --git a/src/Endpoints/Inference.php b/src/Endpoints/Inference.php index 65837f068..0a0c194fd 100644 --- a/src/Endpoints/Inference.php +++ b/src/Endpoints/Inference.php @@ -205,4 +205,49 @@ public function put(array $params = []) $request = $this->addOtelAttributes($params, ['inference_id', 'task_type'], $request, 'inference.put'); return $this->client->sendRequest($request); } + + + /** + * Perform streaming inference + * + * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/post-stream-inference-api.html + * @internal This API is EXPERIMENTAL and may be changed or removed completely in a future release + * + * @param array{ + * inference_id: string, // (REQUIRED) The inference Id + * task_type: string, // The task type + * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) + * human: boolean, // Return human readable values for statistics. (DEFAULT: true) + * error_trace: boolean, // Include the stack trace of returned errors. (DEFAULT: false) + * source: string, // The URL-encoded request definition. Useful for libraries that do not accept a request body for non-POST requests. + * filter_path: list, // A comma-separated list of filters used to reduce the response. + * body: array, // The inference payload + * } $params + * + * @throws MissingParameterException if a required parameter is missing + * @throws NoNodeAvailableException if all the hosts are offline + * @throws ClientResponseException if the status code of response is 4xx + * @throws ServerResponseException if the status code of response is 5xx + * + * @return Elasticsearch|Promise + */ + public function streamInference(array $params = []) + { + $this->checkRequiredParameters(['inference_id'], $params); + if (isset($params['task_type'])) { + $url = '/_inference/' . $this->encode($params['task_type']) . '/' . $this->encode($params['inference_id']) . '/_stream'; + $method = 'POST'; + } else { + $url = '/_inference/' . $this->encode($params['inference_id']) . '/_stream'; + $method = 'POST'; + } + $url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']); + $headers = [ + 'Accept' => 'text/event-stream', + 'Content-Type' => 'application/json', + ]; + $request = $this->createRequest($method, $url, $headers, $params['body'] ?? null); + $request = $this->addOtelAttributes($params, ['inference_id', 'task_type'], $request, 'inference.stream_inference'); + return $this->client->sendRequest($request); + } } diff --git a/src/Endpoints/Ingest.php b/src/Endpoints/Ingest.php index 0626caa35..0e4b68c03 100644 --- a/src/Endpoints/Ingest.php +++ b/src/Endpoints/Ingest.php @@ -31,7 +31,7 @@ class Ingest extends AbstractEndpoint /** * Deletes a geoip database configuration * - * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/TODO.html + * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/delete-geoip-database-api.html * * @param array{ * id: list, // (REQUIRED) A comma-separated list of geoip database configurations to delete @@ -65,6 +65,43 @@ public function deleteGeoipDatabase(array $params = []) } + /** + * Deletes an ip location database configuration + * + * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/delete-ip-location-database-api.html + * + * @param array{ + * id: list, // (REQUIRED) A comma-separated list of ip location database configurations to delete + * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) + * human: boolean, // Return human readable values for statistics. (DEFAULT: true) + * error_trace: boolean, // Include the stack trace of returned errors. (DEFAULT: false) + * source: string, // The URL-encoded request definition. Useful for libraries that do not accept a request body for non-POST requests. + * filter_path: list, // A comma-separated list of filters used to reduce the response. + * } $params + * + * @throws MissingParameterException if a required parameter is missing + * @throws NoNodeAvailableException if all the hosts are offline + * @throws ClientResponseException if the status code of response is 4xx + * @throws ServerResponseException if the status code of response is 5xx + * + * @return Elasticsearch|Promise + */ + public function deleteIpLocationDatabase(array $params = []) + { + $this->checkRequiredParameters(['id'], $params); + $url = '/_ingest/ip_location/database/' . $this->encode($params['id']); + $method = 'DELETE'; + + $url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']); + $headers = [ + 'Accept' => 'application/json', + ]; + $request = $this->createRequest($method, $url, $headers, $params['body'] ?? null); + $request = $this->addOtelAttributes($params, ['id'], $request, 'ingest.delete_ip_location_database'); + return $this->client->sendRequest($request); + } + + /** * Deletes a pipeline. * @@ -141,7 +178,7 @@ public function geoIpStats(array $params = []) /** * Returns geoip database configuration. * - * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/TODO.html + * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/get-geoip-database-api.html * * @param array{ * id: list, // A comma-separated list of geoip database configurations to get; use `*` to get all geoip database configurations @@ -177,6 +214,45 @@ public function getGeoipDatabase(array $params = []) } + /** + * Returns the specified ip location database configuration + * + * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/get-ip-location-database-api.html + * + * @param array{ + * id: list, // A comma-separated list of ip location database configurations to get; use `*` to get all ip location database configurations + * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) + * human: boolean, // Return human readable values for statistics. (DEFAULT: true) + * error_trace: boolean, // Include the stack trace of returned errors. (DEFAULT: false) + * source: string, // The URL-encoded request definition. Useful for libraries that do not accept a request body for non-POST requests. + * filter_path: list, // A comma-separated list of filters used to reduce the response. + * } $params + * + * @throws NoNodeAvailableException if all the hosts are offline + * @throws ClientResponseException if the status code of response is 4xx + * @throws ServerResponseException if the status code of response is 5xx + * + * @return Elasticsearch|Promise + */ + public function getIpLocationDatabase(array $params = []) + { + if (isset($params['id'])) { + $url = '/_ingest/ip_location/database/' . $this->encode($params['id']); + $method = 'GET'; + } else { + $url = '/_ingest/ip_location/database'; + $method = 'GET'; + } + $url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']); + $headers = [ + 'Accept' => 'application/json', + ]; + $request = $this->createRequest($method, $url, $headers, $params['body'] ?? null); + $request = $this->addOtelAttributes($params, ['id'], $request, 'ingest.get_ip_location_database'); + return $this->client->sendRequest($request); + } + + /** * Returns a pipeline. * @@ -255,7 +331,7 @@ public function processorGrok(array $params = []) /** * Puts the configuration for a geoip database to be downloaded * - * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/TODO.html + * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/put-geoip-database-api.html * * @param array{ * id: string, // (REQUIRED) The id of the database configuration @@ -283,6 +359,7 @@ public function putGeoipDatabase(array $params = []) $url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']); $headers = [ 'Accept' => 'application/json', + 'Content-Type' => 'application/json', ]; $request = $this->createRequest($method, $url, $headers, $params['body'] ?? null); $request = $this->addOtelAttributes($params, ['id'], $request, 'ingest.put_geoip_database'); @@ -290,6 +367,45 @@ public function putGeoipDatabase(array $params = []) } + /** + * Puts the configuration for a ip location database to be downloaded + * + * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/put-ip-location-database-api.html + * + * @param array{ + * id: string, // (REQUIRED) The id of the database configuration + * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) + * human: boolean, // Return human readable values for statistics. (DEFAULT: true) + * error_trace: boolean, // Include the stack trace of returned errors. (DEFAULT: false) + * source: string, // The URL-encoded request definition. Useful for libraries that do not accept a request body for non-POST requests. + * filter_path: list, // A comma-separated list of filters used to reduce the response. + * body: array, // (REQUIRED) The database configuration definition + * } $params + * + * @throws MissingParameterException if a required parameter is missing + * @throws NoNodeAvailableException if all the hosts are offline + * @throws ClientResponseException if the status code of response is 4xx + * @throws ServerResponseException if the status code of response is 5xx + * + * @return Elasticsearch|Promise + */ + public function putIpLocationDatabase(array $params = []) + { + $this->checkRequiredParameters(['id','body'], $params); + $url = '/_ingest/ip_location/database/' . $this->encode($params['id']); + $method = 'PUT'; + + $url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']); + $headers = [ + 'Accept' => 'application/json', + 'Content-Type' => 'application/json', + ]; + $request = $this->createRequest($method, $url, $headers, $params['body'] ?? null); + $request = $this->addOtelAttributes($params, ['id'], $request, 'ingest.put_ip_location_database'); + return $this->client->sendRequest($request); + } + + /** * Creates or updates a pipeline. * diff --git a/src/Endpoints/QueryRules.php b/src/Endpoints/QueryRules.php index 1da8b22f1..63635da25 100644 --- a/src/Endpoints/QueryRules.php +++ b/src/Endpoints/QueryRules.php @@ -291,4 +291,44 @@ public function putRuleset(array $params = []) $request = $this->addOtelAttributes($params, ['ruleset_id'], $request, 'query_rules.put_ruleset'); return $this->client->sendRequest($request); } + + + /** + * Tests a query ruleset to identify the rules that would match input criteria + * + * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/test-query-ruleset.html + * @internal This API is EXPERIMENTAL and may be changed or removed completely in a future release + * + * @param array{ + * ruleset_id: string, // (REQUIRED) The unique identifier of the ruleset to test. + * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) + * human: boolean, // Return human readable values for statistics. (DEFAULT: true) + * error_trace: boolean, // Include the stack trace of returned errors. (DEFAULT: false) + * source: string, // The URL-encoded request definition. Useful for libraries that do not accept a request body for non-POST requests. + * filter_path: list, // A comma-separated list of filters used to reduce the response. + * body: array, // (REQUIRED) The match criteria to test against the ruleset + * } $params + * + * @throws MissingParameterException if a required parameter is missing + * @throws NoNodeAvailableException if all the hosts are offline + * @throws ClientResponseException if the status code of response is 4xx + * @throws ServerResponseException if the status code of response is 5xx + * + * @return Elasticsearch|Promise + */ + public function test(array $params = []) + { + $this->checkRequiredParameters(['ruleset_id','body'], $params); + $url = '/_query_rules/' . $this->encode($params['ruleset_id']) . '/_test'; + $method = 'POST'; + + $url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']); + $headers = [ + 'Accept' => 'application/json', + 'Content-Type' => 'application/json', + ]; + $request = $this->createRequest($method, $url, $headers, $params['body'] ?? null); + $request = $this->addOtelAttributes($params, ['ruleset_id'], $request, 'query_rules.test'); + return $this->client->sendRequest($request); + } } diff --git a/src/Traits/ClientEndpointsTrait.php b/src/Traits/ClientEndpointsTrait.php index e2cfe6199..a3b9694bd 100644 --- a/src/Traits/ClientEndpointsTrait.php +++ b/src/Traits/ClientEndpointsTrait.php @@ -1751,6 +1751,7 @@ public function searchMvt(array $params = []) * ignore_unavailable: boolean, // Whether specified concrete indices should be ignored when unavailable (missing or closed) * allow_no_indices: boolean, // Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) * expand_wildcards: enum, // Whether to expand wildcard expression to concrete indices that are open, closed or both. + * master_timeout: time, // Explicit operation timeout for connection to master node * pretty: boolean, // Pretty format the returned JSON response. (DEFAULT: false) * human: boolean, // Return human readable values for statistics. (DEFAULT: true) * error_trace: boolean, // Include the stack trace of returned errors. (DEFAULT: false) @@ -1773,7 +1774,7 @@ public function searchShards(array $params = []) $url = '/_search_shards'; $method = empty($params['body']) ? 'GET' : 'POST'; } - $url = $this->addQueryString($url, $params, ['preference','routing','local','ignore_unavailable','allow_no_indices','expand_wildcards','pretty','human','error_trace','source','filter_path']); + $url = $this->addQueryString($url, $params, ['preference','routing','local','ignore_unavailable','allow_no_indices','expand_wildcards','master_timeout','pretty','human','error_trace','source','filter_path']); $headers = [ 'Accept' => 'application/json', ]; diff --git a/util/YamlTests.php b/util/YamlTests.php index 555ec8f89..248f676a4 100644 --- a/util/YamlTests.php +++ b/util/YamlTests.php @@ -58,10 +58,14 @@ class YamlTests 'Indices\Refresh\_10_BasicTest::IndicesRefreshTestEmptyArray' => 'empty array?', 'Indices\ResolveCluster\_10_Basic_Resolve_ClusterTest::TestResolveClusterOptionalParamsAreAccepted' => 'Bool mismatch', 'Indices\SimulateIndexTemplate\_10_BasicTest::SimulateIndexTemplateWithIndexNotMatchingAnyTemplate' => 'Bool mismatch', + 'IngestGeoip\_20_Geoip_ProcessorTest::*' => 'Undefined array key "geoip"', + 'IngestGeoip\_30_Geoip_StatsTest::TestGeoipStats' => 'Undefined array key "_arbitrary_key_"', + 'IngestGeoip\_50_Ip_Lookup_ProcessorTest::TestIp_locationProcessorWithDefaults' => 'Undefined array key "ip_location"', 'Search\Vectors\_90_Sparse_VectorTest::SparseVectorIn800X8110' => 'Undefined array key error', 'Snapshot\Create\_10_BasicTest::CreateASnapshot' => 'Invalid snapshot name [test_snapshot]', 'Snapshot\Create\_10_BasicTest::CreateASnapshotAndCleanUpRepository' => 'Invalid snapshot name [test_snapshot]', 'Tsdb\_20_MappingTest::UnsupportedMetricTypePosition' => 'Fixed in Elasticsearch 8.9', + ]; const SKIPPED_TEST_XPACK = [ @@ -117,6 +121,7 @@ class YamlTests 'SearchableSnapshots\_20_Synthetic_SourceTest::*' => 'no_shard_available_action_exception', 'ServiceAccounts\_10_BasicTest::TestServiceAccountTokens' => 'Count mismatch', 'Snapshot\_10_BasicTest::CreateASourceOnlySnapshotAndThenRestoreIt' => 'Snapshot name already exists', + 'Snapshot\_10_BasicTest::FailedToSnapshotIndicesWithSyntheticSource' => 'Failed asserting that 1 matches expected 0', 'Snapshot\_20_Operator_Privileges_DisabledTest::OperatorOnlySettingsCanBeSetAndRestoredByNonoperatorUserWhenOperatorPrivilegesIsDisabled' => 'Count mismatch', 'Spatial\_130_Geo_Shape_RuntimeTest::GetMapping' => 'Escape string issue', 'Sql\_SqlTest::PagingThroughResults' => 'Mismatch values',