Delete user-managed service accounts Generally available; Added in 9.6.0

DELETE /_security/service/{namespace}/{service}

Delete a service account from a namespace of your own.

Deleting an account that still has service tokens is rejected unless force is true. A forced delete leaves the tokens behind: they cannot authenticate while no account of that name exists, and recreating the account is rejected until they are deleted.

NOTE: The elastic namespace is reserved for the built-in service accounts that ship with Elasticsearch. A name that no user-managed service account could have is rejected rather than reported as not found. The manage_service_account privilege does not authorize this API.

Required authorization

  • Cluster privileges: manage_security
More about service accounts

Path parameters

  • namespace string Required

    The namespace, which is a top-level grouping of service accounts. It must start with a letter or digit and can contain only letters, digits, hyphens, and underscores, up to a maximum of 128 characters. It cannot be elastic, which is reserved for built-in service accounts.

  • service string Required

    The service name. It must start with a letter or digit and can contain only letters, digits, hyphens, and underscores, up to a maximum of 128 characters.

Query parameters

  • refresh string

    If wait_for (the default) then wait for a refresh to make this operation visible to search, if true then refresh the affected shards to make this operation visible to search, if false then do nothing with refreshes.

    Default value is wait_for.

  • force boolean

    If false (the default), deleting a service account that still has service tokens is rejected. If true, the account is deleted and its tokens are left in place.

    Default value is false.

Responses

  • 200 application/json
    Hide response attribute Show response attribute object
    • found boolean Required

      If the service account is successfully deleted, the request returns {"found": true}. Otherwise, the response will have status code 404 and found is set to false.

DELETE /_security/service/{namespace}/{service}
DELETE /_security/service/my-namespace/my-service
resp = client.security.delete_user_managed_service_account(
    namespace="my-namespace",
    service="my-service",
)
const response = await client.security.deleteUserManagedServiceAccount({
  namespace: "my-namespace",
  service: "my-service",
});
response = client.security.delete_user_managed_service_account(
  namespace: "my-namespace",
  service: "my-service"
)
$resp = $client->security()->deleteUserManagedServiceAccount([
    "namespace" => "my-namespace",
    "service" => "my-service",
]);
curl -X DELETE -H "Authorization: ApiKey $ELASTIC_API_KEY" "$ELASTICSEARCH_URL/_security/service/my-namespace/my-service"
Response examples (200)
A successful response from `DELETE /_security/service/my-namespace/my-service`.
{
  "found": true
}