- Introduced a new POST route 'bulk-update-gateway' for bulk updating gateways. - This route is protected by the 'module-vcenter.manager' permission middleware.
4709 lines
134 KiB
Markdown
4709 lines
134 KiB
Markdown
openapi: 3.0.3
|
||
info:
|
||
version: v2
|
||
title: Plesk RESTful API
|
||
description: >-
|
||
New remote API for Plesk is based on REST concepts and provides the output
|
||
in JSON format.
|
||
servers:
|
||
- url: /api/v2
|
||
description: Plesk Server REST API
|
||
security:
|
||
- BasicAuth: []
|
||
- APIKeyHeader: []
|
||
- BasicAuth: []
|
||
ImpersonateLoginHeader: []
|
||
- APIKeyHeader: []
|
||
ImpersonateLoginHeader: []
|
||
tags:
|
||
- name: Authentication
|
||
description: Auth entry points
|
||
- name: Cli
|
||
description: CLI gate entry points
|
||
- name: Server
|
||
description: Server entry points
|
||
- name: Extensions
|
||
description: Extensions entry points
|
||
- name: Clients
|
||
description: Clients entry points
|
||
- name: Domains
|
||
description: Domains entry points
|
||
- name: FtpUsers
|
||
description: FTP Users entry points
|
||
- name: Databases
|
||
description: Databases, database servers and database users entry points
|
||
- name: DNS
|
||
description: DNS entry points
|
||
- name: Files
|
||
description: Domain file management entry points
|
||
paths:
|
||
/auth/keys:
|
||
post:
|
||
tags:
|
||
- Authentication
|
||
x-roles:
|
||
- admin
|
||
summary: Generate API secret key
|
||
description: >-
|
||
Create a new API secret key for authentication with specified login
|
||
credentials and IP restrictions.
|
||
responses:
|
||
'201':
|
||
description: Secret key was successfully created
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SecretKeyResponse'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'401':
|
||
description: Incorrect login
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SecretKeyRequest'
|
||
/auth/keys/{key}:
|
||
delete:
|
||
tags:
|
||
- Authentication
|
||
x-roles:
|
||
- admin
|
||
summary: Delete API secret key
|
||
description: >-
|
||
Revoke and delete an API secret key, removing all associated access
|
||
permissions.
|
||
parameters:
|
||
- in: path
|
||
name: key
|
||
description: Key ID
|
||
required: true
|
||
example: 3d2e93ad-85e6-1a3e-9f81-b9d26650e4f9
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Key does not exist
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
/server/session:
|
||
post:
|
||
tags:
|
||
- Authentication
|
||
- Server
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Create a session token
|
||
description: >
|
||
Create a new session for the specified user login. Returns a session
|
||
identifier
|
||
|
||
that can be used to access Plesk panel via the URL:
|
||
|
||
https://<host>:<port>/enterprise/rsession_init.php?PLESKSESSID=<id>
|
||
responses:
|
||
'201':
|
||
description: Session was successfully created
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SessionResponse'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'401':
|
||
description: Unauthorized
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SessionRequest'
|
||
/cli/commands:
|
||
get:
|
||
tags:
|
||
- Cli
|
||
x-roles:
|
||
- admin
|
||
summary: List CLI commands
|
||
description: >-
|
||
Retrieve a list of all available Plesk CLI commands that can be executed
|
||
via the REST API.
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
x-readonly: true
|
||
/cli/{id}/ref:
|
||
get:
|
||
tags:
|
||
- Cli
|
||
x-roles:
|
||
- admin
|
||
x-plesk-since: '17.9'
|
||
summary: Get CLI command reference
|
||
description: >-
|
||
Retrieve detailed reference information for a specific Plesk CLI
|
||
command, including allowed subcommands and options.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
description: Command name
|
||
required: true
|
||
example: settings
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
allowed_commands:
|
||
type: object
|
||
allowed_options:
|
||
type: object
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Command is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
/cli/{id}/call:
|
||
post:
|
||
tags:
|
||
- Cli
|
||
x-roles:
|
||
- admin
|
||
summary: Execute CLI command
|
||
description: >-
|
||
Execute a Plesk CLI command (a Plesk utility, e.g. one run via `plesk
|
||
bin <utility>` or `/usr/local/psa/bin/<utility>`) with the provided
|
||
parameters and environment. Set `fail_on_error` to true so that a failed
|
||
command is reported as an error (HTTP 422) instead of a 200 response
|
||
with a non-zero exit code.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
description: Command name
|
||
required: true
|
||
example: settings
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CliCallResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Command is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'422':
|
||
description: >-
|
||
Respond with 422 status when the command returns a non-zero exit
|
||
code.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CliCallResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CliCallRequest'
|
||
/server:
|
||
get:
|
||
tags:
|
||
- Server
|
||
x-roles:
|
||
- admin
|
||
summary: Get server information
|
||
description: >-
|
||
Retrieve server metadata including Plesk version, platform, and system
|
||
information.
|
||
responses:
|
||
'200':
|
||
description: Return Server Meta Information
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ServerMeta'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
x-readonly: true
|
||
/server/init:
|
||
post:
|
||
tags:
|
||
- Server
|
||
x-roles:
|
||
- admin
|
||
summary: Initialize server
|
||
description: >-
|
||
Perform initial server configuration, including admin credentials and
|
||
basic settings.
|
||
responses:
|
||
'200':
|
||
description: Inital server setup was succesfully performed
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ServerInit'
|
||
/server/license:
|
||
post:
|
||
tags:
|
||
- Server
|
||
x-roles:
|
||
- admin
|
||
summary: Install license key
|
||
description: Install or update the Plesk or additional license key for the server.
|
||
responses:
|
||
'200':
|
||
description: License key was succesfully installed
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ServerLicense'
|
||
/server/ips:
|
||
get:
|
||
tags:
|
||
- Server
|
||
x-roles:
|
||
- admin
|
||
summary: List server IP addresses
|
||
description: Retrieve a list of all IP addresses configured on the server.
|
||
responses:
|
||
'200':
|
||
description: Return Server IP Addresses list
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/ServerIp'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
x-readonly: true
|
||
/extensions:
|
||
get:
|
||
tags:
|
||
- Extensions
|
||
x-roles:
|
||
- admin
|
||
summary: List installed extensions
|
||
description: >-
|
||
Retrieve a list of all Plesk extensions currently installed on the
|
||
server.
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/Extension'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
x-readonly: true
|
||
post:
|
||
tags:
|
||
- Extensions
|
||
x-roles:
|
||
- admin
|
||
summary: Install extension
|
||
description: >-
|
||
Install a Plesk extension from the Extension Catalog by ID, a file, or
|
||
URL.
|
||
responses:
|
||
'200':
|
||
description: Extension successfully installed
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ExtensionInstallRequest'
|
||
/extensions/{id}:
|
||
get:
|
||
tags:
|
||
- Extensions
|
||
x-roles:
|
||
- admin
|
||
summary: Get extension details
|
||
description: Retrieve detailed information about a specific installed extension.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
description: Extension identifier
|
||
required: true
|
||
example: letsencrypt
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Extension'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Extension is not installed
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
delete:
|
||
tags:
|
||
- Extensions
|
||
x-roles:
|
||
- admin
|
||
summary: Uninstall extension
|
||
description: Remove an extension from the server and delete all associated data.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
description: Extension identifier
|
||
required: true
|
||
example: letsencrypt
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Extension is not installed
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
/extensions/{id}/enable:
|
||
put:
|
||
tags:
|
||
- Extensions
|
||
x-roles:
|
||
- admin
|
||
summary: Enable extension
|
||
description: Enable a previously disabled extension, making it active on the server.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
description: Extension identifier
|
||
required: true
|
||
example: letsencrypt
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Extension is not installed
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
/extensions/{id}/disable:
|
||
put:
|
||
tags:
|
||
- Extensions
|
||
x-roles:
|
||
- admin
|
||
summary: Disable extension
|
||
description: >-
|
||
Disable an extension temporarily without uninstalling it from the
|
||
server.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
description: Extension identifier
|
||
required: true
|
||
example: letsencrypt
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Extension is not installed
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
/clients:
|
||
get:
|
||
tags:
|
||
- Clients
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: List clients
|
||
description: >-
|
||
Retrieve a list of all client accounts on the server that are available
|
||
to the user.
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/Client'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
x-readonly: true
|
||
post:
|
||
tags:
|
||
- Clients
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
summary: Create client account
|
||
description: Create a new client account with the specified settings and permissions.
|
||
responses:
|
||
'201':
|
||
description: Client account successfully created
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreatedResponse'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ClientRequest'
|
||
/clients/{id}:
|
||
get:
|
||
tags:
|
||
- Clients
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Get client details
|
||
description: Retrieve detailed information about a specific client account.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Client ID
|
||
example: 7
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Client'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Client is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
put:
|
||
tags:
|
||
- Clients
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Update client account
|
||
description: Update settings and properties of an existing client account.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Client ID
|
||
example: 7
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreatedResponse'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Client is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ClientUpdateRequest'
|
||
delete:
|
||
tags:
|
||
- Clients
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
summary: Delete client account
|
||
description: Delete a client account and all associated data from the server.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Client ID
|
||
example: 7
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreatedResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Client is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
/clients/{id}/domains:
|
||
get:
|
||
tags:
|
||
- Clients
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: List client domains
|
||
description: Retrieve all domains associated with a specific client account.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Client ID
|
||
example: 7
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/DomainResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Client is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
/clients/{id}/statistics:
|
||
get:
|
||
tags:
|
||
- Clients
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Get client statistics
|
||
description: Retrieve resource usage statistics for a specific client account.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Client ID
|
||
example: 7
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ClientStatistics'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Client is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
/clients/{id}/activate:
|
||
put:
|
||
tags:
|
||
- Clients
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
summary: Activate client
|
||
description: Activate a suspended client account, restoring access to all services.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Client ID
|
||
example: 7
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Client is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
/clients/{id}/suspend:
|
||
put:
|
||
tags:
|
||
- Clients
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
summary: Suspend client
|
||
description: Suspend a client account, temporarily blocking access to all services.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Client ID
|
||
example: 7
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Client is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
/domains:
|
||
get:
|
||
tags:
|
||
- Domains
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: List domains
|
||
description: >-
|
||
Retrieve a list of domains available to the user, with optional
|
||
filtering by domain name.
|
||
parameters:
|
||
- in: query
|
||
name: name
|
||
description: Filter data by domain name
|
||
example: example.com
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/DomainResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
x-readonly: true
|
||
post:
|
||
tags:
|
||
- Domains
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Create domain
|
||
description: >-
|
||
Create a new domain with the specified configuration and hosting
|
||
settings. To create an addon domain, provide `base_domain`. To create a
|
||
subdomain, provide `parent_domain`. To assign the domain to a specific
|
||
client, provide `owner_client`; if omitted, the domain will be assigned
|
||
to the currently logged-in user.
|
||
responses:
|
||
'201':
|
||
description: Domain successfully created
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreatedResponse'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DomainRequest'
|
||
/domains/{id}:
|
||
get:
|
||
tags:
|
||
- Domains
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Get domain details
|
||
description: Retrieve detailed information about a specific domain.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DomainResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
put:
|
||
tags:
|
||
- Domains
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Update domain
|
||
description: Update settings and configuration for an existing domain.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreatedResponse'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DomainUpdateRequest'
|
||
delete:
|
||
tags:
|
||
- Domains
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Delete domain
|
||
description: Delete a domain and all associated data from the server.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreatedResponse'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
/domains/{id}/client:
|
||
get:
|
||
tags:
|
||
- Domains
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Get domain owner
|
||
description: Retrieve information about the client account that owns the domain.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Client'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
/domains/{id}/status:
|
||
get:
|
||
tags:
|
||
- Domains
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Get domain status
|
||
description: >-
|
||
Retrieve the current operational status of a domain (active, suspended,
|
||
disabled).
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DomainStatus'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
put:
|
||
tags:
|
||
- Domains
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Update domain status
|
||
description: Change the operational status of a domain (enable, suspend, or disable).
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DomainStatus'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DomainStatus'
|
||
/domains/{id}/exec:
|
||
post:
|
||
tags:
|
||
- Domains
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Execute a shell command on a domain
|
||
description: >-
|
||
Execute a command in the context of a domain, running as the
|
||
subscription's system user with the domain's document root as the
|
||
default working directory, and retrieve its stdout, stderr and exit
|
||
code. Works even if the system user has no or limited shell access, and
|
||
allows operations on the domain content without root privileges. Set
|
||
`fail_on_error` to true so that a failed command is reported as an error
|
||
(HTTP 422) instead of a 200 response with a non-zero exit code. For
|
||
pipes, redirections or other shell features, wrap the command, e.g. bash
|
||
-lc '<your commands>'.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DomainExecResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'422':
|
||
description: >-
|
||
The command exited with a non-zero code (returned only when
|
||
fail_on_error is enabled). The command output is still included in
|
||
the body.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DomainExecResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DomainExecRequest'
|
||
/domains/{id}/dns/resolution:
|
||
get:
|
||
tags:
|
||
- Domains
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Run a DNS resolution check for a domain
|
||
description: >
|
||
Runs a DNS troubleshooting report for the domain, returning a list of
|
||
checks
|
||
|
||
(DNS management, web, mail, email authentication, propagation) with
|
||
severity,
|
||
|
||
findings, and recommended actions, plus an aggregate summary.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DomainDnsResolutionResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'500':
|
||
description: Failed to execute the backend DNS check utility
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'501':
|
||
description: DNS resolution check is available in Plesk version >= 18.0.80
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
/domains/{id}/logs:
|
||
get:
|
||
tags:
|
||
- Domains
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Search domain logs
|
||
description: >
|
||
Search domain logs (Apache error logs, Nginx error logs, PHP-FPM error
|
||
logs, HTTP access logs, FTP xferlog, ModSecurity audit logs) for a
|
||
pattern and return matching entries with log statistics grouped by log
|
||
type.
|
||
|
||
Only available on Linux-based Plesk servers.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
- in: query
|
||
name: pattern
|
||
required: false
|
||
description: >
|
||
Search pattern (regex) to filter log entries.
|
||
|
||
|
||
**Security restrictions**: Patterns with nested or adjacent
|
||
quantifiers are rejected to prevent ReDoS attacks.
|
||
|
||
Examples of invalid patterns: `(a+)+`, `a*+`, `(error)+*`
|
||
|
||
|
||
Keep patterns simple and specific. Use character classes instead of
|
||
alternation where possible.
|
||
example: error|warning
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: start_time
|
||
required: false
|
||
description: >-
|
||
Start time for log search in RFC3339 format (e.g.,
|
||
2026-05-21T14:30:00Z)
|
||
example: '2026-05-21T00:00:00Z'
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
- in: query
|
||
name: end_time
|
||
required: false
|
||
description: >-
|
||
End time for log search in RFC3339 format (e.g.,
|
||
2026-05-21T14:30:00Z). Must be >= start_time
|
||
example: '2026-05-22T00:00:00Z'
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
- in: query
|
||
name: sample_size
|
||
required: false
|
||
default: 5
|
||
minimum: 1
|
||
maximum: 500
|
||
description: Maximum number of sample log entries to return
|
||
example: 10
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DomainLogsResponse'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'501':
|
||
description: Not implemented (Windows servers)
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
/domains/{id}/fs:
|
||
get:
|
||
tags:
|
||
- Files
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Get file or directory metadata
|
||
description: >-
|
||
Return stat metadata for a single file or directory. The default path is
|
||
the domain's document root.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID.
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
- in: query
|
||
name: path
|
||
required: false
|
||
description: >
|
||
Target path. An absolute path (starting with "/" on Unix, or a drive
|
||
letter such as "C:\\" on Windows) is used as-is;
|
||
|
||
otherwise the path is resolved relative to the domain's document
|
||
root.
|
||
|
||
Defaults to the document root.
|
||
example: ./
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/File'
|
||
'400':
|
||
description: Invalid request parameters.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: >-
|
||
Access to the specified domain is denied, or path is outside the
|
||
webspace.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'404':
|
||
description: Domain not found, or path does not exist.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
delete:
|
||
tags:
|
||
- Files
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Delete a file or directory
|
||
description: >-
|
||
Delete a file or directory at the given path. Directories are deleted
|
||
recursively.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID.
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
- in: query
|
||
name: path
|
||
required: true
|
||
description: >
|
||
Path to delete. An absolute path (starting with "/" on Unix, or a
|
||
drive letter such as "C:\\" on Windows) is used as-is;
|
||
|
||
otherwise the path is resolved relative to the domain's document
|
||
root.
|
||
example: index.html
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'204':
|
||
description: Deleted successfully.
|
||
'400':
|
||
description: Invalid request parameters.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: >-
|
||
Access to the specified domain is denied, or path is outside the
|
||
webspace.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'404':
|
||
description: Domain not found, or path does not exist.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
/domains/{id}/fs/list:
|
||
get:
|
||
tags:
|
||
- Files
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: List directory contents
|
||
description: >-
|
||
List files and directories at the specified path. By default the listing
|
||
is rooted at the domain's document root.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID.
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
- in: query
|
||
name: path
|
||
required: false
|
||
description: >
|
||
Directory to list. An absolute path (starting with "/" on Unix, or a
|
||
drive letter such as "C:\\" on Windows) is used as-is;
|
||
|
||
otherwise the path is resolved relative to the domain's document
|
||
root.
|
||
|
||
Defaults to the document root.
|
||
example: ./
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/File'
|
||
'400':
|
||
description: Invalid request parameters.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: >-
|
||
Access to the specified domain is denied, or path is outside the
|
||
webspace.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'404':
|
||
description: Domain not found or path is not a directory.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
/domains/{id}/fs/content:
|
||
get:
|
||
tags:
|
||
- Files
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Download file contents
|
||
description: >
|
||
Download the contents of a regular file. Without `encoding`, the
|
||
response is a raw octet-stream
|
||
|
||
attachment. When `encoding` is specified, the response is a JSON body
|
||
with the file contents
|
||
|
||
encoded accordingly. Files larger than 100 MB cannot be downloaded via
|
||
the JSON mode.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID.
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
- in: query
|
||
name: path
|
||
required: true
|
||
description: >
|
||
Target file path. An absolute path (starting with "/" on Unix, or a
|
||
drive letter such as "C:\\" on Windows) is used as-is;
|
||
|
||
otherwise the path is resolved relative to the domain's document
|
||
root.
|
||
example: index.html
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: encoding
|
||
required: false
|
||
description: >-
|
||
When specified, returns a `FileContentResponse` JSON body instead of
|
||
an octet-stream.
|
||
schema:
|
||
type: string
|
||
enum:
|
||
- plain
|
||
- base64
|
||
responses:
|
||
'200':
|
||
description: >-
|
||
OK — raw octet-stream (no `encoding`) or `FileContentResponse` JSON
|
||
(with `encoding`).
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/FileContentResponse'
|
||
application/octet-stream:
|
||
schema:
|
||
type: string
|
||
format: binary
|
||
'400':
|
||
description: Invalid request parameters.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: >-
|
||
Access to the specified domain is denied, or path is outside the
|
||
webspace.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'404':
|
||
description: Domain not found, or path does not exist.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
put:
|
||
tags:
|
||
- Files
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Upload file contents
|
||
description: >
|
||
Upload the request body as a file at the given path. Creates the file if
|
||
it does not exist; overwrites it if it does.
|
||
|
||
|
||
When sending `Content-Type: application/octet-stream`, the raw request
|
||
body is written verbatim.
|
||
|
||
When sending `Content-Type: application/json`, the body must be a
|
||
`FileContentRequest` object.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID.
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
- in: query
|
||
name: path
|
||
required: true
|
||
description: >
|
||
Destination file path. An absolute path (starting with "/" on Unix,
|
||
or a drive letter such as "C:\\" on Windows) is used as-is;
|
||
|
||
otherwise the path is resolved relative to the domain's document
|
||
root.
|
||
example: index.html
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/File'
|
||
'400':
|
||
description: Invalid request parameters.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: >-
|
||
Access to the specified domain is denied, or path is outside the
|
||
webspace.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'404':
|
||
description: Domain not found.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/FileContentRequest'
|
||
application/octet-stream:
|
||
schema:
|
||
type: string
|
||
format: binary
|
||
patch:
|
||
tags:
|
||
- Files
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Append a chunk to a file
|
||
description: >
|
||
Append the request body to the end of a file at the given path. Creates
|
||
the file if it does not exist.
|
||
|
||
|
||
When sending `Content-Type: application/octet-stream`, the raw request
|
||
body is appended verbatim.
|
||
|
||
When sending `Content-Type: application/json`, the body must be a
|
||
`FileContentRequest` object.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID.
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
- in: query
|
||
name: path
|
||
required: true
|
||
description: >
|
||
Destination file path. An absolute path (starting with "/" on Unix,
|
||
or a drive letter such as "C:\\" on Windows) is used as-is;
|
||
|
||
otherwise the path is resolved relative to the domain's document
|
||
root.
|
||
example: upload.bin
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/File'
|
||
'400':
|
||
description: Invalid request parameters.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: >-
|
||
Access to the specified domain is denied, or path is outside the
|
||
webspace.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'404':
|
||
description: Domain not found.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/FileContentRequest'
|
||
application/octet-stream:
|
||
schema:
|
||
type: string
|
||
format: binary
|
||
/domains/{id}/fs/mkdir:
|
||
post:
|
||
tags:
|
||
- Files
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Create a directory
|
||
description: Create a new directory within the domain's webspace.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID.
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
- in: query
|
||
name: path
|
||
required: true
|
||
description: >
|
||
Path of the directory to create. An absolute path (starting with "/"
|
||
on Unix, or a drive letter such as "C:\\" on Windows) is used as-is;
|
||
|
||
otherwise the path is resolved relative to the domain's document
|
||
root.
|
||
example: uploads
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'201':
|
||
description: Created
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/File'
|
||
'400':
|
||
description: Invalid request parameters.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: >-
|
||
Access to the specified domain is denied, or path is outside the
|
||
webspace.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'404':
|
||
description: Domain not found.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'409':
|
||
description: Path already exists.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
/domains/{id}/fs/copy:
|
||
post:
|
||
tags:
|
||
- Files
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Copy a file or directory
|
||
description: >-
|
||
Copy a file or directory from source to destination within the domain's
|
||
webspace. Returns stat metadata of the resulting entry at the
|
||
destination path.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID.
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/File'
|
||
'400':
|
||
description: Invalid request parameters.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: >-
|
||
Access to the specified domain is denied, or a path is outside the
|
||
webspace.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'404':
|
||
description: Domain not found, or source path does not exist.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'409':
|
||
description: Destination already exists and overwrite is false.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/FileCopyMoveRequest'
|
||
/domains/{id}/fs/move:
|
||
post:
|
||
tags:
|
||
- Files
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Move or rename a file or directory
|
||
description: >-
|
||
Move (rename) a file or directory from source to destination within the
|
||
domain's webspace. Returns stat metadata of the resulting entry at the
|
||
destination path.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID.
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/File'
|
||
'400':
|
||
description: Invalid request parameters.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: >-
|
||
Access to the specified domain is denied, or a path is outside the
|
||
webspace.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'404':
|
||
description: Domain not found, or source path does not exist.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'409':
|
||
description: Destination already exists and overwrite is false.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/FileCopyMoveRequest'
|
||
/domains/{id}/fs/chmod:
|
||
put:
|
||
tags:
|
||
- Files
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Change file or directory permissions
|
||
description: >-
|
||
Set the permission mode (chmod) of a file or directory within the
|
||
domain's webspace. Has no effect on Windows. Returns the updated stat
|
||
metadata.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: Domain ID.
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
- in: query
|
||
name: path
|
||
required: true
|
||
description: >-
|
||
Path to the file or directory. An absolute path (starting with "/"
|
||
on Unix, or a drive letter such as "C:\" on Windows) is used as-is;
|
||
otherwise relative to the document root.
|
||
example: index.html
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/File'
|
||
'400':
|
||
description: Invalid request parameters.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: >-
|
||
Access to the specified domain is denied, or the path is outside the
|
||
webspace.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'404':
|
||
description: Domain not found, or the path does not exist.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/FileChmodRequest'
|
||
/ftpusers:
|
||
get:
|
||
tags:
|
||
- FtpUsers
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: List FTP users
|
||
description: >-
|
||
Retrieve a list of FTP users with optional filtering by username or
|
||
domain.
|
||
parameters:
|
||
- in: query
|
||
name: name
|
||
description: Filter data by user name
|
||
example: exampleuser
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: domain
|
||
description: Filter data by domain name
|
||
example: example.com
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/FtpUser'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain/user is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
post:
|
||
tags:
|
||
- FtpUsers
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Create FTP user
|
||
description: >-
|
||
Create a new FTP user account with specified permissions and home
|
||
directory.
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/FtpUser'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/FtpUserRequest'
|
||
/ftpusers/{name}:
|
||
put:
|
||
tags:
|
||
- FtpUsers
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Update FTP user
|
||
description: >-
|
||
Update FTP user settings such as password, home directory, or
|
||
permissions.
|
||
parameters:
|
||
- in: path
|
||
name: name
|
||
description: FTP user name
|
||
required: true
|
||
example: exampleuser
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: User is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/FtpUserUpdateRequest'
|
||
delete:
|
||
tags:
|
||
- FtpUsers
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Delete FTP user
|
||
description: Delete an FTP user account and revoke all associated access.
|
||
parameters:
|
||
- in: path
|
||
name: name
|
||
description: FTP User name
|
||
required: true
|
||
example: exampleuser
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: User is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
/databases:
|
||
get:
|
||
tags:
|
||
- Databases
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: List databases
|
||
description: >-
|
||
Retrieve a list of all databases on the server, with optional filtering
|
||
by domain name.
|
||
parameters:
|
||
- in: query
|
||
name: domain
|
||
description: Filter data by domain name
|
||
example: example.com
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/Database'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Server is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
post:
|
||
tags:
|
||
- Databases
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Create database
|
||
description: Create a new database on the specified database server.
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Database'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DatabaseRequest'
|
||
/databases/{id}:
|
||
delete:
|
||
tags:
|
||
- Databases
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Delete database
|
||
description: Delete a database and all its data from the database server.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
description: Database ID
|
||
required: true
|
||
example: 10
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Database is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
/dbusers:
|
||
get:
|
||
tags:
|
||
- Databases
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: List database users
|
||
description: >-
|
||
Retrieve a list of database users, with optional filtering by database
|
||
ID.
|
||
parameters:
|
||
- in: query
|
||
name: dbId
|
||
description: Filter data by database ID
|
||
example: 44
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/DatabaseUser'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain/database is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
post:
|
||
tags:
|
||
- Databases
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Create database user
|
||
description: >-
|
||
Create a new database user with specified credentials and database
|
||
association.
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DatabaseUser'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Server/database/domain is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DatabaseUserRequest'
|
||
/dbusers/{id}:
|
||
put:
|
||
tags:
|
||
- Databases
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Update database user
|
||
description: Update database user settings, such as password or access permissions.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
description: Database user ID
|
||
required: true
|
||
example: 12
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Server/database/domain is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DatabaseUserUpdateRequest'
|
||
delete:
|
||
tags:
|
||
- Databases
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Delete database user
|
||
description: Delete a database user and revoke all associated access rights.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
description: Database user ID
|
||
required: true
|
||
example: 12
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Database user is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
/dbservers:
|
||
get:
|
||
tags:
|
||
- Databases
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: List database servers
|
||
description: Retrieve a list of all database servers configured on the system.
|
||
parameters:
|
||
- in: query
|
||
name: id
|
||
description: Filter data by database server id
|
||
example: 1
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/DatabaseServer'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Server is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
/dns/records:
|
||
get:
|
||
tags:
|
||
- DNS
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: List DNS records
|
||
description: Retrieve all DNS records for a specific domain or domain alias.
|
||
parameters:
|
||
- in: query
|
||
name: domain
|
||
description: Filter by domain or domain alias name
|
||
required: true
|
||
example: example.com
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/DnsRecord'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Can not find DNS record by id '123'
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
post:
|
||
tags:
|
||
- DNS
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Create DNS record
|
||
description: Add a new DNS record to a domain or domain alias zone.
|
||
parameters:
|
||
- in: query
|
||
name: domain
|
||
description: Filter by domain or domain alias name
|
||
required: true
|
||
example: example.com
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DnsRecord'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: Domain or Domain Alias is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DnsRecordRequest'
|
||
/dns/records/{id}:
|
||
get:
|
||
tags:
|
||
- DNS
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Get DNS record
|
||
description: Retrieve details of a specific DNS record by its ID.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
description: DNS record ID
|
||
required: true
|
||
example: 123
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DnsRecord'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: DNS record is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: true
|
||
put:
|
||
tags:
|
||
- DNS
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Update DNS record
|
||
description: Modify an existing DNS record's properties and values.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
description: DNS record ID
|
||
required: true
|
||
example: 123
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'400':
|
||
description: Invalid request data
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: DNS record is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DnsRecordRequest'
|
||
delete:
|
||
tags:
|
||
- DNS
|
||
x-roles:
|
||
- admin
|
||
- reseller
|
||
- customer
|
||
summary: Delete DNS record
|
||
description: Remove a DNS record from the domain's DNS zone.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
description: DNS record ID
|
||
required: true
|
||
example: 123
|
||
schema:
|
||
type: integer
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StatusResponse'
|
||
'403':
|
||
description: Permission denied
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PermissionDeniedResponse'
|
||
'404':
|
||
description: DNS record is not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
x-readonly: false
|
||
components:
|
||
securitySchemes:
|
||
BasicAuth:
|
||
type: http
|
||
scheme: basic
|
||
description: HTTP Basic Authentication
|
||
APIKeyHeader:
|
||
type: apiKey
|
||
in: header
|
||
name: X-API-Key
|
||
description: API Key Authentication
|
||
ImpersonateLoginHeader:
|
||
type: apiKey
|
||
in: header
|
||
name: X-Impersonate-Login
|
||
description: >-
|
||
Allows admin users to impersonate another user account. The API request
|
||
will be executed in the context of the specified user. Only
|
||
administrators can use this header.
|
||
schemas:
|
||
StatusResponse:
|
||
type: object
|
||
properties:
|
||
status:
|
||
description: Result of the operation
|
||
type: string
|
||
example: success
|
||
required:
|
||
- status
|
||
CreatedResponse:
|
||
type: object
|
||
properties:
|
||
id:
|
||
description: Entity with the specified ID successfully created
|
||
type: integer
|
||
example: 100
|
||
guid:
|
||
description: Entity successfully created, new GUID is
|
||
type: string
|
||
example: 18b78dd1-2b43-44f7-9599-56ccb56a85dc
|
||
required:
|
||
- id
|
||
- guid
|
||
ErrorResponse:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: integer
|
||
example: 400
|
||
message:
|
||
type: string
|
||
example: Account with this name already exists
|
||
required:
|
||
- code
|
||
- message
|
||
PermissionDeniedResponse:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: integer
|
||
example: 0
|
||
message:
|
||
type: string
|
||
example: Permission denied
|
||
required:
|
||
- code
|
||
- message
|
||
SecretKeyRequest:
|
||
type: object
|
||
description: Secret key parameters
|
||
properties:
|
||
ip:
|
||
description: >-
|
||
The IP address that will be linked to the key. If this node or 'ips'
|
||
node is not specified, the IP address of the request sender will be
|
||
used.
|
||
type: string
|
||
example: 195.214.233.128
|
||
ips:
|
||
description: >-
|
||
Array of IP addresses that will be linked to the key. If this node
|
||
or 'ip' node is not specified, the IP address of the request sender
|
||
will be used.
|
||
type: array
|
||
items:
|
||
type: string
|
||
example:
|
||
- 93.184.216.34
|
||
- 2606:2800:220:1:248:1893:25c8:1946
|
||
login:
|
||
description: >-
|
||
The login name of an existing customer or a reseller that will have
|
||
this secret key. The customer's or reseller's account should be
|
||
active. If this node is not specified, the administrator's login
|
||
will be used.
|
||
type: string
|
||
example: admin
|
||
description:
|
||
description: Additional information about the key.
|
||
type: string
|
||
example: Secret key for Administrator
|
||
SecretKeyResponse:
|
||
type: object
|
||
properties:
|
||
key:
|
||
description: Secret key value.
|
||
type: string
|
||
example: c5b239d1-8eb6-8cee-76b7-aa16be37fee8
|
||
required:
|
||
- key
|
||
SessionRequest:
|
||
type: object
|
||
description: Session creation parameters
|
||
required:
|
||
- login
|
||
properties:
|
||
login:
|
||
description: The login name of the user to create a session for.
|
||
type: string
|
||
example: admin
|
||
user_ip:
|
||
description: >
|
||
The IP address of the user who will use the session. If not
|
||
specified, the IP address of the request sender will be used.
|
||
type: string
|
||
example: 192.168.1.100
|
||
skip_mfa:
|
||
description: Skip multi-factor authentication check for the created session.
|
||
type: boolean
|
||
default: false
|
||
example: true
|
||
SessionResponse:
|
||
type: object
|
||
properties:
|
||
id:
|
||
description: >-
|
||
The session identifier. Use it to access the Plesk panel via:
|
||
https://<host>:<port>/enterprise/rsession_init.php?PLESKSESSID=<id>
|
||
type: string
|
||
example: ab1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e
|
||
required:
|
||
- id
|
||
CliCallRequest:
|
||
type: object
|
||
description: Command execution parameters
|
||
properties:
|
||
params:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example:
|
||
- --get
|
||
- FullHostName
|
||
env:
|
||
type: object
|
||
example:
|
||
PSA_PASSWORD: password
|
||
fail_on_error:
|
||
description: >-
|
||
Respond with 422 status when the command returns a non-zero exit
|
||
code. Recommended to enable when executing commands so failures are
|
||
reported as errors instead of a successful response.
|
||
type: boolean
|
||
default: false
|
||
example: true
|
||
CliCallResponse:
|
||
type: object
|
||
description: Command execution result
|
||
properties:
|
||
code:
|
||
description: Command return code.
|
||
type: integer
|
||
example: 0
|
||
stdout:
|
||
description: Command stdout.
|
||
type: string
|
||
example: Done
|
||
stderr:
|
||
description: Command stderr.
|
||
type: string
|
||
example: Execution failed
|
||
ServerMeta:
|
||
type: object
|
||
description: Server Meta Information
|
||
properties:
|
||
platform:
|
||
description: Server platform type.
|
||
type: string
|
||
example: Unix
|
||
hostname:
|
||
description: Server hostname.
|
||
type: string
|
||
example: example.com
|
||
guid:
|
||
description: Server GUID.
|
||
type: string
|
||
example: baa58292-fee0-4ecb-9da1-bba0cc5adea7
|
||
panel_version:
|
||
description: Product version.
|
||
type: string
|
||
example: 17.9.3
|
||
panel_revision:
|
||
description: Product build revision.
|
||
type: string
|
||
example: 1711e2bceff6fd6656c821b8cb6444c2726f3784
|
||
panel_build_date:
|
||
description: Product ISO build date.
|
||
type: string
|
||
format: date
|
||
example: '2018-06-20'
|
||
panel_update_version:
|
||
description: Product installed update version.
|
||
type: string
|
||
example: '10'
|
||
extension_version:
|
||
description: REST API extension version.
|
||
type: string
|
||
example: 1.1.0
|
||
extension_release:
|
||
description: REST API release number.
|
||
type: string
|
||
example: '10'
|
||
required:
|
||
- platform
|
||
- hostname
|
||
- guid
|
||
- panel_version
|
||
- panel_revision
|
||
- panel_build_date
|
||
- panel_update_version
|
||
- extension_version
|
||
- extension_release
|
||
ServerInit:
|
||
type: object
|
||
description: Initial server setup parameters
|
||
properties:
|
||
admin:
|
||
$ref: '#/components/schemas/Admin'
|
||
password:
|
||
description: >-
|
||
The new Plesk Administrator's password that will replace the default
|
||
one.
|
||
type: string
|
||
example: setup
|
||
server_name:
|
||
description: The full host name.
|
||
type: string
|
||
example: my-plesk-server.com
|
||
required:
|
||
- admin
|
||
- password
|
||
Admin:
|
||
type: object
|
||
description: Plesk administrator information
|
||
properties:
|
||
name:
|
||
description: The administrator's personal name.
|
||
type: string
|
||
example: John Smith
|
||
email:
|
||
description: The administrator's e-mail address.
|
||
type: string
|
||
format: email
|
||
example: john_smith@plesk.com
|
||
company:
|
||
description: The administrator's company name.
|
||
type: string
|
||
example: Plesk
|
||
phone:
|
||
description: The administrator's phone number.
|
||
type: string
|
||
example: +41 31 528 12 23
|
||
fax:
|
||
description: The administrator's fax number.
|
||
type: string
|
||
example: +41 31 528 12 23
|
||
address:
|
||
description: The administrator's street address.
|
||
type: string
|
||
example: Vordergasse 59
|
||
city:
|
||
description: The name of the city where administrator lives.
|
||
type: string
|
||
example: Schaffhausen
|
||
state:
|
||
description: >-
|
||
The name of state (for US citizens) or province where administrator
|
||
lives.
|
||
type: string
|
||
example: Kanton Schaffhausen
|
||
post_code:
|
||
description: The administrator's zip/postal code.
|
||
type: string
|
||
example: '8200'
|
||
country:
|
||
description: The name of the country where administrator lives.
|
||
type: string
|
||
example: CH
|
||
send_announce:
|
||
description: >-
|
||
It specifies whether Plesk announcement messages are sent to the
|
||
administrator's e-mail.
|
||
type: boolean
|
||
example: false
|
||
locale:
|
||
description: The locale used by the administrator.
|
||
type: string
|
||
example: en-US
|
||
multiple_sessions:
|
||
description: >-
|
||
It specifies the information if the administrator has multiple
|
||
sessions in Plesk.
|
||
type: boolean
|
||
example: false
|
||
required:
|
||
- name
|
||
- email
|
||
ServerIp:
|
||
type: object
|
||
description: Server IP Addresses
|
||
properties:
|
||
ipv4:
|
||
description: The IP address in Plesk database (IPv4).
|
||
type: string
|
||
format: ipv4
|
||
example: 93.184.216.34
|
||
ipv6:
|
||
description: The IP address in Plesk database (IPv6).
|
||
type: string
|
||
format: ipv6
|
||
example: 2606:2800:220:1:248:1893:25c8:1946
|
||
netmask:
|
||
description: The netmask of the network.
|
||
type: string
|
||
example: 255.255.255.0
|
||
interface:
|
||
description: The server network interface name.
|
||
type: string
|
||
example: eth0
|
||
type:
|
||
description: 'The type of IP address. Allowed values: shared | exclusive.'
|
||
type: string
|
||
enum:
|
||
- shared
|
||
- exclusive
|
||
example: exclusive
|
||
required:
|
||
- netmask
|
||
- interface
|
||
- type
|
||
ServerLicense:
|
||
type: object
|
||
description: License parameters
|
||
properties:
|
||
key:
|
||
description: License key data.
|
||
type: string
|
||
example: >-
|
||
/RjdfLic1RwpNPkEnLlxNJkJCPzNDWSRDOyVeJDI/MSo1RlFEMD4+VTEzKTk3S0pfVjFOJTZFXzMpTEVPQC5JRjdUR0RZCk0hMSJYOzYhVFxPI14jTFJPRSlaRFI0VjZWPEYiT1s5T0opJV8+NCMnUigvQ1o7K0U+QEtbISc1MlMqLV0KTSorUDVfMzxHNUkrSksxWzZVNVZJXTc5T18xQVNNNzRXWTo3WVkmW0I/J2AnYC4iJTlTP1grSCdYS0E+RApNPVteRk43RCNAVFpVO0dBO1hZMjo+K0pQNEsiLj5UUDQlLDA7XyVZIVo/QypGJiJcW1FbJF1fVVxUJy5ECk1HXCpSUzwtUVYoJzwsVV47MT5bJD8wWlgyYCo/KTM0QUJFMmAuOjc7QypMWylfQiFVP05PRj05LCY5SkgKTVRTWE9cRi84OUgxJDpgLl5RPEtPPkE4RCUtXU06NixHLi1ZL0ZBVSkyVkBVUCgiN0YrKyoyXTJMJ08qVwpNIk4lOyFeLFwmIiQ4NkBgMUEmTDRcWDdJKihZTEMhTENOJEMiKV0wIzkkSU4qMTEzO1BIJjo4K0U3LzU6Ck0wPCNTUytONjAhQEFROCFbUDI5OktVLlEsMlY9ND1gSjpgJVMjLS4tVzsrRzpAME8yVTpLVmAiT1NHLFAKTVU0SSowNVo1IShEWipAO10tRlsxQldVSkZSKDcyPjpWLik5I0YzWD0yVTs9NTlNL1dASyglXk5YN1U4UgpNTV8sXD0tRTQuLkBFMVk2I0REUCItXyVMNlRPRkEyTEA7Pl9QO10jUSI6I1tNIzVRU0VZVE1HWDInIzk4Ck1XRUNPVz5CSFUjUSo4K0IvOFlDWSNTLydXSls7KD9VTD8+WzUqQEA5Uic0S1BMJSowOk9fQ0QvQThUVCEKTT1AKiJFKztAKCFXNl9ORDhUVlleOCU5JS8rJzc+JEZUXigzMDs4PDtbNkUpPD8vUiJAREQoTkxUPlQ2JgpNVFdbVz9bT10mVy5FVEkyXD5MPSIkMkRVVipKWTolXVhRTzkoM1tLLSJRJFlXNTRTYEBNWy1UUV09K04wCk1SVWBbLyckXj5KXjsnUzgyRzE3QVUlWilXX0ZCX1BGMkRMSThHXjZBWE5FTUBEMjBgRTomVTpVLy1WRCQKTVtWUyQ+XDcsRUA+XU0hXz4pKFxBJ1JCNUQ6XCEnQjoyPFw
|
||
code:
|
||
description: Activation code.
|
||
type: string
|
||
example: AB1C23-4DEF56-7GHI89-JK1L23-MNP456
|
||
additional:
|
||
description: It specifies if the key that will be installed is an additional key.
|
||
type: boolean
|
||
example: false
|
||
Extension:
|
||
type: object
|
||
description: Extension entity
|
||
properties:
|
||
id:
|
||
description: Extension identifier.
|
||
type: string
|
||
example: letsencrypt
|
||
name:
|
||
description: Human readable name.
|
||
type: string
|
||
example: Let's Encrypt
|
||
version:
|
||
description: Extension version.
|
||
type: string
|
||
example: 2.6.1
|
||
release:
|
||
description: Extension release number.
|
||
type: string
|
||
example: '398'
|
||
active:
|
||
description: Extension status.
|
||
type: boolean
|
||
example: true
|
||
required:
|
||
- id
|
||
- name
|
||
- version
|
||
- release
|
||
- active
|
||
ExtensionInstallRequest:
|
||
type: object
|
||
description: Extension installation request
|
||
properties:
|
||
id:
|
||
description: Installation by Identifier.
|
||
type: string
|
||
example: letsencrypt
|
||
url:
|
||
description: Installation by URL.
|
||
type: string
|
||
example: https://example.com/catalog/letsencrypt.zip
|
||
file:
|
||
description: Installation by file.
|
||
type: string
|
||
example: /path/to/extension.zip
|
||
Client:
|
||
type: object
|
||
description: The client entity
|
||
properties:
|
||
id:
|
||
description: The client's ID.
|
||
type: integer
|
||
example: 7
|
||
created:
|
||
description: Creation date.
|
||
type: string
|
||
format: date
|
||
example: '2016-11-13'
|
||
name:
|
||
description: Client's personal name (1 to 60 characters long).
|
||
type: string
|
||
example: John Smith
|
||
company:
|
||
description: The company name (0 to 60 characters long).
|
||
type: string
|
||
example: Plesk
|
||
login:
|
||
description: The login name of the client account (1 to 60 characters long).
|
||
type: string
|
||
x-validators:
|
||
- UniqueClientLogin
|
||
example: john-unit-test
|
||
status:
|
||
description: >-
|
||
The current status of the client account. Allowed values: 0 (active)
|
||
| 16 (disabled by admin) | 4 (under backup/restore) | 256 (expired).
|
||
type: integer
|
||
example: 0
|
||
email:
|
||
description: >-
|
||
The email address of the client account owner (0 to 255 characters
|
||
long).
|
||
type: string
|
||
example: john_smith@msn.com
|
||
locale:
|
||
description: 'The locale used on the client account. Default value: en-US.'
|
||
type: string
|
||
example: en-US
|
||
guid:
|
||
description: The global user ID of the client account just added to Plesk.
|
||
type: string
|
||
example: 18b78dd1-2b43-44f7-9599-56ccb56a85dc
|
||
owner_login:
|
||
description: >-
|
||
The login name of a client account owner. If the client account
|
||
owner is Plesk Administrator, specify the admin login name.
|
||
type: string
|
||
example: admin
|
||
external_id:
|
||
description: >-
|
||
The client GUID in the Plesk components (for example, Business
|
||
Manager).
|
||
type: string
|
||
example: link:12345
|
||
description:
|
||
description: The description for the client account.
|
||
type: string
|
||
example: Nice guy
|
||
type:
|
||
description: >-
|
||
The type of the client account. Allowed values: reseller | customer
|
||
| admin.
|
||
type: string
|
||
enum:
|
||
- reseller
|
||
- customer
|
||
- admin
|
||
example: reseller
|
||
required:
|
||
- id
|
||
- created
|
||
- name
|
||
- company
|
||
- login
|
||
- status
|
||
- email
|
||
- locale
|
||
- guid
|
||
- description
|
||
- type
|
||
ClientRequest:
|
||
type: object
|
||
description: The client entity
|
||
properties:
|
||
name:
|
||
description: Client's personal name (1 to 60 characters long).
|
||
type: string
|
||
example: John Smith
|
||
company:
|
||
description: The company name (0 to 60 characters long).
|
||
type: string
|
||
example: Plesk
|
||
login:
|
||
description: The login name of the client account (1 to 60 characters long).
|
||
type: string
|
||
x-validators:
|
||
- UniqueClientLogin
|
||
example: john-unit-test
|
||
status:
|
||
description: >-
|
||
The current status of the client account. Allowed values: 0 (active)
|
||
| 16 (disabled by admin) | 4 (under backup/restore) | 256 (expired).
|
||
type: integer
|
||
example: 0
|
||
email:
|
||
description: >-
|
||
The email address of the client account owner (0 to 255 characters
|
||
long).
|
||
type: string
|
||
example: john_smith@msn.com
|
||
locale:
|
||
description: 'The locale used on the client account. Default value: en-US.'
|
||
type: string
|
||
example: en-US
|
||
owner_login:
|
||
description: >-
|
||
The login name of a client account owner. If the client account
|
||
owner is Plesk Administrator, specify the admin login name.
|
||
type: string
|
||
example: admin
|
||
external_id:
|
||
description: >-
|
||
The client GUID in the Plesk components (for example, Business
|
||
Manager).
|
||
type: string
|
||
example: link:12345
|
||
description:
|
||
description: The description for the client account.
|
||
type: string
|
||
example: Nice guy
|
||
password:
|
||
description: The password of the client account (5 to 14 characters long).
|
||
type: string
|
||
x-validators:
|
||
- PasswordStrength
|
||
example: changeme1Q**
|
||
type:
|
||
description: >-
|
||
The type of the client account. Allowed values: reseller | customer
|
||
| admin.
|
||
type: string
|
||
enum:
|
||
- reseller
|
||
- customer
|
||
- admin
|
||
example: reseller
|
||
required:
|
||
- name
|
||
- login
|
||
- password
|
||
- email
|
||
- type
|
||
ClientUpdateRequest:
|
||
type: object
|
||
description: The client entity
|
||
properties:
|
||
name:
|
||
description: Client's personal name (1 to 60 characters long).
|
||
type: string
|
||
example: John Smith
|
||
company:
|
||
description: The company name (0 to 60 characters long).
|
||
type: string
|
||
example: Plesk
|
||
login:
|
||
description: The login name of the client account (1 to 60 characters long).
|
||
type: string
|
||
x-validators:
|
||
- UniqueClientLogin
|
||
example: john-unit-test
|
||
status:
|
||
description: >-
|
||
The current status of the client account. Allowed values: 0 (active)
|
||
| 16 (disabled by admin) | 4 (under backup/restore) | 256 (expired).
|
||
type: integer
|
||
example: 0
|
||
email:
|
||
description: >-
|
||
The email address of the client account owner (0 to 255 characters
|
||
long).
|
||
type: string
|
||
example: john_smith@msn.com
|
||
locale:
|
||
description: 'The locale used on the client account. Default value: en-US.'
|
||
type: string
|
||
example: en-US
|
||
owner_login:
|
||
description: >-
|
||
The login name of a client account owner. If the client account
|
||
owner is Plesk Administrator, specify the admin login name.
|
||
type: string
|
||
example: admin
|
||
external_id:
|
||
description: >-
|
||
The client GUID in the Plesk components (for example, Business
|
||
Manager).
|
||
type: string
|
||
example: link:12345
|
||
description:
|
||
description: The description for the client account.
|
||
type: string
|
||
example: Nice guy
|
||
password:
|
||
description: The password of the client account (5 to 14 characters long).
|
||
type: string
|
||
x-validators:
|
||
- PasswordStrength
|
||
example: changeme1Q**
|
||
ClientStatistics:
|
||
type: object
|
||
description: Client's usage
|
||
properties:
|
||
active_domains:
|
||
description: The number of active domains created by a client.
|
||
type: integer
|
||
example: 1
|
||
subdomains:
|
||
description: The number of sub-domains created by a client.
|
||
type: integer
|
||
example: 0
|
||
disk_space:
|
||
description: The amount of disk space occupied by the given a client.
|
||
type: integer
|
||
example: 765952
|
||
email_postboxes:
|
||
description: The number of email boxes created by a client.
|
||
type: integer
|
||
example: 1
|
||
email_redirects:
|
||
description: The number of redirects created by a client.
|
||
type: integer
|
||
example: 0
|
||
email_response_messages:
|
||
description: The number of automatic response messages created by a client.
|
||
type: integer
|
||
example: 0
|
||
mailing_lists:
|
||
description: The number of mailing lists created by a client.
|
||
type: integer
|
||
example: 0
|
||
databases:
|
||
description: The number of databases used by a client.
|
||
type: integer
|
||
example: 0
|
||
traffic:
|
||
description: The amount of traffic (in bytes) spent by a client monthly.
|
||
type: integer
|
||
example: 0
|
||
traffic_prevday:
|
||
description: >-
|
||
The amount of traffic (in bytes) spent by a client during the
|
||
previous day.
|
||
type: integer
|
||
example: 0
|
||
required:
|
||
- active_domains
|
||
- subdomains
|
||
- disk_space
|
||
- email_postboxes
|
||
- email_redirects
|
||
- email_response_messages
|
||
- mailing_lists
|
||
- databases
|
||
- traffic
|
||
- traffic_prevday
|
||
DomainRequest:
|
||
type: object
|
||
properties:
|
||
name:
|
||
description: Domain name.
|
||
type: string
|
||
example: example.com
|
||
description:
|
||
description: The description for the domain.
|
||
type: string
|
||
example: My website
|
||
hosting_type:
|
||
description: >-
|
||
It specifies the hosting type of the created domain. Allowed values:
|
||
`virtual` | `standard_forwarding` | `frame_forwarding` | `none`.
|
||
|
||
Meanings: `virtual` - the domain ships with physical hosting.
|
||
|
||
`standard_forwarding` - the domain ships with standard forwarding.
|
||
When the user goes to a domain on which the standard forwarding is
|
||
set, Plesk redirects this user from the requested URL to the
|
||
destination URL. This is done explicitly: the user sees the real
|
||
‘destination’ address in the path bar of the browser.
|
||
|
||
`frame_forwarding` - the domain ships with frame forwarding. When
|
||
the user goes to such site on which frame forwarding is set, Plesk
|
||
redirects this user from the requested URL to the ‘destination’ URL
|
||
implicitly (the user still sees the initial URL in the path bar of
|
||
the browser).
|
||
|
||
`none` - no hosting ships with the domain.
|
||
type: string
|
||
enum:
|
||
- virtual
|
||
- standard_forwarding
|
||
- frame_forwarding
|
||
- none
|
||
hosting_settings:
|
||
description: >2-
|
||
Fields depend on the `hosting_type` value:
|
||
for `virtual`:
|
||
|
||
`ftp_login` - FTP user login name (required when creating a
|
||
subscription). `ftp_password` - FTP user password (required when
|
||
creating a subscription). `www_root` - WWW root directory for the
|
||
domain (optional, defaults to the domain name).
|
||
|
||
for `standard_forwarding`:
|
||
|
||
`dest_url` - URL to redirect the visitor to (required). `http_code`
|
||
- HTTP redirect code; allowed values: `301`, `302` (optional,
|
||
defaults to `301`).
|
||
|
||
for `frame_forwarding`:
|
||
|
||
`dest_url` - URL to load inside the frame (required).
|
||
|
||
for `none`: no fields are expected.
|
||
type: object
|
||
properties:
|
||
ftp_login:
|
||
type: string
|
||
x-validators:
|
||
- UniqueFtpLogin
|
||
example: login
|
||
ftp_password:
|
||
type: string
|
||
example: qwe123
|
||
www_root:
|
||
type: string
|
||
description: WWW root directory for the domain (optional).
|
||
example: sub.example.com
|
||
dest_url:
|
||
type: string
|
||
example: https://example.com
|
||
http_code:
|
||
type: integer
|
||
enum:
|
||
- 301
|
||
- 302
|
||
example: 301
|
||
additionalProperties: false
|
||
example:
|
||
ftp_login: test_login
|
||
ftp_password: changeme1Q**
|
||
base_domain:
|
||
$ref: '#/components/schemas/DomainReference'
|
||
parent_domain:
|
||
$ref: '#/components/schemas/DomainReference'
|
||
owner_client:
|
||
$ref: '#/components/schemas/OwnerClientReference'
|
||
ip_addresses:
|
||
description: The IP address associated with the domain.
|
||
type: array
|
||
items:
|
||
type: string
|
||
example:
|
||
- 93.184.216.34
|
||
- 2606:2800:220:1:248:1893:25c8:1946
|
||
ipv4:
|
||
description: '@deprecated'
|
||
type: array
|
||
items:
|
||
type: string
|
||
format: ipv4
|
||
example:
|
||
- 93.184.216.34
|
||
ipv6:
|
||
description: '@deprecated'
|
||
type: array
|
||
items:
|
||
type: string
|
||
format: ipv6
|
||
example:
|
||
- 2606:2800:220:1:248:1893:25c8:1946
|
||
plan:
|
||
$ref: '#/components/schemas/PlanReference'
|
||
DomainResponse:
|
||
type: object
|
||
properties:
|
||
id:
|
||
description: Domain ID.
|
||
type: integer
|
||
example: 7
|
||
name:
|
||
description: Domain name.
|
||
type: string
|
||
example: example.com
|
||
ascii_name:
|
||
description: Domain display name.
|
||
type: string
|
||
example: ascii-example.com
|
||
hosting_type:
|
||
description: Domain hosting type.
|
||
type: string
|
||
enum:
|
||
- virtual
|
||
- standard_forwarding
|
||
- frame_forwarding
|
||
- none
|
||
base_domain_id:
|
||
description: Base domain ID.
|
||
type: integer
|
||
example: 3
|
||
www_root:
|
||
description: WWW Root on filesystem
|
||
type: string
|
||
example: /var/www/vhosts/example.com/httpdocs
|
||
guid:
|
||
description: Domain GUID.
|
||
type: string
|
||
example: b623e93d-dc72-4102-b5f0-ded427cf0fb1
|
||
created:
|
||
description: Creation date.
|
||
type: string
|
||
format: date
|
||
example: '2016-11-13'
|
||
aliases:
|
||
x-since: 18.0.42
|
||
description: Domain aliases that point to this domain.
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/DomainAlias'
|
||
required:
|
||
- id
|
||
- name
|
||
- ascii_name
|
||
- hosting_type
|
||
- base_domain_id
|
||
- www_root
|
||
- guid
|
||
- created
|
||
DomainReference:
|
||
type: object
|
||
description: >-
|
||
Reference to a domain. At least one of id, name, or guid must be
|
||
provided.
|
||
anyOf:
|
||
- title: id
|
||
required:
|
||
- id
|
||
- title: name
|
||
required:
|
||
- name
|
||
- title: guid
|
||
required:
|
||
- guid
|
||
properties:
|
||
id:
|
||
description: Domain ID.
|
||
type: integer
|
||
example: 7
|
||
name:
|
||
description: Domain name.
|
||
type: string
|
||
example: example.com
|
||
guid:
|
||
description: Domain GUID.
|
||
type: string
|
||
example: b623e93d-dc72-4102-b5f0-ded427cf0fb1
|
||
DomainUpdateRequest:
|
||
type: object
|
||
properties:
|
||
name:
|
||
description: Domain name.
|
||
type: string
|
||
example: example.com
|
||
description:
|
||
description: The description for the domain.
|
||
type: string
|
||
example: My website
|
||
hosting_type:
|
||
description: >-
|
||
Hosting type. Allowed values: `virtual` | `standard_forwarding` |
|
||
`frame_forwarding` | `none`.
|
||
type: string
|
||
enum:
|
||
- virtual
|
||
- standard_forwarding
|
||
- frame_forwarding
|
||
- none
|
||
hosting_settings:
|
||
description: >2-
|
||
Fields depend on the `hosting_type` value:
|
||
for `virtual`:
|
||
|
||
`ftp_login` - FTP user login name (required when creating a
|
||
subscription). `ftp_password` - FTP user password (required when
|
||
creating a subscription). `www_root` - WWW root directory for the
|
||
domain (optional, defaults to the domain name).
|
||
|
||
for `standard_forwarding`:
|
||
|
||
`dest_url` - URL to redirect the visitor to (required). `http_code`
|
||
- HTTP redirect code; allowed values: `301`, `302` (optional,
|
||
defaults to `301`).
|
||
|
||
for `frame_forwarding`:
|
||
|
||
`dest_url` - URL to load inside the frame (required).
|
||
|
||
for `none`: no fields are expected.
|
||
type: object
|
||
properties:
|
||
ftp_login:
|
||
type: string
|
||
x-validators:
|
||
- UniqueFtpLogin
|
||
example: login
|
||
ftp_password:
|
||
type: string
|
||
example: qwe123
|
||
www_root:
|
||
type: string
|
||
description: WWW root directory for the domain (optional).
|
||
example: sub.example.com
|
||
dest_url:
|
||
type: string
|
||
example: https://example.com
|
||
http_code:
|
||
type: integer
|
||
enum:
|
||
- 301
|
||
- 302
|
||
example: 301
|
||
additionalProperties: false
|
||
example:
|
||
ftp_login: test_login
|
||
ftp_password: changeme1Q**
|
||
owner_client:
|
||
$ref: '#/components/schemas/OwnerClientReference'
|
||
ip_addresses:
|
||
description: The IP address associated with the domain.
|
||
type: array
|
||
items:
|
||
type: string
|
||
example:
|
||
- 93.184.216.34
|
||
- 2606:2800:220:1:248:1893:25c8:1946
|
||
ipv4:
|
||
description: '@deprecated'
|
||
type: array
|
||
items:
|
||
type: string
|
||
format: ipv4
|
||
example:
|
||
- 93.184.216.34
|
||
ipv6:
|
||
description: '@deprecated'
|
||
type: array
|
||
items:
|
||
type: string
|
||
format: ipv6
|
||
example:
|
||
- 2606:2800:220:1:248:1893:25c8:1946
|
||
plan:
|
||
$ref: '#/components/schemas/PlanReference'
|
||
DomainStatus:
|
||
type: object
|
||
properties:
|
||
status:
|
||
description: Status of the specified domain.
|
||
type: string
|
||
enum:
|
||
- active
|
||
- suspended
|
||
- disabled
|
||
example: active
|
||
required:
|
||
- status
|
||
DomainExecRequest:
|
||
type: object
|
||
description: Domain shell command execution parameters
|
||
properties:
|
||
command:
|
||
description: >-
|
||
Command to execute with its arguments. First element is the command
|
||
name, subsequent elements are arguments.
|
||
type: array
|
||
items:
|
||
type: string
|
||
minLength: 1
|
||
example:
|
||
- whoami
|
||
stdin:
|
||
description: Standard input to pass to the command.
|
||
type: string
|
||
example: ''
|
||
env:
|
||
description: Environment variables to set for the command execution.
|
||
type: object
|
||
additionalProperties:
|
||
type: string
|
||
example:
|
||
APP_ENV: production
|
||
working_directory:
|
||
description: >-
|
||
Working directory for the command. Defaults to the domain's document
|
||
root.
|
||
type: string
|
||
example: public
|
||
fail_on_error:
|
||
description: >-
|
||
Respond with 422 status when the command returns a non-zero exit
|
||
code. Recommended to enable when executing commands so failures are
|
||
reported as errors instead of a successful response.
|
||
type: boolean
|
||
default: false
|
||
example: true
|
||
required:
|
||
- command
|
||
DomainExecResponse:
|
||
type: object
|
||
description: Domain shell command execution result
|
||
properties:
|
||
code:
|
||
description: Command return code (exit status).
|
||
type: integer
|
||
example: 0
|
||
stdout:
|
||
description: Command standard output.
|
||
type: string
|
||
example: root
|
||
stderr:
|
||
description: Command standard error output.
|
||
type: string
|
||
example: ''
|
||
required:
|
||
- code
|
||
- stdout
|
||
- stderr
|
||
DomainLogEntry:
|
||
type: object
|
||
description: Single domain log entry
|
||
properties:
|
||
path:
|
||
description: Log file path
|
||
type: string
|
||
example: /var/www/vhosts/example.com/logs/error_log
|
||
line:
|
||
description: Raw log line content
|
||
type: string
|
||
example: >-
|
||
[Mon May 26 10:15:32 2026] [error] [client 192.168.1.1] File does
|
||
not exist: /var/www/vhosts/example.com/httpdocs/missing.html
|
||
required:
|
||
- path
|
||
- line
|
||
LogTypeInfo:
|
||
type: object
|
||
description: Log type information with count and time range
|
||
properties:
|
||
count:
|
||
description: Number of log entries found for this log type
|
||
type: integer
|
||
example: 42
|
||
time_range:
|
||
description: Time range specific to this log type
|
||
type: object
|
||
required:
|
||
- min
|
||
- max
|
||
properties:
|
||
min:
|
||
description: Earliest timestamp for this log type, null if no logs found
|
||
type: string
|
||
format: date-time
|
||
nullable: true
|
||
example: '2026-05-21T10:00:00Z'
|
||
max:
|
||
description: Latest timestamp for this log type, null if no logs found
|
||
type: string
|
||
format: date-time
|
||
nullable: true
|
||
example: '2026-05-22T15:30:00Z'
|
||
required:
|
||
- count
|
||
- time_range
|
||
DomainLogsResponse:
|
||
type: object
|
||
description: Domain logs search response with per-log-type time ranges
|
||
properties:
|
||
entries:
|
||
description: Array of sample log entries matching the search criteria
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/DomainLogEntry'
|
||
log_type_counts:
|
||
description: Log entry counts grouped by log type with individual time ranges
|
||
type: object
|
||
additionalProperties:
|
||
$ref: '#/components/schemas/LogTypeInfo'
|
||
example:
|
||
apache_error:
|
||
count: 5
|
||
time_range:
|
||
min: '2026-05-21T10:00:00Z'
|
||
max: '2026-05-22T15:30:00Z'
|
||
nginx_error:
|
||
count: 3
|
||
time_range:
|
||
min: '2026-05-22T08:00:00Z'
|
||
max: '2026-05-22T14:00:00Z'
|
||
php_fpm_error:
|
||
count: 7
|
||
time_range:
|
||
min: '2026-05-22T12:00:00Z'
|
||
max: '2026-05-22T15:00:00Z'
|
||
access:
|
||
count: 1523
|
||
time_range:
|
||
min: '2026-05-21T00:00:00Z'
|
||
max: '2026-05-22T23:59:59Z'
|
||
xferlog:
|
||
count: 42
|
||
time_range:
|
||
min: '2026-05-21T05:00:00Z'
|
||
max: '2026-05-22T20:00:00Z'
|
||
modsecurity_error:
|
||
count: 8
|
||
time_range:
|
||
min: '2026-05-22T10:30:00Z'
|
||
max: '2026-05-22T14:45:00Z'
|
||
required:
|
||
- entries
|
||
- log_type_counts
|
||
DnsCheck:
|
||
type: object
|
||
description: A single DNS check result
|
||
properties:
|
||
category:
|
||
type: string
|
||
enum:
|
||
- dns-management
|
||
- web
|
||
- mail
|
||
- email-auth
|
||
- propagation
|
||
example: mail
|
||
name:
|
||
type: string
|
||
example: A record
|
||
result:
|
||
type: string
|
||
enum:
|
||
- Pass
|
||
- Fail
|
||
- Skipped
|
||
- Could not determine
|
||
example: Fail
|
||
fact:
|
||
type: string
|
||
example: 'A record: 203.0.113.5. This server uses 198.51.100.10.'
|
||
context:
|
||
type: string
|
||
example: 203.0.113.5 serves IPv4 visitors, not this server.
|
||
evidence:
|
||
description: >-
|
||
Free-form, check-specific supporting data (records, TTL, resolver,
|
||
timestamp).
|
||
type: object
|
||
additionalProperties: true
|
||
required:
|
||
- category
|
||
- name
|
||
- result
|
||
- fact
|
||
- context
|
||
DomainDnsResolutionResponse:
|
||
type: object
|
||
description: Domain DNS resolution check report
|
||
properties:
|
||
summary:
|
||
description: Neutral counts per result; no overall verdict.
|
||
type: object
|
||
additionalProperties: true
|
||
example:
|
||
total: 15
|
||
counts:
|
||
Pass: 9
|
||
Fail: 3
|
||
Skipped: 2
|
||
Could not determine: 1
|
||
checks:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/DnsCheck'
|
||
required:
|
||
- summary
|
||
- checks
|
||
OwnerClientReference:
|
||
type: object
|
||
description: Reference to a client. One of the following properties is required.
|
||
anyOf:
|
||
- title: id
|
||
required:
|
||
- id
|
||
- title: login
|
||
required:
|
||
- login
|
||
- title: guid
|
||
required:
|
||
- guid
|
||
- title: external_id
|
||
required:
|
||
- external_id
|
||
properties:
|
||
id:
|
||
description: The client's ID.
|
||
type: integer
|
||
example: 7
|
||
login:
|
||
description: The login name of the client account owner.
|
||
type: string
|
||
example: owner
|
||
guid:
|
||
description: The global user ID of the client account just added to Plesk.
|
||
type: string
|
||
example: b623e93d-dc72-4102-b5f0-ded427cf0fb1
|
||
external_id:
|
||
description: >-
|
||
The client GUID in the Plesk components (for example, Business
|
||
Manager).
|
||
type: string
|
||
example: b623e93d-dc72-4102-b5f0-ded427cf0fb1
|
||
PlanReference:
|
||
type: object
|
||
description: >-
|
||
Identifies the service plan. One of the following properties is
|
||
required.
|
||
anyOf:
|
||
- title: id
|
||
required:
|
||
- id
|
||
- title: name
|
||
required:
|
||
- name
|
||
- title: guid
|
||
required:
|
||
- guid
|
||
- title: external_id
|
||
required:
|
||
- external_id
|
||
properties:
|
||
name:
|
||
description: Service plan name.
|
||
type: string
|
||
example: Unlimited
|
||
id:
|
||
description: Service plan ID.
|
||
type: integer
|
||
example: 7
|
||
guid:
|
||
description: Service plan GUID.
|
||
type: string
|
||
example: b623e93d-dc72-4102-b5f0-ded427cf0fb1
|
||
external_id:
|
||
description: Service plan external ID.
|
||
type: string
|
||
example: plan-ext-001
|
||
DomainAlias:
|
||
type: object
|
||
properties:
|
||
id:
|
||
description: Domain alias ID.
|
||
type: integer
|
||
example: 123
|
||
name:
|
||
description: Domain alias name.
|
||
type: string
|
||
example: example.com
|
||
ascii_name:
|
||
description: Domain alias name in ASCII.
|
||
type: string
|
||
example: ascii-example.com
|
||
web:
|
||
description: Web service status.
|
||
type: boolean
|
||
example: false
|
||
dns:
|
||
description: DNS service status.
|
||
type: boolean
|
||
example: true
|
||
mail:
|
||
description: Mail service status.
|
||
type: boolean
|
||
example: false
|
||
seo_redirect:
|
||
description: 301 redirect to HTTPS status.
|
||
type: boolean
|
||
example: true
|
||
required:
|
||
- id
|
||
- name
|
||
- ascii_name
|
||
- web
|
||
- dns
|
||
- mail
|
||
- seo_redirect
|
||
FtpUser:
|
||
type: object
|
||
properties:
|
||
id:
|
||
description: User ID in the database
|
||
type: integer
|
||
example: 2
|
||
name:
|
||
description: User name in the system
|
||
type: string
|
||
example: exampleuser
|
||
home:
|
||
description: Subdirectory of the WWW Root that user is restricted to
|
||
type: string
|
||
example: /httpdocs
|
||
quota:
|
||
description: Hard disk quota in bytes (if supported by platform)
|
||
type: integer
|
||
example: -1
|
||
permissions:
|
||
description: Access permissions of the user (if supported by platform)
|
||
type: object
|
||
properties:
|
||
write:
|
||
type: string
|
||
enum:
|
||
- 'true'
|
||
- 'false'
|
||
read:
|
||
type: string
|
||
enum:
|
||
- 'true'
|
||
- 'false'
|
||
parent_domain:
|
||
description: ID of the parent domain
|
||
type: integer
|
||
example: 4
|
||
required:
|
||
- id
|
||
- name
|
||
- home
|
||
- parent_domain
|
||
FtpUserRequest:
|
||
type: object
|
||
properties:
|
||
name:
|
||
description: User name in the system
|
||
type: string
|
||
example: exampleuser
|
||
password:
|
||
description: User password
|
||
type: string
|
||
example: changeme1Q**
|
||
home:
|
||
description: Subdirectory of the WWW Root that user is restricted to
|
||
type: string
|
||
example: /httpdocs
|
||
quota:
|
||
description: Hard disk quota in bytes (if supported by platform)
|
||
type: integer
|
||
example: -1
|
||
permissions:
|
||
description: Access permissions of the user (if supported by platform)
|
||
type: object
|
||
properties:
|
||
read:
|
||
type: string
|
||
enum:
|
||
- 'true'
|
||
- 'false'
|
||
write:
|
||
type: string
|
||
enum:
|
||
- 'true'
|
||
- 'false'
|
||
parent_domain:
|
||
$ref: '#/components/schemas/DomainReference'
|
||
required:
|
||
- name
|
||
- password
|
||
- parent_domain
|
||
FtpUserUpdateRequest:
|
||
type: object
|
||
properties:
|
||
name:
|
||
description: User name in the system
|
||
type: string
|
||
example: exampleuser
|
||
password:
|
||
description: User password
|
||
type: string
|
||
home:
|
||
description: Subdirectory of the WWW Root that user is restricted to
|
||
type: string
|
||
example: /httpdocs
|
||
quota:
|
||
description: Hard disk quota in bytes (if supported by platform)
|
||
type: integer
|
||
example: -1
|
||
permissions:
|
||
description: Access permissions of the user (if supported by platform)
|
||
type: object
|
||
properties:
|
||
read:
|
||
type: string
|
||
enum:
|
||
- 'true'
|
||
- 'false'
|
||
write:
|
||
type: string
|
||
enum:
|
||
- 'true'
|
||
- 'false'
|
||
Database:
|
||
type: object
|
||
properties:
|
||
id:
|
||
description: ID of the database
|
||
type: integer
|
||
example: 2
|
||
name:
|
||
description: Database name
|
||
type: string
|
||
example: exampledb
|
||
type:
|
||
description: Database server type
|
||
type: string
|
||
enum:
|
||
- mssql
|
||
- mysql
|
||
- postgresql
|
||
parent_domain:
|
||
description: ID of the parent domain
|
||
type: integer
|
||
example: 3
|
||
server_id:
|
||
description: ID of the database server
|
||
type: integer
|
||
example: 1
|
||
default_user_id:
|
||
description: ID of the default database user for database
|
||
type: integer
|
||
example: 6
|
||
DatabaseRequest:
|
||
type: object
|
||
required:
|
||
- name
|
||
- parent_domain
|
||
properties:
|
||
name:
|
||
description: Database name
|
||
type: string
|
||
example: exampledb
|
||
type:
|
||
description: Database server type
|
||
type: string
|
||
enum:
|
||
- mssql
|
||
- mysql
|
||
- postgresql
|
||
parent_domain:
|
||
$ref: '#/components/schemas/DomainReference'
|
||
server_id:
|
||
description: ID of the database server
|
||
type: integer
|
||
example: 1
|
||
DatabaseServer:
|
||
type: object
|
||
properties:
|
||
id:
|
||
description: ID of the database server
|
||
type: integer
|
||
example: 1
|
||
host:
|
||
description: Database server host
|
||
type: string
|
||
example: 127.0.0.1
|
||
port:
|
||
description: Database server port
|
||
type: integer
|
||
example: 3306
|
||
type:
|
||
description: Database server type
|
||
type: string
|
||
enum:
|
||
- mssql
|
||
- mysql
|
||
- postgresql
|
||
status:
|
||
description: Database server status
|
||
type: string
|
||
db_count:
|
||
description: Database server database count
|
||
type: integer
|
||
example: 123
|
||
is_default:
|
||
description: Flag that server is default for servers of this type
|
||
type: boolean
|
||
is_local:
|
||
description: Flag that server is installed on local service node
|
||
type: boolean
|
||
DatabaseUser:
|
||
type: object
|
||
properties:
|
||
id:
|
||
description: ID of the database user
|
||
type: integer
|
||
example: 5
|
||
login:
|
||
description: Database user login
|
||
type: string
|
||
example: exampledbuser
|
||
database_id:
|
||
description: >-
|
||
ID of the database this user has access to. A value of 0 means the
|
||
user has access to all databases on the subscription (created with
|
||
server_id instead of database_id).
|
||
type: integer
|
||
example: 12
|
||
DatabaseUserRequest:
|
||
type: object
|
||
description: >-
|
||
Either parent_domain and server_id together, or database_id must be
|
||
provided.
|
||
properties:
|
||
login:
|
||
description: Database user login
|
||
type: string
|
||
example: exampledbuser
|
||
password:
|
||
description: User password
|
||
type: string
|
||
example: changeme1Q**
|
||
parent_domain:
|
||
$ref: '#/components/schemas/DomainReference'
|
||
server_id:
|
||
description: >-
|
||
ID of the database server (if user should have access to all
|
||
databases on subscription)
|
||
type: integer
|
||
example: 9
|
||
database_id:
|
||
description: ID of the database (if user should have access to one database)
|
||
type: integer
|
||
example: 3
|
||
required:
|
||
- login
|
||
- password
|
||
anyOf:
|
||
- title: parent_domain and server_id
|
||
required:
|
||
- parent_domain
|
||
- server_id
|
||
- title: database_id
|
||
required:
|
||
- database_id
|
||
DatabaseUserUpdateRequest:
|
||
type: object
|
||
properties:
|
||
login:
|
||
description: Database user login
|
||
type: string
|
||
example: exampledbuser
|
||
password:
|
||
description: New user password
|
||
type: string
|
||
example: changeme1Q**
|
||
DnsRecord:
|
||
type: object
|
||
properties:
|
||
id:
|
||
description: Unique identifier of the DNS record
|
||
type: integer
|
||
type:
|
||
description: The type of the DNS record
|
||
type: string
|
||
enum:
|
||
- A
|
||
- CNAME
|
||
- PTR
|
||
- MX
|
||
- NS
|
||
- TXT
|
||
- SOA
|
||
- AXFR
|
||
- SRV
|
||
- AAAA
|
||
- DS
|
||
- CAA
|
||
- TLSA
|
||
- HTTPS
|
||
host:
|
||
description: The IP address or name of a host, that will be used by DNS
|
||
type: string
|
||
value:
|
||
description: The value that will be linked with the host value
|
||
type: string
|
||
opt:
|
||
description: Optional information about the DNS record
|
||
type: string
|
||
ttl:
|
||
description: >-
|
||
The amount of time (in seconds) that slave DNS servers should store
|
||
the record in a cache
|
||
type: integer
|
||
DnsRecordRequest:
|
||
type: object
|
||
properties:
|
||
type:
|
||
description: The type of the DNS record
|
||
type: string
|
||
enum:
|
||
- A
|
||
- CNAME
|
||
- PTR
|
||
- MX
|
||
- NS
|
||
- TXT
|
||
- SOA
|
||
- AXFR
|
||
- SRV
|
||
- AAAA
|
||
- DS
|
||
- CAA
|
||
- TLSA
|
||
- HTTPS
|
||
host:
|
||
description: The IP address or name of a host, that will be used by DNS
|
||
type: string
|
||
value:
|
||
description: The value that will be linked with the host value
|
||
type: string
|
||
opt:
|
||
description: Optional information about the DNS record
|
||
type: string
|
||
ttl:
|
||
description: >-
|
||
The amount of time (in seconds) that slave DNS servers should store
|
||
the record in a cache
|
||
type: integer
|
||
FileContentResponse:
|
||
type: object
|
||
properties:
|
||
encoding:
|
||
description: Content transfer encoding of the "content" field.
|
||
type: string
|
||
enum:
|
||
- plain
|
||
- base64
|
||
example: plain
|
||
content:
|
||
description: File contents encoded according to "encoding".
|
||
type: string
|
||
example: hello world
|
||
required:
|
||
- encoding
|
||
- content
|
||
FileChmodRequest:
|
||
type: object
|
||
properties:
|
||
mode:
|
||
description: >-
|
||
Octal permission mode (4 digits, e.g. "0755"). Only the low nine
|
||
permission bits (owner/group/other) are accepted; the leading digit
|
||
must be "0". Setuid, setgid, and sticky bits are not allowed.
|
||
type: string
|
||
pattern: ^0[0-7]{3}$
|
||
example: '0755'
|
||
required:
|
||
- mode
|
||
FileCopyMoveRequest:
|
||
type: object
|
||
properties:
|
||
source:
|
||
description: >
|
||
Source path. A leading "/" is treated as an absolute filesystem
|
||
path;
|
||
|
||
otherwise the path is resolved relative to the domain's document
|
||
root.
|
||
type: string
|
||
example: old-name.txt
|
||
destination:
|
||
description: >
|
||
Destination path. A leading "/" is treated as an absolute filesystem
|
||
path;
|
||
|
||
otherwise the path is resolved relative to the domain's document
|
||
root.
|
||
type: string
|
||
example: new-name.txt
|
||
overwrite:
|
||
description: Whether to overwrite the destination if it already exists.
|
||
type: boolean
|
||
default: false
|
||
required:
|
||
- source
|
||
- destination
|
||
FileContentRequest:
|
||
type: object
|
||
properties:
|
||
encoding:
|
||
description: Content transfer encoding of the "content" field.
|
||
type: string
|
||
enum:
|
||
- plain
|
||
- base64
|
||
example: base64
|
||
content:
|
||
description: >-
|
||
File contents encoded according to "encoding". May be empty to write
|
||
an empty file.
|
||
type: string
|
||
example: SGVsbG8sIHdvcmxkIQ==
|
||
required:
|
||
- encoding
|
||
- content
|
||
File:
|
||
type: object
|
||
properties:
|
||
name:
|
||
description: Entry basename.
|
||
type: string
|
||
example: index.html
|
||
path:
|
||
description: >-
|
||
Path relative to the domain's document root. Can be sent back as the
|
||
`path` query parameter.
|
||
type: string
|
||
example: index.html
|
||
fullpath:
|
||
description: Absolute filesystem path.
|
||
type: string
|
||
example: /var/www/vhosts/example.com/httpdocs/index.html
|
||
type:
|
||
description: Filesystem entry type.
|
||
type: string
|
||
enum:
|
||
- file
|
||
- directory
|
||
example: file
|
||
size:
|
||
description: Entry size in bytes.
|
||
type: integer
|
||
format: int64
|
||
example: 1024
|
||
mtime:
|
||
description: Last modification time as Unix timestamp.
|
||
type: integer
|
||
example: 1715587200
|
||
mode:
|
||
description: Octal permission mode (4 digits).
|
||
type: string
|
||
example: '0644'
|
||
required:
|
||
- name
|
||
- path
|
||
- fullpath
|
||
- type
|
||
- size
|
||
- mtime
|
||
- mode
|