mirror of
https://github.com/Karaka-Management/Resources.git
synced 2026-01-10 21:08:41 +00:00
2019 lines
93 KiB
PHP
Executable File
2019 lines
93 KiB
PHP
Executable File
<?php
|
|
|
|
/**
|
|
* Elasticsearch PHP Client
|
|
*
|
|
* @link https://github.com/elastic/elasticsearch-php
|
|
* @copyright Copyright (c) Elasticsearch B.V (https://www.elastic.co)
|
|
* @license https://opensource.org/licenses/MIT MIT License
|
|
*
|
|
* Licensed to Elasticsearch B.V under one or more agreements.
|
|
* Elasticsearch B.V licenses this file to you under the MIT License.
|
|
* See the LICENSE file in the project root for more information.
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Elastic\Elasticsearch\Endpoints;
|
|
|
|
use Elastic\Elasticsearch\Exception\ClientResponseException;
|
|
use Elastic\Elasticsearch\Exception\MissingParameterException;
|
|
use Elastic\Elasticsearch\Exception\ServerResponseException;
|
|
use Elastic\Elasticsearch\Response\Elasticsearch;
|
|
use Elastic\Transport\Exception\NoNodeAvailableException;
|
|
use Http\Promise\Promise;
|
|
|
|
/**
|
|
* @generated This file is generated, please do not edit
|
|
*/
|
|
class Security extends AbstractEndpoint
|
|
{
|
|
/**
|
|
* Creates or updates the user profile on behalf of another user.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-activate-user-profile.html
|
|
*
|
|
* @param array{
|
|
* 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 grant type and user's credential
|
|
* } $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 activateUserProfile(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/profile/_activate';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Enables authentication as a user and retrieve information about the authenticated user.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-authenticate.html
|
|
*
|
|
* @param array{
|
|
* 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 authenticate(array $params = [])
|
|
{
|
|
$url = '/_security/_authenticate';
|
|
$method = 'GET';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Updates the attributes of multiple existing API keys.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-bulk-update-api-keys.html
|
|
*
|
|
* @param array{
|
|
* 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 API key request to update the attributes of multiple API keys.
|
|
* } $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 bulkUpdateApiKeys(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/api_key/_bulk_update';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Changes the passwords of users in the native realm and built-in users.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-change-password.html
|
|
*
|
|
* @param array{
|
|
* username: string, // The username of the user to change the password for
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 new password for the user
|
|
* } $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 changePassword(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
if (isset($params['username'])) {
|
|
$url = '/_security/user/' . $this->encode($params['username']) . '/_password';
|
|
$method = 'PUT';
|
|
} else {
|
|
$url = '/_security/user/_password';
|
|
$method = 'PUT';
|
|
}
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Clear a subset or all entries from the API key cache.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-clear-api-key-cache.html
|
|
*
|
|
* @param array{
|
|
* ids: list, // (REQUIRED) A comma-separated list of IDs of API keys to clear from the cache
|
|
* 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 clearApiKeyCache(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['ids'], $params);
|
|
$url = '/_security/api_key/' . $this->encode($params['ids']) . '/_clear_cache';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Evicts application privileges from the native application privileges cache.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-clear-privilege-cache.html
|
|
*
|
|
* @param array{
|
|
* application: list, // (REQUIRED) A comma-separated list of application names
|
|
* 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 clearCachedPrivileges(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['application'], $params);
|
|
$url = '/_security/privilege/' . $this->encode($params['application']) . '/_clear_cache';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Evicts users from the user cache. Can completely clear the cache or evict specific users.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-clear-cache.html
|
|
*
|
|
* @param array{
|
|
* realms: list, // (REQUIRED) Comma-separated list of realms to clear
|
|
* usernames: list, // Comma-separated list of usernames to clear from the cache
|
|
* 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 clearCachedRealms(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['realms'], $params);
|
|
$url = '/_security/realm/' . $this->encode($params['realms']) . '/_clear_cache';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['usernames','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Evicts roles from the native role cache.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-clear-role-cache.html
|
|
*
|
|
* @param array{
|
|
* name: list, // (REQUIRED) Role name
|
|
* 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 clearCachedRoles(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['name'], $params);
|
|
$url = '/_security/role/' . $this->encode($params['name']) . '/_clear_cache';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Evicts tokens from the service account token caches.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-clear-service-token-caches.html
|
|
*
|
|
* @param array{
|
|
* namespace: string, // (REQUIRED) An identifier for the namespace
|
|
* service: string, // (REQUIRED) An identifier for the service name
|
|
* name: list, // (REQUIRED) A comma-separated list of service token names
|
|
* 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 clearCachedServiceTokens(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['namespace','service','name'], $params);
|
|
$url = '/_security/service/' . $this->encode($params['namespace']) . '/' . $this->encode($params['service']) . '/credential/token/' . $this->encode($params['name']) . '/_clear_cache';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Creates an API key for access without requiring basic authentication.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-api-key.html
|
|
*
|
|
* @param array{
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 api key request to create an API key
|
|
* } $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 createApiKey(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/api_key';
|
|
$method = 'PUT';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Creates a service account token for access without requiring basic authentication.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-service-token.html
|
|
*
|
|
* @param array{
|
|
* namespace: string, // (REQUIRED) An identifier for the namespace
|
|
* service: string, // (REQUIRED) An identifier for the service name
|
|
* name: string, // An identifier for the token name
|
|
* refresh: enum, // If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` (the default) then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 createServiceToken(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['namespace','service'], $params);
|
|
if (isset($params['name'])) {
|
|
$url = '/_security/service/' . $this->encode($params['namespace']) . '/' . $this->encode($params['service']) . '/credential/token/' . $this->encode($params['name']);
|
|
$method = 'PUT';
|
|
} else {
|
|
$url = '/_security/service/' . $this->encode($params['namespace']) . '/' . $this->encode($params['service']) . '/credential/token';
|
|
$method = 'POST';
|
|
}
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Removes application privileges.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-delete-privilege.html
|
|
*
|
|
* @param array{
|
|
* application: string, // (REQUIRED) Application name
|
|
* name: string, // (REQUIRED) Privilege name
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 deletePrivileges(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['application','name'], $params);
|
|
$url = '/_security/privilege/' . $this->encode($params['application']) . '/' . $this->encode($params['name']);
|
|
$method = 'DELETE';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Removes roles in the native realm.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-delete-role.html
|
|
*
|
|
* @param array{
|
|
* name: string, // (REQUIRED) Role name
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 deleteRole(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['name'], $params);
|
|
$url = '/_security/role/' . $this->encode($params['name']);
|
|
$method = 'DELETE';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Removes role mappings.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-delete-role-mapping.html
|
|
*
|
|
* @param array{
|
|
* name: string, // (REQUIRED) Role-mapping name
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 deleteRoleMapping(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['name'], $params);
|
|
$url = '/_security/role_mapping/' . $this->encode($params['name']);
|
|
$method = 'DELETE';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Deletes a service account token.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-delete-service-token.html
|
|
*
|
|
* @param array{
|
|
* namespace: string, // (REQUIRED) An identifier for the namespace
|
|
* service: string, // (REQUIRED) An identifier for the service name
|
|
* name: string, // (REQUIRED) An identifier for the token name
|
|
* refresh: enum, // If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` (the default) then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 deleteServiceToken(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['namespace','service','name'], $params);
|
|
$url = '/_security/service/' . $this->encode($params['namespace']) . '/' . $this->encode($params['service']) . '/credential/token/' . $this->encode($params['name']);
|
|
$method = 'DELETE';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Deletes users from the native realm.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-delete-user.html
|
|
*
|
|
* @param array{
|
|
* username: string, // (REQUIRED) username
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 deleteUser(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['username'], $params);
|
|
$url = '/_security/user/' . $this->encode($params['username']);
|
|
$method = 'DELETE';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Disables users in the native realm.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-disable-user.html
|
|
*
|
|
* @param array{
|
|
* username: string, // (REQUIRED) The username of the user to disable
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 disableUser(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['username'], $params);
|
|
$url = '/_security/user/' . $this->encode($params['username']) . '/_disable';
|
|
$method = 'PUT';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Disables a user profile so it's not visible in user profile searches.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-disable-user-profile.html
|
|
*
|
|
* @param array{
|
|
* uid: string, // (REQUIRED) Unique identifier for the user profile
|
|
* refresh: enum, // If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` (the default) then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 disableUserProfile(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['uid'], $params);
|
|
$url = '/_security/profile/' . $this->encode($params['uid']) . '/_disable';
|
|
$method = 'PUT';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Enables users in the native realm.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-enable-user.html
|
|
*
|
|
* @param array{
|
|
* username: string, // (REQUIRED) The username of the user to enable
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 enableUser(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['username'], $params);
|
|
$url = '/_security/user/' . $this->encode($params['username']) . '/_enable';
|
|
$method = 'PUT';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Enables a user profile so it's visible in user profile searches.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-enable-user-profile.html
|
|
*
|
|
* @param array{
|
|
* uid: string, // (REQUIRED) An unique identifier of the user profile
|
|
* refresh: enum, // If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` (the default) then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 enableUserProfile(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['uid'], $params);
|
|
$url = '/_security/profile/' . $this->encode($params['uid']) . '/_enable';
|
|
$method = 'PUT';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Allows a kibana instance to configure itself to communicate with a secured elasticsearch cluster.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-kibana-enrollment.html
|
|
*
|
|
* @param array{
|
|
* 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 enrollKibana(array $params = [])
|
|
{
|
|
$url = '/_security/enroll/kibana';
|
|
$method = 'GET';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Allows a new node to enroll to an existing cluster with security enabled.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-node-enrollment.html
|
|
*
|
|
* @param array{
|
|
* 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 enrollNode(array $params = [])
|
|
{
|
|
$url = '/_security/enroll/node';
|
|
$method = 'GET';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Retrieves information for one or more API keys.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-api-key.html
|
|
*
|
|
* @param array{
|
|
* id: string, // API key id of the API key to be retrieved
|
|
* name: string, // API key name of the API key to be retrieved
|
|
* username: string, // user name of the user who created this API key to be retrieved
|
|
* realm_name: string, // realm name of the user who created this API key to be retrieved
|
|
* owner: boolean, // flag to query API keys owned by the currently authenticated user
|
|
* with_limited_by: boolean, // flag to show the limited-by role descriptors of API Keys
|
|
* 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 getApiKey(array $params = [])
|
|
{
|
|
$url = '/_security/api_key';
|
|
$method = 'GET';
|
|
|
|
$url = $this->addQueryString($url, $params, ['id','name','username','realm_name','owner','with_limited_by','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Retrieves the list of cluster privileges and index privileges that are available in this version of Elasticsearch.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html
|
|
*
|
|
* @param array{
|
|
* 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 getBuiltinPrivileges(array $params = [])
|
|
{
|
|
$url = '/_security/privilege/_builtin';
|
|
$method = 'GET';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Retrieves application privileges.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-privileges.html
|
|
*
|
|
* @param array{
|
|
* application: string, // Application name
|
|
* name: string, // Privilege name
|
|
* 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 getPrivileges(array $params = [])
|
|
{
|
|
if (isset($params['application']) && isset($params['name'])) {
|
|
$url = '/_security/privilege/' . $this->encode($params['application']) . '/' . $this->encode($params['name']);
|
|
$method = 'GET';
|
|
} elseif (isset($params['application'])) {
|
|
$url = '/_security/privilege/' . $this->encode($params['application']);
|
|
$method = 'GET';
|
|
} else {
|
|
$url = '/_security/privilege';
|
|
$method = 'GET';
|
|
}
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Retrieves roles in the native realm.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-role.html
|
|
*
|
|
* @param array{
|
|
* name: list, // A comma-separated list of role names
|
|
* 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 getRole(array $params = [])
|
|
{
|
|
if (isset($params['name'])) {
|
|
$url = '/_security/role/' . $this->encode($params['name']);
|
|
$method = 'GET';
|
|
} else {
|
|
$url = '/_security/role';
|
|
$method = 'GET';
|
|
}
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Retrieves role mappings.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-role-mapping.html
|
|
*
|
|
* @param array{
|
|
* name: list, // A comma-separated list of role-mapping names
|
|
* 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 getRoleMapping(array $params = [])
|
|
{
|
|
if (isset($params['name'])) {
|
|
$url = '/_security/role_mapping/' . $this->encode($params['name']);
|
|
$method = 'GET';
|
|
} else {
|
|
$url = '/_security/role_mapping';
|
|
$method = 'GET';
|
|
}
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Retrieves information about service accounts.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-service-accounts.html
|
|
*
|
|
* @param array{
|
|
* namespace: string, // An identifier for the namespace
|
|
* service: string, // An identifier for the service name
|
|
* 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 getServiceAccounts(array $params = [])
|
|
{
|
|
if (isset($params['namespace']) && isset($params['service'])) {
|
|
$url = '/_security/service/' . $this->encode($params['namespace']) . '/' . $this->encode($params['service']);
|
|
$method = 'GET';
|
|
} elseif (isset($params['namespace'])) {
|
|
$url = '/_security/service/' . $this->encode($params['namespace']);
|
|
$method = 'GET';
|
|
} else {
|
|
$url = '/_security/service';
|
|
$method = 'GET';
|
|
}
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Retrieves information of all service credentials for a service account.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-service-credentials.html
|
|
*
|
|
* @param array{
|
|
* namespace: string, // (REQUIRED) An identifier for the namespace
|
|
* service: string, // (REQUIRED) An identifier for the service name
|
|
* 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 getServiceCredentials(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['namespace','service'], $params);
|
|
$url = '/_security/service/' . $this->encode($params['namespace']) . '/' . $this->encode($params['service']) . '/credential';
|
|
$method = 'GET';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Creates a bearer token for access without requiring basic authentication.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-token.html
|
|
*
|
|
* @param array{
|
|
* 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 token request to get
|
|
* } $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 getToken(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/oauth2/token';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Retrieves information about users in the native realm and built-in users.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-user.html
|
|
*
|
|
* @param array{
|
|
* username: list, // A comma-separated list of usernames
|
|
* with_profile_uid: boolean, // flag to retrieve profile uid (if exists) associated to the user
|
|
* 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 getUser(array $params = [])
|
|
{
|
|
if (isset($params['username'])) {
|
|
$url = '/_security/user/' . $this->encode($params['username']);
|
|
$method = 'GET';
|
|
} else {
|
|
$url = '/_security/user';
|
|
$method = 'GET';
|
|
}
|
|
$url = $this->addQueryString($url, $params, ['with_profile_uid','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Retrieves security privileges for the logged in user.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-user-privileges.html
|
|
*
|
|
* @param array{
|
|
* 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 getUserPrivileges(array $params = [])
|
|
{
|
|
$url = '/_security/user/_privileges';
|
|
$method = 'GET';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Retrieves user profiles for the given unique ID(s).
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-user-profile.html
|
|
*
|
|
* @param array{
|
|
* uid: list, // (REQUIRED) A comma-separated list of unique identifier for user profiles
|
|
* data: list, // A comma-separated list of keys for which the corresponding application data are retrieved.
|
|
* 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 getUserProfile(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['uid'], $params);
|
|
$url = '/_security/profile/' . $this->encode($params['uid']);
|
|
$method = 'GET';
|
|
|
|
$url = $this->addQueryString($url, $params, ['data','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Creates an API key on behalf of another user.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-grant-api-key.html
|
|
*
|
|
* @param array{
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 api key request to create an API key
|
|
* } $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 grantApiKey(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/api_key/grant';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Determines whether the specified user has a specified list of privileges.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-has-privileges.html
|
|
*
|
|
* @param array{
|
|
* user: string, // Username
|
|
* 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 privileges to test
|
|
* } $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 hasPrivileges(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
if (isset($params['user'])) {
|
|
$url = '/_security/user/' . $this->encode($params['user']) . '/_has_privileges';
|
|
$method = empty($params['body']) ? 'GET' : 'POST';
|
|
} else {
|
|
$url = '/_security/user/_has_privileges';
|
|
$method = empty($params['body']) ? 'GET' : 'POST';
|
|
}
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Determines whether the users associated with the specified profile IDs have all the requested privileges.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-has-privileges-user-profile.html
|
|
*
|
|
* @param array{
|
|
* 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 privileges to check and the list of profile IDs
|
|
* } $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 hasPrivilegesUserProfile(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/profile/_has_privileges';
|
|
$method = empty($params['body']) ? 'GET' : 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Invalidates one or more API keys.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-invalidate-api-key.html
|
|
*
|
|
* @param array{
|
|
* 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 api key request to invalidate API key(s)
|
|
* } $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 invalidateApiKey(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/api_key';
|
|
$method = 'DELETE';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Invalidates one or more access tokens or refresh tokens.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-invalidate-token.html
|
|
*
|
|
* @param array{
|
|
* 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 token to invalidate
|
|
* } $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 invalidateToken(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/oauth2/token';
|
|
$method = 'DELETE';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Exchanges an OpenID Connection authentication response message for an Elasticsearch access token and refresh token pair
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-oidc-authenticate.html
|
|
*
|
|
* @param array{
|
|
* 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 OpenID Connect response to authenticate
|
|
* } $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 oidcAuthenticate(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/oidc/authenticate';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Invalidates a refresh token and access token that was generated from the OpenID Connect Authenticate API
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-oidc-logout.html
|
|
*
|
|
* @param array{
|
|
* 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) Access token and refresh token to invalidate
|
|
* } $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 oidcLogout(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/oidc/logout';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Creates an OAuth 2.0 authentication request as a URL string
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-oidc-prepare-authentication.html
|
|
*
|
|
* @param array{
|
|
* 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 OpenID Connect authentication realm configuration
|
|
* } $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 oidcPrepareAuthentication(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/oidc/prepare';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Adds or updates application privileges.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-privileges.html
|
|
*
|
|
* @param array{
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 privilege(s) to add
|
|
* } $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 putPrivileges(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/privilege/';
|
|
$method = 'PUT';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Adds and updates roles in the native realm.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-role.html
|
|
*
|
|
* @param array{
|
|
* name: string, // (REQUIRED) Role name
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 role to add
|
|
* } $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 putRole(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['name','body'], $params);
|
|
$url = '/_security/role/' . $this->encode($params['name']);
|
|
$method = 'PUT';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Creates and updates role mappings.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-role-mapping.html
|
|
*
|
|
* @param array{
|
|
* name: string, // (REQUIRED) Role-mapping name
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 role mapping to add
|
|
* } $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 putRoleMapping(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['name','body'], $params);
|
|
$url = '/_security/role_mapping/' . $this->encode($params['name']);
|
|
$method = 'PUT';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Adds and updates users in the native realm. These users are commonly referred to as native users.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-user.html
|
|
*
|
|
* @param array{
|
|
* username: string, // (REQUIRED) The username of the User
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 user to add
|
|
* } $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 putUser(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['username','body'], $params);
|
|
$url = '/_security/user/' . $this->encode($params['username']);
|
|
$method = 'PUT';
|
|
|
|
$url = $this->addQueryString($url, $params, ['refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Retrieves information for API keys using a subset of query DSL
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-query-api-key.html
|
|
*
|
|
* @param array{
|
|
* with_limited_by: boolean, // flag to show the limited-by role descriptors of API Keys
|
|
* 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, // From, size, query, sort and search_after
|
|
* } $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 queryApiKeys(array $params = [])
|
|
{
|
|
$url = '/_security/_query/api_key';
|
|
$method = empty($params['body']) ? 'GET' : 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['with_limited_by','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Exchanges a SAML Response message for an Elasticsearch access token and refresh token pair
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-saml-authenticate.html
|
|
*
|
|
* @param array{
|
|
* 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 SAML response to authenticate
|
|
* } $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 samlAuthenticate(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/saml/authenticate';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Verifies the logout response sent from the SAML IdP
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-saml-complete-logout.html
|
|
*
|
|
* @param array{
|
|
* 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 logout response to verify
|
|
* } $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 samlCompleteLogout(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/saml/complete_logout';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Consumes a SAML LogoutRequest
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-saml-invalidate.html
|
|
*
|
|
* @param array{
|
|
* 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 LogoutRequest message
|
|
* } $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 samlInvalidate(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/saml/invalidate';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Invalidates an access token and a refresh token that were generated via the SAML Authenticate API
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-saml-logout.html
|
|
*
|
|
* @param array{
|
|
* 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 tokens to invalidate
|
|
* } $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 samlLogout(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/saml/logout';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Creates a SAML authentication request
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-saml-prepare-authentication.html
|
|
*
|
|
* @param array{
|
|
* 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 realm for which to create the authentication request, identified by either its name or the ACS URL
|
|
* } $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 samlPrepareAuthentication(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['body'], $params);
|
|
$url = '/_security/saml/prepare';
|
|
$method = 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Generates SAML metadata for the Elastic stack SAML 2.0 Service Provider
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-saml-sp-metadata.html
|
|
*
|
|
* @param array{
|
|
* realm_name: string, // (REQUIRED) The name of the SAML realm to get the metadata for
|
|
* 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 samlServiceProviderMetadata(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['realm_name'], $params);
|
|
$url = '/_security/saml/metadata/' . $this->encode($params['realm_name']);
|
|
$method = 'GET';
|
|
|
|
$url = $this->addQueryString($url, $params, ['pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Get suggestions for user profiles that match specified search criteria.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-suggest-user-profile.html
|
|
*
|
|
* @param array{
|
|
* data: list, // A comma-separated list of keys for which the corresponding application data are retrieved.
|
|
* 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 suggestion definition for user profiles
|
|
* } $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 suggestUserProfiles(array $params = [])
|
|
{
|
|
$url = '/_security/profile/_suggest';
|
|
$method = empty($params['body']) ? 'GET' : 'POST';
|
|
|
|
$url = $this->addQueryString($url, $params, ['data','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Updates attributes of an existing API key.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-update-api-key.html
|
|
*
|
|
* @param array{
|
|
* id: string, // (REQUIRED) The ID of the API key to update
|
|
* 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 API key request to update attributes of an API key.
|
|
* } $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 updateApiKey(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['id'], $params);
|
|
$url = '/_security/api_key/' . $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',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
|
|
|
|
/**
|
|
* Update application specific data for the user profile of the given unique ID.
|
|
*
|
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-update-user-profile-data.html
|
|
*
|
|
* @param array{
|
|
* uid: string, // (REQUIRED) An unique identifier of the user profile
|
|
* if_seq_no: number, // only perform the update operation if the last operation that has changed the document has the specified sequence number
|
|
* if_primary_term: number, // only perform the update operation if the last operation that has changed the document has the specified primary term
|
|
* refresh: enum, // If `true` (the default) then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` then do nothing with refreshes.
|
|
* 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 application data to update
|
|
* } $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 updateUserProfileData(array $params = [])
|
|
{
|
|
$this->checkRequiredParameters(['uid','body'], $params);
|
|
$url = '/_security/profile/' . $this->encode($params['uid']) . '/_data';
|
|
$method = 'PUT';
|
|
|
|
$url = $this->addQueryString($url, $params, ['if_seq_no','if_primary_term','refresh','pretty','human','error_trace','source','filter_path']);
|
|
$headers = [
|
|
'Accept' => 'application/json',
|
|
'Content-Type' => 'application/json',
|
|
];
|
|
return $this->client->sendRequest($this->createRequest($method, $url, $headers, $params['body'] ?? null));
|
|
}
|
|
}
|