# Users

## Open a new session

> \*\*API Key Scope\*\*: sessions / create

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[],"paths":{"/users/sign_in":{"post":{"summary":"Open a new session","operationId":"sign_in","description":"**API Key Scope**: sessions / create","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/sign_in"}}}},"responses":{"201":{"description":"Successful user sign in.","headers":{"Authorization":{"description":"JWT token","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/user"}}}}}}}},"components":{"schemas":{"sign_in":{"type":"object","properties":{"user":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"}}}}},"user":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"user_id":{"type":"integer"},"group_id":{"type":"integer"},"username":{"type":"string"},"password":{"type":"string","description":"Creation and update only"},"email":{"type":"string"},"is_admin":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}}}}}}
```

## Close the session

> \*\*API Key Scope\*\*: sessions / destroy

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/users/sign_out":{"delete":{"summary":"Close the session","operationId":"sign_out","description":"**API Key Scope**: sessions / destroy","tags":["users"],"responses":{"204":{"description":"Successful user sign out."}}}}}}
```

## Lists all configurations of current user.

> \*\*API Key Scope\*\*: configurations / index

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"configuration_index":{"description":"List of configurations.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/user_configuration_collection"}}}}},"schemas":{"user_configuration_collection":{"type":"object","properties":{"configurations":{"type":"array","items":{"$ref":"#/components/schemas/user_configuration"}},"count":{"type":"integer"}}},"user_configuration":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"key":{"type":"string"},"value":{"type":"string"}}}},"parameters":{"limit":{"name":"limit","in":"query","description":"The number of items to display for pagination.","schema":{"type":"integer"}},"offset":{"name":"offset","in":"query","description":"The number of items to skip for pagination.","schema":{"type":"integer"}}}},"paths":{"/users/me/configurations":{"get":{"summary":"Lists all configurations of current user.","tags":["users"],"operationId":"index_configurations","description":"**API Key Scope**: configurations / index","responses":{"200":{"$ref":"#/components/responses/configuration_index"}},"parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/offset"}]}}}}
```

## Creates a new configuration value for current user.

> \*\*API Key Scope\*\*: configurations / create

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"configuration_show":{"description":"A specific file.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/user_configuration"}}}}},"schemas":{"user_configuration":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"key":{"type":"string"},"value":{"type":"string"}}}},"requestBodies":{"configuration_body":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/user_configuration"}}},"required":true}}},"paths":{"/users/me/configurations":{"post":{"summary":"Creates a new configuration value for current user.","operationId":"create_configuration","description":"**API Key Scope**: configurations / create","tags":["users"],"responses":{"201":{"$ref":"#/components/responses/configuration_show"}},"requestBody":{"$ref":"#/components/requestBodies/configuration_body"}}}}}
```

## Displays a specific configuration value.

> \*\*API Key Scope\*\*: configurations / show

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"configuration_show":{"description":"A specific file.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/user_configuration"}}}}},"schemas":{"user_configuration":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"key":{"type":"string"},"value":{"type":"string"}}}}},"paths":{"/users/me/configurations/{configuration_id}":{"get":{"summary":"Displays a specific configuration value.","operationId":"show_configuration","description":"**API Key Scope**: configurations / show","tags":["users"],"responses":{"200":{"$ref":"#/components/responses/configuration_show"}}}}}}
```

## Updates a specific configuration value.

> \*\*API Key Scope\*\*: configurations / update

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"configuration_show":{"description":"A specific file.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/user_configuration"}}}}},"schemas":{"user_configuration":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"key":{"type":"string"},"value":{"type":"string"}}}},"requestBodies":{"configuration_body":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/user_configuration"}}},"required":true}}},"paths":{"/users/me/configurations/{configuration_id}":{"put":{"summary":"Updates a specific configuration value.","operationId":"update_configuration","description":"**API Key Scope**: configurations / update","tags":["users"],"responses":{"200":{"$ref":"#/components/responses/configuration_show"}},"requestBody":{"$ref":"#/components/requestBodies/configuration_body"}}}}}
```

## Destroys a specific configuration value.

> \*\*API Key Scope\*\*: configurations / destroy

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/users/me/configurations/{configuration_id}":{"delete":{"summary":"Destroys a specific configuration value.","operationId":"destroy_configuration","description":"**API Key Scope**: configurations / destroy","tags":["users"],"responses":{"204":{"description":"Configuration destroyed."}}}}}}
```

## Lists all API keys of current user.

> \*\*API Key Scope\*\*: api\_keys / index

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"api_key_index":{"description":"List of API Keys.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api_key_collection"}}}}},"schemas":{"api_key_collection":{"type":"object","properties":{"api_keys":{"type":"array","items":{"$ref":"#/components/schemas/api_key"}},"count":{"type":"integer"}}},"api_key":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"key":{"type":"string","readOnly":true},"name":{"type":"string"}}}},"parameters":{"limit":{"name":"limit","in":"query","description":"The number of items to display for pagination.","schema":{"type":"integer"}},"offset":{"name":"offset","in":"query","description":"The number of items to skip for pagination.","schema":{"type":"integer"}}}},"paths":{"/users/me/api_keys":{"get":{"summary":"Lists all API keys of current user.","tags":["users"],"operationId":"index_api_keys","description":"**API Key Scope**: api_keys / index","responses":{"200":{"$ref":"#/components/responses/api_key_index"}},"parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/offset"}]}}}}
```

## Creates a new API Key for current user.

> \*\*API Key Scope\*\*: api\_keys / create

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"api_key_show":{"description":"A specific file.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api_key_full"}}}}},"schemas":{"api_key_full":{"allOf":[{"$ref":"#/components/schemas/api_key"},{"type":"object","properties":{"api_key_scopes":{"type":"array","items":{"$ref":"#/components/schemas/api_key_scope"}}}}]},"api_key":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"key":{"type":"string","readOnly":true},"name":{"type":"string"}}},"api_key_scope":{"type":"object","properties":{"controller":{"type":"string"},"action":{"type":"string"}}}},"requestBodies":{"api_key_body":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api_key_full"}}},"required":true}}},"paths":{"/users/me/api_keys":{"post":{"summary":"Creates a new API Key for current user.","operationId":"create_api_key","description":"**API Key Scope**: api_keys / create","tags":["users"],"responses":{"201":{"$ref":"#/components/responses/api_key_show"}},"requestBody":{"$ref":"#/components/requestBodies/api_key_body"}}}}}
```

## Displays a specific API Key with its scopes.

> \*\*API Key Scope\*\*: api\_keys / show

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"api_key_show":{"description":"A specific file.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api_key_full"}}}}},"schemas":{"api_key_full":{"allOf":[{"$ref":"#/components/schemas/api_key"},{"type":"object","properties":{"api_key_scopes":{"type":"array","items":{"$ref":"#/components/schemas/api_key_scope"}}}}]},"api_key":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"key":{"type":"string","readOnly":true},"name":{"type":"string"}}},"api_key_scope":{"type":"object","properties":{"controller":{"type":"string"},"action":{"type":"string"}}}}},"paths":{"/users/me/api_keys/{api_key_id}":{"get":{"summary":"Displays a specific API Key with its scopes.","operationId":"show_api_key","description":"**API Key Scope**: api_keys / show","tags":["users"],"responses":{"200":{"$ref":"#/components/responses/api_key_show"}}}}}}
```

## Updates a specific API Key.

> \*\*API Key Scope\*\*: api\_keys / update

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"api_key_show":{"description":"A specific file.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api_key_full"}}}}},"schemas":{"api_key_full":{"allOf":[{"$ref":"#/components/schemas/api_key"},{"type":"object","properties":{"api_key_scopes":{"type":"array","items":{"$ref":"#/components/schemas/api_key_scope"}}}}]},"api_key":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"key":{"type":"string","readOnly":true},"name":{"type":"string"}}},"api_key_scope":{"type":"object","properties":{"controller":{"type":"string"},"action":{"type":"string"}}}},"requestBodies":{"api_key_body":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api_key_full"}}},"required":true}}},"paths":{"/users/me/api_keys/{api_key_id}":{"put":{"summary":"Updates a specific API Key.","operationId":"update_api_key","description":"**API Key Scope**: api_keys / update","tags":["users"],"responses":{"200":{"$ref":"#/components/responses/api_key_show"}},"requestBody":{"$ref":"#/components/requestBodies/api_key_body"}}}}}
```

## Destroys a specific API Key.

> \*\*API Key Scope\*\*: api\_keys / destroy

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/users/me/api_keys/{api_key_id}":{"delete":{"summary":"Destroys a specific API Key.","operationId":"destroy_api_key","description":"**API Key Scope**: api_keys / destroy","tags":["users"],"responses":{"204":{"description":"API Key destroyed."}}}}}}
```

## Displays current user.

> \*\*API Key Scope\*\*: users / show

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"users_show":{"description":"A specific user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/user"}}}},"unauthorized":{"description":"User is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/generic_error"}}}}},"schemas":{"user":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"user_id":{"type":"integer"},"group_id":{"type":"integer"},"username":{"type":"string"},"password":{"type":"string","description":"Creation and update only"},"email":{"type":"string"},"is_admin":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}}},"generic_error":{"type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/users/me":{"get":{"summary":"Displays current user.","operationId":"show_current_user","description":"**API Key Scope**: users / show","tags":["users"],"responses":{"200":{"$ref":"#/components/responses/users_show"},"401":{"$ref":"#/components/responses/unauthorized"}}}}}}
```

## Lists all users.

> \*\*API Key Scope\*\*: users / index

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"users_index":{"description":"List of users.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/user_collection"}}}}},"schemas":{"user_collection":{"type":"object","properties":{"count":{"type":"integer","readOnly":true},"users":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/user"}}}},"user":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"user_id":{"type":"integer"},"group_id":{"type":"integer"},"username":{"type":"string"},"password":{"type":"string","description":"Creation and update only"},"email":{"type":"string"},"is_admin":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}}}},"parameters":{"limit":{"name":"limit","in":"query","description":"The number of items to display for pagination.","schema":{"type":"integer"}},"offset":{"name":"offset","in":"query","description":"The number of items to skip for pagination.","schema":{"type":"integer"}}}},"paths":{"/users":{"get":{"summary":"Lists all users.","tags":["users"],"operationId":"index_users","description":"**API Key Scope**: users / index","responses":{"200":{"$ref":"#/components/responses/users_index"}},"parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/offset"}]}}}}
```

## Creates a new user.

> \*\*API Key Scope\*\*: users / create

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"users_show":{"description":"A specific user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/user"}}}},"unprocessable_entity":{"description":"The received resource was not correctly formatted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}},"schemas":{"user":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"user_id":{"type":"integer"},"group_id":{"type":"integer"},"username":{"type":"string"},"password":{"type":"string","description":"Creation and update only"},"email":{"type":"string"},"is_admin":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}}},"error":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/attribute_error"}},"description":"Parsable objects describing the errors. The key is the invalid attribute name."},"messages":{"type":"array","description":"English description of the errors.","items":{"type":"string"}}}},"attribute_error":{"required":["error"],"type":"object","properties":{"error":{"type":"string"}},"discriminator":{"propertyName":"error"}}},"requestBodies":{"user_body":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/user"}}},"required":true}}},"paths":{"/users":{"post":{"summary":"Creates a new user.","operationId":"create_user","description":"**API Key Scope**: users / create","tags":["users"],"responses":{"201":{"$ref":"#/components/responses/users_show"},"422":{"$ref":"#/components/responses/unprocessable_entity"}},"requestBody":{"$ref":"#/components/requestBodies/user_body"}}}}}
```

## Displays a specific user.

> \*\*API Key Scope\*\*: users / show

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"users_show":{"description":"A specific user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/user"}}}}},"schemas":{"user":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"user_id":{"type":"integer"},"group_id":{"type":"integer"},"username":{"type":"string"},"password":{"type":"string","description":"Creation and update only"},"email":{"type":"string"},"is_admin":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}}}}},"paths":{"/users/{user_id}":{"get":{"summary":"Displays a specific user.","operationId":"show_user","description":"**API Key Scope**: users / show","tags":["users"],"responses":{"200":{"$ref":"#/components/responses/users_show"}}}}}}
```

## Updates a specific user.

> \*\*API Key Scope\*\*: users / update

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"users_show":{"description":"A specific user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/user"}}}},"unprocessable_entity":{"description":"The received resource was not correctly formatted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}},"schemas":{"user":{"type":"object","properties":{"id":{"type":"integer","readOnly":true},"user_id":{"type":"integer"},"group_id":{"type":"integer"},"username":{"type":"string"},"password":{"type":"string","description":"Creation and update only"},"email":{"type":"string"},"is_admin":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}}},"error":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/attribute_error"}},"description":"Parsable objects describing the errors. The key is the invalid attribute name."},"messages":{"type":"array","description":"English description of the errors.","items":{"type":"string"}}}},"attribute_error":{"required":["error"],"type":"object","properties":{"error":{"type":"string"}},"discriminator":{"propertyName":"error"}}},"requestBodies":{"user_body":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/user"}}},"required":true}}},"paths":{"/users/{user_id}":{"put":{"summary":"Updates a specific user.","operationId":"update_user","description":"**API Key Scope**: users / update","tags":["users"],"responses":{"200":{"$ref":"#/components/responses/users_show"},"422":{"$ref":"#/components/responses/unprocessable_entity"}},"requestBody":{"$ref":"#/components/requestBodies/user_body"}}}}}
```

## Destroys a specific user.

> \*\*API Key Scope\*\*: users / destroy

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/users/{user_id}":{"delete":{"summary":"Destroys a specific user.","operationId":"destroy_user","description":"**API Key Scope**: users / destroy","tags":["users"],"responses":{"204":{"description":"Container destroyed."}}}}}}
```

## List all system users.

> \*\*API Key Scope\*\*: users / systems

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"system_users":{"description":"List of users.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/system_user_collection"}}}}},"schemas":{"system_user_collection":{"type":"object","properties":{"count":{"type":"integer","readOnly":true},"users":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/system_user"}}}},"system_user":{"type":"object","properties":{"name":{"type":"string","readOnly":true},"uid":{"type":"integer","readOnly":true},"gid":{"type":"integer","readOnly":true},"info":{"type":"string","readOnly":true}}}}},"paths":{"/users/-/systems":{"get":{"summary":"List all system users.","operationId":"index_system_users","description":"**API Key Scope**: users / systems","tags":["users"],"responses":{"200":{"$ref":"#/components/responses/system_users"}}}}}}
```

## List all system groups.

> \*\*API Key Scope\*\*: groups / systems

```json
{"openapi":"3.0.1","info":{"title":"Nodeum API","version":"2.1.0"},"servers":[{"url":"{url}/api/v2","variables":{"url":{"default":"http://localhost","description":"URL of server"}}}],"security":[{"BasicAuth":[]},{"BearerAuth":[]},{"JWT":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Pass the username and password of a user in the authorization header.\nThis currently gives full access."},"BearerAuth":{"type":"apiKey","description":"Create an API Key associated to user.\nAccess can be restricted with the scope.\nEach API call described below has a scoped mentionned in its description.\n\nFor example :\n\n**API Key Scope**: files / index\n\nThis means that the API key should have a scope with controller as *files*\nand the action as *index*.","name":"Authorization","in":"header"},"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"responses":{"system_groups":{"description":"List of user groups.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/system_group_collection"}}}}},"schemas":{"system_group_collection":{"type":"object","properties":{"count":{"type":"integer","readOnly":true},"groups":{"type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/system_group"}}}},"system_group":{"type":"object","properties":{"name":{"type":"string","readOnly":true},"gid":{"type":"integer","readOnly":true},"users":{"type":"array","readOnly":true,"items":{"type":"string"}}}}}},"paths":{"/groups/-/systems":{"get":{"summary":"List all system groups.","operationId":"index_system_groups","description":"**API Key Scope**: groups / systems","tags":["users"],"responses":{"200":{"$ref":"#/components/responses/system_groups"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nodeum.io/data-archiving/api-developers/api-reference-nodeum-data-archiving/users.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
