API RBAC
Note
Starting in Grafana 13,
/apiendpoints are being deprecated in favor of the/apisroute. Note that while Grafana is working on migrating existing APIs, currently there may not be an exact match to the legacy API you’re using.This change doesn’t disrupt or break your current setup. Legacy APIs are not being disabled and remain fully accessible and operative, but
/apiroutes will no longer be updated.To learn more refer to the new API structure in Grafana.
Используйте этот API для создания, обновления, удаления, получения и перечисления ролей.
Чтобы проверить, какие базовые или фиксированные роли имеют требуемые права, см. Определения ролей RBAC.
Требования
API управления доступом на основе ролей доступен только в Grafana Cloud или Grafana Enterprise. Подробнее о Grafana Enterprise.
Получение состояния
GET /api/access-control/status
Возвращает индикатор для проверки того, включено ли управление доступом на основе ролей.
Требуемые права
Пример запроса
GET /api/access-control/status
Accept: application/json
Content-Type: application/json
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"enabled": true
}
Коды состояния
Создание настраиваемых ролей и управление ими
Получение всех ролей
GET /api/access-control/roles
Возвращает все существующие роли. Ответ содержит все глобальные и локальные для организации роли для организации, в которой авторизован пользователь.
Параметры запроса:
includeHidden: необязательно. Установитеtrue, чтобы включить роли, которые являютсяhidden.
Требуемые права
Пример запроса
GET /api/access-control/roles
Accept: application/json
Content-Type: application/json
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
[
{
"version": 3,
"uid": "XvHQJq57z",
"name": "fixed:reports:reader",
"displayName": "Report reader",
"description": "Read all reports and shared report settings.",
"group": "Reports",
"updated": "2021-11-19T10:48:00+01:00",
"created": "2021-11-19T10:48:00+01:00",
"global": false
},
{
"version": 5,
"uid": "vi9mlLjGz",
"name": "fixed:datasources.permissions:writer",
"description: "Create, read or delete data source permissions.",
"global": true,
"updated": "2021-05-13T22:41:49+02:00",
"created": "2021-05-13T16:24:26+02:00"
}
]
Коды состояния
Получение роли
GET /api/access-control/roles/:uid
Возвращает роль для заданного UID.
Требуемые права
Пример запроса
GET /api/access-control/roles/PYnDO3rMk
Accept: application/json
Content-Type: application/json
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"version": 4,
"uid": "6dNwJq57z",
"name": "fixed:reports:writer",
"displayName": "Report writer",
"description": "Create, read, update, or delete all reports and shared report settings.",
"group": "Reports",
"permissions": [
{
"action": "reports:delete",
"scope": "reports:*",
"updated": "2021-11-19T10:48:00+01:00",
"created": "2021-11-19T10:48:00+01:00"
},
{
"action": "reports:read",
"scope": "reports:*",
"updated": "2021-11-19T10:48:00+01:00",
"created": "2021-11-19T10:48:00+01:00"
},
{
"action": "reports:send",
"scope": "reports:*",
"updated": "2021-11-19T10:48:00+01:00",
"created": "2021-11-19T10:48:00+01:00"
},
{
"action": "reports:create",
"scope": "",
"updated": "2021-11-19T10:48:00+01:00",
"created": "2021-11-19T10:48:00+01:00"
},
{
"action": "reports:write",
"scope": "reports:*",
"updated": "2021-11-19T10:48:00+01:00",
"created": "2021-11-19T10:48:00+01:00"
},
{
"action": "reports.settings:read",
"scope": "",
"updated": "2021-11-19T10:48:00+01:00",
"created": "2021-11-19T10:48:00+01:00"
},
{
"action": "reports.settings:write",
"scope": "",
"updated": "2021-11-19T10:48:00+01:00",
"created": "2021-11-19T10:48:00+01:00"
}
],
"updated": "2021-11-19T10:48:00+01:00",
"created": "2021-11-19T10:48:00+01:00",
"global": false
}
Коды состояния
Создание новой настраиваемой роли
POST /api/access-control/roles
Создаёт новую настраиваемую роль и сопоставляет заданные права этой роли. Обратите внимание, что роли с таким же префиксом, как у фиксированных ролей, создать нельзя.
Требуемые права
Область permissions:type:delegate гарантирует, что пользователи могут создавать настраиваемые роли только с теми же правами или подмножеством прав, которые есть у пользователя.
Например, если у пользователя нет требуемых прав на создание пользователей, он не сможет создать настраиваемую роль, которая это позволяет. Это сделано для предотвращения повышения привилегий.
Пример запроса
POST /api/access-control/roles
Accept: application/json
Content-Type: application/json
{
"uid": "jZrmlLCGka",
"name": "custom:delete:roles",
"displayName": "custom delete roles",
"description": "My custom role which gives users permissions to delete roles",
"group":"My Group",
"displayName": "My Custom Role",
"global": false,
"permissions": [
{
"action": "roles:delete",
"scope": "permissions:type:delegate"
}
]
}
Схема тела JSON
Permission
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"version": 2,
"uid": "jZrmlLCGka",
"name": "custom:delete:create:roles",
"displayName": "custom delete create roles",
"description": "My custom role which gives users permissions to delete and create roles",
"group":"My Group",
"displayName": "My Custom Role",
"global": false,
"permissions": [
{
"action": "roles:delete",
"scope": "permissions:type:delegate",
"updated": "2021-05-13T23:19:46+02:00",
"created": "2021-05-13T23:19:46+02:00"
}
],
"updated": "2021-05-13T23:20:51.416518+02:00",
"created": "2021-05-13T23:19:46+02:00"
}
Ошибки валидации при создании роли
Проверка прав выполняется только когда включена валидация прав (rbac.permission_validation_enabled = true).
Она включена по умолчанию начиная с Grafana 10.2.
Недопустимое действие
Следующий пример показывает запрос с недопустимым действием. Действие serviceaccounts.permissions:reader не является допустимым действием. Допустимым действием должно быть serviceaccounts.permissions:read.
POST /api/access-control/roles HTTP/1.1
Content-Type: application/json
{
"Name": "Read Service Account with id 6",
"Permissions": [
{
"action": "serviceaccounts.permissions:reader",
"scope": "serviceaccounts:uid:6"
}
]
}
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"extra": {
"validationError": "the provided action was not found in the list of valid actions: serviceaccounts.permissions:reader"
},
"message": "Permission contains an invalid action",
"messageId": "accesscontrol.permission-invalid-action",
"statusCode": 400,
"traceID": ""
}
Недопустимая область действия
Следующий пример показывает запрос с недопустимой областью действия. Область serviceaccounts:serviceaccount6 не является допустимой областью для действия serviceaccounts.permissions:read. Допустимые области для этого действия: *, serviceaccounts:* и serviceaccounts:id:*.
POST /api/access-control/roles HTTP/1.1
Content-Type: application/json
{
"Name": "Read Service Account with id 6",
"Permissions": [
{
"action": "serviceaccounts.permissions:read",
"scope": "serviceaccounts:serviceaccount6"
}
]
}
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"extra": {
"validationError": "unknown scope: serviceaccounts:serviceaccount6 for action: serviceaccounts.permissions:read provided, expected prefixes are [* serviceaccounts:* serviceaccounts:id:*]"
},
"message": "Invalid scope",
"messageId": "accesscontrol.permission-invalid-scope",
"statusCode": 400,
"traceID": ""
}
Коды состояния
Обновление роли
PUT /api/access-control/roles/:uid
Обновляет роль с заданным UID и её права. Операция идемпотентна, и все права роли будут заменены на основе содержимого запроса. Передайте текущую version роли (из последнего ответа GET или list) для оптимистичной блокировки; запрос завершится ошибкой, если роль была обновлена где-то ещё. Сервер автоматически увеличивает хранимую версию при каждом обновлении.
Вы можете обновлять права ролей custom и basic. Однако роли fixed обновлять нельзя.
Требуемые права
Область permissions:type:delegate гарантирует, что пользователи могут обновлять настраиваемые роли только с теми же правами или подмножеством прав, которые есть у пользователя.
Например, если у пользователя нет требуемых прав на создание пользователей, он не сможет обновить настраиваемую роль, которая это позволяет. Это сделано для предотвращения повышения привилегий.
Пример запроса
PUT /api/access-control/roles/jZrmlLCGka
Accept: application/json
Content-Type: application/json
{
"version": 3,
"name": "custom:delete:write:roles",
"displayName": "custom delete write roles",
"description": "My custom role which gives users permissions to delete and write roles",
"group":"My Group",
"displayName": "My Custom Role",
"global": false,
"permissions": [
{
"action": "roles:delete",
"scope": "permissions:type:delegate"
},
{
"action": "roles:write",
"scope": "permissions:type:delegate"
}
]
}
Схема тела JSON
Permission
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"version":3,
"uid":"jZrmlLCGka",
"name":"custom:delete:write:roles",
"displayName":"custom delete write roles",
"description":"My custom role which gives users permissions to delete and write roles",
"group":"My Group",
"displayName": "My Custom Role",
"permissions":[
{
"action":"roles:delete",
"scope":"permissions:type:delegate",
"updated":"2021-08-06T18:27:40+02:00",
"created":"2021-08-06T18:27:40+02:00"
},
{
"action":"roles:write",
"scope":"permissions:type:delegate",
"updated":"2021-08-06T18:27:41+02:00",
"created":"2021-08-06T18:27:41+02:00"
}
],
"updated":"2021-08-06T18:27:41+02:00",
"created":"2021-08-06T18:27:40+02:00",
"global":false
}
Ошибки валидации при обновлении роли
Проверка прав выполняется только когда включена валидация прав (rbac.permission_validation_enabled = true).
Она включена по умолчанию начиная с Grafana 10.2.
Дополнительные сведения см. в разделе Ошибки валидации при создании роли.
Коды состояния
Удаление настраиваемой роли
DELETE /api/access-control/roles/:uid?force=false
Удаляет роль с заданным UID и её права. Если роль назначена, операция удаления завершится ошибкой, если только параметр запроса force не установлен в true — в этом случае все назначения также будут удалены.
Требуемые права
Область permissions:type:delegate гарантирует, что пользователи могут удалить настраиваемую роль только с теми же правами или подмножеством прав, которые есть у пользователя.
Например, если у пользователя нет требуемых прав на создание пользователей, он не сможет удалить настраиваемую роль, которая это позволяет.
Пример запроса
DELETE /api/access-control/roles/jZrmlLCGka?force=true&global=false
Accept: application/json
Параметры запроса
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"message": "Role deleted"
}
Коды состояния
Создание и удаление назначений ролей пользователям
Получение списка ролей, назначенных пользователю
GET /api/access-control/users/:userId/roles
Возвращает список ролей, которые были напрямую назначены заданному пользователю. Список не включает базовые роли (Viewer, Editor, Admin или Grafana Admin), а также роли, унаследованные от команды.
Параметры запроса:
includeHidden: необязательно. Установитеtrue, чтобы включить роли, которые являютсяhidden.includeMapped: необязательно. Установитеtrue, чтобы включить роли, сопоставленные через функцию синхронизации атрибутов групп.
Требуемые права
Пример запроса
GET /api/access-control/users/1/roles
Accept: application/json
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
[
{
"version": 4,
"uid": "6dNwJq57z",
"name": "fixed:reports:writer",
"displayName": "Report writer",
"description": "Create, read, update, or delete all reports and shared report settings.",
"group": "Reports",
"updated": "2021-11-19T10:48:00+01:00",
"created": "2021-11-19T10:48:00+01:00",
"global": false
}
]
Коды состояния
Получение своих прав
GET /api/access-control/user/permissions
Возвращает список прав, предоставленных авторизованному пользователю.
Требуемые права
Права не требуются.
Параметры запроса
Пример запроса
GET /api/access-control/user/permissions
Accept: application/json
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"dashboards:read": ["dashboards:uid:70KrY6IVz"],
"dashboards:write": ["dashboards:uid:70KrY6IVz"],
"datasources.id:read": ["datasources:*"],
"datasources:read": ["datasources:*"],
"datasources:explore": [""],
"datasources:query": ["datasources:uid:grafana"],
"datasources:read": ["datasources:uid:grafana"],
"orgs:read": [""]
}
Коды состояния
Получение списка прав, назначенных пользователю
GET /api/access-control/users/:userId/permissions
Возвращает список прав, предоставленных заданному пользователю.
Требуемые права
Пример запроса
GET /api/access-control/users/1/permissions
Accept: application/json
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
[
{
"action": "ldap.status:read",
"scope": ""
},
{
"action": "ldap.user:read",
"scope": ""
}
]
Коды состояния
Добавление назначения роли пользователю
POST /api/access-control/users/:userId/roles
Назначает роль конкретному пользователю.
Для массовых обновлений рассмотрите Установка назначений ролей пользователя.
Требуемые права
Область permissions:type:delegate гарантирует, что пользователи могут назначать только те роли, которые имеют те же права или подмножество прав, которые есть у пользователя.
Например, если у пользователя нет требуемых прав на создание пользователей, он не сможет назначить роль, которая это позволяет. Это сделано для предотвращения повышения привилегий.
Пример запроса
POST /api/access-control/users/1/roles
Accept: application/json
Content-Type: application/json
{
"global": false,
"roleUid": "XvHQJq57z"
}
Схема тела JSON
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"message": "Role added to the user."
}
Коды состояния
Удаление назначения роли пользователю
DELETE /api/access-control/users/:userId/roles/:roleUID
Отзывает роль у пользователя.
Для массовых обновлений рассмотрите Установка назначений ролей пользователя.
Требуемые права
Область permissions:type:delegate гарантирует, что пользователи могут снять только те роли, которые имеют те же права или подмножество прав, которые есть у пользователя.
Например, если у пользователя нет требуемых прав на создание пользователей, он не сможет снять роль, которая это позволяет. Это сделано для предотвращения повышения привилегий.
Параметры запроса
Пример запроса
DELETE /api/access-control/users/1/roles/AFUXBHKnk
Accept: application/json
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"message": "Role removed from user."
}
Коды состояния
Установка назначений ролей пользователя
PUT /api/access-control/users/:userId/roles
Обновляет назначения ролей пользователя, приводя их в соответствие с предоставленным набором UID. Это удалит любые назначенные роли, которых нет в запросе, и добавит роли, которые есть в наборе, но ещё не назначены пользователю.
Если вы хотите добавить или удалить одну роль, рассмотрите использование Добавление назначения роли пользователю или Удаление назначения роли пользователю вместо этого.
Требуемые права
Область permissions:type:delegate гарантирует, что пользователи могут назначать или снимать только те роли, которые имеют те же права или подмножество прав, которые есть у пользователя.
Например, если у пользователя нет требуемых прав на создание пользователей, он не сможет назначить или снять роль, которая это позволяет. Это сделано для предотвращения повышения привилегий.
Пример запроса
PUT /api/access-control/users/1/roles
Accept: application/json
Content-Type: application/json
{
"global": false,
"roleUids": [
"ZiHQJq5nk",
"GzNQ1357k"
]
}
Схема тела JSON
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"message": "User roles have been updated."
}
Коды состояния
Создание и удаление назначений ролей сервисным учётным записям
Получение списка ролей, назначенных сервисной учётной записи
GET /api/access-control/users/:serviceAccountId/roles
Возвращает список ролей, которые были напрямую назначены заданной сервисной учётной записи. Список не включает базовые роли (Viewer, Editor, Admin или Grafana Admin).
Параметры запроса:
includeHidden: необязательно. Установитеtrue, чтобы включить роли, которые являютсяhidden.
Требуемые права
Пример запроса
GET /api/access-control/users/1/roles
Accept: application/json
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
[
{
"version": 4,
"uid": "6dNwJq57z",
"name": "fixed:reports:writer",
"displayName": "Report writer",
"description": "Create, read, update, or delete all reports and shared report settings.",
"group": "Reports",
"updated": "2021-11-19T10:48:00+01:00",
"created": "2021-11-19T10:48:00+01:00",
"global": false
}
]
Коды состояния
Получение списка прав, назначенных сервисной учётной записи
GET /api/access-control/users/:serviceAccountId/permissions
Возвращает список прав, которые есть у заданной сервисной учётной записи.
Требуемые права
Пример запроса
GET /api/access-control/users/1/permissions
Accept: application/json
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
[
{
"action": "ldap.status:read",
"scope": ""
},
{
"action": "ldap.user:read",
"scope": ""
}
]
Коды состояния
Добавление назначения роли сервисной учётной записи
POST /api/access-control/users/:serviceAccountId/roles
Назначает роль конкретной сервисной учётной записи.
Для массовых обновлений рассмотрите Установка назначений ролей сервисной учётной записи.
Требуемые права
Область permissions:type:delegate гарантирует, что пользователи могут назначать только те роли, которые имеют те же права или подмножество прав, которые есть у пользователя.
Например, если у пользователя нет требуемых прав на создание пользователей, он не сможет назначить роль, которая это позволяет. Это сделано для предотвращения повышения привилегий.
Пример запроса
POST /api/access-control/users/1/roles
Accept: application/json
Content-Type: application/json
{
"global": false,
"roleUid": "XvHQJq57z"
}
Схема тела JSON
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"message": "Role added to the user."
}
Коды состояния
Удаление назначения роли сервисной учётной записи
DELETE /api/access-control/users/:serviceAccountId/roles/:roleUID
Отзывает роль у сервисной учётной записи.
Для массовых обновлений рассмотрите Установка назначений ролей сервисной учётной записи.
Требуемые права
Область permissions:type:delegate гарантирует, что пользователи могут снять только те роли, которые имеют те же права или подмножество прав, которые есть у пользователя.
Например, если у пользователя нет требуемых прав на создание пользователей, он не сможет снять роль, которая это позволяет. Это сделано для предотвращения повышения привилегий.
Параметры запроса
Пример запроса
DELETE /api/access-control/users/1/roles/AFUXBHKnk
Accept: application/json
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"message": "Role removed from user."
}
Коды состояния
Установка назначений ролей сервисной учётной записи
PUT /api/access-control/users/:serviceAccountId/roles
Обновляет назначения ролей сервисной учётной записи, приводя их в соответствие с предоставленным набором UID. Это удалит любые назначенные роли, которых нет в запросе, и добавит роли, которые есть в наборе, но ещё не назначены сервисной учётной записи.
Если вы хотите добавить или удалить одну роль, рассмотрите использование Добавление назначения роли сервисной учётной записи или Удаление назначения роли сервисной учётной записи вместо этого.
Требуемые права
Область permissions:type:delegate гарантирует, что пользователи могут назначать или снимать только те роли, которые имеют те же права или подмножество прав, которые есть у пользователя.
Например, если у пользователя нет требуемых прав на создание пользователей, он не сможет назначить или снять роль, которая это позволяет. Это сделано для предотвращения повышения привилегий.
Пример запроса
PUT /api/access-control/users/1/roles
Accept: application/json
Content-Type: application/json
{
"global": false,
"roleUids": [
"ZiHQJq5nk",
"GzNQ1357k"
]
}
Схема тела JSON
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"message": "User roles have been updated."
}
Коды состояния
Создание и удаление назначений ролей командам
Получение списка ролей, назначенных команде
GET /api/access-control/teams/:teamId/roles
Возвращает список ролей, которые были напрямую назначены заданной команде.
Параметры запроса:
includeHidden: необязательно. Установитеtrue, чтобы включить роли, которые являютсяhidden.
Требуемые права
Пример запроса
GET /api/access-control/teams/1/roles
Accept: application/json
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
[
{
"version": 4,
"uid": "j08ZBi-nk",
"name": "fixed:licensing:reader",
"displayName": "Licensing reader",
"description": "Read licensing information and licensing reports.",
"group": "Licenses",
"updated": "2022-02-03T14:19:50+01:00",
"created": "0001-01-01T00:00:00Z",
"global": false
}
]
Коды состояния
Добавление назначения роли команде
POST /api/access-control/teams/:teamId/roles
Назначает роль конкретной команде.
Для массовых обновлений рассмотрите Установка назначений ролей команды.
Требуемые права
Область permissions:type:delegate гарантирует, что пользователи могут назначать только те роли, которые имеют те же права или подмножество прав, которые есть у пользователя.
Например, если у пользователя нет прав, требуемых для создания пользователей, он не сможет назначить роль, содержащую эти права. Это сделано для предотвращения повышения привилегий.
Пример запроса
POST /api/access-control/teams/1/roles
Accept: application/json
Content-Type: application/json
{
"roleUid": "XvHQJq57z"
}
Схема тела JSON
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"message": "Role added to the team."
}
Коды состояния
Удаление назначения роли команде
DELETE /api/access-control/teams/:teams/roles/:roleUID
Отзывает роль у команды.
Для массовых обновлений рассмотрите Установка назначений ролей команды.
Требуемые права
Область permissions:type:delegate гарантирует, что пользователи могут снять только те роли, которые имеют те же права или подмножество прав, которые есть у пользователя.
Например, если у пользователя нет прав, требуемых для создания пользователей, он не сможет назначить роль, содержащую эти права. Это сделано для предотвращения повышения привилегий.```
Пример запроса
DELETE /api/access-control/teams/1/roles/AFUXBHKnk
Accept: application/json
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"message": "Role removed from team."
}
Коды состояния
Установка назначений ролей команды
PUT /api/access-control/teams/:teamId/roles
Обновляет назначения ролей команды, приводя их в соответствие с предоставленным набором UID. Это удалит любые назначенные роли, которых нет в запросе, и добавит роли, которые есть в наборе, но ещё не назначены пользователю.
Если вы хотите добавить или удалить одну роль, рассмотрите использование Добавление назначения роли команде или Удаление назначения роли команде вместо этого.
Требуемые права
Область permissions:type:delegate гарантирует, что пользователи могут назначать или снимать только те роли, которые имеют те же права или подмножество прав, которые есть у пользователя.
Например, если у пользователя нет требуемых прав на создание пользователей, он не сможет назначить или снять роль команде, которая это позволяет. Это сделано для предотвращения повышения привилегий.
Пример запроса
PUT /api/access-control/teams/1/roles
Accept: application/json
Content-Type: application/json
{
"roleUids": [
"ZiHQJq5nk",
"GzNQ1357k"
]
}
Схема тела JSON
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"message": "Team roles have been updated."
}
Коды состояния
Сброс базовых ролей к значениям по умолчанию
POST /api/access-control/roles/hard-reset
Область permissions:type:escalate позволяет пользователям сбрасывать права базовых ролей.
Это может привести к тому, что базовые роли будут иметь права, превышающие права вызывающего пользователя.
Сбрасывает права базовых ролей к значениям по умолчанию.
Требуемые права
Пример запроса
POST /api/access-control/roles/hard-reset
Accept: application/json
Content-Type: application/json
{
"BasicRoles": true
}
Схема тела JSON
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"message": "Reset performed"
}