@getquick/site 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/LICENSE +21 -0
- package/README.md +146 -2
- package/bin/gq.mjs +14 -0
- package/docs/research/ploi-api.md +2371 -0
- package/package.json +56 -4
- package/src/exec.mjs +23 -0
- package/src/index.mjs +1 -0
- package/src/ops/cli.mjs +349 -0
- package/src/ops/env.mjs +73 -0
- package/src/ops/output.mjs +62 -0
- package/src/ops/ploi-api-command.mjs +225 -0
- package/src/ops/project-context.mjs +103 -0
- package/src/ops/providers/cloudflare.mjs +95 -0
- package/src/ops/providers/github.mjs +104 -0
- package/src/ops/providers/http.mjs +31 -0
- package/src/ops/providers/ploi-catalog.mjs +49 -0
- package/src/ops/providers/ploi-endpoints.mjs +1590 -0
- package/src/ops/providers/ploi.mjs +159 -0
- package/src/ops/ui.mjs +84 -0
- package/src/run.mjs +45 -0
- package/src/version.mjs +3 -0
|
@@ -0,0 +1,2371 @@
|
|
|
1
|
+
# Ploi API endpoint inventory
|
|
2
|
+
|
|
3
|
+
> Research snapshot: 2026-09-18. This is a documentation inventory, not an implementation. It uses Ploi's first-party API reference and MCP documentation only. No live API mutations were made.
|
|
4
|
+
|
|
5
|
+
## Scope and conventions
|
|
6
|
+
|
|
7
|
+
- **Coverage.** The official sitemap lists 224 API-reference pages under the resource paths, plus the documented [Teapot](https://developers.ploi.io/getting-started/teapot) endpoint. One resource page, [Insight types](https://developers.ploi.io/insights/insight-types), is a type catalogue rather than an HTTP endpoint, leaving **224 endpoint pages, 225 documented operation sections, and 226 route forms**: [Create custom server](https://developers.ploi.io/servers/create-custom-server) documents two operations, while [Laravel Horizon statistics](https://developers.ploi.io/sites/laravel-horizon-statistics) documents both the default route and an optional `/{type}` form. The sitemap is the coverage manifest: [developers.ploi.io/sitemap.xml](https://developers.ploi.io/sitemap.xml).
|
|
8
|
+
- **Base URL/authentication.** The base URL is `https://ploi.io/api`; send `Authorization: Bearer {token}`, `Accept: application/json`, and `Content-Type: application/json` as appropriate. The headers guide also says a descriptive `User-Agent` is required. Sources: [URL](https://developers.ploi.io/getting-started/url), [authorization](https://developers.ploi.io/getting-started/authorization), [headers](https://developers.ploi.io/getting-started/headers).
|
|
9
|
+
- **Path notation.** Braced segments are logical parameter names. Where the source cURL used a literal example ID/domain, this inventory normalizes it and flags the ambiguity in the notes.
|
|
10
|
+
- **Pagination.** A row marked 'yes' has the documented Laravel-style 'data' + 'links' + 'meta' envelope. Follow 'links.next'; the pagination guide documents 'page', 'per_page' (default 15, maximum 50; values above 50 revert to 15), and the query guide documents 'search' for list views. Sources: [pagination](https://developers.ploi.io/getting-started/pagination), [query parameters](https://developers.ploi.io/getting-started/query-parameters). A row marked 'no' does not show that envelope on its endpoint page; this is not an assertion that undocumented query parameters are rejected.
|
|
11
|
+
- **Request fields.** 'body' is the JSON field set shown under Required/Optional attributes or parameters; 'query' is shown under query-parameter headings or in the cURL URL. Required/optional status is copied from the page.
|
|
12
|
+
- **CLI names.** These are logical names proposed to fit this repository's vocabulary: existing commands are 'gq ploi servers list', 'gq ploi server show', 'gq ploi sites list', and 'gq ploi site show'; every other command below is **not currently implemented**. The current provider uses 'https://ploi.io/api', Bearer auth, unwraps 'data' for detail calls, and follows 'links.next' or 'meta.next_page_url'; source: [src/providers/ploi.mjs](../../src/providers/ploi.mjs) and [src/cli.mjs](../../src/cli.mjs).
|
|
13
|
+
|
|
14
|
+
## aliases
|
|
15
|
+
|
|
16
|
+
### Create alias
|
|
17
|
+
|
|
18
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/aliases`
|
|
19
|
+
- **Path parameters:** `server`, `site`
|
|
20
|
+
- **Request:** body — `aliases (array; required)`; query — —
|
|
21
|
+
- **Pagination:** no documented pagination envelope
|
|
22
|
+
- **Response:** `{ data: { aliases, count, main } }`
|
|
23
|
+
- **Logical CLI:** `gq ploi aliases create-alias`
|
|
24
|
+
- **Source:** [Ploi API reference — Create alias](https://developers.ploi.io/aliases/create-alias)
|
|
25
|
+
|
|
26
|
+
### Delete alias
|
|
27
|
+
|
|
28
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{site}/aliases/{alias}`
|
|
29
|
+
- **Path parameters:** `server`, `site`, `alias`
|
|
30
|
+
- **Request:** body — —; query — —
|
|
31
|
+
- **Pagination:** no documented pagination envelope
|
|
32
|
+
- **Response:** `{ data: { aliases, count, main } }`; **notes:** source example uses a concrete ID/domain; normalized here
|
|
33
|
+
- **Logical CLI:** `gq ploi aliases delete-alias`
|
|
34
|
+
- **Source:** [Ploi API reference — Delete alias](https://developers.ploi.io/aliases/delete-alias)
|
|
35
|
+
|
|
36
|
+
### List aliases
|
|
37
|
+
|
|
38
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{site}/aliases`
|
|
39
|
+
- **Path parameters:** `server`, `site`
|
|
40
|
+
- **Request:** body — —; query — —
|
|
41
|
+
- **Pagination:** no documented pagination envelope
|
|
42
|
+
- **Response:** `{ data: { aliases, count, main } }`
|
|
43
|
+
- **Logical CLI:** `gq ploi aliases list-aliases`
|
|
44
|
+
- **Source:** [Ploi API reference — List aliases](https://developers.ploi.io/aliases/list-aliases)
|
|
45
|
+
|
|
46
|
+
## apps
|
|
47
|
+
|
|
48
|
+
### Install Nextcloud
|
|
49
|
+
|
|
50
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/nextcloud`
|
|
51
|
+
- **Path parameters:** `server`, `id`
|
|
52
|
+
- **Request:** body — —; query — —
|
|
53
|
+
- **Pagination:** no documented pagination envelope
|
|
54
|
+
- **Response:** `{ data: { id, domain, web_directory, wordpress, laravel, project_root, last_deploy_at, created_at } }`
|
|
55
|
+
- **Logical CLI:** `gq ploi apps install-nextcloud`
|
|
56
|
+
- **Source:** [Ploi API reference — Install Nextcloud](https://developers.ploi.io/apps/install-nextcloud)
|
|
57
|
+
|
|
58
|
+
### Install Statamic
|
|
59
|
+
|
|
60
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/statamic`
|
|
61
|
+
- **Path parameters:** `server`, `id`
|
|
62
|
+
- **Request:** body — `type (string; optional)`, `provider (string; optional)`, `name (string; optional)`, `private (boolean; optional)`, `description (string; optional)`, `installation_type (string; optional)`; query — —
|
|
63
|
+
- **Pagination:** no documented pagination envelope
|
|
64
|
+
- **Response:** `{ data: { id, status, server_id, domain, test_domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, has_repository, zero_downtime_deployment, fastcgi_cache, created_at }, message }`
|
|
65
|
+
- **Logical CLI:** `gq ploi apps install-statamic`
|
|
66
|
+
- **Source:** [Ploi API reference — Install Statamic](https://developers.ploi.io/apps/install-statamic)
|
|
67
|
+
|
|
68
|
+
### Install WordPress
|
|
69
|
+
|
|
70
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress`
|
|
71
|
+
- **Path parameters:** `server`, `id`
|
|
72
|
+
- **Request:** body — `create_database (boolean; optional)`; query — —
|
|
73
|
+
- **Pagination:** no documented pagination envelope
|
|
74
|
+
- **Response:** `{ data: { id, domain, web_directory, wordpress, laravel, project_root, last_deploy_at, created_at } }`
|
|
75
|
+
- **Logical CLI:** `gq ploi apps install-wordpress`
|
|
76
|
+
- **Source:** [Ploi API reference — Install WordPress](https://developers.ploi.io/apps/install-wordpress)
|
|
77
|
+
|
|
78
|
+
### Uninstall Nextcloud
|
|
79
|
+
|
|
80
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{id}/nextcloud`
|
|
81
|
+
- **Path parameters:** `server`, `id`
|
|
82
|
+
- **Request:** body — —; query — —
|
|
83
|
+
- **Pagination:** no documented pagination envelope
|
|
84
|
+
- **Response:** `{ data: { id, domain, web_directory, wordpress, laravel, project_root, last_deploy_at, created_at } }`
|
|
85
|
+
- **Logical CLI:** `gq ploi apps uninstall-nextcloud`
|
|
86
|
+
- **Source:** [Ploi API reference — Uninstall Nextcloud](https://developers.ploi.io/apps/uninstall-nextcloud)
|
|
87
|
+
|
|
88
|
+
### Uninstall Statamic
|
|
89
|
+
|
|
90
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{id}/statamic`
|
|
91
|
+
- **Path parameters:** `server`, `id`
|
|
92
|
+
- **Request:** body — —; query — —
|
|
93
|
+
- **Pagination:** no documented pagination envelope
|
|
94
|
+
- **Response:** `{ data: { id, status, server_id, domain, test_domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, has_repository, zero_downtime_deployment, fastcgi_cache, created_at }, message }`
|
|
95
|
+
- **Logical CLI:** `gq ploi apps uninstall-statamic`
|
|
96
|
+
- **Source:** [Ploi API reference — Uninstall Statamic](https://developers.ploi.io/apps/uninstall-statamic)
|
|
97
|
+
|
|
98
|
+
### Uninstall WordPress
|
|
99
|
+
|
|
100
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{id}/wordpress`
|
|
101
|
+
- **Path parameters:** `server`, `id`
|
|
102
|
+
- **Request:** body — —; query — —
|
|
103
|
+
- **Pagination:** no documented pagination envelope
|
|
104
|
+
- **Response:** `{ data: { id, domain, web_directory, wordpress, laravel, project_root, last_deploy_at, created_at } }`
|
|
105
|
+
- **Logical CLI:** `gq ploi apps uninstall-wordpress`
|
|
106
|
+
- **Source:** [Ploi API reference — Uninstall WordPress](https://developers.ploi.io/apps/uninstall-wordpress)
|
|
107
|
+
|
|
108
|
+
## auth-users
|
|
109
|
+
|
|
110
|
+
### Create auth user
|
|
111
|
+
|
|
112
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/auth-users`
|
|
113
|
+
- **Path parameters:** `server`, `id`
|
|
114
|
+
- **Request:** body — `name (string; required)`, `password (string; required)`, `path (string; optional)`; query — —
|
|
115
|
+
- **Pagination:** no documented pagination envelope
|
|
116
|
+
- **Response:** `{ data: { id, name, path, created_at } }`
|
|
117
|
+
- **Logical CLI:** `gq ploi auth-users create-auth-user`
|
|
118
|
+
- **Source:** [Ploi API reference — Create auth user](https://developers.ploi.io/auth-users/create-auth-user)
|
|
119
|
+
|
|
120
|
+
### Delete auth user
|
|
121
|
+
|
|
122
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{id}/auth-users/{authUserId}`
|
|
123
|
+
- **Path parameters:** `server`, `id`, `authUserId`
|
|
124
|
+
- **Request:** body — —; query — —
|
|
125
|
+
- **Pagination:** no documented pagination envelope
|
|
126
|
+
- **Response:** `{ data: { id, name, path, created_at } }`
|
|
127
|
+
- **Logical CLI:** `gq ploi auth-users delete-auth-user`
|
|
128
|
+
- **Source:** [Ploi API reference — Delete auth user](https://developers.ploi.io/auth-users/delete-auth-user)
|
|
129
|
+
|
|
130
|
+
### Get auth user
|
|
131
|
+
|
|
132
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{id}/auth-users/{authUserId}`
|
|
133
|
+
- **Path parameters:** `server`, `id`, `authUserId`
|
|
134
|
+
- **Request:** body — —; query — —
|
|
135
|
+
- **Pagination:** no documented pagination envelope
|
|
136
|
+
- **Response:** `{ data: { id, name, path, created_at } }`
|
|
137
|
+
- **Logical CLI:** `gq ploi auth-users show-auth-user`
|
|
138
|
+
- **Source:** [Ploi API reference — Get auth user](https://developers.ploi.io/auth-users/get-auth-user)
|
|
139
|
+
|
|
140
|
+
### List auth users
|
|
141
|
+
|
|
142
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{id}/auth-users`
|
|
143
|
+
- **Path parameters:** `server`, `id`
|
|
144
|
+
- **Request:** body — —; query — —
|
|
145
|
+
- **Pagination:** no documented pagination envelope
|
|
146
|
+
- **Response:** `{ data: array of { id, name, path, created_at } }`
|
|
147
|
+
- **Logical CLI:** `gq ploi auth-users list-auth-users`
|
|
148
|
+
- **Source:** [Ploi API reference — List auth users](https://developers.ploi.io/auth-users/list-auth-users)
|
|
149
|
+
|
|
150
|
+
## certificates
|
|
151
|
+
|
|
152
|
+
### Activate certificate
|
|
153
|
+
|
|
154
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/certificates/{certificate}/activate`
|
|
155
|
+
- **Path parameters:** `server`, `site`, `certificate`
|
|
156
|
+
- **Request:** body — —; query — —
|
|
157
|
+
- **Pagination:** no documented pagination envelope
|
|
158
|
+
- **Response:** `{ data: { id, status, domain, type, active, tenant, site_id, site_tenant_id, server_id, expires_at, created_at } }`
|
|
159
|
+
- **Logical CLI:** `gq ploi certificates activate-certificate`
|
|
160
|
+
- **Source:** [Ploi API reference — Activate certificate](https://developers.ploi.io/certificates/activate-certificate)
|
|
161
|
+
|
|
162
|
+
### Create certificate
|
|
163
|
+
|
|
164
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/certificates`
|
|
165
|
+
- **Path parameters:** `server`, `site`
|
|
166
|
+
- **Request:** body — `type (string; required)`, `certificate (string; required)`, `private (string; optional)`, `force (boolean; optional)`, `additional (object; optional)`; query — —
|
|
167
|
+
- **Pagination:** no documented pagination envelope
|
|
168
|
+
- **Response:** `{ data: { id, status, domain, type, site_id, server_id, expires_at, created_at } }`
|
|
169
|
+
- **Logical CLI:** `gq ploi certificates create-certificate`
|
|
170
|
+
- **Source:** [Ploi API reference — Create certificate](https://developers.ploi.io/certificates/create-certificate)
|
|
171
|
+
|
|
172
|
+
### Delete certificate
|
|
173
|
+
|
|
174
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{site}/certificates/{certificate}`
|
|
175
|
+
- **Path parameters:** `server`, `site`, `certificate`
|
|
176
|
+
- **Request:** body — —; query — —
|
|
177
|
+
- **Pagination:** no documented pagination envelope
|
|
178
|
+
- **Response:** `{ message }`
|
|
179
|
+
- **Logical CLI:** `gq ploi certificates delete-certificate`
|
|
180
|
+
- **Source:** [Ploi API reference — Delete certificate](https://developers.ploi.io/certificates/delete-certificate)
|
|
181
|
+
|
|
182
|
+
### Download certificate
|
|
183
|
+
|
|
184
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{site}/certificates/{certificate}/download`
|
|
185
|
+
- **Path parameters:** `server`, `site`, `certificate`
|
|
186
|
+
- **Request:** body — —; query — —
|
|
187
|
+
- **Pagination:** no documented pagination envelope
|
|
188
|
+
- **Response:** `{ certificate, certificate_path, expires_at }`; **notes:** on-demand execution/retrieval is documented; 422 behavior documented; private key is not returned
|
|
189
|
+
- **Logical CLI:** `gq ploi certificates download-certificate`
|
|
190
|
+
- **Source:** [Ploi API reference — Download certificate](https://developers.ploi.io/certificates/download-certificate)
|
|
191
|
+
|
|
192
|
+
### Get certificate
|
|
193
|
+
|
|
194
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{site}/certificates/{certificate}`
|
|
195
|
+
- **Path parameters:** `server`, `site`, `certificate`
|
|
196
|
+
- **Request:** body — —; query — —
|
|
197
|
+
- **Pagination:** no documented pagination envelope
|
|
198
|
+
- **Response:** `{ data: { id, status, domain, type, active, site_id, server_id, expires_at, created_at } }`
|
|
199
|
+
- **Logical CLI:** `gq ploi certificates show-certificate`
|
|
200
|
+
- **Source:** [Ploi API reference — Get certificate](https://developers.ploi.io/certificates/get-certificate)
|
|
201
|
+
|
|
202
|
+
### List certificates
|
|
203
|
+
|
|
204
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{site}/certificates`
|
|
205
|
+
- **Path parameters:** `server`, `site`
|
|
206
|
+
- **Request:** body — —; query — —
|
|
207
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
208
|
+
- **Response:** `{ data: array of { id, status, domain, type, active, site_id, server_id, expires_at, created_at }, links, meta }`
|
|
209
|
+
- **Logical CLI:** `gq ploi certificates list-certificates`
|
|
210
|
+
- **Source:** [Ploi API reference — List certificates](https://developers.ploi.io/certificates/list-certificates)
|
|
211
|
+
|
|
212
|
+
## containers
|
|
213
|
+
|
|
214
|
+
### Container logs
|
|
215
|
+
|
|
216
|
+
- **Method/path:** `GET /api/servers/{server}/docker/containers/{container}/logs`
|
|
217
|
+
- **Path parameters:** `server`, `container`
|
|
218
|
+
- **Request:** body — `lines (integer; optional)`; query — `lines=100`
|
|
219
|
+
- **Pagination:** no documented pagination envelope
|
|
220
|
+
- **Response:** `{ content }`; **notes:** 404 behavior documented
|
|
221
|
+
- **Logical CLI:** `gq ploi containers container-logs`
|
|
222
|
+
- **Source:** [Ploi API reference — Container logs](https://developers.ploi.io/containers/container-logs)
|
|
223
|
+
|
|
224
|
+
### Create container
|
|
225
|
+
|
|
226
|
+
- **Method/path:** `POST /api/servers/{server}/docker/containers`
|
|
227
|
+
- **Path parameters:** `server`
|
|
228
|
+
- **Request:** body — `name (string; required)`, `deploy_script (string; optional)`; query — —
|
|
229
|
+
- **Pagination:** no documented pagination envelope
|
|
230
|
+
- **Response:** `{ id, status, name, deploy_script, path, last_deploy_at, created_at, type, state }`
|
|
231
|
+
- **Logical CLI:** `gq ploi containers create-container`
|
|
232
|
+
- **Source:** [Ploi API reference — Create container](https://developers.ploi.io/containers/create-container)
|
|
233
|
+
|
|
234
|
+
### Delete container
|
|
235
|
+
|
|
236
|
+
- **Method/path:** `DELETE /api/servers/{server}/docker/containers/{container}`
|
|
237
|
+
- **Path parameters:** `server`, `container`
|
|
238
|
+
- **Request:** body — —; query — —
|
|
239
|
+
- **Pagination:** no documented pagination envelope
|
|
240
|
+
- **Response:** `{ message }`; **notes:** source example uses a concrete ID/domain; normalized here
|
|
241
|
+
- **Logical CLI:** `gq ploi containers delete-container`
|
|
242
|
+
- **Source:** [Ploi API reference — Delete container](https://developers.ploi.io/containers/delete-container)
|
|
243
|
+
|
|
244
|
+
### Get container
|
|
245
|
+
|
|
246
|
+
- **Method/path:** `GET /api/servers/{server}/docker/containers/{container}`
|
|
247
|
+
- **Path parameters:** `server`, `container`
|
|
248
|
+
- **Request:** body — —; query — —
|
|
249
|
+
- **Pagination:** no documented pagination envelope
|
|
250
|
+
- **Response:** `{ id, status, name, deploy_script, path, last_deploy_at, created_at, type, state }`; **notes:** source example uses a concrete ID/domain; normalized here
|
|
251
|
+
- **Logical CLI:** `gq ploi containers show-container`
|
|
252
|
+
- **Source:** [Ploi API reference — Get container](https://developers.ploi.io/containers/get-container)
|
|
253
|
+
|
|
254
|
+
### Link site
|
|
255
|
+
|
|
256
|
+
- **Method/path:** `POST /api/servers/{server}/docker/containers/{container}/site/link`
|
|
257
|
+
- **Path parameters:** `server`, `container`
|
|
258
|
+
- **Request:** body — `site_id (integer; required)`, `port (integer; required)`, `host (string; required)`; query — —
|
|
259
|
+
- **Pagination:** no documented pagination envelope
|
|
260
|
+
- **Response:** `{ message }`; **notes:** source example uses a concrete ID/domain; normalized here
|
|
261
|
+
- **Logical CLI:** `gq ploi containers link-site`
|
|
262
|
+
- **Source:** [Ploi API reference — Link site](https://developers.ploi.io/containers/link-site)
|
|
263
|
+
|
|
264
|
+
### List containers
|
|
265
|
+
|
|
266
|
+
- **Method/path:** `GET /api/servers/{server}/docker/containers`
|
|
267
|
+
- **Path parameters:** `server`
|
|
268
|
+
- **Request:** body — —; query — —
|
|
269
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
270
|
+
- **Response:** `{ data: array of { id, status, name, deploy_script, path, last_deploy_at, created_at, type, state }, links, meta }`
|
|
271
|
+
- **Logical CLI:** `gq ploi containers list-containers`
|
|
272
|
+
- **Source:** [Ploi API reference — List containers](https://developers.ploi.io/containers/list-containers)
|
|
273
|
+
|
|
274
|
+
### Start container
|
|
275
|
+
|
|
276
|
+
- **Method/path:** `POST /api/servers/{server}/docker/containers/{container}/up`
|
|
277
|
+
- **Path parameters:** `server`, `container`
|
|
278
|
+
- **Request:** body — `flags (array; optional)`; query — —
|
|
279
|
+
- **Pagination:** no documented pagination envelope
|
|
280
|
+
- **Response:** `{ message }`; **notes:** operation may be queued/backgrounded
|
|
281
|
+
- **Logical CLI:** `gq ploi containers start-container`
|
|
282
|
+
- **Source:** [Ploi API reference — Start container](https://developers.ploi.io/containers/start-container)
|
|
283
|
+
|
|
284
|
+
### Stop container
|
|
285
|
+
|
|
286
|
+
- **Method/path:** `POST /api/servers/{server}/docker/containers/{container}/down`
|
|
287
|
+
- **Path parameters:** `server`, `container`
|
|
288
|
+
- **Request:** body — `flags (array; optional)`; query — —
|
|
289
|
+
- **Pagination:** no documented pagination envelope
|
|
290
|
+
- **Response:** `{ message }`; **notes:** operation may be queued/backgrounded
|
|
291
|
+
- **Logical CLI:** `gq ploi containers stop-container`
|
|
292
|
+
- **Source:** [Ploi API reference — Stop container](https://developers.ploi.io/containers/stop-container)
|
|
293
|
+
|
|
294
|
+
### Unlink site
|
|
295
|
+
|
|
296
|
+
- **Method/path:** `DELETE /api/servers/{server}/docker/containers/{container}/site/unlink`
|
|
297
|
+
- **Path parameters:** `server`, `container`
|
|
298
|
+
- **Request:** body — —; query — —
|
|
299
|
+
- **Pagination:** no documented pagination envelope
|
|
300
|
+
- **Response:** `{ message }`; **notes:** source example uses a concrete ID/domain; normalized here
|
|
301
|
+
- **Logical CLI:** `gq ploi containers unlink-site`
|
|
302
|
+
- **Source:** [Ploi API reference — Unlink site](https://developers.ploi.io/containers/unlink-site)
|
|
303
|
+
|
|
304
|
+
### Update container
|
|
305
|
+
|
|
306
|
+
- **Method/path:** `PATCH /api/servers/{server}/docker/containers/{container}`
|
|
307
|
+
- **Path parameters:** `server`, `container`
|
|
308
|
+
- **Request:** body — `name (string; optional)`, `deploy_script (string; optional)`; query — —
|
|
309
|
+
- **Pagination:** no documented pagination envelope
|
|
310
|
+
- **Response:** `{ id, status, name, deploy_script, path, last_deploy_at, created_at, type, state }`; **notes:** source example uses a concrete ID/domain; normalized here
|
|
311
|
+
- **Logical CLI:** `gq ploi containers update-container`
|
|
312
|
+
- **Source:** [Ploi API reference — Update container](https://developers.ploi.io/containers/update-container)
|
|
313
|
+
|
|
314
|
+
## crontabs
|
|
315
|
+
|
|
316
|
+
### Create crontab
|
|
317
|
+
|
|
318
|
+
- **Method/path:** `POST /api/servers/{server}/crontabs`
|
|
319
|
+
- **Path parameters:** `server`
|
|
320
|
+
- **Request:** body — `user (string; required)`, `command (string; required)`, `frequency (string; required)`; query — —
|
|
321
|
+
- **Pagination:** no documented pagination envelope
|
|
322
|
+
- **Response:** `{ data: { id, command, user, frequency, created_at } }`
|
|
323
|
+
- **Logical CLI:** `gq ploi crontabs create-crontab`
|
|
324
|
+
- **Source:** [Ploi API reference — Create crontab](https://developers.ploi.io/crontabs/create-crontab)
|
|
325
|
+
|
|
326
|
+
### Delete crontab
|
|
327
|
+
|
|
328
|
+
- **Method/path:** `DELETE /api/servers/{server}/crontabs/{id}`
|
|
329
|
+
- **Path parameters:** `server`, `id`
|
|
330
|
+
- **Request:** body — —; query — —
|
|
331
|
+
- **Pagination:** no documented pagination envelope
|
|
332
|
+
- **Response:** `empty response body`; **notes:** documented empty response body
|
|
333
|
+
- **Logical CLI:** `gq ploi crontabs delete-crontab`
|
|
334
|
+
- **Source:** [Ploi API reference — Delete crontab](https://developers.ploi.io/crontabs/delete-crontab)
|
|
335
|
+
|
|
336
|
+
### Get crontab
|
|
337
|
+
|
|
338
|
+
- **Method/path:** `GET /api/servers/{server}/crontabs/{id}`
|
|
339
|
+
- **Path parameters:** `server`, `id`
|
|
340
|
+
- **Request:** body — —; query — —
|
|
341
|
+
- **Pagination:** no documented pagination envelope
|
|
342
|
+
- **Response:** `{ data: { id, command, user, frequency, created_at } }`
|
|
343
|
+
- **Logical CLI:** `gq ploi crontabs show-crontab`
|
|
344
|
+
- **Source:** [Ploi API reference — Get crontab](https://developers.ploi.io/crontabs/get-crontab)
|
|
345
|
+
|
|
346
|
+
### List crontabs
|
|
347
|
+
|
|
348
|
+
- **Method/path:** `GET /api/servers/{server}/crontabs`
|
|
349
|
+
- **Path parameters:** `server`
|
|
350
|
+
- **Request:** body — —; query — —
|
|
351
|
+
- **Pagination:** no documented pagination envelope
|
|
352
|
+
- **Response:** `{ data: array of { id, command, user, frequency, created_at } }`
|
|
353
|
+
- **Logical CLI:** `gq ploi crontabs list-crontabs`
|
|
354
|
+
- **Source:** [Ploi API reference — List crontabs](https://developers.ploi.io/crontabs/list-crontabs)
|
|
355
|
+
|
|
356
|
+
## daemons
|
|
357
|
+
|
|
358
|
+
### Create daemon
|
|
359
|
+
|
|
360
|
+
- **Method/path:** `POST /api/servers/{server}/daemons`
|
|
361
|
+
- **Path parameters:** `server`
|
|
362
|
+
- **Request:** body — `command (string; required)`, `system_user (string; required)`, `processes (integer; required)`, `directory (string; optional)`; query — —
|
|
363
|
+
- **Pagination:** no documented pagination envelope
|
|
364
|
+
- **Response:** `{ data: { id, command, processes, system_user, directory, status } }`; **notes:** operation may be queued/backgrounded
|
|
365
|
+
- **Logical CLI:** `gq ploi daemons create-daemon`
|
|
366
|
+
- **Source:** [Ploi API reference — Create daemon](https://developers.ploi.io/daemons/create-daemon)
|
|
367
|
+
|
|
368
|
+
### Delete daemon
|
|
369
|
+
|
|
370
|
+
- **Method/path:** `DELETE /api/servers/{server}/daemons/{daemon}`
|
|
371
|
+
- **Path parameters:** `server`, `daemon`
|
|
372
|
+
- **Request:** body — —; query — —
|
|
373
|
+
- **Pagination:** no documented pagination envelope
|
|
374
|
+
- **Response:** `empty response body`; **notes:** documented empty response body
|
|
375
|
+
- **Logical CLI:** `gq ploi daemons delete-daemon`
|
|
376
|
+
- **Source:** [Ploi API reference — Delete daemon](https://developers.ploi.io/daemons/delete-daemon)
|
|
377
|
+
|
|
378
|
+
### Get daemon
|
|
379
|
+
|
|
380
|
+
- **Method/path:** `GET /api/servers/{server}/daemons/{daemon}`
|
|
381
|
+
- **Path parameters:** `server`, `daemon`
|
|
382
|
+
- **Request:** body — —; query — —
|
|
383
|
+
- **Pagination:** no documented pagination envelope
|
|
384
|
+
- **Response:** `{ data: { id, command, processes, system_user, directory, status } }`
|
|
385
|
+
- **Logical CLI:** `gq ploi daemons show-daemon`
|
|
386
|
+
- **Source:** [Ploi API reference — Get daemon](https://developers.ploi.io/daemons/get-daemon)
|
|
387
|
+
|
|
388
|
+
### List daemons
|
|
389
|
+
|
|
390
|
+
- **Method/path:** `GET /api/servers/{server}/daemons`
|
|
391
|
+
- **Path parameters:** `server`
|
|
392
|
+
- **Request:** body — —; query — —
|
|
393
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
394
|
+
- **Response:** `{ data: array of { id, command, processes, system_user, directory, status }, links, meta }`; **notes:** operation may be queued/backgrounded
|
|
395
|
+
- **Logical CLI:** `gq ploi daemons list-daemons`
|
|
396
|
+
- **Source:** [Ploi API reference — List daemons](https://developers.ploi.io/daemons/list-daemons)
|
|
397
|
+
|
|
398
|
+
### Pause daemon
|
|
399
|
+
|
|
400
|
+
- **Method/path:** `POST /api/servers/{server}/daemons/{daemon}/toggle-pause`
|
|
401
|
+
- **Path parameters:** `server`, `daemon`
|
|
402
|
+
- **Request:** body — —; query — —
|
|
403
|
+
- **Pagination:** no documented pagination envelope
|
|
404
|
+
- **Response:** `{ data: { id, command, processes, status } }`
|
|
405
|
+
- **Logical CLI:** `gq ploi daemons pause-daemon`
|
|
406
|
+
- **Source:** [Ploi API reference — Pause daemon](https://developers.ploi.io/daemons/pause-daemon)
|
|
407
|
+
|
|
408
|
+
### Restart daemon
|
|
409
|
+
|
|
410
|
+
- **Method/path:** `POST /api/servers/{server}/daemons/{daemon}/restart`
|
|
411
|
+
- **Path parameters:** `server`, `daemon`
|
|
412
|
+
- **Request:** body — —; query — —
|
|
413
|
+
- **Pagination:** no documented pagination envelope
|
|
414
|
+
- **Response:** `{ message }`
|
|
415
|
+
- **Logical CLI:** `gq ploi daemons restart-daemon`
|
|
416
|
+
- **Source:** [Ploi API reference — Restart daemon](https://developers.ploi.io/daemons/restart-daemon)
|
|
417
|
+
|
|
418
|
+
## database-users
|
|
419
|
+
|
|
420
|
+
### Attach user to database
|
|
421
|
+
|
|
422
|
+
- **Method/path:** `POST /api/servers/{server}/databases/{database}/users/attach`
|
|
423
|
+
- **Path parameters:** `server`, `database`
|
|
424
|
+
- **Request:** body — `user_id (integer; required)`; query — —
|
|
425
|
+
- **Pagination:** no documented pagination envelope
|
|
426
|
+
- **Response:** `{ data: { id, user, remote, remote_ip, readonly, created_at } }`; `{ message, errors }`; `{ message }`
|
|
427
|
+
- **Logical CLI:** `gq ploi database-users attach-user-to-database`
|
|
428
|
+
- **Source:** [Ploi API reference — Attach user to database](https://developers.ploi.io/database-users/attach-user-to-database)
|
|
429
|
+
|
|
430
|
+
### Create database user
|
|
431
|
+
|
|
432
|
+
- **Method/path:** `POST /api/servers/{server}/databases/{database}/users`
|
|
433
|
+
- **Path parameters:** `server`, `database`
|
|
434
|
+
- **Request:** body — `user (string; required)`, `password (string; required)`, `remote (boolean; optional)`, `remote_ip (string; optional)`, `readonly (boolean; optional)`; query — —
|
|
435
|
+
- **Pagination:** no documented pagination envelope
|
|
436
|
+
- **Response:** `{ data: { id, user, remote, remote_ip, readonly, created_at } }`
|
|
437
|
+
- **Logical CLI:** `gq ploi database-users create-database-user`
|
|
438
|
+
- **Source:** [Ploi API reference — Create database user](https://developers.ploi.io/database-users/create-database-user)
|
|
439
|
+
|
|
440
|
+
### Delete database user
|
|
441
|
+
|
|
442
|
+
- **Method/path:** `DELETE /api/servers/{server}/databases/{database}/users/{user}`
|
|
443
|
+
- **Path parameters:** `server`, `database`, `user`
|
|
444
|
+
- **Request:** body — —; query — —
|
|
445
|
+
- **Pagination:** no documented pagination envelope
|
|
446
|
+
- **Response:** `empty response body`; **notes:** documented empty response body
|
|
447
|
+
- **Logical CLI:** `gq ploi database-users delete-database-user`
|
|
448
|
+
- **Source:** [Ploi API reference — Delete database user](https://developers.ploi.io/database-users/delete-database-user)
|
|
449
|
+
|
|
450
|
+
### Get database user
|
|
451
|
+
|
|
452
|
+
- **Method/path:** `GET /api/servers/{server}/databases/{database}/users/{user}`
|
|
453
|
+
- **Path parameters:** `server`, `database`, `user`
|
|
454
|
+
- **Request:** body — —; query — —
|
|
455
|
+
- **Pagination:** no documented pagination envelope
|
|
456
|
+
- **Response:** `{ data: { id, user, remote, remote_ip, readonly, created_at } }`
|
|
457
|
+
- **Logical CLI:** `gq ploi database-users show-database-user`
|
|
458
|
+
- **Source:** [Ploi API reference — Get database user](https://developers.ploi.io/database-users/get-database-user)
|
|
459
|
+
|
|
460
|
+
### List database users
|
|
461
|
+
|
|
462
|
+
- **Method/path:** `GET /api/servers/{server}/databases/{database}/users`
|
|
463
|
+
- **Path parameters:** `server`, `database`
|
|
464
|
+
- **Request:** body — —; query — —
|
|
465
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
466
|
+
- **Response:** `{ data: array of { id, user, remote, remote_ip, readonly, created_at }, links, meta }`
|
|
467
|
+
- **Logical CLI:** `gq ploi database-users list-database-users`
|
|
468
|
+
- **Source:** [Ploi API reference — List database users](https://developers.ploi.io/database-users/list-database-users)
|
|
469
|
+
|
|
470
|
+
## database
|
|
471
|
+
|
|
472
|
+
### Create database backup
|
|
473
|
+
|
|
474
|
+
- **Method/path:** `POST /api/backups/database`
|
|
475
|
+
- **Path parameters:** —
|
|
476
|
+
- **Request:** body — `backup_configuration (integer; required)`, `server (integer; required)`, `databases (array; required)`, `interval (integer; required)`, `table_exclusions (string; optional)`, `locations (string; optional)`, `path (string; optional)`, `keep_backup_amount (integer; optional)`, `custom_name (string; optional)`, `password (string; optional)`, `next_backup_at (string; optional)`, `deleteOnFail (boolean; optional)`; query — —
|
|
477
|
+
- **Pagination:** no documented pagination envelope
|
|
478
|
+
- **Response:** `{ status, message }`
|
|
479
|
+
- **Logical CLI:** `gq ploi database-backups create-database-backup`
|
|
480
|
+
- **Source:** [Ploi API reference — Create database backup](https://developers.ploi.io/database/create-database-backup)
|
|
481
|
+
|
|
482
|
+
### Delete database backup
|
|
483
|
+
|
|
484
|
+
- **Method/path:** `DELETE /api/backups/database/{databaseBackupId}`
|
|
485
|
+
- **Path parameters:** `databaseBackupId`
|
|
486
|
+
- **Request:** body — —; query — —
|
|
487
|
+
- **Pagination:** no documented pagination envelope
|
|
488
|
+
- **Response:** `{ status, message }`
|
|
489
|
+
- **Logical CLI:** `gq ploi database-backups delete-database-backup`
|
|
490
|
+
- **Source:** [Ploi API reference — Delete database backup](https://developers.ploi.io/database/delete-database-backup)
|
|
491
|
+
|
|
492
|
+
### Get database backup
|
|
493
|
+
|
|
494
|
+
- **Method/path:** `GET /api/backups/database/{databaseBackupId}`
|
|
495
|
+
- **Path parameters:** `databaseBackupId`
|
|
496
|
+
- **Request:** body — —; query — —
|
|
497
|
+
- **Pagination:** no documented pagination envelope
|
|
498
|
+
- **Response:** `{ data: { id, status, label, type, type_human, path, remote_path, locations, interval, table_exclusions, keep_backup_amount, active, server, database, last_backup_at, created_at } }`
|
|
499
|
+
- **Logical CLI:** `gq ploi database-backups show-database-backup`
|
|
500
|
+
- **Source:** [Ploi API reference — Get database backup](https://developers.ploi.io/database/get-database-backup)
|
|
501
|
+
|
|
502
|
+
### List database backups
|
|
503
|
+
|
|
504
|
+
- **Method/path:** `GET /api/backups/database`
|
|
505
|
+
- **Path parameters:** —
|
|
506
|
+
- **Request:** body — —; query — `server (integer; optional)`, `site (integer; optional)`, `per_page (integer; optional)`
|
|
507
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
508
|
+
- **Response:** `{ data: array of { id, status, label, type, type_human, path, remote_path, locations, interval, table_exclusions, keep_backup_amount, active, server, database, last_backup_at, created_at }, links, meta }`
|
|
509
|
+
- **Logical CLI:** `gq ploi database-backups list-database-backups`
|
|
510
|
+
- **Source:** [Ploi API reference — List database backups](https://developers.ploi.io/database/list-database-backups)
|
|
511
|
+
|
|
512
|
+
### Run database backup
|
|
513
|
+
|
|
514
|
+
- **Method/path:** `POST /api/backups/database/{databaseBackupId}/run`
|
|
515
|
+
- **Path parameters:** `databaseBackupId`
|
|
516
|
+
- **Request:** body — —; query — —
|
|
517
|
+
- **Pagination:** no documented pagination envelope
|
|
518
|
+
- **Response:** `{ status, message }`
|
|
519
|
+
- **Logical CLI:** `gq ploi database-backups run-database-backup`
|
|
520
|
+
- **Source:** [Ploi API reference — Run database backup](https://developers.ploi.io/database/run-database-backup)
|
|
521
|
+
|
|
522
|
+
### Update database backup
|
|
523
|
+
|
|
524
|
+
- **Method/path:** `PATCH /api/backups/database/{id}`
|
|
525
|
+
- **Path parameters:** `id`
|
|
526
|
+
- **Request:** body — `interval (integer; required)`, `keep_backup_amount (integer; required)`, `deleteOnFail (boolean; optional)`, `custom_name (string; optional)`, `path (string; optional)`, `compression (string; optional)`, `excluded (array; optional)`, `locations (string; optional)`, `next_backup_at (string; optional)`; query — —
|
|
527
|
+
- **Pagination:** no documented pagination envelope
|
|
528
|
+
- **Response:** `{ data: { id, type, path, compression, interval, keep_backup_amount, custom_name, delete_on_fail, excluded, locations, status, last_backup_at, next_backup_at, created_at, server, database, backup_configuration } }`
|
|
529
|
+
- **Logical CLI:** `gq ploi database-backups update-database-backup`
|
|
530
|
+
- **Source:** [Ploi API reference — Update database backup](https://developers.ploi.io/database/update-database-backup)
|
|
531
|
+
|
|
532
|
+
## databases
|
|
533
|
+
|
|
534
|
+
### Acknowledge database
|
|
535
|
+
|
|
536
|
+
- **Method/path:** `POST /api/servers/{server}/databases/acknowledge`
|
|
537
|
+
- **Path parameters:** `server`
|
|
538
|
+
- **Request:** body — `name (string; required)`; query — —
|
|
539
|
+
- **Pagination:** no documented pagination envelope
|
|
540
|
+
- **Response:** `{ data: { id, type, name, server_id, status, created_at } }`
|
|
541
|
+
- **Logical CLI:** `gq ploi databases acknowledge-database`
|
|
542
|
+
- **Source:** [Ploi API reference — Acknowledge database](https://developers.ploi.io/databases/acknowledge-database)
|
|
543
|
+
|
|
544
|
+
### Create database
|
|
545
|
+
|
|
546
|
+
- **Method/path:** `POST /api/servers/{server}/databases`
|
|
547
|
+
- **Path parameters:** `server`
|
|
548
|
+
- **Request:** body — `name (string; required)`, `user (string; optional)`, `password (string; optional)`, `description (string; optional)`, `site_id (integer; optional)`; query — —
|
|
549
|
+
- **Pagination:** no documented pagination envelope
|
|
550
|
+
- **Response:** `{ data: { id, type, name, server_id, status, created_at } }`
|
|
551
|
+
- **Logical CLI:** `gq ploi databases create-database`
|
|
552
|
+
- **Source:** [Ploi API reference — Create database](https://developers.ploi.io/databases/create-database)
|
|
553
|
+
|
|
554
|
+
### Delete database
|
|
555
|
+
|
|
556
|
+
- **Method/path:** `DELETE /api/servers/{server}/databases/{id}`
|
|
557
|
+
- **Path parameters:** `server`, `id`
|
|
558
|
+
- **Request:** body — —; query — —
|
|
559
|
+
- **Pagination:** no documented pagination envelope
|
|
560
|
+
- **Response:** `empty response body`; **notes:** documented empty response body; irreversible mutation
|
|
561
|
+
- **Logical CLI:** `gq ploi databases delete-database`
|
|
562
|
+
- **Source:** [Ploi API reference — Delete database](https://developers.ploi.io/databases/delete-database)
|
|
563
|
+
|
|
564
|
+
### Duplicate database
|
|
565
|
+
|
|
566
|
+
- **Method/path:** `POST /api/servers/{server}/databases/{database}/duplicate`
|
|
567
|
+
- **Path parameters:** `server`, `database`
|
|
568
|
+
- **Request:** body — `name (string; required)`, `user (string; optional)`, `password (string; optional)`; query — —
|
|
569
|
+
- **Pagination:** no documented pagination envelope
|
|
570
|
+
- **Response:** `{ data: { id, type, name, server_id, status, created_at }, message }`
|
|
571
|
+
- **Logical CLI:** `gq ploi databases duplicate-database`
|
|
572
|
+
- **Source:** [Ploi API reference — Duplicate database](https://developers.ploi.io/databases/duplicate-database)
|
|
573
|
+
|
|
574
|
+
### Forget database
|
|
575
|
+
|
|
576
|
+
- **Method/path:** `DELETE /api/servers/{server}/databases/{id}/forget`
|
|
577
|
+
- **Path parameters:** `server`, `id`
|
|
578
|
+
- **Request:** body — —; query — —
|
|
579
|
+
- **Pagination:** no documented pagination envelope
|
|
580
|
+
- **Response:** `empty response body`; **notes:** documented empty response body
|
|
581
|
+
- **Logical CLI:** `gq ploi databases forget-database`
|
|
582
|
+
- **Source:** [Ploi API reference — Forget database](https://developers.ploi.io/databases/forget-database)
|
|
583
|
+
|
|
584
|
+
### Get database
|
|
585
|
+
|
|
586
|
+
- **Method/path:** `GET /api/servers/{server}/databases/{id}`
|
|
587
|
+
- **Path parameters:** `server`, `id`
|
|
588
|
+
- **Request:** body — —; query — —
|
|
589
|
+
- **Pagination:** no documented pagination envelope
|
|
590
|
+
- **Response:** `{ data: { id, type, name, server_id, status, created_at } }`; `{ data: { id, type, name, server_id, status, site, created_at } }`
|
|
591
|
+
- **Logical CLI:** `gq ploi database show`
|
|
592
|
+
- **Source:** [Ploi API reference — Get database](https://developers.ploi.io/databases/get-database)
|
|
593
|
+
|
|
594
|
+
### List databases
|
|
595
|
+
|
|
596
|
+
- **Method/path:** `GET /api/servers/{server}/databases`
|
|
597
|
+
- **Path parameters:** `server`
|
|
598
|
+
- **Request:** body — —; query — —
|
|
599
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
600
|
+
- **Response:** `{ data: array of { id, type, name, server_id, status, created_at }, links, meta }`
|
|
601
|
+
- **Logical CLI:** `gq ploi databases list`
|
|
602
|
+
- **Source:** [Ploi API reference — List databases](https://developers.ploi.io/databases/list-databases)
|
|
603
|
+
|
|
604
|
+
## deployments
|
|
605
|
+
|
|
606
|
+
### Deploy site
|
|
607
|
+
|
|
608
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/deploy`
|
|
609
|
+
- **Path parameters:** `server`, `id`
|
|
610
|
+
- **Request:** body — `scheduled (datetime; optional)`, `variables (object; optional)`; query — —
|
|
611
|
+
- **Pagination:** no documented pagination envelope
|
|
612
|
+
- **Response:** `{ message }`
|
|
613
|
+
- **Logical CLI:** `gq ploi deployments deploy-site`
|
|
614
|
+
- **Source:** [Ploi API reference — Deploy site](https://developers.ploi.io/deployments/deploy-site)
|
|
615
|
+
|
|
616
|
+
### Deploy staging site to production
|
|
617
|
+
|
|
618
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/deploy-to-production`
|
|
619
|
+
- **Path parameters:** `server`, `id`
|
|
620
|
+
- **Request:** body — —; query — —
|
|
621
|
+
- **Pagination:** no documented pagination envelope
|
|
622
|
+
- **Response:** `{ message }`
|
|
623
|
+
- **Logical CLI:** `gq ploi deployments deploy-staging-site-to-production`
|
|
624
|
+
- **Source:** [Ploi API reference — Deploy staging site to production](https://developers.ploi.io/deployments/deploy-staging-site-to-production)
|
|
625
|
+
|
|
626
|
+
### Get deploy script
|
|
627
|
+
|
|
628
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{id}/deploy/script`
|
|
629
|
+
- **Path parameters:** `server`, `id`
|
|
630
|
+
- **Request:** body — —; query — —
|
|
631
|
+
- **Pagination:** no documented pagination envelope
|
|
632
|
+
- **Response:** `{ deploy_script }`
|
|
633
|
+
- **Logical CLI:** `gq ploi deployments show-deploy-script`
|
|
634
|
+
- **Source:** [Ploi API reference — Get deploy script](https://developers.ploi.io/deployments/get-deploy-script)
|
|
635
|
+
|
|
636
|
+
### Update deploy script
|
|
637
|
+
|
|
638
|
+
- **Method/path:** `PATCH /api/servers/{server}/sites/{id}/deploy/script`
|
|
639
|
+
- **Path parameters:** `server`, `id`
|
|
640
|
+
- **Request:** body — `deploy_script (string; required)`; query — —
|
|
641
|
+
- **Pagination:** no documented pagination envelope
|
|
642
|
+
- **Response:** `{ message }`
|
|
643
|
+
- **Logical CLI:** `gq ploi deployments update-deploy-script`
|
|
644
|
+
- **Source:** [Ploi API reference — Update deploy script](https://developers.ploi.io/deployments/update-deploy-script)
|
|
645
|
+
|
|
646
|
+
## environment
|
|
647
|
+
|
|
648
|
+
### Get .env from site
|
|
649
|
+
|
|
650
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{id}/env`
|
|
651
|
+
- **Path parameters:** `server`, `id`
|
|
652
|
+
- **Request:** body — —; query — —
|
|
653
|
+
- **Pagination:** no documented pagination envelope
|
|
654
|
+
- **Response:** `{ content }`
|
|
655
|
+
- **Logical CLI:** `gq ploi environment show-env-from-site`
|
|
656
|
+
- **Source:** [Ploi API reference — Get .env from site](https://developers.ploi.io/environment/get-env-from-site)
|
|
657
|
+
|
|
658
|
+
### Update .env from site
|
|
659
|
+
|
|
660
|
+
- **Method/path:** `PATCH /api/servers/{server}/sites/{id}/env`
|
|
661
|
+
- **Path parameters:** `server`, `id`
|
|
662
|
+
- **Request:** body — `content (string; required)`; query — —
|
|
663
|
+
- **Pagination:** no documented pagination envelope
|
|
664
|
+
- **Response:** `{ message }`
|
|
665
|
+
- **Logical CLI:** `gq ploi environment update-env-from-site`
|
|
666
|
+
- **Source:** [Ploi API reference — Update .env from site](https://developers.ploi.io/environment/update-env-from-site)
|
|
667
|
+
|
|
668
|
+
## fastcgi-cache
|
|
669
|
+
|
|
670
|
+
### Disable FastCGI cache
|
|
671
|
+
|
|
672
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{site}/fastcgi-cache/disable`
|
|
673
|
+
- **Path parameters:** `server`, `site`
|
|
674
|
+
- **Request:** body — —; query — —
|
|
675
|
+
- **Pagination:** no documented pagination envelope
|
|
676
|
+
- **Response:** `{ data: { id, status, server_id, domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, notification_urls, has_repository, zero_downtime_deployment, created_at } }`
|
|
677
|
+
- **Logical CLI:** `gq ploi fastcgi-cache disable-fastcgi-cache`
|
|
678
|
+
- **Source:** [Ploi API reference — Disable FastCGI cache](https://developers.ploi.io/fastcgi-cache/disable-fastcgi-cache)
|
|
679
|
+
|
|
680
|
+
### Enable FastCGI cache
|
|
681
|
+
|
|
682
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/fastcgi-cache/enable`
|
|
683
|
+
- **Path parameters:** `server`, `site`
|
|
684
|
+
- **Request:** body — —; query — —
|
|
685
|
+
- **Pagination:** no documented pagination envelope
|
|
686
|
+
- **Response:** `{ data: { id, status, server_id, domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, notification_urls, has_repository, zero_downtime_deployment, created_at } }`
|
|
687
|
+
- **Logical CLI:** `gq ploi fastcgi-cache enable-fastcgi-cache`
|
|
688
|
+
- **Source:** [Ploi API reference — Enable FastCGI cache](https://developers.ploi.io/fastcgi-cache/enable-fastcgi-cache)
|
|
689
|
+
|
|
690
|
+
### Flush FastCGI cache
|
|
691
|
+
|
|
692
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/fastcgi-cache/flush`
|
|
693
|
+
- **Path parameters:** `server`, `site`
|
|
694
|
+
- **Request:** body — —; query — —
|
|
695
|
+
- **Pagination:** no documented pagination envelope
|
|
696
|
+
- **Response:** `{ data: { id, status, server_id, domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, notification_urls, has_repository, zero_downtime_deployment, created_at } }`
|
|
697
|
+
- **Logical CLI:** `gq ploi fastcgi-cache flush-fastcgi-cache`
|
|
698
|
+
- **Source:** [Ploi API reference — Flush FastCGI cache](https://developers.ploi.io/fastcgi-cache/flush-fastcgi-cache)
|
|
699
|
+
|
|
700
|
+
## insights
|
|
701
|
+
|
|
702
|
+
### Automatically fix insight
|
|
703
|
+
|
|
704
|
+
- **Method/path:** `POST /api/servers/{server}/insights/{id}/automatically-fix`
|
|
705
|
+
- **Path parameters:** `server`, `id`
|
|
706
|
+
- **Request:** body — —; query — —
|
|
707
|
+
- **Pagination:** no documented pagination envelope
|
|
708
|
+
- **Response:** `{ data: { id, status, description, log_file, priority, meta, is_fixable, processed_at, created_at } }`; `{ message, errors, links }`
|
|
709
|
+
- **Logical CLI:** `gq ploi insights automatically-fix-insight`
|
|
710
|
+
- **Source:** [Ploi API reference — Automatically fix insight](https://developers.ploi.io/insights/automatically-fix-insight)
|
|
711
|
+
|
|
712
|
+
### Delete insight
|
|
713
|
+
|
|
714
|
+
- **Method/path:** `DELETE /api/servers/{server}/insights/{id}`
|
|
715
|
+
- **Path parameters:** `server`, `id`
|
|
716
|
+
- **Request:** body — —; query — —
|
|
717
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
718
|
+
- **Response:** `{ data: array, links, meta }`; **notes:** DELETE response is documented with a pagination-shaped empty data envelope; pagination semantics are ambiguous
|
|
719
|
+
- **Logical CLI:** `gq ploi insights delete-insight`
|
|
720
|
+
- **Source:** [Ploi API reference — Delete insight](https://developers.ploi.io/insights/delete-insight)
|
|
721
|
+
|
|
722
|
+
### Detail insight
|
|
723
|
+
|
|
724
|
+
- **Method/path:** `GET /api/servers/{server}/insights/{id}/detail`
|
|
725
|
+
- **Path parameters:** `server`, `id`
|
|
726
|
+
- **Request:** body — —; query — —
|
|
727
|
+
- **Pagination:** no documented pagination envelope
|
|
728
|
+
- **Response:** `{ data: { id, description, description_html, html } }`
|
|
729
|
+
- **Logical CLI:** `gq ploi insights detail-insight`
|
|
730
|
+
- **Source:** [Ploi API reference — Detail insight](https://developers.ploi.io/insights/detail-insight)
|
|
731
|
+
|
|
732
|
+
### Get insight
|
|
733
|
+
|
|
734
|
+
- **Method/path:** `GET /api/servers/{server}/insights/{id}`
|
|
735
|
+
- **Path parameters:** `server`, `id`
|
|
736
|
+
- **Request:** body — —; query — —
|
|
737
|
+
- **Pagination:** no documented pagination envelope
|
|
738
|
+
- **Response:** `{ data: { id, type, status, description, log_file, priority, meta, is_fixable, processed_at, created_at } }`
|
|
739
|
+
- **Logical CLI:** `gq ploi insights show-insight`
|
|
740
|
+
- **Source:** [Ploi API reference — Get insight](https://developers.ploi.io/insights/get-insight)
|
|
741
|
+
|
|
742
|
+
### Ignore insight
|
|
743
|
+
|
|
744
|
+
- **Method/path:** `POST /api/servers/{server}/insights/{id}/ignore`
|
|
745
|
+
- **Path parameters:** `server`, `id`
|
|
746
|
+
- **Request:** body — —; query — —
|
|
747
|
+
- **Pagination:** no documented pagination envelope
|
|
748
|
+
- **Response:** `{ data: { id, status, description, log_file, priority, meta, is_fixable, processed_at, created_at } }`
|
|
749
|
+
- **Logical CLI:** `gq ploi insights ignore-insight`
|
|
750
|
+
- **Source:** [Ploi API reference — Ignore insight](https://developers.ploi.io/insights/ignore-insight)
|
|
751
|
+
|
|
752
|
+
### List insights
|
|
753
|
+
|
|
754
|
+
- **Method/path:** `GET /api/servers/{server}/insights`
|
|
755
|
+
- **Path parameters:** `server`
|
|
756
|
+
- **Request:** body — —; query — —
|
|
757
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
758
|
+
- **Response:** `{ data: array of { id, type, status, description, log_file, priority, meta, is_fixable, processed_at, created_at }, links, meta }`
|
|
759
|
+
- **Logical CLI:** `gq ploi insights list-insights`
|
|
760
|
+
- **Source:** [Ploi API reference — List insights](https://developers.ploi.io/insights/list-insights)
|
|
761
|
+
|
|
762
|
+
## load-balancers
|
|
763
|
+
|
|
764
|
+
### Attach server
|
|
765
|
+
|
|
766
|
+
- **Method/path:** `PATCH /api/servers/{server}/load-balancer/attach`
|
|
767
|
+
- **Path parameters:** `server`
|
|
768
|
+
- **Request:** body — `server_id (integer; required)`; query — —
|
|
769
|
+
- **Pagination:** no documented pagination envelope
|
|
770
|
+
- **Response:** `{ }`; **notes:** on-demand execution/retrieval is documented
|
|
771
|
+
- **Logical CLI:** `gq ploi load-balancers attach-server`
|
|
772
|
+
- **Source:** [Ploi API reference — Attach server](https://developers.ploi.io/load-balancers/attach-server)
|
|
773
|
+
|
|
774
|
+
### Detach server
|
|
775
|
+
|
|
776
|
+
- **Method/path:** `PATCH /api/servers/{server}/load-balancer/detach`
|
|
777
|
+
- **Path parameters:** `server`
|
|
778
|
+
- **Request:** body — `server_id (integer; required)`; query — —
|
|
779
|
+
- **Pagination:** no documented pagination envelope
|
|
780
|
+
- **Response:** `{ }`; **notes:** on-demand execution/retrieval is documented
|
|
781
|
+
- **Logical CLI:** `gq ploi load-balancers detach-server`
|
|
782
|
+
- **Source:** [Ploi API reference — Detach server](https://developers.ploi.io/load-balancers/detach-server)
|
|
783
|
+
|
|
784
|
+
### Request certificate for domain
|
|
785
|
+
|
|
786
|
+
- **Method/path:** `POST /api/servers/{server}/load-balancer/{domain}/request-certificate`
|
|
787
|
+
- **Path parameters:** `server`, `domain`
|
|
788
|
+
- **Request:** body — —; query — —
|
|
789
|
+
- **Pagination:** no documented pagination envelope
|
|
790
|
+
- **Response:** `{ message }`; **notes:** source example uses a concrete ID/domain; normalized here
|
|
791
|
+
- **Logical CLI:** `gq ploi load-balancers request-certificate-for-domain`
|
|
792
|
+
- **Source:** [Ploi API reference — Request certificate for domain](https://developers.ploi.io/load-balancers/request-certificate-for-domain)
|
|
793
|
+
|
|
794
|
+
### Revoke certificate for domain
|
|
795
|
+
|
|
796
|
+
- **Method/path:** `DELETE /api/servers/{server}/load-balancer/{domain}/revoke-certificate`
|
|
797
|
+
- **Path parameters:** `server`, `domain`
|
|
798
|
+
- **Request:** body — —; query — —
|
|
799
|
+
- **Pagination:** no documented pagination envelope
|
|
800
|
+
- **Response:** `{ message }`; **notes:** source example uses a concrete ID/domain; normalized here
|
|
801
|
+
- **Logical CLI:** `gq ploi load-balancers revoke-certificate-for-domain`
|
|
802
|
+
- **Source:** [Ploi API reference — Revoke certificate for domain](https://developers.ploi.io/load-balancers/revoke-certificate-for-domain)
|
|
803
|
+
|
|
804
|
+
## monitoring
|
|
805
|
+
|
|
806
|
+
### Delete monitor
|
|
807
|
+
|
|
808
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{site}/monitors/{monitor}`
|
|
809
|
+
- **Path parameters:** `server`, `site`, `monitor`
|
|
810
|
+
- **Request:** body — —; query — —
|
|
811
|
+
- **Pagination:** no documented pagination envelope
|
|
812
|
+
- **Response:** `{ status, message }`
|
|
813
|
+
- **Logical CLI:** `gq ploi monitoring delete-monitor`
|
|
814
|
+
- **Source:** [Ploi API reference — Delete monitor](https://developers.ploi.io/monitoring/delete-monitor)
|
|
815
|
+
|
|
816
|
+
### Get monitor
|
|
817
|
+
|
|
818
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{site}/monitors/{monitor}`
|
|
819
|
+
- **Path parameters:** `server`, `site`, `monitor`
|
|
820
|
+
- **Request:** body — —; query — —
|
|
821
|
+
- **Pagination:** no documented pagination envelope
|
|
822
|
+
- **Response:** `{ data: { id, label, location, average_uptime, active, created_at } }`
|
|
823
|
+
- **Logical CLI:** `gq ploi monitoring show-monitor`
|
|
824
|
+
- **Source:** [Ploi API reference — Get monitor](https://developers.ploi.io/monitoring/get-monitor)
|
|
825
|
+
|
|
826
|
+
### Get uptime responses
|
|
827
|
+
|
|
828
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{site}/monitors/{monitor}/uptime-responses`
|
|
829
|
+
- **Path parameters:** `server`, `site`, `monitor`
|
|
830
|
+
- **Request:** body — —; query — —
|
|
831
|
+
- **Pagination:** no documented pagination envelope
|
|
832
|
+
- **Response:** `{ data: array of { response_time, created_at } }`
|
|
833
|
+
- **Logical CLI:** `gq ploi monitoring show-uptime-responses`
|
|
834
|
+
- **Source:** [Ploi API reference — Get uptime responses](https://developers.ploi.io/monitoring/get-uptime-responses)
|
|
835
|
+
|
|
836
|
+
### List monitors
|
|
837
|
+
|
|
838
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{site}/monitors`
|
|
839
|
+
- **Path parameters:** `server`, `site`
|
|
840
|
+
- **Request:** body — —; query — —
|
|
841
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
842
|
+
- **Response:** `{ data: array of { id, label, location, average_uptime, active, created_at }, links, meta }`
|
|
843
|
+
- **Logical CLI:** `gq ploi monitoring list-monitors`
|
|
844
|
+
- **Source:** [Ploi API reference — List monitors](https://developers.ploi.io/monitoring/list-monitors)
|
|
845
|
+
|
|
846
|
+
## network-rules
|
|
847
|
+
|
|
848
|
+
### Create network rule
|
|
849
|
+
|
|
850
|
+
- **Method/path:** `POST /api/servers/{server}/network-rules`
|
|
851
|
+
- **Path parameters:** `server`
|
|
852
|
+
- **Request:** body — `name (string; required)`, `port (string; required)`, `type (string; required)`, `rule_type (string; required)`, `from_ip_address (string; optional)`; query — —
|
|
853
|
+
- **Pagination:** no documented pagination envelope
|
|
854
|
+
- **Response:** `{ data: { id, name, port, from_ip_address, rule_type, status, created_at } }`
|
|
855
|
+
- **Logical CLI:** `gq ploi network-rules create-network-rule`
|
|
856
|
+
- **Source:** [Ploi API reference — Create network rule](https://developers.ploi.io/network-rules/create-network-rule)
|
|
857
|
+
|
|
858
|
+
### Delete network rule
|
|
859
|
+
|
|
860
|
+
- **Method/path:** `DELETE /api/servers/{server}/network-rules/{id}`
|
|
861
|
+
- **Path parameters:** `server`, `id`
|
|
862
|
+
- **Request:** body — —; query — —
|
|
863
|
+
- **Pagination:** no documented pagination envelope
|
|
864
|
+
- **Response:** `empty response body`; **notes:** documented empty response body
|
|
865
|
+
- **Logical CLI:** `gq ploi network-rules delete-network-rule`
|
|
866
|
+
- **Source:** [Ploi API reference — Delete network rule](https://developers.ploi.io/network-rules/delete-network-rule)
|
|
867
|
+
|
|
868
|
+
### Get network rule
|
|
869
|
+
|
|
870
|
+
- **Method/path:** `GET /api/servers/{server}/network-rules/{id}`
|
|
871
|
+
- **Path parameters:** `server`, `id`
|
|
872
|
+
- **Request:** body — —; query — —
|
|
873
|
+
- **Pagination:** no documented pagination envelope
|
|
874
|
+
- **Response:** `{ data: { id, name, port, from_ip_address, rule_type, status, created_at } }`
|
|
875
|
+
- **Logical CLI:** `gq ploi network-rules show-network-rule`
|
|
876
|
+
- **Source:** [Ploi API reference — Get network rule](https://developers.ploi.io/network-rules/get-network-rule)
|
|
877
|
+
|
|
878
|
+
### List network rules
|
|
879
|
+
|
|
880
|
+
- **Method/path:** `GET /api/servers/{server}/network-rules`
|
|
881
|
+
- **Path parameters:** `server`
|
|
882
|
+
- **Request:** body — —; query — —
|
|
883
|
+
- **Pagination:** no documented pagination envelope
|
|
884
|
+
- **Response:** `{ data: array of { id, name, port, from_ip_address, rule_type, status, created_at } }`
|
|
885
|
+
- **Logical CLI:** `gq ploi network-rules list-network-rules`
|
|
886
|
+
- **Source:** [Ploi API reference — List network rules](https://developers.ploi.io/network-rules/list-network-rules)
|
|
887
|
+
|
|
888
|
+
## php
|
|
889
|
+
|
|
890
|
+
### Disable OPcache
|
|
891
|
+
|
|
892
|
+
- **Method/path:** `DELETE /api/servers/{server}/disable-opcache`
|
|
893
|
+
- **Path parameters:** `server`
|
|
894
|
+
- **Request:** body — —; query — —
|
|
895
|
+
- **Pagination:** no documented pagination envelope
|
|
896
|
+
- **Response:** `{ data: { id, status, type, name, ip_address, internal_ip, ssh_port, reboot_required, php_version, mysql_version, sites_count, monitoring, opcache, installed_php_versions, status_id, created_at } }`
|
|
897
|
+
- **Logical CLI:** `gq ploi php disable-opcache`
|
|
898
|
+
- **Source:** [Ploi API reference — Disable OPcache](https://developers.ploi.io/php/disable-opcache)
|
|
899
|
+
|
|
900
|
+
### Enable OPcache
|
|
901
|
+
|
|
902
|
+
- **Method/path:** `POST /api/servers/{server}/enable-opcache`
|
|
903
|
+
- **Path parameters:** `server`
|
|
904
|
+
- **Request:** body — —; query — —
|
|
905
|
+
- **Pagination:** no documented pagination envelope
|
|
906
|
+
- **Response:** `{ data: { id, status, type, name, ip_address, internal_ip, ssh_port, reboot_required, php_version, mysql_version, sites_count, monitoring, opcache, installed_php_versions, status_id, created_at } }`
|
|
907
|
+
- **Logical CLI:** `gq ploi php enable-opcache`
|
|
908
|
+
- **Source:** [Ploi API reference — Enable OPcache](https://developers.ploi.io/php/enable-opcache)
|
|
909
|
+
|
|
910
|
+
### Install PHP version
|
|
911
|
+
|
|
912
|
+
- **Method/path:** `POST /api/servers/{server}/php/install`
|
|
913
|
+
- **Path parameters:** `server`
|
|
914
|
+
- **Request:** body — `version (string; required)`; query — —
|
|
915
|
+
- **Pagination:** no documented pagination envelope
|
|
916
|
+
- **Response:** `{ status, message }`
|
|
917
|
+
- **Logical CLI:** `gq ploi php install-php-version`
|
|
918
|
+
- **Source:** [Ploi API reference — Install PHP version](https://developers.ploi.io/php/install-php-version)
|
|
919
|
+
|
|
920
|
+
### Installed PHP versions
|
|
921
|
+
|
|
922
|
+
- **Method/path:** `GET /api/servers/{server}/php/versions`
|
|
923
|
+
- **Path parameters:** `server`
|
|
924
|
+
- **Request:** body — —; query — —
|
|
925
|
+
- **Pagination:** no documented pagination envelope
|
|
926
|
+
- **Response:** `{ data: { versions } }`
|
|
927
|
+
- **Logical CLI:** `gq ploi php installed-php-versions`
|
|
928
|
+
- **Source:** [Ploi API reference — Installed PHP versions](https://developers.ploi.io/php/installed-php-versions)
|
|
929
|
+
|
|
930
|
+
### Refresh OPcache
|
|
931
|
+
|
|
932
|
+
- **Method/path:** `POST /api/servers/{server}/refresh-opcache`
|
|
933
|
+
- **Path parameters:** `server`
|
|
934
|
+
- **Request:** body — —; query — —
|
|
935
|
+
- **Pagination:** no documented pagination envelope
|
|
936
|
+
- **Response:** `{ data: { id, name, ip_address, php_version, mysql_version, sites_count, status, created_at } }`
|
|
937
|
+
- **Logical CLI:** `gq ploi php refresh-opcache`
|
|
938
|
+
- **Source:** [Ploi API reference — Refresh OPcache](https://developers.ploi.io/php/refresh-opcache)
|
|
939
|
+
|
|
940
|
+
### Switch PHP CLI version
|
|
941
|
+
|
|
942
|
+
- **Method/path:** `POST /api/servers/{server}/php/cli-version`
|
|
943
|
+
- **Path parameters:** `server`
|
|
944
|
+
- **Request:** body — `version (string; required)`; query — —
|
|
945
|
+
- **Pagination:** no documented pagination envelope
|
|
946
|
+
- **Response:** `{ status, message }`; `{ message, errors, links }`; **notes:** on-demand execution/retrieval is documented
|
|
947
|
+
- **Logical CLI:** `gq ploi php switch-php-cli-version`
|
|
948
|
+
- **Source:** [Ploi API reference — Switch PHP CLI version](https://developers.ploi.io/php/switch-php-cli-version)
|
|
949
|
+
|
|
950
|
+
## projects
|
|
951
|
+
|
|
952
|
+
### Create project
|
|
953
|
+
|
|
954
|
+
- **Method/path:** `POST /api/projects`
|
|
955
|
+
- **Path parameters:** —
|
|
956
|
+
- **Request:** body — `title (string; required)`, `servers (array; optional)`, `sites (array; optional)`; query — —
|
|
957
|
+
- **Pagination:** no documented pagination envelope
|
|
958
|
+
- **Response:** `{ data: { id, title, servers, sites, created_at } }`
|
|
959
|
+
- **Logical CLI:** `gq ploi projects create-project`
|
|
960
|
+
- **Source:** [Ploi API reference — Create project](https://developers.ploi.io/projects/create-project)
|
|
961
|
+
|
|
962
|
+
### Delete project
|
|
963
|
+
|
|
964
|
+
- **Method/path:** `DELETE /api/projects/{project}`
|
|
965
|
+
- **Path parameters:** `project`
|
|
966
|
+
- **Request:** body — —; query — —
|
|
967
|
+
- **Pagination:** no documented pagination envelope
|
|
968
|
+
- **Response:** `{ message }`
|
|
969
|
+
- **Logical CLI:** `gq ploi projects delete-project`
|
|
970
|
+
- **Source:** [Ploi API reference — Delete project](https://developers.ploi.io/projects/delete-project)
|
|
971
|
+
|
|
972
|
+
### Get project
|
|
973
|
+
|
|
974
|
+
- **Method/path:** `GET /api/projects/{project}`
|
|
975
|
+
- **Path parameters:** `project`
|
|
976
|
+
- **Request:** body — —; query — —
|
|
977
|
+
- **Pagination:** no documented pagination envelope
|
|
978
|
+
- **Response:** `{ data: { id, title, servers, sites, created_at } }`
|
|
979
|
+
- **Logical CLI:** `gq ploi projects show-project`
|
|
980
|
+
- **Source:** [Ploi API reference — Get project](https://developers.ploi.io/projects/get-project)
|
|
981
|
+
|
|
982
|
+
### List projects
|
|
983
|
+
|
|
984
|
+
- **Method/path:** `GET /api/projects`
|
|
985
|
+
- **Path parameters:** —
|
|
986
|
+
- **Request:** body — —; query — —
|
|
987
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
988
|
+
- **Response:** `{ data: array of { id, title, servers, sites, created_at }, links, meta }`
|
|
989
|
+
- **Logical CLI:** `gq ploi projects list-projects`
|
|
990
|
+
- **Source:** [Ploi API reference — List projects](https://developers.ploi.io/projects/list-projects)
|
|
991
|
+
|
|
992
|
+
### Update project
|
|
993
|
+
|
|
994
|
+
- **Method/path:** `PATCH /api/projects/{project}`
|
|
995
|
+
- **Path parameters:** `project`
|
|
996
|
+
- **Request:** body — `title (string; required)`, `servers (array; optional)`, `sites (array; optional)`; query — —
|
|
997
|
+
- **Pagination:** no documented pagination envelope
|
|
998
|
+
- **Response:** `{ data: { id, title, servers, sites, created_at } }`
|
|
999
|
+
- **Logical CLI:** `gq ploi projects update-project`
|
|
1000
|
+
- **Source:** [Ploi API reference — Update project](https://developers.ploi.io/projects/update-project)
|
|
1001
|
+
|
|
1002
|
+
## queue-workers
|
|
1003
|
+
|
|
1004
|
+
### Create queue worker
|
|
1005
|
+
|
|
1006
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/queues`
|
|
1007
|
+
- **Path parameters:** `server`, `id`
|
|
1008
|
+
- **Request:** body — `connection (string; required)`, `queue (string; required)`, `maximum_seconds (integer; required)`, `sleep (integer; required)`, `processes (integer; required)`, `backoff (integer; required)`, `maximum_tries (integer; optional)`; query — —
|
|
1009
|
+
- **Pagination:** no documented pagination envelope
|
|
1010
|
+
- **Response:** `{ data: { id, connection, queue, maximum_seconds, maximum_tries, enviroment, sleep, processes, backoff, status, site_id, server_id } }`; **notes:** operation may be queued/backgrounded
|
|
1011
|
+
- **Logical CLI:** `gq ploi queue-workers create-queue-worker`
|
|
1012
|
+
- **Source:** [Ploi API reference — Create queue worker](https://developers.ploi.io/queue-workers/create-queue-worker)
|
|
1013
|
+
|
|
1014
|
+
### Delete queue worker
|
|
1015
|
+
|
|
1016
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{id}/queues/{queueId}`
|
|
1017
|
+
- **Path parameters:** `server`, `id`, `queueId`
|
|
1018
|
+
- **Request:** body — —; query — —
|
|
1019
|
+
- **Pagination:** no documented pagination envelope
|
|
1020
|
+
- **Response:** `{ message }`; **notes:** operation may be queued/backgrounded
|
|
1021
|
+
- **Logical CLI:** `gq ploi queue-workers delete-queue-worker`
|
|
1022
|
+
- **Source:** [Ploi API reference — Delete queue worker](https://developers.ploi.io/queue-workers/delete-queue-worker)
|
|
1023
|
+
|
|
1024
|
+
### Get queue worker
|
|
1025
|
+
|
|
1026
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{id}/queues/{queueId}`
|
|
1027
|
+
- **Path parameters:** `server`, `id`, `queueId`
|
|
1028
|
+
- **Request:** body — —; query — —
|
|
1029
|
+
- **Pagination:** no documented pagination envelope
|
|
1030
|
+
- **Response:** `{ data: { id, connection, queue, maximum_seconds, maximum_tries, enviroment, sleep, processes, backoff, status, site_id, server_id } }`; **notes:** operation may be queued/backgrounded
|
|
1031
|
+
- **Logical CLI:** `gq ploi queue-workers show-queue-worker`
|
|
1032
|
+
- **Source:** [Ploi API reference — Get queue worker](https://developers.ploi.io/queue-workers/get-queue-worker)
|
|
1033
|
+
|
|
1034
|
+
### List queue workers
|
|
1035
|
+
|
|
1036
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{id}/queues`
|
|
1037
|
+
- **Path parameters:** `server`, `id`
|
|
1038
|
+
- **Request:** body — —; query — —
|
|
1039
|
+
- **Pagination:** no documented pagination envelope
|
|
1040
|
+
- **Response:** `{ data: array of { id, connection, queue, maximum_seconds, maximum_tries, enviroment, sleep, processes, backoff, status, site_id, server_id } }`; **notes:** operation may be queued/backgrounded
|
|
1041
|
+
- **Logical CLI:** `gq ploi queue-workers list-queue-workers`
|
|
1042
|
+
- **Source:** [Ploi API reference — List queue workers](https://developers.ploi.io/queue-workers/list-queue-workers)
|
|
1043
|
+
|
|
1044
|
+
### Pause queue worker
|
|
1045
|
+
|
|
1046
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/queues/{queueId}/toggle-pause`
|
|
1047
|
+
- **Path parameters:** `server`, `id`, `queueId`
|
|
1048
|
+
- **Request:** body — —; query — —
|
|
1049
|
+
- **Pagination:** no documented pagination envelope
|
|
1050
|
+
- **Response:** `{ data: { id, connection, queue, processes, status } }`; **notes:** operation may be queued/backgrounded
|
|
1051
|
+
- **Logical CLI:** `gq ploi queue-workers pause-queue-worker`
|
|
1052
|
+
- **Source:** [Ploi API reference — Pause queue worker](https://developers.ploi.io/queue-workers/pause-queue-worker)
|
|
1053
|
+
|
|
1054
|
+
### Restart queue worker
|
|
1055
|
+
|
|
1056
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/queues/{queueId}/restart`
|
|
1057
|
+
- **Path parameters:** `server`, `id`, `queueId`
|
|
1058
|
+
- **Request:** body — —; query — —
|
|
1059
|
+
- **Pagination:** no documented pagination envelope
|
|
1060
|
+
- **Response:** `{ message }`; **notes:** operation may be queued/backgrounded
|
|
1061
|
+
- **Logical CLI:** `gq ploi queue-workers restart-queue-worker`
|
|
1062
|
+
- **Source:** [Ploi API reference — Restart queue worker](https://developers.ploi.io/queue-workers/restart-queue-worker)
|
|
1063
|
+
|
|
1064
|
+
## redirects
|
|
1065
|
+
|
|
1066
|
+
### Create redirect
|
|
1067
|
+
|
|
1068
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/redirects`
|
|
1069
|
+
- **Path parameters:** `server`, `site`
|
|
1070
|
+
- **Request:** body — `redirect_from (string; required)`, `redirect_to (string; required)`, `type (string; required)`; query — —
|
|
1071
|
+
- **Pagination:** no documented pagination envelope
|
|
1072
|
+
- **Response:** `{ data: { id, status, redirect_from, redirect_to, type } }`
|
|
1073
|
+
- **Logical CLI:** `gq ploi redirects create-redirect`
|
|
1074
|
+
- **Source:** [Ploi API reference — Create redirect](https://developers.ploi.io/redirects/create-redirect)
|
|
1075
|
+
|
|
1076
|
+
### Delete redirect
|
|
1077
|
+
|
|
1078
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{site}/redirects/{redirect}`
|
|
1079
|
+
- **Path parameters:** `server`, `site`, `redirect`
|
|
1080
|
+
- **Request:** body — —; query — —
|
|
1081
|
+
- **Pagination:** no documented pagination envelope
|
|
1082
|
+
- **Response:** `{ message }`
|
|
1083
|
+
- **Logical CLI:** `gq ploi redirects delete-redirect`
|
|
1084
|
+
- **Source:** [Ploi API reference — Delete redirect](https://developers.ploi.io/redirects/delete-redirect)
|
|
1085
|
+
|
|
1086
|
+
### Get redirect
|
|
1087
|
+
|
|
1088
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{site}/redirects/{redirect}`
|
|
1089
|
+
- **Path parameters:** `server`, `site`, `redirect`
|
|
1090
|
+
- **Request:** body — —; query — —
|
|
1091
|
+
- **Pagination:** no documented pagination envelope
|
|
1092
|
+
- **Response:** `{ data: { id, status, redirect_from, redirect_to, type } }`
|
|
1093
|
+
- **Logical CLI:** `gq ploi redirects show-redirect`
|
|
1094
|
+
- **Source:** [Ploi API reference — Get redirect](https://developers.ploi.io/redirects/get-redirect)
|
|
1095
|
+
|
|
1096
|
+
### List redirects
|
|
1097
|
+
|
|
1098
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{site}/redirects`
|
|
1099
|
+
- **Path parameters:** `server`, `site`
|
|
1100
|
+
- **Request:** body — —; query — —
|
|
1101
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
1102
|
+
- **Response:** `{ data: array of { id, status, redirect_from, redirect_to, type }, links, meta }`
|
|
1103
|
+
- **Logical CLI:** `gq ploi redirects list-redirects`
|
|
1104
|
+
- **Source:** [Ploi API reference — List redirects](https://developers.ploi.io/redirects/list-redirects)
|
|
1105
|
+
|
|
1106
|
+
## repositories
|
|
1107
|
+
|
|
1108
|
+
### Custom deployment
|
|
1109
|
+
|
|
1110
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/repository/custom-deployments`
|
|
1111
|
+
- **Path parameters:** `server`, `site`
|
|
1112
|
+
- **Request:** body — `script (string; optional)`; query — —
|
|
1113
|
+
- **Pagination:** no documented pagination envelope
|
|
1114
|
+
- **Response:** `{ data: { id, domain, web_directory, wordpress, laravel, project_root, last_deploy_at, created_at, repository } }`
|
|
1115
|
+
- **Logical CLI:** `gq ploi repositories custom-deployment`
|
|
1116
|
+
- **Source:** [Ploi API reference — Custom deployment](https://developers.ploi.io/repositories/custom-deployment)
|
|
1117
|
+
|
|
1118
|
+
### Delete repository
|
|
1119
|
+
|
|
1120
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{site}/repository`
|
|
1121
|
+
- **Path parameters:** `server`, `site`
|
|
1122
|
+
- **Request:** body — —; query — —
|
|
1123
|
+
- **Pagination:** no documented pagination envelope
|
|
1124
|
+
- **Response:** `{ data: { id, domain, web_directory, wordpress, laravel, project_root, last_deploy_at, created_at } }`
|
|
1125
|
+
- **Logical CLI:** `gq ploi repositories delete-repository`
|
|
1126
|
+
- **Source:** [Ploi API reference — Delete repository](https://developers.ploi.io/repositories/delete-repository)
|
|
1127
|
+
|
|
1128
|
+
### Get repository
|
|
1129
|
+
|
|
1130
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{site}/repository`
|
|
1131
|
+
- **Path parameters:** `server`, `site`
|
|
1132
|
+
- **Request:** body — —; query — —
|
|
1133
|
+
- **Pagination:** no documented pagination envelope
|
|
1134
|
+
- **Response:** `{ data: { id, domain, web_directory, wordpress, laravel, project_root, last_deploy_at, quick_deploy, created_at, repository } }`
|
|
1135
|
+
- **Logical CLI:** `gq ploi repositories show-repository`
|
|
1136
|
+
- **Source:** [Ploi API reference — Get repository](https://developers.ploi.io/repositories/get-repository)
|
|
1137
|
+
|
|
1138
|
+
### Install repository
|
|
1139
|
+
|
|
1140
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/repository`
|
|
1141
|
+
- **Path parameters:** `server`, `site`
|
|
1142
|
+
- **Request:** body — `provider (string; required)`, `branch (string; required)`, `name (string; required)`, `source_provider_id (integer; optional)`, `install_composer (boolean; optional)`; query — —
|
|
1143
|
+
- **Pagination:** no documented pagination envelope
|
|
1144
|
+
- **Response:** `{ data: { id, domain, web_directory, wordpress, laravel, project_root, last_deploy_at, created_at, repository } }`
|
|
1145
|
+
- **Logical CLI:** `gq ploi repositories install-repository`
|
|
1146
|
+
- **Source:** [Ploi API reference — Install repository](https://developers.ploi.io/repositories/install-repository)
|
|
1147
|
+
|
|
1148
|
+
### Toggle quick deploy
|
|
1149
|
+
|
|
1150
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/repository/quick-deploy`
|
|
1151
|
+
- **Path parameters:** `server`, `site`
|
|
1152
|
+
- **Request:** body — —; query — —
|
|
1153
|
+
- **Pagination:** no documented pagination envelope
|
|
1154
|
+
- **Response:** `{ data: { id, status, server_id, domain, test_domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, has_repository, zero_downtime_deployment, fastcgi_cache, created_at }, message }`
|
|
1155
|
+
- **Logical CLI:** `gq ploi repositories toggle-quick-deploy`
|
|
1156
|
+
- **Source:** [Ploi API reference — Toggle quick deploy](https://developers.ploi.io/repositories/toggle-quick-deploy)
|
|
1157
|
+
|
|
1158
|
+
## script-actions
|
|
1159
|
+
|
|
1160
|
+
### Create action
|
|
1161
|
+
|
|
1162
|
+
- **Method/path:** `POST /api/scripts/{script}/actions`
|
|
1163
|
+
- **Path parameters:** `script`
|
|
1164
|
+
- **Request:** body — `trigger (string; required)`, `servers (array; required)`, `delay_seconds (integer; optional)`; query — —
|
|
1165
|
+
- **Pagination:** no documented pagination envelope
|
|
1166
|
+
- **Response:** `{ data: { id, script_id, trigger, trigger_label, delay_seconds, is_paused, last_triggered_at, servers, created_at, updated_at } }`; **notes:** operation may be queued/backgrounded
|
|
1167
|
+
- **Logical CLI:** `gq ploi script-actions create-action`
|
|
1168
|
+
- **Source:** [Ploi API reference — Create action](https://developers.ploi.io/script-actions/create-action)
|
|
1169
|
+
|
|
1170
|
+
### Delete action
|
|
1171
|
+
|
|
1172
|
+
- **Method/path:** `DELETE /api/scripts/{script}/actions/{action}`
|
|
1173
|
+
- **Path parameters:** `script`, `action`
|
|
1174
|
+
- **Request:** body — —; query — —
|
|
1175
|
+
- **Pagination:** no documented pagination envelope
|
|
1176
|
+
- **Response:** `{ status, message }`
|
|
1177
|
+
- **Logical CLI:** `gq ploi script-actions delete-action`
|
|
1178
|
+
- **Source:** [Ploi API reference — Delete action](https://developers.ploi.io/script-actions/delete-action)
|
|
1179
|
+
|
|
1180
|
+
### Get action
|
|
1181
|
+
|
|
1182
|
+
- **Method/path:** `GET /api/scripts/{script}/actions/{action}`
|
|
1183
|
+
- **Path parameters:** `script`, `action`
|
|
1184
|
+
- **Request:** body — —; query — —
|
|
1185
|
+
- **Pagination:** no documented pagination envelope
|
|
1186
|
+
- **Response:** `{ data: { id, script_id, trigger, trigger_label, delay_seconds, is_paused, last_triggered_at, servers, created_at, updated_at } }`
|
|
1187
|
+
- **Logical CLI:** `gq ploi script-actions show-action`
|
|
1188
|
+
- **Source:** [Ploi API reference — Get action](https://developers.ploi.io/script-actions/get-action)
|
|
1189
|
+
|
|
1190
|
+
### List actions
|
|
1191
|
+
|
|
1192
|
+
- **Method/path:** `GET /api/scripts/{script}/actions`
|
|
1193
|
+
- **Path parameters:** `script`
|
|
1194
|
+
- **Request:** body — —; query — —
|
|
1195
|
+
- **Pagination:** no documented pagination envelope
|
|
1196
|
+
- **Response:** `{ data: array of { id, script_id, trigger, trigger_label, delay_seconds, is_paused, last_triggered_at, servers, created_at, updated_at } }`
|
|
1197
|
+
- **Logical CLI:** `gq ploi script-actions list-actions`
|
|
1198
|
+
- **Source:** [Ploi API reference — List actions](https://developers.ploi.io/script-actions/list-actions)
|
|
1199
|
+
|
|
1200
|
+
### Rotate webhook secret
|
|
1201
|
+
|
|
1202
|
+
- **Method/path:** `POST /api/scripts/{script}/actions/{action}/rotate-secret`
|
|
1203
|
+
- **Path parameters:** `script`, `action`
|
|
1204
|
+
- **Request:** body — —; query — —
|
|
1205
|
+
- **Pagination:** no documented pagination envelope
|
|
1206
|
+
- **Response:** `{ data: { id, script_id, trigger, trigger_label, delay_seconds, is_paused, last_triggered_at, servers, created_at, updated_at } }`
|
|
1207
|
+
- **Logical CLI:** `gq ploi script-actions rotate-action-secret`
|
|
1208
|
+
- **Source:** [Ploi API reference — Rotate webhook secret](https://developers.ploi.io/script-actions/rotate-action-secret)
|
|
1209
|
+
|
|
1210
|
+
### Toggle action
|
|
1211
|
+
|
|
1212
|
+
- **Method/path:** `POST /api/scripts/{script}/actions/{action}/toggle`
|
|
1213
|
+
- **Path parameters:** `script`, `action`
|
|
1214
|
+
- **Request:** body — —; query — —
|
|
1215
|
+
- **Pagination:** no documented pagination envelope
|
|
1216
|
+
- **Response:** `{ data: { id, script_id, trigger, trigger_label, delay_seconds, is_paused, last_triggered_at, servers, created_at, updated_at } }`
|
|
1217
|
+
- **Logical CLI:** `gq ploi script-actions toggle-action`
|
|
1218
|
+
- **Source:** [Ploi API reference — Toggle action](https://developers.ploi.io/script-actions/toggle-action)
|
|
1219
|
+
|
|
1220
|
+
### Update action
|
|
1221
|
+
|
|
1222
|
+
- **Method/path:** `PATCH /api/scripts/{script}/actions/{action}`
|
|
1223
|
+
- **Path parameters:** `script`, `action`
|
|
1224
|
+
- **Request:** body — `trigger (string; required)`, `servers (array; required)`, `delay_seconds (integer; optional)`; query — —
|
|
1225
|
+
- **Pagination:** no documented pagination envelope
|
|
1226
|
+
- **Response:** `{ data: { id, script_id, trigger, trigger_label, delay_seconds, is_paused, last_triggered_at, servers, created_at, updated_at } }`; **notes:** operation may be queued/backgrounded
|
|
1227
|
+
- **Logical CLI:** `gq ploi script-actions update-action`
|
|
1228
|
+
- **Source:** [Ploi API reference — Update action](https://developers.ploi.io/script-actions/update-action)
|
|
1229
|
+
|
|
1230
|
+
## script-schedules
|
|
1231
|
+
|
|
1232
|
+
### Create schedule
|
|
1233
|
+
|
|
1234
|
+
- **Method/path:** `POST /api/scripts/{script}/schedules`
|
|
1235
|
+
- **Path parameters:** `script`
|
|
1236
|
+
- **Request:** body — `cron_expression (string; required)`, `servers (array; required)`; query — —
|
|
1237
|
+
- **Pagination:** no documented pagination envelope
|
|
1238
|
+
- **Response:** `{ data: { id, script_id, cron_expression, servers, is_paused, next_run_at, last_run_at, created_at, updated_at } }`
|
|
1239
|
+
- **Logical CLI:** `gq ploi script-schedules create-schedule`
|
|
1240
|
+
- **Source:** [Ploi API reference — Create schedule](https://developers.ploi.io/script-schedules/create-schedule)
|
|
1241
|
+
|
|
1242
|
+
### Delete schedule
|
|
1243
|
+
|
|
1244
|
+
- **Method/path:** `DELETE /api/scripts/{script}/schedules/{schedule}`
|
|
1245
|
+
- **Path parameters:** `script`, `schedule`
|
|
1246
|
+
- **Request:** body — —; query — —
|
|
1247
|
+
- **Pagination:** no documented pagination envelope
|
|
1248
|
+
- **Response:** `{ status, message }`
|
|
1249
|
+
- **Logical CLI:** `gq ploi script-schedules delete-schedule`
|
|
1250
|
+
- **Source:** [Ploi API reference — Delete schedule](https://developers.ploi.io/script-schedules/delete-schedule)
|
|
1251
|
+
|
|
1252
|
+
### Get schedule
|
|
1253
|
+
|
|
1254
|
+
- **Method/path:** `GET /api/scripts/{script}/schedules/{schedule}`
|
|
1255
|
+
- **Path parameters:** `script`, `schedule`
|
|
1256
|
+
- **Request:** body — —; query — —
|
|
1257
|
+
- **Pagination:** no documented pagination envelope
|
|
1258
|
+
- **Response:** `{ data: { id, script_id, cron_expression, servers, is_paused, next_run_at, last_run_at, created_at, updated_at } }`
|
|
1259
|
+
- **Logical CLI:** `gq ploi script-schedules show-schedule`
|
|
1260
|
+
- **Source:** [Ploi API reference — Get schedule](https://developers.ploi.io/script-schedules/get-schedule)
|
|
1261
|
+
|
|
1262
|
+
### List schedules
|
|
1263
|
+
|
|
1264
|
+
- **Method/path:** `GET /api/scripts/{script}/schedules`
|
|
1265
|
+
- **Path parameters:** `script`
|
|
1266
|
+
- **Request:** body — —; query — —
|
|
1267
|
+
- **Pagination:** no documented pagination envelope
|
|
1268
|
+
- **Response:** `{ data: array of { id, script_id, cron_expression, servers, is_paused, next_run_at, last_run_at, created_at, updated_at } }`
|
|
1269
|
+
- **Logical CLI:** `gq ploi script-schedules list-schedules`
|
|
1270
|
+
- **Source:** [Ploi API reference — List schedules](https://developers.ploi.io/script-schedules/list-schedules)
|
|
1271
|
+
|
|
1272
|
+
### Toggle schedule
|
|
1273
|
+
|
|
1274
|
+
- **Method/path:** `POST /api/scripts/{script}/schedules/{schedule}/toggle`
|
|
1275
|
+
- **Path parameters:** `script`, `schedule`
|
|
1276
|
+
- **Request:** body — —; query — —
|
|
1277
|
+
- **Pagination:** no documented pagination envelope
|
|
1278
|
+
- **Response:** `{ data: { id, script_id, cron_expression, servers, is_paused, next_run_at, last_run_at, created_at, updated_at } }`
|
|
1279
|
+
- **Logical CLI:** `gq ploi script-schedules toggle-schedule`
|
|
1280
|
+
- **Source:** [Ploi API reference — Toggle schedule](https://developers.ploi.io/script-schedules/toggle-schedule)
|
|
1281
|
+
|
|
1282
|
+
### Update schedule
|
|
1283
|
+
|
|
1284
|
+
- **Method/path:** `PATCH /api/scripts/{script}/schedules/{schedule}`
|
|
1285
|
+
- **Path parameters:** `script`, `schedule`
|
|
1286
|
+
- **Request:** body — `cron_expression (string; required)`, `servers (array; required)`; query — —
|
|
1287
|
+
- **Pagination:** no documented pagination envelope
|
|
1288
|
+
- **Response:** `{ data: { id, script_id, cron_expression, servers, is_paused, next_run_at, last_run_at, created_at, updated_at } }`
|
|
1289
|
+
- **Logical CLI:** `gq ploi script-schedules update-schedule`
|
|
1290
|
+
- **Source:** [Ploi API reference — Update schedule](https://developers.ploi.io/script-schedules/update-schedule)
|
|
1291
|
+
|
|
1292
|
+
## scripts
|
|
1293
|
+
|
|
1294
|
+
### Create script
|
|
1295
|
+
|
|
1296
|
+
- **Method/path:** `POST /api/scripts`
|
|
1297
|
+
- **Path parameters:** —
|
|
1298
|
+
- **Request:** body — `label (string; required)`, `user (string; required)`, `content (string; required)`; query — —
|
|
1299
|
+
- **Pagination:** no documented pagination envelope
|
|
1300
|
+
- **Response:** `{ data: { id, user, label, content, created_at } }`
|
|
1301
|
+
- **Logical CLI:** `gq ploi scripts create-script`
|
|
1302
|
+
- **Source:** [Ploi API reference — Create script](https://developers.ploi.io/scripts/create-script)
|
|
1303
|
+
|
|
1304
|
+
### Delete script
|
|
1305
|
+
|
|
1306
|
+
- **Method/path:** `DELETE /api/scripts/{script}`
|
|
1307
|
+
- **Path parameters:** `script`
|
|
1308
|
+
- **Request:** body — —; query — —
|
|
1309
|
+
- **Pagination:** no documented pagination envelope
|
|
1310
|
+
- **Response:** `{ message }`
|
|
1311
|
+
- **Logical CLI:** `gq ploi scripts delete-script`
|
|
1312
|
+
- **Source:** [Ploi API reference — Delete script](https://developers.ploi.io/scripts/delete-script)
|
|
1313
|
+
|
|
1314
|
+
### Get script execution
|
|
1315
|
+
|
|
1316
|
+
- **Method/path:** `GET /api/servers/{server}/scripts/run/{execution}`
|
|
1317
|
+
- **Path parameters:** `server`, `execution`
|
|
1318
|
+
- **Request:** body — —; query — —
|
|
1319
|
+
- **Pagination:** no documented pagination envelope
|
|
1320
|
+
- **Response:** `{ data: { id, server_id, user, content, status, exit_code, output, created_at, started_at, finished_at } }`; **notes:** 404 behavior documented
|
|
1321
|
+
- **Logical CLI:** `gq ploi scripts show-script-execution`
|
|
1322
|
+
- **Source:** [Ploi API reference — Get script execution](https://developers.ploi.io/scripts/get-script-execution)
|
|
1323
|
+
|
|
1324
|
+
### Get script
|
|
1325
|
+
|
|
1326
|
+
- **Method/path:** `GET /api/scripts/{script}`
|
|
1327
|
+
- **Path parameters:** `script`
|
|
1328
|
+
- **Request:** body — —; query — —
|
|
1329
|
+
- **Pagination:** no documented pagination envelope
|
|
1330
|
+
- **Response:** `{ data: { id, user, label, content, created_at } }`
|
|
1331
|
+
- **Logical CLI:** `gq ploi scripts show-script`
|
|
1332
|
+
- **Source:** [Ploi API reference — Get script](https://developers.ploi.io/scripts/get-script)
|
|
1333
|
+
|
|
1334
|
+
### List scripts
|
|
1335
|
+
|
|
1336
|
+
- **Method/path:** `GET /api/scripts`
|
|
1337
|
+
- **Path parameters:** —
|
|
1338
|
+
- **Request:** body — —; query — —
|
|
1339
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
1340
|
+
- **Response:** `{ data: array of { id, user, label, content, created_at }, links, meta }`
|
|
1341
|
+
- **Logical CLI:** `gq ploi scripts list-scripts`
|
|
1342
|
+
- **Source:** [Ploi API reference — List scripts](https://developers.ploi.io/scripts/list-scripts)
|
|
1343
|
+
|
|
1344
|
+
### Run one-off script
|
|
1345
|
+
|
|
1346
|
+
- **Method/path:** `POST /api/servers/{server}/scripts/run`
|
|
1347
|
+
- **Path parameters:** `server`
|
|
1348
|
+
- **Request:** body — `content (string; required)`, `user (string; optional)`; query — —
|
|
1349
|
+
- **Pagination:** no documented pagination envelope
|
|
1350
|
+
- **Response:** `{ data: { id, server_id, user, content, status, exit_code, output, created_at, started_at, finished_at } }`
|
|
1351
|
+
- **Logical CLI:** `gq ploi scripts run-one-off-script`
|
|
1352
|
+
- **Source:** [Ploi API reference — Run one-off script](https://developers.ploi.io/scripts/run-one-off-script)
|
|
1353
|
+
|
|
1354
|
+
### Run script
|
|
1355
|
+
|
|
1356
|
+
- **Method/path:** `POST /api/scripts/{script}/run`
|
|
1357
|
+
- **Path parameters:** `script`
|
|
1358
|
+
- **Request:** body — `servers (array; required)`; query — —
|
|
1359
|
+
- **Pagination:** no documented pagination envelope
|
|
1360
|
+
- **Response:** `{ data: { running_on_servers } }`
|
|
1361
|
+
- **Logical CLI:** `gq ploi scripts run-script`
|
|
1362
|
+
- **Source:** [Ploi API reference — Run script](https://developers.ploi.io/scripts/run-script)
|
|
1363
|
+
|
|
1364
|
+
### Update script
|
|
1365
|
+
|
|
1366
|
+
- **Method/path:** `PATCH /api/scripts/{script}`
|
|
1367
|
+
- **Path parameters:** `script`
|
|
1368
|
+
- **Request:** body — `label (string; optional)`, `user (string; optional)`, `content (string; optional)`; query — —
|
|
1369
|
+
- **Pagination:** no documented pagination envelope
|
|
1370
|
+
- **Response:** `{ data: { id, user, label, content, created_at } }`
|
|
1371
|
+
- **Logical CLI:** `gq ploi scripts update-script`
|
|
1372
|
+
- **Source:** [Ploi API reference — Update script](https://developers.ploi.io/scripts/update-script)
|
|
1373
|
+
|
|
1374
|
+
## servers
|
|
1375
|
+
|
|
1376
|
+
### Create custom server
|
|
1377
|
+
|
|
1378
|
+
- **Method/path:** `POST /api/servers/custom`
|
|
1379
|
+
- **Path parameters:** —
|
|
1380
|
+
- **Request:** body — `type (string; required)`, `ip (string; required)`, `ssh_port (integer; required)`, `database_type (string; required)`, `php_version (string; required)`, `name (string; optional)`, `os_type (string; optional)`, `description (string; optional)`, `install_monitoring (boolean; optional)`, `webhook_url (url; optional)`; query — —
|
|
1381
|
+
- **Pagination:** no documented pagination envelope
|
|
1382
|
+
- **Response:** `{ id, name, public_key, ssh_command, start_installation_url, message }`; `{ message }`
|
|
1383
|
+
- **Logical CLI:** `gq ploi servers create-custom-server`
|
|
1384
|
+
- **Source:** [Ploi API reference — Create custom server](https://developers.ploi.io/servers/create-custom-server)
|
|
1385
|
+
|
|
1386
|
+
### Create custom server
|
|
1387
|
+
|
|
1388
|
+
- **Method/path:** `POST /api/servers/custom/{id}/start`
|
|
1389
|
+
- **Path parameters:** `id`
|
|
1390
|
+
- **Request:** body — `type (string; required)`, `ip (string; required)`, `ssh_port (integer; required)`, `database_type (string; required)`, `php_version (string; required)`, `name (string; optional)`, `os_type (string; optional)`, `description (string; optional)`, `install_monitoring (boolean; optional)`, `webhook_url (url; optional)`; query — —
|
|
1391
|
+
- **Pagination:** no documented pagination envelope
|
|
1392
|
+
- **Response:** `{ id, name, public_key, ssh_command, start_installation_url, message }`; `{ message }`
|
|
1393
|
+
- **Logical CLI:** `gq ploi servers start-installation`
|
|
1394
|
+
- **Source:** [Ploi API reference — Create custom server](https://developers.ploi.io/servers/create-custom-server)
|
|
1395
|
+
|
|
1396
|
+
### Create server
|
|
1397
|
+
|
|
1398
|
+
- **Method/path:** `POST /api/servers`
|
|
1399
|
+
- **Path parameters:** —
|
|
1400
|
+
- **Request:** body — `plan (string; required)`, `region (string; required)`, `credential (integer; required)`, `type (string; required)`, `database_type (string; required)`, `webserver_type (string; required)`, `php_version (string; required)`, `name (string; optional)`, `os_type (string; optional)`, `description (string; optional)`, `install_monitoring (boolean; optional)`, `ip_type (string; optional)`, `webhook_url (url; optional)`; query — —
|
|
1401
|
+
- **Pagination:** no documented pagination envelope
|
|
1402
|
+
- **Response:** `{ data: { id, status, type, name, ip_address, php_version, mysql_version, sites_count, monitoring, status_id, created_at } }`; `{ message, server }`
|
|
1403
|
+
- **Logical CLI:** `gq ploi servers create-server`
|
|
1404
|
+
- **Source:** [Ploi API reference — Create server](https://developers.ploi.io/servers/create-server)
|
|
1405
|
+
|
|
1406
|
+
### Delete server
|
|
1407
|
+
|
|
1408
|
+
- **Method/path:** `DELETE /api/servers/{server}`
|
|
1409
|
+
- **Path parameters:** `server`
|
|
1410
|
+
- **Request:** body — —; query — —
|
|
1411
|
+
- **Pagination:** no documented pagination envelope
|
|
1412
|
+
- **Response:** `{ data: { id, status, type, name, ip_address, php_version, mysql_version, sites_count, monitoring, created_at } }`; `{ message, errors, links }`; **notes:** irreversible mutation
|
|
1413
|
+
- **Logical CLI:** `gq ploi servers delete-server`
|
|
1414
|
+
- **Source:** [Ploi API reference — Delete server](https://developers.ploi.io/servers/delete-server)
|
|
1415
|
+
|
|
1416
|
+
### Get server
|
|
1417
|
+
|
|
1418
|
+
- **Method/path:** `GET /api/servers/{id}`
|
|
1419
|
+
- **Path parameters:** `id`
|
|
1420
|
+
- **Request:** body — —; query — —
|
|
1421
|
+
- **Pagination:** no documented pagination envelope
|
|
1422
|
+
- **Response:** `{ data: { id, status, type, name, ip_address, php_version, mysql_version, sites_count, monitoring, created_at } }`
|
|
1423
|
+
- **Logical CLI:** `gq ploi server show`
|
|
1424
|
+
- **Source:** [Ploi API reference — Get server](https://developers.ploi.io/servers/get-server)
|
|
1425
|
+
|
|
1426
|
+
### List servers
|
|
1427
|
+
|
|
1428
|
+
- **Method/path:** `GET /api/servers`
|
|
1429
|
+
- **Path parameters:** —
|
|
1430
|
+
- **Request:** body — —; query — —
|
|
1431
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
1432
|
+
- **Response:** `{ data: array of { id, type, name, ip_address, php_version, mysql_version, sites_count, status, status_id, created_at }, links, meta }`
|
|
1433
|
+
- **Logical CLI:** `gq ploi servers list`
|
|
1434
|
+
- **Source:** [Ploi API reference — List servers](https://developers.ploi.io/servers/list-servers)
|
|
1435
|
+
|
|
1436
|
+
### Server logs
|
|
1437
|
+
|
|
1438
|
+
- **Method/path:** `GET /api/servers/{id}/logs`
|
|
1439
|
+
- **Path parameters:** `id`
|
|
1440
|
+
- **Request:** body — —; query — —
|
|
1441
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
1442
|
+
- **Response:** `{ data: array of { description, content, site_id, server_id, created_at }, links, meta }`
|
|
1443
|
+
- **Logical CLI:** `gq ploi servers logs-server`
|
|
1444
|
+
- **Source:** [Ploi API reference — Server logs](https://developers.ploi.io/servers/logs-server)
|
|
1445
|
+
|
|
1446
|
+
### Monitored servers
|
|
1447
|
+
|
|
1448
|
+
- **Method/path:** `GET /api/servers/monitored`
|
|
1449
|
+
- **Path parameters:** —
|
|
1450
|
+
- **Request:** body — —; query — —
|
|
1451
|
+
- **Pagination:** no documented pagination envelope
|
|
1452
|
+
- **Response:** `{ data: array of { id, name, ip, url, statistics } }`
|
|
1453
|
+
- **Logical CLI:** `gq ploi servers monitored`
|
|
1454
|
+
- **Source:** [Ploi API reference — Monitored servers](https://developers.ploi.io/servers/monitored)
|
|
1455
|
+
|
|
1456
|
+
### Server monitoring
|
|
1457
|
+
|
|
1458
|
+
- **Method/path:** `GET /api/servers/{server}/monitor`
|
|
1459
|
+
- **Path parameters:** `server`
|
|
1460
|
+
- **Request:** body — —; query — —
|
|
1461
|
+
- **Pagination:** no documented pagination envelope
|
|
1462
|
+
- **Response:** `{ data: array of { cpu, ram, disk, load_average, date } }`; `{ message, errors, links }`
|
|
1463
|
+
- **Logical CLI:** `gq ploi servers monitoring`
|
|
1464
|
+
- **Source:** [Ploi API reference — Server monitoring](https://developers.ploi.io/servers/monitoring)
|
|
1465
|
+
|
|
1466
|
+
### Restart server
|
|
1467
|
+
|
|
1468
|
+
- **Method/path:** `POST /api/servers/{id}/restart`
|
|
1469
|
+
- **Path parameters:** `id`
|
|
1470
|
+
- **Request:** body — —; query — —
|
|
1471
|
+
- **Pagination:** no documented pagination envelope
|
|
1472
|
+
- **Response:** `{ message }`
|
|
1473
|
+
- **Logical CLI:** `gq ploi servers restart-server`
|
|
1474
|
+
- **Source:** [Ploi API reference — Restart server](https://developers.ploi.io/servers/restart-server)
|
|
1475
|
+
|
|
1476
|
+
### Update server
|
|
1477
|
+
|
|
1478
|
+
- **Method/path:** `PATCH /api/servers/{server}`
|
|
1479
|
+
- **Path parameters:** `server`
|
|
1480
|
+
- **Request:** body — `name (string; required)`, `ip (string; optional)`, `ssh_port (integer; optional)`; query — —
|
|
1481
|
+
- **Pagination:** no documented pagination envelope
|
|
1482
|
+
- **Response:** `{ data: { id, status, type, database_type, name, ip_address, internal_ip, ssh_port, reboot_required, php_version, php_cli_version, mysql_version, sites_count, monitoring, opcache, installed_php_versions, updates, description, status_id, provider, created_at, created_human, uptime_human } }`
|
|
1483
|
+
- **Logical CLI:** `gq ploi servers update-server`
|
|
1484
|
+
- **Source:** [Ploi API reference — Update server](https://developers.ploi.io/servers/update-server)
|
|
1485
|
+
|
|
1486
|
+
## services
|
|
1487
|
+
|
|
1488
|
+
### Install WordPress CLI
|
|
1489
|
+
|
|
1490
|
+
- **Method/path:** `POST /api/servers/{server}/install/wp-cli`
|
|
1491
|
+
- **Path parameters:** `server`
|
|
1492
|
+
- **Request:** body — —; query — —
|
|
1493
|
+
- **Pagination:** no documented pagination envelope
|
|
1494
|
+
- **Response:** `{ status, message }`
|
|
1495
|
+
- **Logical CLI:** `gq ploi services install-wordpress-cli`
|
|
1496
|
+
- **Source:** [Ploi API reference — Install WordPress CLI](https://developers.ploi.io/services/install-wordpress-cli)
|
|
1497
|
+
|
|
1498
|
+
### Reload service
|
|
1499
|
+
|
|
1500
|
+
- **Method/path:** `POST /api/servers/{server}/services/{service}/reload`
|
|
1501
|
+
- **Path parameters:** `server`, `service`
|
|
1502
|
+
- **Request:** body — —; query — —
|
|
1503
|
+
- **Pagination:** no documented pagination envelope
|
|
1504
|
+
- **Response:** `{ message, fallback }`; **notes:** 422 behavior documented
|
|
1505
|
+
- **Logical CLI:** `gq ploi services reload-service`
|
|
1506
|
+
- **Source:** [Ploi API reference — Reload service](https://developers.ploi.io/services/reload-service)
|
|
1507
|
+
|
|
1508
|
+
### Restart service
|
|
1509
|
+
|
|
1510
|
+
- **Method/path:** `POST /api/servers/{server}/services/{service}/restart`
|
|
1511
|
+
- **Path parameters:** `server`, `service`
|
|
1512
|
+
- **Request:** body — —; query — —
|
|
1513
|
+
- **Pagination:** no documented pagination envelope
|
|
1514
|
+
- **Response:** `{ status, message }`
|
|
1515
|
+
- **Logical CLI:** `gq ploi services restart-service`
|
|
1516
|
+
- **Source:** [Ploi API reference — Restart service](https://developers.ploi.io/services/restart-service)
|
|
1517
|
+
|
|
1518
|
+
### Run WP CLI command
|
|
1519
|
+
|
|
1520
|
+
- **Method/path:** `POST /api/servers/{server}/wp-cli/run`
|
|
1521
|
+
- **Path parameters:** `server`
|
|
1522
|
+
- **Request:** body — `command (string; required)`; query — —
|
|
1523
|
+
- **Pagination:** no documented pagination envelope
|
|
1524
|
+
- **Response:** `{ status, message }`; **notes:** on-demand execution/retrieval is documented
|
|
1525
|
+
- **Logical CLI:** `gq ploi services run-wp-cli-command`
|
|
1526
|
+
- **Source:** [Ploi API reference — Run WP CLI command](https://developers.ploi.io/services/run-wp-cli-command)
|
|
1527
|
+
|
|
1528
|
+
### Uninstall WordPress CLI
|
|
1529
|
+
|
|
1530
|
+
- **Method/path:** `DELETE /api/servers/{server}/uninstall/wp-cli`
|
|
1531
|
+
- **Path parameters:** `server`
|
|
1532
|
+
- **Request:** body — —; query — —
|
|
1533
|
+
- **Pagination:** no documented pagination envelope
|
|
1534
|
+
- **Response:** `{ status, message }`
|
|
1535
|
+
- **Logical CLI:** `gq ploi services uninstall-wordpress-cli`
|
|
1536
|
+
- **Source:** [Ploi API reference — Uninstall WordPress CLI](https://developers.ploi.io/services/uninstall-wordpress-cli)
|
|
1537
|
+
|
|
1538
|
+
## site
|
|
1539
|
+
|
|
1540
|
+
### Create site file backup
|
|
1541
|
+
|
|
1542
|
+
- **Method/path:** `POST /api/backups/file`
|
|
1543
|
+
- **Path parameters:** —
|
|
1544
|
+
- **Request:** body — `backup_configuration (integer; required)`, `server (integer; required)`, `sites (array; required)`, `interval (integer; required)`, `path (object; required)`, `locations (string; optional)`, `keep_backup_amount (integer; optional)`, `custom_name (string; optional)`, `local_path (string; optional)`, `password (string; optional)`, `next_backup_at (string; optional)`, `deleteOnFail (boolean; optional)`; query — —
|
|
1545
|
+
- **Pagination:** no documented pagination envelope
|
|
1546
|
+
- **Response:** `{ status, message }`
|
|
1547
|
+
- **Logical CLI:** `gq ploi site-file-backups create-site-file-backup`
|
|
1548
|
+
- **Source:** [Ploi API reference — Create site file backup](https://developers.ploi.io/site/create-site-file-backup)
|
|
1549
|
+
|
|
1550
|
+
### Delete site file backup
|
|
1551
|
+
|
|
1552
|
+
- **Method/path:** `DELETE /api/backups/file/{siteFileBackup}`
|
|
1553
|
+
- **Path parameters:** `siteFileBackup`
|
|
1554
|
+
- **Request:** body — —; query — —
|
|
1555
|
+
- **Pagination:** no documented pagination envelope
|
|
1556
|
+
- **Response:** `{ status, message }`; **notes:** source example uses a concrete ID/domain; normalized here
|
|
1557
|
+
- **Logical CLI:** `gq ploi site-file-backups delete-site-file-backup`
|
|
1558
|
+
- **Source:** [Ploi API reference — Delete site file backup](https://developers.ploi.io/site/delete-site-file-backup)
|
|
1559
|
+
|
|
1560
|
+
### Get site file backup
|
|
1561
|
+
|
|
1562
|
+
- **Method/path:** `GET /api/backups/file/{siteFileBackup}`
|
|
1563
|
+
- **Path parameters:** `siteFileBackup`
|
|
1564
|
+
- **Request:** body — —; query — —
|
|
1565
|
+
- **Pagination:** no documented pagination envelope
|
|
1566
|
+
- **Response:** `{ data: { id, status, label, type, type_human, path, remote_path, locations, interval, table_exclusions, keep_backup_amount, active, server_id, site, last_backup_at, created_at } }`; **notes:** source example uses a concrete ID/domain; normalized here
|
|
1567
|
+
- **Logical CLI:** `gq ploi site-file-backups show-site-file-backup`
|
|
1568
|
+
- **Source:** [Ploi API reference — Get site file backup](https://developers.ploi.io/site/get-site-file-backup)
|
|
1569
|
+
|
|
1570
|
+
### List site file backups
|
|
1571
|
+
|
|
1572
|
+
- **Method/path:** `GET /api/backups/file`
|
|
1573
|
+
- **Path parameters:** —
|
|
1574
|
+
- **Request:** body — —; query — `server (integer; optional)`, `site (integer; optional)`, `per_page (integer; optional)`
|
|
1575
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
1576
|
+
- **Response:** `{ data: array of { id, status, label, type, type_human, path, remote_path, locations, interval, table_exclusions, keep_backup_amount, active, server_id, site, last_backup_at, created_at }, links, meta }`
|
|
1577
|
+
- **Logical CLI:** `gq ploi site-file-backups list-site-file-backups`
|
|
1578
|
+
- **Source:** [Ploi API reference — List site file backups](https://developers.ploi.io/site/list-site-file-backups)
|
|
1579
|
+
|
|
1580
|
+
### Run site file backup
|
|
1581
|
+
|
|
1582
|
+
- **Method/path:** `POST /api/backups/file/{siteFileBackup}/run`
|
|
1583
|
+
- **Path parameters:** `siteFileBackup`
|
|
1584
|
+
- **Request:** body — —; query — —
|
|
1585
|
+
- **Pagination:** no documented pagination envelope
|
|
1586
|
+
- **Response:** `{ status, message }`; **notes:** the source cURL uses literal backup ID `1`; normalized here
|
|
1587
|
+
- **Logical CLI:** `gq ploi site-file-backups run-site-file-backup`
|
|
1588
|
+
- **Source:** [Ploi API reference — Run site file backup](https://developers.ploi.io/site/run-site-file-backup)
|
|
1589
|
+
|
|
1590
|
+
### Update site file backup
|
|
1591
|
+
|
|
1592
|
+
- **Method/path:** `PATCH /api/backups/file/{siteFileBackup}`
|
|
1593
|
+
- **Path parameters:** `siteFileBackup`
|
|
1594
|
+
- **Request:** body — `interval (integer; required)`, `keep_backup_amount (integer; required)`, `path (string; required)`, `deleteOnFail (boolean; optional)`, `custom_name (string; optional)`, `local_path (string; optional)`, `compression (string; optional)`, `excluded (array; optional)`, `locations (string; optional)`, `next_backup_at (string; optional)`; query — —
|
|
1595
|
+
- **Pagination:** no documented pagination envelope
|
|
1596
|
+
- **Response:** `{ data: { id, type, path, local_path, compression, interval, keep_backup_amount, custom_name, delete_on_fail, excluded, locations, status, last_backup_at, next_backup_at, created_at, site, backup_configuration } }`; **notes:** source example uses a concrete ID/domain; normalized here
|
|
1597
|
+
- **Logical CLI:** `gq ploi site-file-backups update-site-file-backup`
|
|
1598
|
+
- **Source:** [Ploi API reference — Update site file backup](https://developers.ploi.io/site/update-site-file-backup)
|
|
1599
|
+
|
|
1600
|
+
## sites
|
|
1601
|
+
|
|
1602
|
+
### Change PHP version
|
|
1603
|
+
|
|
1604
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/php-version`
|
|
1605
|
+
- **Path parameters:** `server`, `site`
|
|
1606
|
+
- **Request:** body — `php_version (string; required)`; query — —
|
|
1607
|
+
- **Pagination:** no documented pagination envelope
|
|
1608
|
+
- **Response:** `{ data: { id, status, server_id, domain, test_domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, disable_robots, has_repository, zero_downtime_deployment, has_staging, fastcgi_cache, created_at } }`
|
|
1609
|
+
- **Logical CLI:** `gq ploi sites change-php-version`
|
|
1610
|
+
- **Source:** [Ploi API reference — Change PHP version](https://developers.ploi.io/sites/change-php-version)
|
|
1611
|
+
|
|
1612
|
+
### Clone site
|
|
1613
|
+
|
|
1614
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/clone`
|
|
1615
|
+
- **Path parameters:** `server`, `site`
|
|
1616
|
+
- **Request:** body — `clone_to_server (integer; required)`, `domain (string; optional)`; query — —
|
|
1617
|
+
- **Pagination:** no documented pagination envelope
|
|
1618
|
+
- **Response:** `{ status, message }`
|
|
1619
|
+
- **Logical CLI:** `gq ploi sites clone-site`
|
|
1620
|
+
- **Source:** [Ploi API reference — Clone site](https://developers.ploi.io/sites/clone-site)
|
|
1621
|
+
|
|
1622
|
+
### Create site
|
|
1623
|
+
|
|
1624
|
+
- **Method/path:** `POST /api/servers/{server}/sites`
|
|
1625
|
+
- **Path parameters:** `server`
|
|
1626
|
+
- **Request:** body — `root_domain (string; required)`, `web_directory (string; required)`, `project_root (string; optional)`, `project_type (string; optional)`, `system_user (string; optional)`, `webserver_template (integer; optional)`, `webhook_url (url; optional)`; query — —
|
|
1627
|
+
- **Pagination:** no documented pagination envelope
|
|
1628
|
+
- **Response:** `{ data: { id, server_id, domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, notification_urls, has_repository, created_at } }`; `{ message, server, site }`
|
|
1629
|
+
- **Logical CLI:** `gq ploi sites create-site`
|
|
1630
|
+
- **Source:** [Ploi API reference — Create site](https://developers.ploi.io/sites/create-site)
|
|
1631
|
+
|
|
1632
|
+
### Delete site
|
|
1633
|
+
|
|
1634
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{id}`
|
|
1635
|
+
- **Path parameters:** `server`, `id`
|
|
1636
|
+
- **Request:** body — —; query — —
|
|
1637
|
+
- **Pagination:** no documented pagination envelope
|
|
1638
|
+
- **Response:** `{ message }`
|
|
1639
|
+
- **Logical CLI:** `gq ploi sites delete-site`
|
|
1640
|
+
- **Source:** [Ploi API reference — Delete site](https://developers.ploi.io/sites/delete-site)
|
|
1641
|
+
|
|
1642
|
+
### Disable test domain
|
|
1643
|
+
|
|
1644
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{id}/test-domain`
|
|
1645
|
+
- **Path parameters:** `server`, `id`
|
|
1646
|
+
- **Request:** body — —; query — —
|
|
1647
|
+
- **Pagination:** no documented pagination envelope
|
|
1648
|
+
- **Response:** `{ data: { id, domain, test_domain, full_test_domain } }`
|
|
1649
|
+
- **Logical CLI:** `gq ploi sites disable-test-domain`
|
|
1650
|
+
- **Source:** [Ploi API reference — Disable test domain](https://developers.ploi.io/sites/disable-test-domain)
|
|
1651
|
+
|
|
1652
|
+
### Enable test domain
|
|
1653
|
+
|
|
1654
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/test-domain`
|
|
1655
|
+
- **Path parameters:** `server`, `id`
|
|
1656
|
+
- **Request:** body — —; query — —
|
|
1657
|
+
- **Pagination:** no documented pagination envelope
|
|
1658
|
+
- **Response:** `{ data: { id, domain, test_domain, full_test_domain }, message }`
|
|
1659
|
+
- **Logical CLI:** `gq ploi sites enable-test-domain`
|
|
1660
|
+
- **Source:** [Ploi API reference — Enable test domain](https://developers.ploi.io/sites/enable-test-domain)
|
|
1661
|
+
|
|
1662
|
+
### Get log site
|
|
1663
|
+
|
|
1664
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{id}/log/{log}`
|
|
1665
|
+
- **Path parameters:** `server`, `id`, `log`
|
|
1666
|
+
- **Request:** body — —; query — —
|
|
1667
|
+
- **Pagination:** no documented pagination envelope
|
|
1668
|
+
- **Response:** `{ data: { id, description, content, type, created_at, created_at_human } }`
|
|
1669
|
+
- **Logical CLI:** `gq ploi sites show-log-site`
|
|
1670
|
+
- **Source:** [Ploi API reference — Get log site](https://developers.ploi.io/sites/get-log-site)
|
|
1671
|
+
|
|
1672
|
+
### Get NGINX configuration
|
|
1673
|
+
|
|
1674
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{site}/nginx-configuration`
|
|
1675
|
+
- **Path parameters:** `server`, `site`
|
|
1676
|
+
- **Request:** body — —; query — —
|
|
1677
|
+
- **Pagination:** no documented pagination envelope
|
|
1678
|
+
- **Response:** `{ content }`; **notes:** on-demand execution/retrieval is documented
|
|
1679
|
+
- **Logical CLI:** `gq ploi sites show-nginx-configuration`
|
|
1680
|
+
- **Source:** [Ploi API reference — Get NGINX configuration](https://developers.ploi.io/sites/get-nginx-configuration)
|
|
1681
|
+
|
|
1682
|
+
### Get site
|
|
1683
|
+
|
|
1684
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{id}`
|
|
1685
|
+
- **Path parameters:** `server`, `id`
|
|
1686
|
+
- **Request:** body — —; query — —
|
|
1687
|
+
- **Pagination:** no documented pagination envelope
|
|
1688
|
+
- **Response:** `{ data: { id, server_id, status, domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, has_repository, quick_deploy, disk_usage, created_at } }`
|
|
1689
|
+
- **Logical CLI:** `gq ploi site show`
|
|
1690
|
+
- **Source:** [Ploi API reference — Get site](https://developers.ploi.io/sites/get-site)
|
|
1691
|
+
|
|
1692
|
+
### Get test domain
|
|
1693
|
+
|
|
1694
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{id}/test-domain`
|
|
1695
|
+
- **Path parameters:** `server`, `id`
|
|
1696
|
+
- **Request:** body — —; query — —
|
|
1697
|
+
- **Pagination:** no documented pagination envelope
|
|
1698
|
+
- **Response:** `{ data: { id, domain, test_domain, full_test_domain } }`
|
|
1699
|
+
- **Logical CLI:** `gq ploi sites show-test-domain`
|
|
1700
|
+
- **Source:** [Ploi API reference — Get test domain](https://developers.ploi.io/sites/get-test-domain)
|
|
1701
|
+
|
|
1702
|
+
### Laravel Horizon statistics
|
|
1703
|
+
|
|
1704
|
+
- **Method/path:** `GET /api/servers/{server}/sites/laravel/horizon` (default) or `GET /api/servers/{server}/sites/laravel/horizon/{type}`
|
|
1705
|
+
- **Path parameters:** `server`; optional `type` — `stats`, `workload`, `masters`, or `failed` (defaults to `stats` when omitted)
|
|
1706
|
+
- **Request:** body — —; query — —
|
|
1707
|
+
- **Pagination:** no documented pagination envelope
|
|
1708
|
+
- **Response:** `{ data: { failedJobs, jobsPerMinute, pausedMasters, periods, processes, queueWithMaxRuntime, queueWithMaxThroughput, recentJobs, status, wait } }`; `{ data: array of { name, length, wait, processes } }`; `{ data: { from-macbook-pro-Ry0f } }`; `{ data: { jobs, total } }`; **notes:** the page's route badge includes `/{type}`, while its default cURL request omits it
|
|
1709
|
+
- **Logical CLI:** `gq ploi sites laravel-horizon-statistics`
|
|
1710
|
+
- **Source:** [Ploi API reference — Laravel Horizon statistics](https://developers.ploi.io/sites/laravel-horizon-statistics)
|
|
1711
|
+
|
|
1712
|
+
### List sites
|
|
1713
|
+
|
|
1714
|
+
- **Method/path:** `GET /api/servers/{server}/sites`
|
|
1715
|
+
- **Path parameters:** `server`
|
|
1716
|
+
- **Request:** body — —; query — —
|
|
1717
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
1718
|
+
- **Response:** `{ data: array of { id, status, server_id, domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, notification_urls, has_repository, quick_deploy, disk_usage, created_at }, links, meta }`
|
|
1719
|
+
- **Logical CLI:** `gq ploi sites list`
|
|
1720
|
+
- **Source:** [Ploi API reference — List sites](https://developers.ploi.io/sites/list-sites)
|
|
1721
|
+
|
|
1722
|
+
### Log site
|
|
1723
|
+
|
|
1724
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{id}/log`
|
|
1725
|
+
- **Path parameters:** `server`, `id`
|
|
1726
|
+
- **Request:** body — —; query — —
|
|
1727
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
1728
|
+
- **Response:** `{ data: array of { id, description, content, type, created_at, created_at_human }, links, meta }`
|
|
1729
|
+
- **Logical CLI:** `gq ploi sites log-site`
|
|
1730
|
+
- **Source:** [Ploi API reference — Log site](https://developers.ploi.io/sites/log-site)
|
|
1731
|
+
|
|
1732
|
+
### Reset site permissions
|
|
1733
|
+
|
|
1734
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/permission-reset`
|
|
1735
|
+
- **Path parameters:** `server`, `id`
|
|
1736
|
+
- **Request:** body — —; query — —
|
|
1737
|
+
- **Pagination:** no documented pagination envelope
|
|
1738
|
+
- **Response:** `{ data: { id, status, server_id, domain, test_domain, deploy_script, deploy_webhook_url, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, disable_robots, has_repository, zero_downtime_deployment, has_staging, fastcgi_cache, notes, created_at }, message }`; **notes:** operation may be queued/backgrounded
|
|
1739
|
+
- **Logical CLI:** `gq ploi sites reset-site-permissions`
|
|
1740
|
+
- **Source:** [Ploi API reference — Reset site permissions](https://developers.ploi.io/sites/reset-site-permissions)
|
|
1741
|
+
|
|
1742
|
+
### Resume site
|
|
1743
|
+
|
|
1744
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/resume`
|
|
1745
|
+
- **Path parameters:** `server`, `id`
|
|
1746
|
+
- **Request:** body — —; query — —
|
|
1747
|
+
- **Pagination:** no documented pagination envelope
|
|
1748
|
+
- **Response:** `{ data: { id, status, server_id, domain, test_domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, has_repository, zero_downtime_deployment, fastcgi_cache, created_at } }`
|
|
1749
|
+
- **Logical CLI:** `gq ploi sites resume-site`
|
|
1750
|
+
- **Source:** [Ploi API reference — Resume site](https://developers.ploi.io/sites/resume-site)
|
|
1751
|
+
|
|
1752
|
+
### Robot access
|
|
1753
|
+
|
|
1754
|
+
- **Method/path:** `PATCH /api/servers/{server}/sites/{id}`
|
|
1755
|
+
- **Path parameters:** `server`, `id`
|
|
1756
|
+
- **Request:** body — `disable_robots (boolean; required)`; query — —
|
|
1757
|
+
- **Pagination:** no documented pagination envelope
|
|
1758
|
+
- **Response:** `{ data: { id, status, server_id, domain, test_domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, disable_robots, has_repository, zero_downtime_deployment, has_staging, fastcgi_cache, created_at } }`
|
|
1759
|
+
- **Logical CLI:** `gq ploi sites robot-access`
|
|
1760
|
+
- **Source:** [Ploi API reference — Robot access](https://developers.ploi.io/sites/robot-access)
|
|
1761
|
+
|
|
1762
|
+
### Suspend site
|
|
1763
|
+
|
|
1764
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/suspend`
|
|
1765
|
+
- **Path parameters:** `server`, `id`
|
|
1766
|
+
- **Request:** body — `reason (string; optional)`; query — —
|
|
1767
|
+
- **Pagination:** no documented pagination envelope
|
|
1768
|
+
- **Response:** `{ data: { id, status, server_id, domain, test_domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, has_repository, zero_downtime_deployment, fastcgi_cache, created_at } }`
|
|
1769
|
+
- **Logical CLI:** `gq ploi sites suspend-site`
|
|
1770
|
+
- **Source:** [Ploi API reference — Suspend site](https://developers.ploi.io/sites/suspend-site)
|
|
1771
|
+
|
|
1772
|
+
### Update NGINX configuration
|
|
1773
|
+
|
|
1774
|
+
- **Method/path:** `PATCH /api/servers/{server}/sites/{site}/nginx-configuration`
|
|
1775
|
+
- **Path parameters:** `server`, `site`
|
|
1776
|
+
- **Request:** body — `content (string; required)`; query — —
|
|
1777
|
+
- **Pagination:** no documented pagination envelope
|
|
1778
|
+
- **Response:** `{ status, message }`; **notes:** on-demand execution/retrieval is documented
|
|
1779
|
+
- **Logical CLI:** `gq ploi sites update-nginx-configuration`
|
|
1780
|
+
- **Source:** [Ploi API reference — Update NGINX configuration](https://developers.ploi.io/sites/update-nginx-configuration)
|
|
1781
|
+
|
|
1782
|
+
### Update site
|
|
1783
|
+
|
|
1784
|
+
- **Method/path:** `PATCH /api/servers/{server}/sites/{site}`
|
|
1785
|
+
- **Path parameters:** `server`, `site`
|
|
1786
|
+
- **Request:** body — `root_domain (string; optional)`, `zero_downtime_deployment (boolean; optional)`, `disable_robots (boolean; optional)`; query — —
|
|
1787
|
+
- **Pagination:** no documented pagination envelope
|
|
1788
|
+
- **Response:** `{ data: { id, server_id, domain, deploy_script, web_directory, project_type, project_root, last_deploy_at, system_user, php_version, health_url, notification_urls, has_repository, created_at }, message }`; **notes:** operation may be queued/backgrounded
|
|
1789
|
+
- **Logical CLI:** `gq ploi sites update-site`
|
|
1790
|
+
- **Source:** [Ploi API reference — Update site](https://developers.ploi.io/sites/update-site)
|
|
1791
|
+
|
|
1792
|
+
## ssh-keys
|
|
1793
|
+
|
|
1794
|
+
### Create SSH key
|
|
1795
|
+
|
|
1796
|
+
- **Method/path:** `POST /api/servers/{server}/ssh-keys`
|
|
1797
|
+
- **Path parameters:** `server`
|
|
1798
|
+
- **Request:** body — `name (string; required)`, `key (string; required)`, `system_user (string; optional)`; query — —
|
|
1799
|
+
- **Pagination:** no documented pagination envelope
|
|
1800
|
+
- **Response:** `{ data: { id, status, name, key, system_user } }`
|
|
1801
|
+
- **Logical CLI:** `gq ploi ssh-keys create-ssh-key`
|
|
1802
|
+
- **Source:** [Ploi API reference — Create SSH key](https://developers.ploi.io/ssh-keys/create-ssh-key)
|
|
1803
|
+
|
|
1804
|
+
### Delete SSH key
|
|
1805
|
+
|
|
1806
|
+
- **Method/path:** `DELETE /api/servers/{server}/ssh-keys/{sshKey}`
|
|
1807
|
+
- **Path parameters:** `server`, `sshKey`
|
|
1808
|
+
- **Request:** body — —; query — —
|
|
1809
|
+
- **Pagination:** no documented pagination envelope
|
|
1810
|
+
- **Response:** `{ message }`
|
|
1811
|
+
- **Logical CLI:** `gq ploi ssh-keys delete-ssh-key`
|
|
1812
|
+
- **Source:** [Ploi API reference — Delete SSH key](https://developers.ploi.io/ssh-keys/delete-ssh-key)
|
|
1813
|
+
|
|
1814
|
+
### Get SSH key
|
|
1815
|
+
|
|
1816
|
+
- **Method/path:** `GET /api/servers/{server}/ssh-keys/{sshKey}`
|
|
1817
|
+
- **Path parameters:** `server`, `sshKey`
|
|
1818
|
+
- **Request:** body — —; query — —
|
|
1819
|
+
- **Pagination:** no documented pagination envelope
|
|
1820
|
+
- **Response:** `{ data: { id, status, name, key, system_user } }`
|
|
1821
|
+
- **Logical CLI:** `gq ploi ssh-keys show-ssh-key`
|
|
1822
|
+
- **Source:** [Ploi API reference — Get SSH key](https://developers.ploi.io/ssh-keys/get-ssh-key)
|
|
1823
|
+
|
|
1824
|
+
### List SSH keys
|
|
1825
|
+
|
|
1826
|
+
- **Method/path:** `GET /api/servers/{server}/ssh-keys`
|
|
1827
|
+
- **Path parameters:** `server`
|
|
1828
|
+
- **Request:** body — —; query — —
|
|
1829
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
1830
|
+
- **Response:** `{ data: array of { id, status, name, key, system_user }, links, meta }`
|
|
1831
|
+
- **Logical CLI:** `gq ploi ssh-keys list-ssh-keys`
|
|
1832
|
+
- **Source:** [Ploi API reference — List SSH keys](https://developers.ploi.io/ssh-keys/list-ssh-keys)
|
|
1833
|
+
|
|
1834
|
+
## status-pages
|
|
1835
|
+
|
|
1836
|
+
### Create status page incident
|
|
1837
|
+
|
|
1838
|
+
- **Method/path:** `POST /api/status-pages/{statusPage}/incidents`
|
|
1839
|
+
- **Path parameters:** `statusPage`
|
|
1840
|
+
- **Request:** body — `title (string; required)`, `description (string; optional)`, `severity (string; optional)`; query — —
|
|
1841
|
+
- **Pagination:** no documented pagination envelope
|
|
1842
|
+
- **Response:** `{ data: { id, title, description, severity } }`
|
|
1843
|
+
- **Logical CLI:** `gq ploi status-pages create-status-page-incident`
|
|
1844
|
+
- **Source:** [Ploi API reference — Create status page incident](https://developers.ploi.io/status-pages/create-status-page-incident)
|
|
1845
|
+
|
|
1846
|
+
### Delete status page incident
|
|
1847
|
+
|
|
1848
|
+
- **Method/path:** `DELETE /api/status-pages/{statusPage}/incident/{incident}`
|
|
1849
|
+
- **Path parameters:** `statusPage`, `incident`
|
|
1850
|
+
- **Request:** body — —; query — —
|
|
1851
|
+
- **Pagination:** no documented pagination envelope
|
|
1852
|
+
- **Response:** `{ message }`
|
|
1853
|
+
- **Logical CLI:** `gq ploi status-pages delete-status-page-incident`
|
|
1854
|
+
- **Source:** [Ploi API reference — Delete status page incident](https://developers.ploi.io/status-pages/delete-status-page-incident)
|
|
1855
|
+
|
|
1856
|
+
### Get status page incidents
|
|
1857
|
+
|
|
1858
|
+
- **Method/path:** `GET /api/status-pages/{statusPage}/incidents`
|
|
1859
|
+
- **Path parameters:** `statusPage`
|
|
1860
|
+
- **Request:** body — —; query — —
|
|
1861
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
1862
|
+
- **Response:** `{ data: array of { id, title, description, severity }, links, meta }`
|
|
1863
|
+
- **Logical CLI:** `gq ploi status-pages show-status-page-incidents`
|
|
1864
|
+
- **Source:** [Ploi API reference — Get status page incidents](https://developers.ploi.io/status-pages/get-status-page-incidents)
|
|
1865
|
+
|
|
1866
|
+
### Get status page
|
|
1867
|
+
|
|
1868
|
+
- **Method/path:** `GET /api/status-pages/{statusPage}`
|
|
1869
|
+
- **Path parameters:** `statusPage`
|
|
1870
|
+
- **Request:** body — —; query — —
|
|
1871
|
+
- **Pagination:** no documented pagination envelope
|
|
1872
|
+
- **Response:** `{ data: { id, name, slug, description, theme } }`
|
|
1873
|
+
- **Logical CLI:** `gq ploi status-pages show-status-page`
|
|
1874
|
+
- **Source:** [Ploi API reference — Get status page](https://developers.ploi.io/status-pages/get-status-page)
|
|
1875
|
+
|
|
1876
|
+
### List status pages
|
|
1877
|
+
|
|
1878
|
+
- **Method/path:** `GET /api/status-pages`
|
|
1879
|
+
- **Path parameters:** —
|
|
1880
|
+
- **Request:** body — —; query — —
|
|
1881
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
1882
|
+
- **Response:** `{ data: array of { id, name, slug, description, theme }, links, meta }`
|
|
1883
|
+
- **Logical CLI:** `gq ploi status-pages list-status-pages`
|
|
1884
|
+
- **Source:** [Ploi API reference — List status pages](https://developers.ploi.io/status-pages/list-status-pages)
|
|
1885
|
+
|
|
1886
|
+
## system-users
|
|
1887
|
+
|
|
1888
|
+
### Create system user
|
|
1889
|
+
|
|
1890
|
+
- **Method/path:** `POST /api/servers/{server}/system-users`
|
|
1891
|
+
- **Path parameters:** `server`
|
|
1892
|
+
- **Request:** body — `name (string; required)`, `sudo (boolean; optional)`, `receive_password (boolean; optional)`; query — —
|
|
1893
|
+
- **Pagination:** no documented pagination envelope
|
|
1894
|
+
- **Response:** `{ data: { id, name, root, created_at } }`; `{ data: { id, name, root, created_at }, password }`
|
|
1895
|
+
- **Logical CLI:** `gq ploi system-users create-system-user`
|
|
1896
|
+
- **Source:** [Ploi API reference — Create system user](https://developers.ploi.io/system-users/create-system-user)
|
|
1897
|
+
|
|
1898
|
+
### Delete system user
|
|
1899
|
+
|
|
1900
|
+
- **Method/path:** `DELETE /api/servers/{server}/system-users/{systemUser}`
|
|
1901
|
+
- **Path parameters:** `server`, `systemUser`
|
|
1902
|
+
- **Request:** body — —; query — —
|
|
1903
|
+
- **Pagination:** no documented pagination envelope
|
|
1904
|
+
- **Response:** `empty response body`; **notes:** documented empty response body
|
|
1905
|
+
- **Logical CLI:** `gq ploi system-users delete-system-user`
|
|
1906
|
+
- **Source:** [Ploi API reference — Delete system user](https://developers.ploi.io/system-users/delete-system-user)
|
|
1907
|
+
|
|
1908
|
+
### Get system user
|
|
1909
|
+
|
|
1910
|
+
- **Method/path:** `GET /api/servers/{server}/system-users/{systemUser}`
|
|
1911
|
+
- **Path parameters:** `server`, `systemUser`
|
|
1912
|
+
- **Request:** body — —; query — —
|
|
1913
|
+
- **Pagination:** no documented pagination envelope
|
|
1914
|
+
- **Response:** `{ data: { id, name, root, created_at } }`
|
|
1915
|
+
- **Logical CLI:** `gq ploi system-users show-system-user`
|
|
1916
|
+
- **Source:** [Ploi API reference — Get system user](https://developers.ploi.io/system-users/get-system-user)
|
|
1917
|
+
|
|
1918
|
+
### List system users
|
|
1919
|
+
|
|
1920
|
+
- **Method/path:** `GET /api/servers/{server}/system-users`
|
|
1921
|
+
- **Path parameters:** `server`
|
|
1922
|
+
- **Request:** body — —; query — —
|
|
1923
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
1924
|
+
- **Response:** `{ data: array of { id, name, root, created_at }, links, meta }`
|
|
1925
|
+
- **Logical CLI:** `gq ploi system-users list-system-users`
|
|
1926
|
+
- **Source:** [Ploi API reference — List system users](https://developers.ploi.io/system-users/list-system-users)
|
|
1927
|
+
|
|
1928
|
+
## tenants
|
|
1929
|
+
|
|
1930
|
+
### Create tenant
|
|
1931
|
+
|
|
1932
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/tenants`
|
|
1933
|
+
- **Path parameters:** `server`, `site`
|
|
1934
|
+
- **Request:** body — `tenants (array; required)`; query — —
|
|
1935
|
+
- **Pagination:** no documented pagination envelope
|
|
1936
|
+
- **Response:** `{ data: { tenants, count, main } }`
|
|
1937
|
+
- **Logical CLI:** `gq ploi tenants create-tenant`
|
|
1938
|
+
- **Source:** [Ploi API reference — Create tenant](https://developers.ploi.io/tenants/create-tenant)
|
|
1939
|
+
|
|
1940
|
+
### Delete certificate
|
|
1941
|
+
|
|
1942
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/tenants/{tenant}/revoke-certificate`
|
|
1943
|
+
- **Path parameters:** `server`, `site`, `tenant`
|
|
1944
|
+
- **Request:** body — `webhook (string; required)`; query — —
|
|
1945
|
+
- **Pagination:** no documented pagination envelope
|
|
1946
|
+
- **Response:** `HTTP response example (not JSON body)`; **notes:** 404 behavior documented; source example uses a concrete ID/domain; normalized here
|
|
1947
|
+
- **Logical CLI:** `gq ploi tenants delete-certificate`
|
|
1948
|
+
- **Source:** [Ploi API reference — Delete certificate](https://developers.ploi.io/tenants/delete-certificate)
|
|
1949
|
+
|
|
1950
|
+
### Delete tenant
|
|
1951
|
+
|
|
1952
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{site}/tenants/{tenant}`
|
|
1953
|
+
- **Path parameters:** `server`, `site`, `tenant`
|
|
1954
|
+
- **Request:** body — —; query — —
|
|
1955
|
+
- **Pagination:** no documented pagination envelope
|
|
1956
|
+
- **Response:** `HTTP response example (not JSON body)`; **notes:** 404 behavior documented; source example uses a concrete ID/domain; normalized here
|
|
1957
|
+
- **Logical CLI:** `gq ploi tenants delete-tenant`
|
|
1958
|
+
- **Source:** [Ploi API reference — Delete tenant](https://developers.ploi.io/tenants/delete-tenant)
|
|
1959
|
+
|
|
1960
|
+
### Get NGINX configuration
|
|
1961
|
+
|
|
1962
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{site}/tenants/{tenant}/nginx-configuration`
|
|
1963
|
+
- **Path parameters:** `server`, `site`, `tenant`
|
|
1964
|
+
- **Request:** body — —; query — —
|
|
1965
|
+
- **Pagination:** no documented pagination envelope
|
|
1966
|
+
- **Response:** `{ content }`; **notes:** on-demand execution/retrieval is documented; 404 behavior documented; source example uses a concrete ID/domain; normalized here
|
|
1967
|
+
- **Logical CLI:** `gq ploi tenants show-nginx-configuration-tenant`
|
|
1968
|
+
- **Source:** [Ploi API reference — Get NGINX configuration](https://developers.ploi.io/tenants/get-nginx-configuration-tenant)
|
|
1969
|
+
|
|
1970
|
+
### List tenants
|
|
1971
|
+
|
|
1972
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{site}/tenants`
|
|
1973
|
+
- **Path parameters:** `server`, `site`
|
|
1974
|
+
- **Request:** body — —; query — —
|
|
1975
|
+
- **Pagination:** no documented pagination envelope
|
|
1976
|
+
- **Response:** `{ data: { tenants, count, main } }`
|
|
1977
|
+
- **Logical CLI:** `gq ploi tenants list-tenants`
|
|
1978
|
+
- **Source:** [Ploi API reference — List tenants](https://developers.ploi.io/tenants/list-tenants)
|
|
1979
|
+
|
|
1980
|
+
### Request certificate
|
|
1981
|
+
|
|
1982
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{site}/tenants/{tenant}/request-certificate`
|
|
1983
|
+
- **Path parameters:** `server`, `site`, `tenant`
|
|
1984
|
+
- **Request:** body — `webhook (string; optional)`, `domains (string; optional)`, `additional[type] (string; optional)`, `force (boolean; optional)`, `additional[use_dns_provider] (boolean; optional)`, `additional[provider] (string; optional)`, `additional[secret] (string; optional)`, `additional[use_from_profile] (boolean; optional)`, `additional[credential] (integer; optional)`; query — —
|
|
1985
|
+
- **Pagination:** no documented pagination envelope
|
|
1986
|
+
- **Response:** `HTTP response example (not JSON body)`; **notes:** 404 behavior documented; source example uses a concrete ID/domain; normalized here
|
|
1987
|
+
- **Logical CLI:** `gq ploi tenants request-certificate`
|
|
1988
|
+
- **Source:** [Ploi API reference — Request certificate](https://developers.ploi.io/tenants/request-certificate)
|
|
1989
|
+
|
|
1990
|
+
### Update NGINX configuration
|
|
1991
|
+
|
|
1992
|
+
- **Method/path:** `PATCH /api/servers/{server}/sites/{site}/tenants/{tenant}/nginx-configuration`
|
|
1993
|
+
- **Path parameters:** `server`, `site`, `tenant`
|
|
1994
|
+
- **Request:** body — `content (string; required)`; query — —
|
|
1995
|
+
- **Pagination:** no documented pagination envelope
|
|
1996
|
+
- **Response:** `{ status, message }`; **notes:** on-demand execution/retrieval is documented; 404 behavior documented; source example uses a concrete ID/domain; normalized here
|
|
1997
|
+
- **Logical CLI:** `gq ploi tenants update-nginx-configuration-tenant`
|
|
1998
|
+
- **Source:** [Ploi API reference — Update NGINX configuration](https://developers.ploi.io/tenants/update-nginx-configuration-tenant)
|
|
1999
|
+
|
|
2000
|
+
## user
|
|
2001
|
+
|
|
2002
|
+
### Get backup configuration
|
|
2003
|
+
|
|
2004
|
+
- **Method/path:** `GET /api/user/backup-configurations/{backupConfiguration}`
|
|
2005
|
+
- **Path parameters:** `backupConfiguration`
|
|
2006
|
+
- **Request:** body — —; query — —
|
|
2007
|
+
- **Pagination:** no documented pagination envelope
|
|
2008
|
+
- **Response:** `{ data: { id, label, type, humanType, created_at } }`
|
|
2009
|
+
- **Logical CLI:** `gq ploi user show-backup-configuration`
|
|
2010
|
+
- **Source:** [Ploi API reference — Get backup configuration](https://developers.ploi.io/user/get-backup-configuration)
|
|
2011
|
+
|
|
2012
|
+
### Get server provider
|
|
2013
|
+
|
|
2014
|
+
- **Method/path:** `GET /api/user/server-providers/{provider}`
|
|
2015
|
+
- **Path parameters:** `provider`
|
|
2016
|
+
- **Request:** body — —; query — —
|
|
2017
|
+
- **Pagination:** no documented pagination envelope
|
|
2018
|
+
- **Response:** `{ data: { id, label, name, created_at, provider } }`
|
|
2019
|
+
- **Logical CLI:** `gq ploi user show-server-provider`
|
|
2020
|
+
- **Source:** [Ploi API reference — Get server provider](https://developers.ploi.io/user/get-server-provider)
|
|
2021
|
+
|
|
2022
|
+
### Information
|
|
2023
|
+
|
|
2024
|
+
- **Method/path:** `GET /api/user`
|
|
2025
|
+
- **Path parameters:** —
|
|
2026
|
+
- **Request:** body — —; query — —
|
|
2027
|
+
- **Pagination:** no documented pagination envelope
|
|
2028
|
+
- **Response:** `{ data: { avatar, name, email, billing_details, country, timezone, created_at, plan, plan_expires_at } }`
|
|
2029
|
+
- **Logical CLI:** `gq ploi user show`
|
|
2030
|
+
- **Source:** [Ploi API reference — Information](https://developers.ploi.io/user/information)
|
|
2031
|
+
|
|
2032
|
+
### List backup configurations
|
|
2033
|
+
|
|
2034
|
+
- **Method/path:** `GET /api/user/backup-configurations`
|
|
2035
|
+
- **Path parameters:** —
|
|
2036
|
+
- **Request:** body — —; query — —
|
|
2037
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
2038
|
+
- **Response:** `{ data: array of { id, label, type, humanType, created_at }, links, meta }`
|
|
2039
|
+
- **Logical CLI:** `gq ploi user list-backup-configurations`
|
|
2040
|
+
- **Source:** [Ploi API reference — List backup configurations](https://developers.ploi.io/user/list-backup-configurations)
|
|
2041
|
+
|
|
2042
|
+
### List server providers
|
|
2043
|
+
|
|
2044
|
+
- **Method/path:** `GET /api/user/server-providers`
|
|
2045
|
+
- **Path parameters:** —
|
|
2046
|
+
- **Request:** body — —; query — —
|
|
2047
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
2048
|
+
- **Response:** `{ data: array of { id, label, name, created_at, provider }, links, meta }`
|
|
2049
|
+
- **Logical CLI:** `gq ploi user list-server-providers`
|
|
2050
|
+
- **Source:** [Ploi API reference — List server providers](https://developers.ploi.io/user/list-server-providers)
|
|
2051
|
+
|
|
2052
|
+
### List source control providers
|
|
2053
|
+
|
|
2054
|
+
- **Method/path:** `GET /api/user/source-control`
|
|
2055
|
+
- **Path parameters:** —
|
|
2056
|
+
- **Request:** body — —; query — —
|
|
2057
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
2058
|
+
- **Response:** `{ data: array of { id, label, name, provider, created_at }, links, meta }`
|
|
2059
|
+
- **Logical CLI:** `gq ploi user list-source-control-providers`
|
|
2060
|
+
- **Source:** [Ploi API reference — List source control providers](https://developers.ploi.io/user/list-source-control-providers)
|
|
2061
|
+
|
|
2062
|
+
### Repositories for source control provider
|
|
2063
|
+
|
|
2064
|
+
- **Method/path:** `GET /api/user/source-control/{provider}/repositories`
|
|
2065
|
+
- **Path parameters:** `provider`
|
|
2066
|
+
- **Request:** body — —; query — —
|
|
2067
|
+
- **Pagination:** no documented pagination envelope
|
|
2068
|
+
- **Response:** `{ data: { repositories } }`; **notes:** source example uses a concrete ID/domain; normalized here
|
|
2069
|
+
- **Logical CLI:** `gq ploi user repositories-for-source-control-providers`
|
|
2070
|
+
- **Source:** [Ploi API reference — Repositories for source control provider](https://developers.ploi.io/user/repositories-for-source-control-providers)
|
|
2071
|
+
|
|
2072
|
+
### Show source control provider
|
|
2073
|
+
|
|
2074
|
+
- **Method/path:** `GET /api/user/source-control/{provider}`
|
|
2075
|
+
- **Path parameters:** `provider`
|
|
2076
|
+
- **Request:** body — —; query — —
|
|
2077
|
+
- **Pagination:** no documented pagination envelope
|
|
2078
|
+
- **Response:** `{ data: { id, label, name, provider, created_at } }`; **notes:** source example uses a concrete ID/domain; normalized here
|
|
2079
|
+
- **Logical CLI:** `gq ploi user show-source-control-providers`
|
|
2080
|
+
- **Source:** [Ploi API reference — Show source control provider](https://developers.ploi.io/user/show-source-control-providers)
|
|
2081
|
+
|
|
2082
|
+
## webserver-templates
|
|
2083
|
+
|
|
2084
|
+
### Get webserver template
|
|
2085
|
+
|
|
2086
|
+
- **Method/path:** `GET /api/webserver-templates/{id}`
|
|
2087
|
+
- **Path parameters:** `id`
|
|
2088
|
+
- **Request:** body — —; query — —
|
|
2089
|
+
- **Pagination:** no documented pagination envelope
|
|
2090
|
+
- **Response:** `{ data: { id, label, content, created_at } }`
|
|
2091
|
+
- **Logical CLI:** `gq ploi webserver-templates show-webserver-template`
|
|
2092
|
+
- **Source:** [Ploi API reference — Get webserver template](https://developers.ploi.io/webserver-templates/get-webserver-template)
|
|
2093
|
+
|
|
2094
|
+
### List webserver templates
|
|
2095
|
+
|
|
2096
|
+
- **Method/path:** `GET /api/webserver-templates`
|
|
2097
|
+
- **Path parameters:** —
|
|
2098
|
+
- **Request:** body — —; query — —
|
|
2099
|
+
- **Pagination:** yes — documented `data`, `links`, and `meta` envelope
|
|
2100
|
+
- **Response:** `{ data: array of { id, label, content, created_at }, links, meta }`
|
|
2101
|
+
- **Logical CLI:** `gq ploi webserver-templates list-webserver-templates`
|
|
2102
|
+
- **Source:** [Ploi API reference — List webserver templates](https://developers.ploi.io/webserver-templates/list-webserver-templates)
|
|
2103
|
+
|
|
2104
|
+
## wordpress-management
|
|
2105
|
+
|
|
2106
|
+
### Activate plugin
|
|
2107
|
+
|
|
2108
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/plugins/activate`
|
|
2109
|
+
- **Path parameters:** `server`, `id`
|
|
2110
|
+
- **Request:** body — `plugin (string; required)`; query — `ondemand (boolean; query)`, `ondemand=true`
|
|
2111
|
+
- **Pagination:** no documented pagination envelope
|
|
2112
|
+
- **Response:** `{ status, message }`; **notes:** operation may be queued/backgrounded; on-demand execution/retrieval is documented
|
|
2113
|
+
- **Logical CLI:** `gq ploi wordpress activate-plugin`
|
|
2114
|
+
- **Source:** [Ploi API reference — Activate plugin](https://developers.ploi.io/wordpress-management/activate-plugin)
|
|
2115
|
+
|
|
2116
|
+
### Activate theme
|
|
2117
|
+
|
|
2118
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/themes/activate`
|
|
2119
|
+
- **Path parameters:** `server`, `id`
|
|
2120
|
+
- **Request:** body — `theme (string; required)`; query — `ondemand (boolean; query)`, `ondemand=true`
|
|
2121
|
+
- **Pagination:** no documented pagination envelope
|
|
2122
|
+
- **Response:** `{ status, message }`; **notes:** operation may be queued/backgrounded; on-demand execution/retrieval is documented
|
|
2123
|
+
- **Logical CLI:** `gq ploi wordpress activate-theme`
|
|
2124
|
+
- **Source:** [Ploi API reference — Activate theme](https://developers.ploi.io/wordpress-management/activate-theme)
|
|
2125
|
+
|
|
2126
|
+
### Complete install
|
|
2127
|
+
|
|
2128
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/complete-install`
|
|
2129
|
+
- **Path parameters:** `server`, `id`
|
|
2130
|
+
- **Request:** body — `site_title (string; required)`, `admin_username (string; required)`, `admin_email (string; required)`, `admin_password (string; required)`; query — —
|
|
2131
|
+
- **Pagination:** no documented pagination envelope
|
|
2132
|
+
- **Response:** `{ status, message }`; `{ errors }`
|
|
2133
|
+
- **Logical CLI:** `gq ploi wordpress complete-install`
|
|
2134
|
+
- **Source:** [Ploi API reference — Complete install](https://developers.ploi.io/wordpress-management/complete-install)
|
|
2135
|
+
|
|
2136
|
+
### Deactivate plugin
|
|
2137
|
+
|
|
2138
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/plugins/deactivate`
|
|
2139
|
+
- **Path parameters:** `server`, `id`
|
|
2140
|
+
- **Request:** body — `plugin (string; required)`; query — `ondemand (boolean; query)`, `ondemand=true`
|
|
2141
|
+
- **Pagination:** no documented pagination envelope
|
|
2142
|
+
- **Response:** `{ status, message }`; **notes:** operation may be queued/backgrounded; on-demand execution/retrieval is documented
|
|
2143
|
+
- **Logical CLI:** `gq ploi wordpress deactivate-plugin`
|
|
2144
|
+
- **Source:** [Ploi API reference — Deactivate plugin](https://developers.ploi.io/wordpress-management/deactivate-plugin)
|
|
2145
|
+
|
|
2146
|
+
### Delete plugin
|
|
2147
|
+
|
|
2148
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{id}/wordpress/plugins/delete`
|
|
2149
|
+
- **Path parameters:** `server`, `id`
|
|
2150
|
+
- **Request:** body — `plugin (string; required)`; query — `ondemand (boolean; query)`, `ondemand=true`
|
|
2151
|
+
- **Pagination:** no documented pagination envelope
|
|
2152
|
+
- **Response:** `{ status, message }`; **notes:** operation may be queued/backgrounded; on-demand execution/retrieval is documented
|
|
2153
|
+
- **Logical CLI:** `gq ploi wordpress delete-plugin`
|
|
2154
|
+
- **Source:** [Ploi API reference — Delete plugin](https://developers.ploi.io/wordpress-management/delete-plugin)
|
|
2155
|
+
|
|
2156
|
+
### Delete repository
|
|
2157
|
+
|
|
2158
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{id}/wordpress/repositories/{repository}`
|
|
2159
|
+
- **Path parameters:** `server`, `id`, `repository`
|
|
2160
|
+
- **Request:** body — —; query — —
|
|
2161
|
+
- **Pagination:** no documented pagination envelope
|
|
2162
|
+
- **Response:** `{ status, message }`; **notes:** operation may be queued/backgrounded
|
|
2163
|
+
- **Logical CLI:** `gq ploi wordpress delete-repository`
|
|
2164
|
+
- **Source:** [Ploi API reference — Delete repository](https://developers.ploi.io/wordpress-management/delete-repository)
|
|
2165
|
+
|
|
2166
|
+
### Delete theme
|
|
2167
|
+
|
|
2168
|
+
- **Method/path:** `DELETE /api/servers/{server}/sites/{id}/wordpress/themes/delete`
|
|
2169
|
+
- **Path parameters:** `server`, `id`
|
|
2170
|
+
- **Request:** body — `theme (string; required)`; query — `ondemand (boolean; query)`, `ondemand=true`
|
|
2171
|
+
- **Pagination:** no documented pagination envelope
|
|
2172
|
+
- **Response:** `{ status, message }`; **notes:** operation may be queued/backgrounded; on-demand execution/retrieval is documented
|
|
2173
|
+
- **Logical CLI:** `gq ploi wordpress delete-theme`
|
|
2174
|
+
- **Source:** [Ploi API reference — Delete theme](https://developers.ploi.io/wordpress-management/delete-theme)
|
|
2175
|
+
|
|
2176
|
+
### Deploy all repositories
|
|
2177
|
+
|
|
2178
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/repositories/deploy-all`
|
|
2179
|
+
- **Path parameters:** `server`, `id`
|
|
2180
|
+
- **Request:** body — —; query — —
|
|
2181
|
+
- **Pagination:** no documented pagination envelope
|
|
2182
|
+
- **Response:** `{ status, message }`; **notes:** operation may be queued/backgrounded
|
|
2183
|
+
- **Logical CLI:** `gq ploi wordpress deploy-all-repositories`
|
|
2184
|
+
- **Source:** [Ploi API reference — Deploy all repositories](https://developers.ploi.io/wordpress-management/deploy-all-repositories)
|
|
2185
|
+
|
|
2186
|
+
### Deploy repository
|
|
2187
|
+
|
|
2188
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/repositories/{repository}/deploy`
|
|
2189
|
+
- **Path parameters:** `server`, `id`, `repository`
|
|
2190
|
+
- **Request:** body — —; query — —
|
|
2191
|
+
- **Pagination:** no documented pagination envelope
|
|
2192
|
+
- **Response:** `{ status, message }`; **notes:** operation may be queued/backgrounded
|
|
2193
|
+
- **Logical CLI:** `gq ploi wordpress deploy-repository`
|
|
2194
|
+
- **Source:** [Ploi API reference — Deploy repository](https://developers.ploi.io/wordpress-management/deploy-repository)
|
|
2195
|
+
|
|
2196
|
+
### Install plugin
|
|
2197
|
+
|
|
2198
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/plugins/install`
|
|
2199
|
+
- **Path parameters:** `server`, `id`
|
|
2200
|
+
- **Request:** body — `plugin (string; required)`, `activate (boolean; optional)`; query — `ondemand (boolean; query)`, `ondemand=true`
|
|
2201
|
+
- **Pagination:** no documented pagination envelope
|
|
2202
|
+
- **Response:** `{ status, message }`; **notes:** operation may be queued/backgrounded; on-demand execution/retrieval is documented
|
|
2203
|
+
- **Logical CLI:** `gq ploi wordpress install-plugin`
|
|
2204
|
+
- **Source:** [Ploi API reference — Install plugin](https://developers.ploi.io/wordpress-management/install-plugin)
|
|
2205
|
+
|
|
2206
|
+
### Install repository
|
|
2207
|
+
|
|
2208
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/repositories`
|
|
2209
|
+
- **Path parameters:** `server`, `id`
|
|
2210
|
+
- **Request:** body — `provider (string; required)`, `name (string; required)`, `branch (string; required)`, `target_directory (string; required)`, `source_provider_id (integer; optional)`; query — —
|
|
2211
|
+
- **Pagination:** no documented pagination envelope
|
|
2212
|
+
- **Response:** `{ status, message }`; **notes:** operation may be queued/backgrounded
|
|
2213
|
+
- **Logical CLI:** `gq ploi wordpress install-repository`
|
|
2214
|
+
- **Source:** [Ploi API reference — Install repository](https://developers.ploi.io/wordpress-management/install-repository)
|
|
2215
|
+
|
|
2216
|
+
### Install theme
|
|
2217
|
+
|
|
2218
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/themes/install`
|
|
2219
|
+
- **Path parameters:** `server`, `id`
|
|
2220
|
+
- **Request:** body — `theme (string; required)`, `activate (boolean; optional)`; query — `ondemand (boolean; query)`, `ondemand=true`
|
|
2221
|
+
- **Pagination:** no documented pagination envelope
|
|
2222
|
+
- **Response:** `{ status, message }`; **notes:** operation may be queued/backgrounded; on-demand execution/retrieval is documented
|
|
2223
|
+
- **Logical CLI:** `gq ploi wordpress install-theme`
|
|
2224
|
+
- **Source:** [Ploi API reference — Install theme](https://developers.ploi.io/wordpress-management/install-theme)
|
|
2225
|
+
|
|
2226
|
+
### List plugins
|
|
2227
|
+
|
|
2228
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{id}/wordpress/plugins`
|
|
2229
|
+
- **Path parameters:** `server`, `id`
|
|
2230
|
+
- **Request:** body — —; query — `ondemand (boolean; query)`, `ondemand=true`
|
|
2231
|
+
- **Pagination:** no documented pagination envelope
|
|
2232
|
+
- **Response:** `{ data: array of { name, title, status, version, update_version, auto_update } }`; **notes:** operation may be queued/backgrounded; on-demand execution/retrieval is documented
|
|
2233
|
+
- **Logical CLI:** `gq ploi wordpress list-plugins`
|
|
2234
|
+
- **Source:** [Ploi API reference — List plugins](https://developers.ploi.io/wordpress-management/list-plugins)
|
|
2235
|
+
|
|
2236
|
+
### List repositories
|
|
2237
|
+
|
|
2238
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{id}/wordpress/repositories`
|
|
2239
|
+
- **Path parameters:** `server`, `id`
|
|
2240
|
+
- **Request:** body — —; query — —
|
|
2241
|
+
- **Pagination:** no documented pagination envelope
|
|
2242
|
+
- **Response:** `{ data: array of { id, user, name, branch, type, target_directory, deploy_script, status } }`
|
|
2243
|
+
- **Logical CLI:** `gq ploi wordpress list-repositories`
|
|
2244
|
+
- **Source:** [Ploi API reference — List repositories](https://developers.ploi.io/wordpress-management/list-repositories)
|
|
2245
|
+
|
|
2246
|
+
### List themes
|
|
2247
|
+
|
|
2248
|
+
- **Method/path:** `GET /api/servers/{server}/sites/{id}/wordpress/themes`
|
|
2249
|
+
- **Path parameters:** `server`, `id`
|
|
2250
|
+
- **Request:** body — —; query — `ondemand (boolean; query)`, `ondemand=true`
|
|
2251
|
+
- **Pagination:** no documented pagination envelope
|
|
2252
|
+
- **Response:** `{ data: array of { name, title, status, version, update_version, auto_update } }`; **notes:** operation may be queued/backgrounded; on-demand execution/retrieval is documented
|
|
2253
|
+
- **Logical CLI:** `gq ploi wordpress list-themes`
|
|
2254
|
+
- **Source:** [Ploi API reference — List themes](https://developers.ploi.io/wordpress-management/list-themes)
|
|
2255
|
+
|
|
2256
|
+
### Run WP-CLI command
|
|
2257
|
+
|
|
2258
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/wp-cli/run`
|
|
2259
|
+
- **Path parameters:** `server`, `id`
|
|
2260
|
+
- **Request:** body — `command (string; required)`; query — `ondemand (boolean; query)`, `ondemand=true`
|
|
2261
|
+
- **Pagination:** no documented pagination envelope
|
|
2262
|
+
- **Response:** `{ output }`; **notes:** operation may be queued/backgrounded; on-demand execution/retrieval is documented
|
|
2263
|
+
- **Logical CLI:** `gq ploi wordpress run-wp-cli-command`
|
|
2264
|
+
- **Source:** [Ploi API reference — Run WP-CLI command](https://developers.ploi.io/wordpress-management/run-wp-cli-command)
|
|
2265
|
+
|
|
2266
|
+
### Search & replace
|
|
2267
|
+
|
|
2268
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/search-replace`
|
|
2269
|
+
- **Path parameters:** `server`, `id`
|
|
2270
|
+
- **Request:** body — `search (string; required)`, `replace (string; required)`, `dry_run (boolean; optional)`; query — `ondemand (boolean; query)`, `ondemand=true`
|
|
2271
|
+
- **Pagination:** no documented pagination envelope
|
|
2272
|
+
- **Response:** `{ output }`; **notes:** operation may be queued/backgrounded; on-demand execution/retrieval is documented
|
|
2273
|
+
- **Logical CLI:** `gq ploi wordpress search-replace`
|
|
2274
|
+
- **Source:** [Ploi API reference — Search & replace](https://developers.ploi.io/wordpress-management/search-replace)
|
|
2275
|
+
|
|
2276
|
+
### Toggle XML-RPC
|
|
2277
|
+
|
|
2278
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/toggle-xmlrpc`
|
|
2279
|
+
- **Path parameters:** `server`, `id`
|
|
2280
|
+
- **Request:** body — `block (boolean; required)`; query — —
|
|
2281
|
+
- **Pagination:** no documented pagination envelope
|
|
2282
|
+
- **Response:** `{ status, message }`
|
|
2283
|
+
- **Logical CLI:** `gq ploi wordpress toggle-xmlrpc`
|
|
2284
|
+
- **Source:** [Ploi API reference — Toggle XML-RPC](https://developers.ploi.io/wordpress-management/toggle-xmlrpc)
|
|
2285
|
+
|
|
2286
|
+
### Update plugin
|
|
2287
|
+
|
|
2288
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/plugins/update`
|
|
2289
|
+
- **Path parameters:** `server`, `id`
|
|
2290
|
+
- **Request:** body — `plugin (string; required)`; query — `ondemand (boolean; query)`, `ondemand=true`
|
|
2291
|
+
- **Pagination:** no documented pagination envelope
|
|
2292
|
+
- **Response:** `{ status, message }`; **notes:** operation may be queued/backgrounded; on-demand execution/retrieval is documented
|
|
2293
|
+
- **Logical CLI:** `gq ploi wordpress update-plugin`
|
|
2294
|
+
- **Source:** [Ploi API reference — Update plugin](https://developers.ploi.io/wordpress-management/update-plugin)
|
|
2295
|
+
|
|
2296
|
+
### Update deploy script
|
|
2297
|
+
|
|
2298
|
+
- **Method/path:** `PATCH /api/servers/{server}/sites/{id}/wordpress/repositories/{repository}/deploy-script`
|
|
2299
|
+
- **Path parameters:** `server`, `id`, `repository`
|
|
2300
|
+
- **Request:** body — `deploy_script (string; required)`; query — —
|
|
2301
|
+
- **Pagination:** no documented pagination envelope
|
|
2302
|
+
- **Response:** `{ status, message }`
|
|
2303
|
+
- **Logical CLI:** `gq ploi wordpress update-repository-deploy-script`
|
|
2304
|
+
- **Source:** [Ploi API reference — Update deploy script](https://developers.ploi.io/wordpress-management/update-repository-deploy-script)
|
|
2305
|
+
|
|
2306
|
+
### Update repository
|
|
2307
|
+
|
|
2308
|
+
- **Method/path:** `PATCH /api/servers/{server}/sites/{id}/wordpress/repositories/{repository}`
|
|
2309
|
+
- **Path parameters:** `server`, `id`, `repository`
|
|
2310
|
+
- **Request:** body — `user (string; optional)`, `name (string; optional)`, `branch (string; optional)`; query — —
|
|
2311
|
+
- **Pagination:** no documented pagination envelope
|
|
2312
|
+
- **Response:** `{ status, message }`
|
|
2313
|
+
- **Logical CLI:** `gq ploi wordpress update-repository`
|
|
2314
|
+
- **Source:** [Ploi API reference — Update repository](https://developers.ploi.io/wordpress-management/update-repository)
|
|
2315
|
+
|
|
2316
|
+
### Update theme
|
|
2317
|
+
|
|
2318
|
+
- **Method/path:** `POST /api/servers/{server}/sites/{id}/wordpress/themes/update`
|
|
2319
|
+
- **Path parameters:** `server`, `id`
|
|
2320
|
+
- **Request:** body — `theme (string; required)`; query — `ondemand (boolean; query)`, `ondemand=true`
|
|
2321
|
+
- **Pagination:** no documented pagination envelope
|
|
2322
|
+
- **Response:** `{ status, message }`; **notes:** operation may be queued/backgrounded; on-demand execution/retrieval is documented
|
|
2323
|
+
- **Logical CLI:** `gq ploi wordpress update-theme`
|
|
2324
|
+
- **Source:** [Ploi API reference — Update theme](https://developers.ploi.io/wordpress-management/update-theme)
|
|
2325
|
+
|
|
2326
|
+
## getting-started
|
|
2327
|
+
|
|
2328
|
+
### Teapot
|
|
2329
|
+
|
|
2330
|
+
- **Method/path:** GET /api/teapot
|
|
2331
|
+
- **Path parameters:** —
|
|
2332
|
+
- **Request:** body — —; query — —
|
|
2333
|
+
- **Pagination:** no documented pagination envelope
|
|
2334
|
+
- **Response:** { message, images, links }; **notes:** documented response status is 418
|
|
2335
|
+
- **Logical CLI:** **gq ploi teapot show** (not currently implemented)
|
|
2336
|
+
- **Source:** [Ploi API reference — Teapot](https://developers.ploi.io/getting-started/teapot)
|
|
2337
|
+
|
|
2338
|
+
## Ambiguities, duplicates, and undocumented behavior
|
|
2339
|
+
|
|
2340
|
+
- **No deprecation markers found.** The official resource sitemap, Teapot page, and endpoint pages contain no explicit “deprecated” designation as of this snapshot. Absence of a marker is not proof that an undocumented legacy route is supported.
|
|
2341
|
+
- **Literal examples vs parameterized paths.** Several pages show concrete values in cURL instead of placeholders (aliases, Docker containers, backup IDs, load-balancer domains, tenant domains, source-control provider IDs). The inventory records the logical parameter and flags those rows; callers should not copy the example literal.
|
|
2342
|
+
- **Same path, different operation semantics.** Site update and robot-access are both `PATCH /api/servers/{server}/sites/{site-or-id}` and are distinguished by their body fields. WordPress plugin/theme operations also reuse action-shaped paths with fields and the `ondemand` query switch.
|
|
2343
|
+
- **Optional Horizon path segment.** The Horizon page's route badge is `GET /api/servers/{server}/sites/laravel/horizon/{type}`, but its default cURL uses the same path without `/{type}`. The page calls `type` optional and defaults it to `stats`, so this inventory records both route forms rather than treating `type` as a request body field.
|
|
2344
|
+
- **Navigation method badges disagree with endpoint pages.** The API-reference landing page labels Update server, Update site, Update NGINX configuration, and Update container as `PUT`, and Change PHP version as `PUT`; the dedicated endpoint pages and cURL samples document `PATCH`, `PATCH`, `PATCH`, `PATCH`, and `POST`, respectively. This inventory follows each dedicated endpoint page. Sources: [API-reference landing page](https://developers.ploi.io/), [Update server](https://developers.ploi.io/servers/update-server), [Update site](https://developers.ploi.io/sites/update-site), [Update NGINX configuration](https://developers.ploi.io/sites/update-nginx-configuration), [Update container](https://developers.ploi.io/containers/update-container), and [Change PHP version](https://developers.ploi.io/sites/change-php-version).
|
|
2345
|
+
- **Log pair.** [Log site](https://developers.ploi.io/sites/log-site) lists paginated log entries at '/log'; [Get log site](https://developers.ploi.io/sites/get-log-site) fetches one full entry at '/log/{log}'. The two pages are related, not duplicate operations.
|
|
2346
|
+
- **NGINX pair.** Site and tenant NGINX pages have the same operation names but different paths; both say retrieval/update may happen on-demand and the update response asks the caller to reload/restart NGINX.
|
|
2347
|
+
- **Pagination inconsistencies.** Some list-named pages show only `data` (for example aliases, queues, schedules, network rules, tenants, and WordPress resources) while others show `links`/`meta`. Database-backup list documents filters `server`, `site`, and `per_page`, but its example pagination links use `database_page`; this is recorded as the source shows it and should be treated as ambiguous. The repository provider additionally follows `meta.next_page_url`, although the current official pagination guide documents `links.next` but not that fallback.
|
|
2348
|
+
- **Response inconsistencies.** Delete pages variously document an empty body, a 'message', or a 'data' object; some pages show HTTP response headers rather than a JSON body. Consumers should follow each row's source rather than assume one envelope.
|
|
2349
|
+
- **Scope metadata.** The scopes guide says each endpoint has its own token scope, and the MCP guide says REST-style matching read/create scopes apply, but most resource pages do not state a required scope. Treat the scope as **undocumented per endpoint** unless the cited page explicitly provides one; do not infer it from the HTTP verb.
|
|
2350
|
+
- **MCP is curated, not a one-to-one REST catalogue.** Ploi documents the streamable HTTP MCP server at 'https://ploi.io/api/mcp'; OAuth requires 'mcp:use', while API-token access uses REST scopes. Its published tool list omits infrastructure delete operations and includes some capabilities whose REST reference page is not a direct one-to-one tool (for example 'list-deployments', 'get-deployment-log', and 'reset-database-user-password'). Source: [MCP documentation](https://developers.ploi.io/getting-started/mcp).
|
|
2351
|
+
|
|
2352
|
+
## MCP tool cross-reference
|
|
2353
|
+
|
|
2354
|
+
The first-party MCP page publishes these curated logical tools (not HTTP paths):
|
|
2355
|
+
|
|
2356
|
+
- **Servers:** 'list-servers', 'get-server', 'create-server', 'list-server-providers', 'list-server-logs', 'list-server-services', 'restart-server-service', 'reload-server-service', 'restart-server'.
|
|
2357
|
+
- **Sites:** 'list-sites', 'get-site', 'create-site', 'list-site-logs', 'get-site-env', 'update-site-env', 'get-nginx-config', 'update-nginx-config', 'enable-fastcgi-cache', 'disable-fastcgi-cache', 'flush-fastcgi-cache'.
|
|
2358
|
+
- **Tenants/aliases:** 'list-site-tenants', 'add-site-tenants', 'get-tenant-nginx-config', 'update-tenant-nginx-config', 'request-tenant-certificate', 'revoke-tenant-certificate', 'list-site-aliases', 'add-site-aliases'.
|
|
2359
|
+
- **Deployments:** 'deploy-site', 'list-deployments', 'get-deployment-log', 'get-deploy-script', 'update-deploy-script', 'get-site-repository', 'install-site-repository', 'toggle-quick-deploy'.
|
|
2360
|
+
- **Databases:** 'list-databases', 'get-database', 'create-database', 'duplicate-database', 'acknowledge-database', 'list-database-users', 'create-database-user', 'attach-database-user', 'reset-database-user-password'.
|
|
2361
|
+
- **Cronjobs, certificates, daemons/queues, firewall, insights:** 'list-cronjobs', 'create-cronjob'; 'list-certificates', 'request-certificate'; 'list-daemons', 'restart-daemon', 'list-site-queues', 'restart-site-queue'; 'list-firewall-rules', 'create-firewall-rule'; 'list-server-insights', 'get-server-insight', 'fix-server-insight', 'ignore-server-insight', 'delete-server-insight'.
|
|
2362
|
+
|
|
2363
|
+
Source: [Ploi MCP documentation](https://developers.ploi.io/getting-started/mcp). The page also warns that 'get-site-env' returns raw '.env' contents, which may contain secrets.
|
|
2364
|
+
|
|
2365
|
+
## Coverage validation
|
|
2366
|
+
|
|
2367
|
+
- [x] Sitemap-derived endpoint page set downloaded and checked: 224 resource URLs plus the Teapot endpoint, excluding one non-endpoint type catalogue from operation coverage.
|
|
2368
|
+
- [x] All 224 endpoint pages have at least one documented route; the custom-server page has two operation sections, yielding 225 operations and 226 route forms when the Horizon endpoint's optional `/{type}` form is counted.
|
|
2369
|
+
- [x] Every operation below records method, path, path parameters, request fields, pagination status, response shape/notes, logical CLI name, and a precise endpoint-page citation.
|
|
2370
|
+
- [x] Current repository terminology and implementation status checked against 'src/cli.mjs' and 'src/providers/ploi.mjs'; existing working-tree changes were not touched.
|
|
2371
|
+
- [x] No live Ploi mutation was attempted.
|