批量删除角色 API

编辑

批量删除原生域中的角色。

请求

编辑

DELETE /_security/role/

前提条件

编辑
  • 要使用此 API,您必须至少拥有 manage_security 集群特权。

描述

编辑

角色管理 API 通常是管理角色的首选方式,而不是使用基于文件的角色管理。批量删除角色 API 不能删除在角色文件中定义的角色。

路径参数

编辑
refresh
写请求的刷新策略的可选设置。默认为 Immediate。

请求体

编辑

以下参数可以在 DELETE 请求的主体中指定,并且与删除一组角色有关

names
(list) 要删除的角色名称列表。

示例

编辑

以下示例删除 my_admin_rolemy_user_role 角色

resp = client.security.bulk_delete_role(
    names=[
        "my_admin_role",
        "my_user_role"
    ],
)
print(resp)
const response = await client.security.bulkDeleteRole({
  names: ["my_admin_role", "my_user_role"],
});
console.log(response);
DELETE /_security/role
{
    "names": ["my_admin_role", "my_user_role"]
}

如果角色成功删除,则请求返回

{
    "deleted": [
        "my_admin_role",
        "my_user_role"
    ]
}

如果找不到角色,则找不到的角色将分组在 not_found

resp = client.security.bulk_delete_role(
    names=[
        "my_admin_role",
        "not_an_existing_role"
    ],
)
print(resp)
const response = await client.security.bulkDeleteRole({
  names: ["my_admin_role", "not_an_existing_role"],
});
console.log(response);
DELETE /_security/role
{
    "names": ["my_admin_role", "not_an_existing_role"]
}
{
    "deleted": [
        "my_admin_role"
    ],
    "not_found": [
        "not_an_existing_role"
    ]
}

如果请求失败或无效,则错误将分组在 errors

resp = client.security.bulk_delete_role(
    names=[
        "my_admin_role",
        "superuser"
    ],
)
print(resp)
const response = await client.security.bulkDeleteRole({
  names: ["my_admin_role", "superuser"],
});
console.log(response);
DELETE /_security/role
{
    "names": ["my_admin_role", "superuser"]
}
{
    "deleted": [
        "my_admin_role"
    ],
    "errors": {
        "count": 1,
        "details": {
            "superuser": {
                "type": "illegal_argument_exception",
                "reason": "role [superuser] is reserved and cannot be deleted"
            }
        }
    }
}