wiki.selfprivacy.org/src/rest-api/api.md

1255 lines
40 KiB
Markdown

# SelfPrivacy API
API available as Swagger documentation, markdown version is below.
### Version
1.2.0
## Content negotiation
**URI Scheme**: http
**Consumes**: application/json
**Produces**: application/json
## Access control
* bearerAuth
## All endpoints
### backups
| Method | URI | Name | Summary |
|---------|---------|--------|---------|
| GET | /services/restic/backup/list | [get services restic backup list](#get-services-restic-backup-list) | Get all restic backups |
| GET | /services/restic/backup/reload | [get services restic backup reload](#get-services-restic-backup-reload) | Force reload snapshots |
| GET | /services/restic/backup/status | [get services restic backup status](#get-services-restic-backup-status) | Get backup status |
| PUT | /services/restic/backblaze/config | [put services restic backblaze config](#put-services-restic-backblaze-config) | Set the new key for backblaze |
| PUT | /services/restic/backup/create | [put services restic backup create](#put-services-restic-backup-create) | Initiate a new restic backup |
| PUT | /services/restic/backup/restore | [put services restic backup restore](#put-services-restic-backup-restore) | Start backup restoration |
### bitwarden
| Method | URI | Name | Summary |
|---------|---------|--------|---------|
| POST | /services/bitwarden/disable | [post services bitwarden disable](#post-services-bitwarden-disable) | Disable Bitwarden |
| POST | /services/bitwarden/enable | [post services bitwarden enable](#post-services-bitwarden-enable) | Enable Bitwarden |
### email
| Method | URI | Name | Summary |
|---------|---------|--------|---------|
| GET | /services/mailserver/dkim | [get services mailserver dkim](#get-services-mailserver-dkim) | Get DKIM key from file |
### gitea
| Method | URI | Name | Summary |
|---------|---------|--------|---------|
| POST | /services/gitea/disable | [post services gitea disable](#post-services-gitea-disable) | Disable Gitea |
| POST | /services/gitea/enable | [post services gitea enable](#post-services-gitea-enable) | Enable Gitea |
### nextcloud
| Method | URI | Name | Summary |
|---------|---------|--------|---------|
| POST | /services/nextcloud/disable | [post services nextcloud disable](#post-services-nextcloud-disable) | Disable Nextcloud |
| POST | /services/nextcloud/enable | [post services nextcloud enable](#post-services-nextcloud-enable) | Enable Nextcloud |
### o_cserv
| Method | URI | Name | Summary |
|---------|---------|--------|---------|
| POST | /services/ocserv/disable | [post services ocserv disable](#post-services-ocserv-disable) | Disable OCserv |
| POST | /services/ocserv/enable | [post services ocserv enable](#post-services-ocserv-enable) | Enable OCserv |
### pleroma
| Method | URI | Name | Summary |
|---------|---------|--------|---------|
| POST | /services/pleroma/disable | [post services pleroma disable](#post-services-pleroma-disable) | Disable Pleroma |
| POST | /services/pleroma/enable | [post services pleroma enable](#post-services-pleroma-enable) | Enable Pleroma |
### services
| Method | URI | Name | Summary |
|---------|---------|--------|---------|
| GET | /services/status | [get services status](#get-services-status) | Get service status |
### ssh
| Method | URI | Name | Summary |
|---------|---------|--------|---------|
| DELETE | /services/ssh/keys/{username} | [delete services SSH keys username](#delete-services-ssh-keys-username) | Delete SSH key |
| GET | /services/ssh | [get services SSH](#get-services-ssh) | Get current SSH settings |
| GET | /services/ssh/keys/{username} | [get services SSH keys username](#get-services-ssh-keys-username) | List SSH keys |
| POST | /services/ssh/enable | [post services SSH enable](#post-services-ssh-enable) | Enable SSH |
| POST | /services/ssh/keys/{username} | [post services SSH keys username](#post-services-ssh-keys-username) | Add SSH key to the user |
| PUT | /services/ssh | [put services SSH](#put-services-ssh) | Change SSH settings |
| PUT | /services/ssh/key/send | [put services SSH key send](#put-services-ssh-key-send) | Add a SSH root key |
### system
| Method | URI | Name | Summary |
|---------|---------|--------|---------|
| GET | /api/version | [get API version](#get-api-version) | Get API version |
| GET | /system/configuration/apply | [get system configuration apply](#get-system-configuration-apply) | Rebuild NixOS with nixos-rebuild switch |
| GET | /system/configuration/autoUpgrade | [get system configuration auto upgrade](#get-system-configuration-auto-upgrade) | Get current system autoupgrade settings |
| GET | /system/configuration/pull | [get system configuration pull](#get-system-configuration-pull) | Pull Repository Changes |
| GET | /system/configuration/rollback | [get system configuration rollback](#get-system-configuration-rollback) | Rollback NixOS with nixos-rebuild switch --rollback |
| GET | /system/configuration/timezone | [get system configuration timezone](#get-system-configuration-timezone) | Get current system timezone |
| GET | /system/configuration/upgrade | [get system configuration upgrade](#get-system-configuration-upgrade) | Upgrade NixOS with nixos-rebuild switch --upgrade |
| GET | /system/pythonVersion | [get system python version](#get-system-python-version) | Get python version used by this API |
| GET | /system/reboot | [get system reboot](#get-system-reboot) | Reboot the system |
| GET | /system/version | [get system version](#get-system-version) | Get system version from uname -a |
| PUT | /system/configuration/autoUpgrade | [put system configuration auto upgrade](#put-system-configuration-auto-upgrade) | Change system auto upgrade settings |
| PUT | /system/configuration/timezone | [put system configuration timezone](#put-system-configuration-timezone) | Change system timezone |
### tokens
| Method | URI | Name | Summary |
|---------|---------|--------|---------|
| DELETE | /auth/tokens | [delete auth tokens](#delete-auth-tokens) | Delete token |
| GET | /auth/recovery_token | [get auth recovery token](#get-auth-recovery-token) | Get recovery token status |
| GET | /auth/tokens | [get auth tokens](#get-auth-tokens) | Get current device tokens |
| POST | /auth/new_device | [post auth new device](#post-auth-new-device) | Get new device token |
| POST | /auth/new_device/authorize | [post auth new device authorize](#post-auth-new-device-authorize) | Authorize device |
| POST | /auth/recovery_token | [post auth recovery token](#post-auth-recovery-token) | Generate recovery token |
| POST | /auth/recovery_token/use | [post auth recovery token use](#post-auth-recovery-token-use) | Use recovery token |
| POST | /auth/tokens | [post auth tokens](#post-auth-tokens) | Refresh token |
### users
| Method | URI | Name | Summary |
|---------|---------|--------|---------|
| DELETE | /users/{username} | [delete users username](#delete-users-username) | Delete a user |
| GET | /users | [get users](#get-users) | Get a list of users |
| POST | /users | [post users](#post-users) | Create a new user |
## Paths
### <span id="delete-auth-tokens"></span> Delete token (*DeleteAuthTokens*)
```
DELETE /auth/tokens
```
#### Security Requirements
* bearerAuth
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| token | `body` | [DeleteAuthTokensBody](#delete-auth-tokens-body) | `DeleteAuthTokensBody` | | ✓ | | Token's name to delete |
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#delete-auth-tokens-200) | OK | Token deleted |
| [400](#delete-auth-tokens-400) | Bad Request | Bad request |
| [404](#delete-auth-tokens-404) | Not Found | Token not found |
###### Inlined models
**<span id="delete-auth-tokens-body"></span> DeleteAuthTokensBody**
**Properties**
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| token | string| `string` | ✓ | | Token name to delete | |
### <span id="delete-services-ssh-keys-username"></span> Delete SSH key (*DeleteServicesSSHKeysUsername*)
```
DELETE /services/ssh/keys/{username}
```
#### Security Requirements
* bearerAuth
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| username | `path` | string | `string` | | ✓ | | User to delete keys for |
| public_key | `body` | [DeleteServicesSSHKeysUsernameBody](#delete-services-ssh-keys-username-body) | `DeleteServicesSSHKeysUsernameBody` | | ✓ | | Key to delete |
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#delete-services-ssh-keys-username-200) | OK | SSH key deleted |
| [401](#delete-services-ssh-keys-username-401) | Unauthorized | Unauthorized |
| [404](#delete-services-ssh-keys-username-404) | Not Found | Key not found |
###### Inlined models
**<span id="delete-services-ssh-keys-username-body"></span> DeleteServicesSSHKeysUsernameBody**
**Properties**
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| public_key | string| `string` | ✓ | | | |
### <span id="delete-users-username"></span> Delete a user (*DeleteUsersUsername*)
```
DELETE /users/{username}
```
#### Security Requirements
* bearerAuth
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| username | `path` | string | `string` | | ✓ | | User to delete |
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#delete-users-username-200) | OK | Deleted user |
| [400](#delete-users-username-400) | Bad Request | Bad request |
| [401](#delete-users-username-401) | Unauthorized | Unauthorized |
| [404](#delete-users-username-404) | Not Found | User not found |
### <span id="get-api-version"></span> Get API version (*GetAPIVersion*)
```
GET /api/version
```
#### All responses
| Code | Status | Description | Schema |
|------|--------|-------------|--------|
| [200](#get-api-version-200) | OK | API version | [schema](#get-api-version-200-schema) |
| [401](#get-api-version-401) | Unauthorized | Unauthorized |
#### Responses
##### <span id="get-api-version-200"></span> 200 - API version
Status: OK
###### <span id="get-api-version-200-schema"></span> Schema
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| version | string| `string` | | | API version | |
##### <span id="get-api-version-401"></span> 401 - Unauthorized
Status: Unauthorized
### <span id="get-auth-recovery-token"></span> Get recovery token status (*GetAuthRecoveryToken*)
```
GET /auth/recovery_token
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description | Has headers | Schema |
|------|--------|-------------|:-----------:|--------|
| [200](#get-auth-recovery-token-200) | OK | Recovery token status | | [schema](#get-auth-recovery-token-200-schema) |
| [400](#get-auth-recovery-token-400) | Bad Request | Bad request | | [schema](#get-auth-recovery-token-400-schema) |
#### Responses
##### <span id="get-auth-recovery-token-200"></span> 200 - Recovery token status
Status: OK
###### <span id="get-auth-recovery-token-200-schema"></span> Schema
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| date | string| `string` | | | Recovery token date | |
| exists | boolean| `bool` | | | Recovery token exists | |
| expiration | string| `string` | | | Recovery token expiration date | |
| uses_left | integer| `int64` | | | Recovery token uses left | |
| valid | boolean| `bool` | | | Recovery token is valid | |
##### <span id="get-auth-recovery-token-400"></span> 400 - Bad request
Status: Bad Request
### <span id="get-auth-tokens"></span> Get current device tokens (*GetAuthTokens*)
```
GET /auth/tokens
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-auth-tokens-200) | OK | List of tokens |
| [400](#get-auth-tokens-400) | Bad Request | Bad request |
### <span id="get-services-mailserver-dkim"></span> Get DKIM key from file (*GetServicesMailserverDkim*)
```
GET /services/mailserver/dkim
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-services-mailserver-dkim-200) | OK | DKIM key encoded in base64 |
| [401](#get-services-mailserver-dkim-401) | Unauthorized | Unauthorized |
| [404](#get-services-mailserver-dkim-404) | Not Found | DKIM key not found |
### <span id="get-services-restic-backup-list"></span> Get all restic backups (*GetServicesResticBackupList*)
```
GET /services/restic/backup/list
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-services-restic-backup-list-200) | OK | A list of snapshots |
| [400](#get-services-restic-backup-list-400) | Bad Request | Bad request |
| [401](#get-services-restic-backup-list-401) | Unauthorized | Unauthorized |
### <span id="get-services-restic-backup-reload"></span> Force reload snapshots (*GetServicesResticBackupReload*)
```
GET /services/restic/backup/reload
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-services-restic-backup-reload-200) | OK | Snapshots reloaded |
| [400](#get-services-restic-backup-reload-400) | Bad Request | Bad request |
| [401](#get-services-restic-backup-reload-401) | Unauthorized | Unauthorized |
### <span id="get-services-restic-backup-status"></span> Get backup status (*GetServicesResticBackupStatus*)
```
GET /services/restic/backup/status
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-services-restic-backup-status-200) | OK | Backup status |
| [400](#get-services-restic-backup-status-400) | Bad Request | Bad request |
| [401](#get-services-restic-backup-status-401) | Unauthorized | Unauthorized |
### <span id="get-services-ssh"></span> Get current SSH settings (*GetServicesSSH*)
```
GET /services/ssh
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-services-ssh-200) | OK | SSH settings |
| [400](#get-services-ssh-400) | Bad Request | Bad request |
### <span id="get-services-ssh-keys-username"></span> List SSH keys (*GetServicesSSHKeysUsername*)
```
GET /services/ssh/keys/{username}
```
#### Security Requirements
* bearerAuth
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| username | `path` | string | `string` | | ✓ | | User to list keys for |
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-services-ssh-keys-username-200) | OK | SSH keys |
| [401](#get-services-ssh-keys-username-401) | Unauthorized | Unauthorized |
### <span id="get-services-status"></span> Get service status (*GetServicesStatus*)
```
GET /services/status
```
#### All responses
| Code | Status | Description | Schema |
|------|--------|-------------|--------|
| [200](#get-services-status-200) | OK | Service status | [schema](#get-services-status-200-schema) |
| [401](#get-services-status-401) | Unauthorized | Unauthorized | [schema](#get-services-status-401-schema) |
#### Responses
##### <span id="get-services-status-200"></span> 200 - Service status
Status: OK
###### <span id="get-services-status-200-schema"></span> Schema
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| bitwarden | integer| `int64` | | | Bitwarden service status | |
| gitea | integer| `int64` | | | Gitea service status | |
| http | integer| `int64` | | | Nginx service status | |
| imap | integer| `int64` | | | Dovecot service status | |
| nextcloud | integer| `int64` | | | Nextcloud service status | |
| ocserv | integer| `int64` | | | OpenConnect VPN service status | |
| pleroma | integer| `int64` | | | Pleroma service status | |
| smtp | integer| `int64` | | | Postfix service status | |
##### <span id="get-services-status-401"></span> 401 - Unauthorized
Status: Unauthorized
### <span id="get-system-configuration-apply"></span> Rebuild NixOS with nixos-rebuild switch (*GetSystemConfigurationApply*)
```
GET /system/configuration/apply
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-system-configuration-apply-200) | OK | System rebuild has started |
| [401](#get-system-configuration-apply-401) | Unauthorized | Unauthorized |
### <span id="get-system-configuration-auto-upgrade"></span> Get current system autoupgrade settings (*GetSystemConfigurationAutoUpgrade*)
```
GET /system/configuration/autoUpgrade
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-system-configuration-auto-upgrade-200) | OK | Auto-upgrade settings |
| [400](#get-system-configuration-auto-upgrade-400) | Bad Request | Bad request |
### <span id="get-system-configuration-pull"></span> Pull Repository Changes (*GetSystemConfigurationPull*)
```
GET /system/configuration/pull
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-system-configuration-pull-200) | OK | Got update |
| [201](#get-system-configuration-pull-201) | Created | Nothing to update |
| [401](#get-system-configuration-pull-401) | Unauthorized | Unauthorized |
| [500](#get-system-configuration-pull-500) | Internal Server Error | Something went wrong |
### <span id="get-system-configuration-rollback"></span> Rollback NixOS with nixos-rebuild switch --rollback (*GetSystemConfigurationRollback*)
```
GET /system/configuration/rollback
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-system-configuration-rollback-200) | OK | System rollback has started |
| [401](#get-system-configuration-rollback-401) | Unauthorized | Unauthorized |
### <span id="get-system-configuration-timezone"></span> Get current system timezone (*GetSystemConfigurationTimezone*)
```
GET /system/configuration/timezone
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-system-configuration-timezone-200) | OK | Timezone |
| [400](#get-system-configuration-timezone-400) | Bad Request | Bad request |
### <span id="get-system-configuration-upgrade"></span> Upgrade NixOS with nixos-rebuild switch --upgrade (*GetSystemConfigurationUpgrade*)
```
GET /system/configuration/upgrade
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-system-configuration-upgrade-200) | OK | System upgrade has started |
| [401](#get-system-configuration-upgrade-401) | Unauthorized | Unauthorized |
### <span id="get-system-python-version"></span> Get python version used by this API (*GetSystemPythonVersion*)
```
GET /system/pythonVersion
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-system-python-version-200) | OK | OK |
| [401](#get-system-python-version-401) | Unauthorized | Unauthorized |
### <span id="get-system-reboot"></span> Reboot the system (*GetSystemReboot*)
```
GET /system/reboot
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-system-reboot-200) | OK | System reboot has started |
| [401](#get-system-reboot-401) | Unauthorized | Unauthorized |
### <span id="get-system-version"></span> Get system version from uname -a (*GetSystemVersion*)
```
GET /system/version
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-system-version-200) | OK | OK |
| [401](#get-system-version-401) | Unauthorized | Unauthorized |
### <span id="get-users"></span> Get a list of users (*GetUsers*)
```
GET /users
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#get-users-200) | OK | A list of users |
| [401](#get-users-401) | Unauthorized | Unauthorized |
### <span id="post-auth-new-device"></span> Get new device token (*PostAuthNewDevice*)
```
POST /auth/new_device
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-auth-new-device-200) | OK | New device token |
| [400](#post-auth-new-device-400) | Bad Request | Bad request |
### <span id="post-auth-new-device-authorize"></span> Authorize device (*PostAuthNewDeviceAuthorize*)
```
POST /auth/new_device/authorize
```
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| data | `body` | [PostAuthNewDeviceAuthorizeBody](#post-auth-new-device-authorize-body) | `PostAuthNewDeviceAuthorizeBody` | | ✓ | | Who is authorizing |
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-auth-new-device-authorize-200) | OK | Device authorized |
| [400](#post-auth-new-device-authorize-400) | Bad Request | Bad request |
| [404](#post-auth-new-device-authorize-404) | Not Found | Token not found |
###### Inlined models
**<span id="post-auth-new-device-authorize-body"></span> PostAuthNewDeviceAuthorizeBody**
**Properties**
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| device | string| `string` | | | Device to authorize | |
| token | string| `string` | | | Mnemonic token to authorize | |
### <span id="post-auth-recovery-token"></span> Generate recovery token (*PostAuthRecoveryToken*)
```
POST /auth/recovery_token
```
#### Security Requirements
* bearerAuth
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| data | `body` | [PostAuthRecoveryTokenBody](#post-auth-recovery-token-body) | `PostAuthRecoveryTokenBody` | | ✓ | | Token data |
#### All responses
| Code | Status | Description | Schema |
|------|--------|-------------|--------|
| [200](#post-auth-recovery-token-200) | OK | Recovery token generated| [schema](#post-auth-recovery-token-200-schema) |
| [400](#post-auth-recovery-token-400) | Bad Request | Bad request ||
#### Responses
##### <span id="post-auth-recovery-token-200"></span> 200 - Recovery token generated
Status: OK
###### <span id="post-auth-recovery-token-200-schema"></span> Schema
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| token | string| `string` | | | Mnemonic recovery token | |
##### <span id="post-auth-recovery-token-400"></span> 400 - Bad request
Status: Bad Request
###### Inlined models
**<span id="post-auth-recovery-token-body"></span> PostAuthRecoveryTokenBody**
**Properties**
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| expiration | string| `string` | | | Token expiration date | |
| uses | integer| `int64` | | | Token uses | |
### <span id="post-auth-recovery-token-use"></span> Use recovery token (*PostAuthRecoveryTokenUse*)
```
POST /auth/recovery_token/use
```
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| data | `body` | [PostAuthRecoveryTokenUseBody](#post-auth-recovery-token-use-body) | `PostAuthRecoveryTokenUseBody` | | ✓ | | Token data |
#### All responses
| Code | Status | Description | Schema |
|------|--------|-------------|--------|
| [200](#post-auth-recovery-token-use-200) | OK | Recovery token used | [schema](#post-auth-recovery-token-use-200-schema) |
| [400](#post-auth-recovery-token-use-400) | Bad Request | Bad request |
| [404](#post-auth-recovery-token-use-404) | Not Found | Token not found |
#### Responses
##### <span id="post-auth-recovery-token-use-200"></span> 200 - Recovery token used
Status: OK
###### <span id="post-auth-recovery-token-use-200-schema"></span> Schema
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| token | string| `string` | | | Device authorization token | |
###### Inlined models
**<span id="post-auth-recovery-token-use-body"></span> PostAuthRecoveryTokenUseBody**
**Properties**
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| device | string| `string` | | | Device to authorize | |
| token | string| `string` | | | Mnemonic recovery token | |
### <span id="post-auth-tokens"></span> Refresh token (*PostAuthTokens*)
```
POST /auth/tokens
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-auth-tokens-200) | OK | Token refreshed |
| [400](#post-auth-tokens-400) | Bad Request | Bad request |
| [404](#post-auth-tokens-404) | Not Found | Token not found |
### <span id="post-services-bitwarden-disable"></span> Disable Bitwarden (*PostServicesBitwardenDisable*)
```
POST /services/bitwarden/disable
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-services-bitwarden-disable-200) | OK | Bitwarden disabled |
| [401](#post-services-bitwarden-disable-401) | Unauthorized | Unauthorized |
### <span id="post-services-bitwarden-enable"></span> Enable Bitwarden (*PostServicesBitwardenEnable*)
```
POST /services/bitwarden/enable
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-services-bitwarden-enable-200) | OK | Bitwarden enabled |
| [401](#post-services-bitwarden-enable-401) | Unauthorized | Unauthorized |
### <span id="post-services-gitea-disable"></span> Disable Gitea (*PostServicesGiteaDisable*)
```
POST /services/gitea/disable
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-services-gitea-disable-200) | OK | Gitea disabled |
| [401](#post-services-gitea-disable-401) | Unauthorized | Unauthorized |
### <span id="post-services-gitea-enable"></span> Enable Gitea (*PostServicesGiteaEnable*)
```
POST /services/gitea/enable
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-services-gitea-enable-200) | OK | Gitea enabled |
| [401](#post-services-gitea-enable-401) | Unauthorized | Unauthorized |
### <span id="post-services-nextcloud-disable"></span> Disable Nextcloud (*PostServicesNextcloudDisable*)
```
POST /services/nextcloud/disable
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-services-nextcloud-disable-200) | OK | Nextcloud disabled |
| [401](#post-services-nextcloud-disable-401) | Unauthorized | Unauthorized |
### <span id="post-services-nextcloud-enable"></span> Enable Nextcloud (*PostServicesNextcloudEnable*)
```
POST /services/nextcloud/enable
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-services-nextcloud-enable-200) | OK | Nextcloud enabled |
| [401](#post-services-nextcloud-enable-401) | Unauthorized | Unauthorized |
### <span id="post-services-ocserv-disable"></span> Disable OCserv (*PostServicesOcservDisable*)
```
POST /services/ocserv/disable
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-services-ocserv-disable-200) | OK | OCserv disabled |
| [401](#post-services-ocserv-disable-401) | Unauthorized | Unauthorized |
### <span id="post-services-ocserv-enable"></span> Enable OCserv (*PostServicesOcservEnable*)
```
POST /services/ocserv/enable
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-services-ocserv-enable-200) | OK | OCserv enabled |
| [401](#post-services-ocserv-enable-401) | Unauthorized | Unauthorized |
### <span id="post-services-pleroma-disable"></span> Disable Pleroma (*PostServicesPleromaDisable*)
```
POST /services/pleroma/disable
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-services-pleroma-disable-200) | OK | Pleroma disabled |
| [401](#post-services-pleroma-disable-401) | Unauthorized | Unauthorized |
### <span id="post-services-pleroma-enable"></span> Enable Pleroma (*PostServicesPleromaEnable*)
```
POST /services/pleroma/enable
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-services-pleroma-enable-200) | OK | Pleroma enabled |
| [401](#post-services-pleroma-enable-401) | Unauthorized | Unauthorized |
### <span id="post-services-ssh-enable"></span> Enable SSH (*PostServicesSSHEnable*)
```
POST /services/ssh/enable
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#post-services-ssh-enable-200) | OK | SSH enabled |
| [401](#post-services-ssh-enable-401) | Unauthorized | Unauthorized |
### <span id="post-services-ssh-keys-username"></span> Add SSH key to the user (*PostServicesSSHKeysUsername*)
```
POST /services/ssh/keys/{username}
```
#### Security Requirements
* bearerAuth
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| username | `path` | string | `string` | | ✓ | | User to add keys for |
| public_key | `body` | [PostServicesSSHKeysUsernameBody](#post-services-ssh-keys-username-body) | `PostServicesSSHKeysUsernameBody` | | ✓ | | |
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [201](#post-services-ssh-keys-username-201) | Created | SSH key added |
| [401](#post-services-ssh-keys-username-401) | Unauthorized | Unauthorized |
| [404](#post-services-ssh-keys-username-404) | Not Found | User not found |
| [409](#post-services-ssh-keys-username-409) | Conflict | Key already exists |
###### Inlined models
**<span id="post-services-ssh-keys-username-body"></span> PostServicesSSHKeysUsernameBody**
**Properties**
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| public_key | string| `string` | ✓ | | | |
### <span id="post-users"></span> Create a new user (*PostUsers*)
```
POST /users
```
#### Consumes
* application/json
#### Security Requirements
* bearerAuth
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| user | `body` | [PostUsersBody](#post-users-body) | `PostUsersBody` | | ✓ | | User to create |
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [201](#post-users-201) | Created | Created user |
| [400](#post-users-400) | Bad Request | Bad request |
| [401](#post-users-401) | Unauthorized | Unauthorized |
| [409](#post-users-409) | Conflict | User already exists |
###### Inlined models
**<span id="post-users-body"></span> PostUsersBody**
**Properties**
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| password | string| `string` | ✓ | | Unix password. | |
| username | string| `string` | ✓ | | Unix username. Must be alphanumeric and less than 32 characters | |
### <span id="put-services-restic-backblaze-config"></span> Set the new key for backblaze (*PutServicesResticBackblazeConfig*)
```
PUT /services/restic/backblaze/config
```
#### Security Requirements
* bearerAuth
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| backblazeSettings | `body` | [PutServicesResticBackblazeConfigBody](#put-services-restic-backblaze-config-body) | `PutServicesResticBackblazeConfigBody` | | ✓ | | New Backblaze settings |
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#put-services-restic-backblaze-config-200) | OK | New Backblaze settings |
| [400](#put-services-restic-backblaze-config-400) | Bad Request | Bad request |
| [401](#put-services-restic-backblaze-config-401) | Unauthorized | Unauthorized |
###### Inlined models
**<span id="put-services-restic-backblaze-config-body"></span> PutServicesResticBackblazeConfigBody**
**Properties**
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| accountId | string| `string` | ✓ | | | |
| accountKey | string| `string` | ✓ | | | |
| bucket | string| `string` | ✓ | | | |
### <span id="put-services-restic-backup-create"></span> Initiate a new restic backup (*PutServicesResticBackupCreate*)
```
PUT /services/restic/backup/create
```
#### Security Requirements
* bearerAuth
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#put-services-restic-backup-create-200) | OK | Backup creation has started |
| [400](#put-services-restic-backup-create-400) | Bad Request | Bad request |
| [401](#put-services-restic-backup-create-401) | Unauthorized | Unauthorized |
| [409](#put-services-restic-backup-create-409) | Conflict | Backup already in progress |
### <span id="put-services-restic-backup-restore"></span> Start backup restoration (*PutServicesResticBackupRestore*)
```
PUT /services/restic/backup/restore
```
#### Security Requirements
* bearerAuth
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| backup | `body` | [PutServicesResticBackupRestoreBody](#put-services-restic-backup-restore-body) | `PutServicesResticBackupRestoreBody` | | ✓ | | Backup to restore |
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#put-services-restic-backup-restore-200) | OK | Backup restoration process started |
| [400](#put-services-restic-backup-restore-400) | Bad Request | Bad request |
| [401](#put-services-restic-backup-restore-401) | Unauthorized | Unauthorized |
###### Inlined models
**<span id="put-services-restic-backup-restore-body"></span> PutServicesResticBackupRestoreBody**
**Properties**
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| backupId | string| `string` | ✓ | | | |
### <span id="put-services-ssh"></span> Change SSH settings (*PutServicesSSH*)
```
PUT /services/ssh
```
#### Security Requirements
* bearerAuth
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| sshSettings | `body` | [PutServicesSSHBody](#put-services-ssh-body) | `PutServicesSSHBody` | | ✓ | | SSH settings |
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#put-services-ssh-200) | OK | New settings saved |
| [400](#put-services-ssh-400) | Bad Request | Bad request |
###### Inlined models
**<span id="put-services-ssh-body"></span> PutServicesSSHBody**
**Properties**
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| enable | boolean| `bool` | ✓ | | | |
| passwordAuthentication | boolean| `bool` | ✓ | | | |
### <span id="put-services-ssh-key-send"></span> Add a SSH root key (*PutServicesSSHKeySend*)
```
PUT /services/ssh/key/send
```
#### Consumes
* application/json
#### Security Requirements
* bearerAuth
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| body | `body` | [PutServicesSSHKeySendBody](#put-services-ssh-key-send-body) | `PutServicesSSHKeySendBody` | | ✓ | | Public key to add |
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [201](#put-services-ssh-key-send-201) | Created | Key added |
| [400](#put-services-ssh-key-send-400) | Bad Request | Bad request |
| [401](#put-services-ssh-key-send-401) | Unauthorized | Unauthorized |
| [409](#put-services-ssh-key-send-409) | Conflict | Key already exists |
###### Inlined models
**<span id="put-services-ssh-key-send-body"></span> PutServicesSSHKeySendBody**
**Properties**
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| public_key | string| `string` | ✓ | | ssh-ed25519 public key. | |
### <span id="put-system-configuration-auto-upgrade"></span> Change system auto upgrade settings (*PutSystemConfigurationAutoUpgrade*)
```
PUT /system/configuration/autoUpgrade
```
#### Security Requirements
* bearerAuth
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| autoUpgrade | `body` | [PutSystemConfigurationAutoUpgradeBody](#put-system-configuration-auto-upgrade-body) | `PutSystemConfigurationAutoUpgradeBody` | | ✓ | | Auto upgrade settings |
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#put-system-configuration-auto-upgrade-200) | OK | New settings saved |
| [400](#put-system-configuration-auto-upgrade-400) | Bad Request | Bad request |
###### Inlined models
**<span id="put-system-configuration-auto-upgrade-body"></span> PutSystemConfigurationAutoUpgradeBody**
**Properties**
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| allowReboot | boolean| `bool` | ✓ | | | |
| enable | boolean| `bool` | ✓ | | | |
### <span id="put-system-configuration-timezone"></span> Change system timezone (*PutSystemConfigurationTimezone*)
```
PUT /system/configuration/timezone
```
#### Security Requirements
* bearerAuth
#### Parameters
| Name | Source | Type | Go type | Separator | Required | Default | Description |
|------|--------|------|---------|-----------| :------: |---------|-------------|
| timezone | `body` | [PutSystemConfigurationTimezoneBody](#put-system-configuration-timezone-body) | `PutSystemConfigurationTimezoneBody` | | ✓ | | Timezone to set |
#### All responses
| Code | Status | Description |
|------|--------|-------------|
| [200](#put-system-configuration-timezone-200) | OK | Timezone changed |
| [400](#put-system-configuration-timezone-400) | Bad Request | Bad request |
###### Inlined models
**<span id="put-system-configuration-timezone-body"></span> PutSystemConfigurationTimezoneBody**
**Properties**
| Name | Type | Go type | Required | Default | Description | Example |
|------|------|---------|:--------:| ------- |-------------|---------|
| timezone | string| `string` | ✓ | | | |