- pact.AdminActionInput.Payload (json.RawMessage) carries the widget's own JSON value untouched; pact.AdminActionResult.Data is passed through as data - cabana decodes payload with a 64 KiB cap (422 on body), refuses it on the toolbar and record routes, and embeds Data once encoded with a 256 KiB cap (opaque 500 when larger or unencodable); fill stays filtered - root .swaggo overrides json.RawMessage so swag keeps record_id and values; admin.json and schema.d.ts regenerated (payload?: unknown, data?: unknown) - TestWidgetPayloadAndData covers pass-through, cap, refusal and data 500 - cabana and pact READMEs, partials-and-widgets and admin-spa docs updated
4825 lines
177 KiB
TypeScript
4825 lines
177 KiB
TypeScript
/**
|
|
* This file was auto-generated by openapi-typescript.
|
|
* Do not make direct changes to the file.
|
|
*/
|
|
|
|
export interface paths {
|
|
"/auth/login": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/** Admin login */
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description XMLHttpRequest selects cookie transport */
|
|
"X-Requested-With"?: string;
|
|
};
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** @description Credentials */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminLoginRequest"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_AdminLoginData"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/auth/logout": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/** Admin logout */
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_AdminLogoutData"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/auth/me": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Current admin */
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_AdminProfile"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/auth/refresh": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/** Refresh an admin token */
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description XMLHttpRequest; required unless a Bearer token is sent */
|
|
"X-Requested-With"?: string;
|
|
};
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_AdminLoginData"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/lang": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* Admin UI strings
|
|
* @description Every backend::lang key as CLDR plural forms for the Accept-Language locale, over the fallback locale's keys. Public: the login screen loads it before signing in. meta.locale is the locale the bundle resolved to.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_LangBundle"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/navigation": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Admin navigation */
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-array_cabana_NavigationEntry"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/settings": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** List admin settings */
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-array_cabana_SettingsEntry"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/settings/{code}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Read admin settings */
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Settings code */
|
|
code: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_SettingsResult"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
/** Update admin settings */
|
|
put: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Settings code */
|
|
code: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Setting values keyed by field name */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminRecord"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_SettingsResult"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/settings/{code}/schema": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Admin settings schema */
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Settings code */
|
|
code: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_FormView"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* List admin records
|
|
* @description meta.row_states carries the states of the page's rows keyed by row id, each a subset of deleted, negative and disabled; it is absent when the controller reports no state.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: {
|
|
/** @description Search term */
|
|
search?: string;
|
|
/** @description Sort column */
|
|
sort?: string;
|
|
/** @description Sort direction (asc or desc) */
|
|
dir?: string;
|
|
/** @description Page */
|
|
page?: number;
|
|
/** @description Records per page */
|
|
per_page?: number;
|
|
/** @description Filter values keyed by filter name, sent as filter[<name>]=<value> */
|
|
filter?: {
|
|
[key: string]: string;
|
|
};
|
|
};
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ListEnvelope-array_cabana_AdminRecord"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
/**
|
|
* Create an admin record
|
|
* @description Relation fields are sent by field name with ids ({"genre": 3, "artists": [4, 9]}); the response carries the same shape plus meta.labels.
|
|
*/
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key: the save attaches the files uploaded under it */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Field values keyed by field name; relation fields carry ids */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminRecord"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Created */
|
|
201: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.RecordEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description also returned when controller code refuses the write; details may name fields */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/bulk-delete": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/** Bulk-delete admin records */
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Record ids */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminIDsRequest"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_BulkResult"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description also returned when controller code refuses the write; details may name fields */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Conflict */
|
|
409: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/bulk/{action}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/**
|
|
* Run a declared bulk action
|
|
* @description Runs a bulk action the controller registers and the list's bulkActions declares. The ids are resolved and row-locked through the controller's list scope in one transaction before the action runs: a selection that matches no scoped row answers affected 0 without running the action, and a partial selection is a 409 that changes nothing.
|
|
*/
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Bulk action name */
|
|
action: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Record ids */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminIDsRequest"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_BulkActionResult"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description also returned when controller code refuses the write; details may name fields */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Conflict */
|
|
409: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/fields/{field}/options": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* Relation field options
|
|
* @description Choices for a writable `type: relation` field: value is the related id, label its nameFrom column. Read-only and non-relation fields answer 404.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: {
|
|
/** @description Case-insensitive label search */
|
|
search?: string;
|
|
/** @description Page */
|
|
page?: number;
|
|
/** @description Options per page (1-100, default 20) */
|
|
per_page?: number;
|
|
};
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Relation field name */
|
|
field: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ListEnvelope-array_cabana_RelationOption"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/filters/{scope}/options": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* Filter scope options
|
|
* @description Choices of a declared scope filter of the controller's list, from the model's FilterOptions. {scope} is the filter name used as filter[<scope>]; labels are localized.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Filter name */
|
|
scope: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-array_cabana_FilterOption"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/partials/{name}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* Render a controller partial
|
|
* @description Renders a declared header partial or form partial with html/template against the controller's view model and returns it as an allowlisted node tree: no HTML string. Without id the view model gets no record; id is accepted only for form partials and is loaded through the controller's form scope.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: {
|
|
/** @description Record id for a form partial */
|
|
id?: number;
|
|
};
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Partial name */
|
|
name: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_PartialView"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/schema/form": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* Admin form schema
|
|
* @description The form of a controller, localized. `preview` is present when config_form.yaml declares a preview block: the form then has a read-only preview screen, which shows the fields whose context allows preview, the record actions and, when preview.headerPartial is set, that partial as a status hint. A `type: password` field and every other field the controller lists as virtual is sent in a save body and never has a value in a record response. `preset` on a text field names the field it follows on the create form (type slug or exact) until the administrator edits it. A `type: permissioneditor` field carries `permissionOptions`, the permissions the controller offers the requesting administrator; its value in a record response and in a save body is an object of permission code to integer (radio mode 1 or -1, checkbox mode 1). A `type: relation` field over a protected foreign key is `readOnly` unless its contract declares the key writable.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_FormView"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/schema/list": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Admin list schema */
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_ListSchema"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/schema/relation/{name}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Admin relation schema */
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Relation name */
|
|
name: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_RelationSchema"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/toolbar/{action}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/**
|
|
* Run a toolbar action
|
|
* @description Runs a controller-registered action that the list's toolbar.buttons declares. The body must be {}: record_id, values and payload are all refused, and the answer's fill is always empty.
|
|
*/
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Action name */
|
|
action: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Empty object */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminActionRequest"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_AdminActionResult"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/widgets/{field}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/**
|
|
* Run a widget action
|
|
* @description Runs the controller action a `type: widget` field declares. The record is loaded through the controller's form scope (404 when out of scope); only the field's fill keys with scalar values reach the action and the response. An optional payload (any JSON value, at most 64 KiB) is accepted and handed to the action as-is; the response may carry data, the action's own JSON answer, which is not subject to the fill filter.
|
|
*/
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Widget field name */
|
|
field: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Record id, fill snapshot and optional payload */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminActionRequest"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_AdminActionResult"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* Show an admin record
|
|
* @description meta.labels carries the display labels of relation fields. meta.actions lists the declared record actions the requesting admin may run and that apply to the record's current state; it is absent when none is offered.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Record id */
|
|
id: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.RecordEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
/** Update an admin record */
|
|
put: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key: the save applies the file uploads and removals held against it */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Record id */
|
|
id: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Field values keyed by field name; relation fields carry ids */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminRecord"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.RecordEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description also returned when controller code refuses the write; details may name fields */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
post?: never;
|
|
/** Delete an admin record */
|
|
delete: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Record id */
|
|
id: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_BulkResult"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description also returned when controller code refuses the write; details may name fields */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/actions/{action}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/**
|
|
* Run a declared record action
|
|
* @description Runs a record action the controller registers and the form's recordActions declares. The record is loaded and row-locked through the controller's form scope in one transaction (404 when missing or out of scope); an action that does not apply to the record's current state answers 409. The body must be {}: record_id, values and payload are all refused, and the answer's fill is always empty.
|
|
*/
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Record id */
|
|
id: number;
|
|
/** @description Record action name */
|
|
action: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Empty object */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminActionRequest"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_AdminActionResult"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description also returned when controller code refuses the write; details may name fields */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Conflict */
|
|
409: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/files/{field}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* List the files of a fileupload field
|
|
* @description The files attached to the record minus the session's pending removals, plus the session's pending uploads, in sort_order. id 0 is the record being created in the X-Session-Key session (the key is then required). url and thumb_url are set only for a public relation.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key (32-128 characters of A-Z a-z 0-9 _ -) */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description fileupload field name */
|
|
field: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-array_cabana_FileItem"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
/**
|
|
* Upload a file to a fileupload field
|
|
* @description Stores one multipart file_data part and binds it to the X-Session-Key session; the record's next create or update save with the same key attaches it. id 0 is the record being created. A body over the upload cap answers 413 payload_too_large; a file over maxFilesize, of a type the field does not allow, or that fails the image check answers 422 on the field.
|
|
*/
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header: {
|
|
/** @description Form session key (32-128 characters of A-Z a-z 0-9 _ -) */
|
|
"X-Session-Key": string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description fileupload field name */
|
|
field: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody: {
|
|
content: {
|
|
"multipart/form-data": {
|
|
/**
|
|
* Format: binary
|
|
* @description The file
|
|
*/
|
|
file_data: string;
|
|
};
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Created */
|
|
201: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_FileItem"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Request Entity Too Large */
|
|
413: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/files/{field}/reorder": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/**
|
|
* Reorder the files of a field
|
|
* @description ids must be exactly the field's visible files (attached minus pending removals plus pending uploads); they receive the existing sort_order values in the submitted order, at once. attachMany only, otherwise 403.
|
|
*/
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key; needed for pending uploads */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description fileupload field name */
|
|
field: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description File ids in the new order */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminIDsRequest"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-array_cabana_FileItem"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Request Entity Too Large */
|
|
413: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
/**
|
|
* Save a file's title and description
|
|
* @description Saves at once (not deferred). The field must declare useCaption, otherwise 403. Omitted keys are left unchanged; unknown keys are refused.
|
|
*/
|
|
put: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key; needed for a pending upload */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description fileupload field name */
|
|
field: string;
|
|
/** @description File id */
|
|
file: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Title and description */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminFileCaptionRequest"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_FileItem"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Request Entity Too Large */
|
|
413: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
post?: never;
|
|
/**
|
|
* Remove a file
|
|
* @description Removing an attached file is deferred to the record's next save with the same X-Session-Key; removing a pending upload deletes it at once.
|
|
*/
|
|
delete: {
|
|
parameters: {
|
|
query?: never;
|
|
header: {
|
|
/** @description Form session key */
|
|
"X-Session-Key": string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description fileupload field name */
|
|
field: string;
|
|
/** @description File id */
|
|
file: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_FileMutationResult"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}/download": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* Download a protected file
|
|
* @description Streams a file of a protected (Public false) relation that belongs to a record the admin may load, or is pending in the admin's own session. Public files are 404. JPEG, PNG, GIF and WebP are served inline with their type; everything else as an application/octet-stream attachment. Responses carry X-Content-Type-Options nosniff, Cache-Control private, no-store and a sandboxing Content-Security-Policy.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key; needed for a pending upload */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description fileupload field name */
|
|
field: string;
|
|
/** @description File id */
|
|
file: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/octet-stream": string;
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}/thumb": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* Thumbnail of a protected image
|
|
* @description The preview thumbnail (imageWidth by imageHeight, 240 by 240 by default, in thumbOptions.mode) of a protected image file, scoped like the download route. A file that is not a JPEG, PNG, GIF or WebP image is 404.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key; needed for a pending upload */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description fileupload field name */
|
|
field: string;
|
|
/** @description File id */
|
|
file: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/octet-stream": string;
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** List linked relation records */
|
|
get: {
|
|
parameters: {
|
|
query?: {
|
|
/** @description Search term over the panel's searchable columns */
|
|
search?: string;
|
|
/** @description Sort column (a sortable panel column) */
|
|
sort?: string;
|
|
/** @description Sort direction (asc or desc) */
|
|
dir?: string;
|
|
/** @description Page */
|
|
page?: number;
|
|
/** @description Records per page (1-100, default 20) */
|
|
per_page?: number;
|
|
};
|
|
header?: {
|
|
/** @description Form session key; with it, owner id 0 is the record being created in that session */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ListEnvelope-array_cabana_AdminRecord"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/candidates": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** List relation candidates */
|
|
get: {
|
|
parameters: {
|
|
query?: {
|
|
/** @description Search term over the panel's searchable columns */
|
|
search?: string;
|
|
/** @description Sort column (a sortable panel column) */
|
|
sort?: string;
|
|
/** @description Sort direction (asc or desc) */
|
|
dir?: string;
|
|
/** @description Page */
|
|
page?: number;
|
|
/** @description Records per page (1-100, default 20) */
|
|
per_page?: number;
|
|
};
|
|
header?: {
|
|
/** @description Form session key; with it, owner id 0 is the record being created in that session */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ListEnvelope-array_cabana_AdminRecord"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/delete": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/**
|
|
* Delete related records
|
|
* @description Deletes children of the owner through their model: a hasMany child is deleted (hooks and soft delete run); a belongsToMany record loses this owner's pivot row and is then deleted. Every id must be a child of this owner, otherwise the whole request is 404 and nothing is deleted. The view panel must declare the delete toolbar button, otherwise 403.
|
|
*/
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key; with it, owner id 0 is the record being created in that session */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Related record ids */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminIDsRequest"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_BulkResult"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Request Entity Too Large */
|
|
413: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/link": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/** Link relation records */
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key; with it, owner id 0 is the record being created in that session */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Related record ids and optional pivot form values */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminRelationLinkRequest"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_RelationMutationResult"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/pivot/{child}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* Show the pivot values of a link
|
|
* @description The pivot form (pivot.form) values of the pivot row linking the owner and one related record, keyed by field name; id is the related record's id. Needs a pivot form and the link or update toolbar button (403 otherwise); a record not linked to this owner is 404.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key; with it, owner id 0 is the record being created in that session */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
/** @description Related record id */
|
|
child: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_AdminRecord"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
/**
|
|
* Update the pivot values of a link
|
|
* @description Saves pivot form values on the pivot row linking the owner and one related record. Only pivot form fields are accepted (422 per unknown key); the pivot foreign keys, timestamps and hook columns can never be set. Gated and scoped like the pivot show route.
|
|
*/
|
|
put: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key; with it, owner id 0 is the record being created in that session */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
/** @description Related record id */
|
|
child: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Pivot form values keyed by field name */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminRecord"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_AdminRecord"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Request Entity Too Large */
|
|
413: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/**
|
|
* Create a related record
|
|
* @description Creates a record through the relation's manage form (manage.form, or the top-level form of config_relation.yaml) and attaches it to the owner: a hasMany child gets the owner's key in its foreign key (the server sets it; the body cannot), a belongsToMany record gets a pivot row. The view panel must declare the create toolbar button, otherwise 403. The owner is scoped like the record show route.
|
|
*/
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key; with it, owner id 0 is the record being created in that session */
|
|
"X-Session-Key"?: string;
|
|
/** @description Child form session key: the save attaches the child files uploaded under it */
|
|
"X-Child-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Field values of the manage form keyed by field name */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminRecord"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Created */
|
|
201: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.RecordEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Request Entity Too Large */
|
|
413: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* Show a related record
|
|
* @description One child of the owner, projected through the manage form when the relation declares the update button, else through the view form (view.form, or the top-level form). A record that is not a child of this owner (hasMany: its foreign key; belongsToMany: a pivot row) is 404. Without either form the route answers 403.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key; with it, owner id 0 is the record being created in that session */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
/** @description Related record id */
|
|
child: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.RecordEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
/**
|
|
* Update a related record
|
|
* @description Saves one child of the owner through the manage form, with the related model's rules and hooks. The view panel must declare the update toolbar button, otherwise 403. A record that is not a child of this owner is 404.
|
|
*/
|
|
put: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key; with it, owner id 0 is the record being created in that session */
|
|
"X-Session-Key"?: string;
|
|
/** @description Child form session key: the save attaches the child files uploaded under it */
|
|
"X-Child-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
/** @description Related record id */
|
|
child: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Field values of the manage form keyed by field name */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminRecord"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.RecordEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Request Entity Too Large */
|
|
413: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* List the files of a related record's fileupload field
|
|
* @description The child-form counterpart of the record file list: the files attached to the related record minus the X-Child-Session-Key session's pending removals, plus its pending uploads. The related record is scoped to the owner like the child show route; child 0 needs the create toolbar button and the child key, a saved child the update button or a view form (403 otherwise).
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Owner form session key; needed when the owner id is 0 */
|
|
"X-Session-Key"?: string;
|
|
/** @description Child form session key (32-128 characters of A-Z a-z 0-9 _ -); needed for child 0 and for pending uploads */
|
|
"X-Child-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
/** @description Related record id (0 for the child being created) */
|
|
child: number;
|
|
/** @description fileupload field of the relation's manage form */
|
|
field: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-array_cabana_FileItem"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
/**
|
|
* Upload a file to a related record's fileupload field
|
|
* @description Stores one multipart file_data part and binds it to the X-Child-Session-Key session; the child's create or update save with the same key attaches it. Limits and errors as on the record upload route. Writes to a saved child need the update toolbar button (403 otherwise).
|
|
*/
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header: {
|
|
/** @description Owner form session key; needed when the owner id is 0 */
|
|
"X-Session-Key"?: string;
|
|
/** @description Child form session key (32-128 characters of A-Z a-z 0-9 _ -) */
|
|
"X-Child-Session-Key": string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
/** @description Related record id (0 for the child being created) */
|
|
child: number;
|
|
/** @description fileupload field of the relation's manage form */
|
|
field: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody: {
|
|
content: {
|
|
"multipart/form-data": {
|
|
/**
|
|
* Format: binary
|
|
* @description The file
|
|
*/
|
|
file_data: string;
|
|
};
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Created */
|
|
201: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_FileItem"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Request Entity Too Large */
|
|
413: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/reorder": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/**
|
|
* Reorder a related record's files
|
|
* @description As the record reorder route: ids must be exactly the field's visible files. attachMany only, otherwise 403.
|
|
*/
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Owner form session key; needed when the owner id is 0 */
|
|
"X-Session-Key"?: string;
|
|
/** @description Child form session key (32-128 characters of A-Z a-z 0-9 _ -); needed for child 0 and for pending uploads */
|
|
"X-Child-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
/** @description Related record id (0 for the child being created) */
|
|
child: number;
|
|
/** @description fileupload field of the relation's manage form */
|
|
field: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description File ids in the new order */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminIDsRequest"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-array_cabana_FileItem"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Request Entity Too Large */
|
|
413: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
/**
|
|
* Save a related record file's title and description
|
|
* @description As the record caption route, for a file of the related record or of the child session. The field must declare useCaption (403 otherwise).
|
|
*/
|
|
put: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Owner form session key; needed when the owner id is 0 */
|
|
"X-Session-Key"?: string;
|
|
/** @description Child form session key (32-128 characters of A-Z a-z 0-9 _ -); needed for child 0 and for pending uploads */
|
|
"X-Child-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
/** @description Related record id (0 for the child being created) */
|
|
child: number;
|
|
/** @description fileupload field of the relation's manage form */
|
|
field: string;
|
|
/** @description File id */
|
|
file: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Title and description */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminFileCaptionRequest"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_FileItem"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Request Entity Too Large */
|
|
413: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
post?: never;
|
|
/**
|
|
* Remove a related record's file
|
|
* @description Removing an attached file is deferred to the child's next save with the same X-Child-Session-Key; removing a pending upload deletes it at once.
|
|
*/
|
|
delete: {
|
|
parameters: {
|
|
query?: never;
|
|
header: {
|
|
/** @description Owner form session key; needed when the owner id is 0 */
|
|
"X-Session-Key"?: string;
|
|
/** @description Child form session key (32-128 characters of A-Z a-z 0-9 _ -) */
|
|
"X-Child-Session-Key": string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
/** @description Related record id (0 for the child being created) */
|
|
child: number;
|
|
/** @description fileupload field of the relation's manage form */
|
|
field: string;
|
|
/** @description File id */
|
|
file: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_FileMutationResult"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}/download": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* Download a related record's protected file
|
|
* @description As the record download route, for a protected file of the related record or of the child session, with the same headers.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Owner form session key; needed when the owner id is 0 */
|
|
"X-Session-Key"?: string;
|
|
/** @description Child form session key (32-128 characters of A-Z a-z 0-9 _ -); needed for child 0 and for pending uploads */
|
|
"X-Child-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
/** @description Related record id (0 for the child being created) */
|
|
child: number;
|
|
/** @description fileupload field of the relation's manage form */
|
|
field: string;
|
|
/** @description File id */
|
|
file: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/octet-stream": string;
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records/{child}/files/{field}/{file}/thumb": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/**
|
|
* Thumbnail of a related record's protected image
|
|
* @description As the record thumb route, for a protected image of the related record or of the child session.
|
|
*/
|
|
get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Owner form session key; needed when the owner id is 0 */
|
|
"X-Session-Key"?: string;
|
|
/** @description Child form session key (32-128 characters of A-Z a-z 0-9 _ -); needed for child 0 and for pending uploads */
|
|
"X-Child-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
/** @description Related record id (0 for the child being created) */
|
|
child: number;
|
|
/** @description fileupload field of the relation's manage form */
|
|
field: string;
|
|
/** @description File id */
|
|
file: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/octet-stream": string;
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/unlink": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/** Unlink relation records */
|
|
post: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: {
|
|
/** @description Form session key; with it, owner id 0 is the record being created in that session */
|
|
"X-Session-Key"?: string;
|
|
};
|
|
path: {
|
|
/** @description Vendor */
|
|
vendor: string;
|
|
/** @description Plugin */
|
|
plugin: string;
|
|
/** @description Controller */
|
|
controller: string;
|
|
/** @description Owner id (0 for the record being created) */
|
|
id: number;
|
|
/** @description Relation name */
|
|
name: string;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
/** @description Related record ids */
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.AdminIDsRequest"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description OK */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.Envelope-cabana_RelationMutationResult"];
|
|
};
|
|
};
|
|
/** @description Unauthorized */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Forbidden */
|
|
403: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
/** @description Unprocessable Entity */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["cabana.ErrorEnvelope"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
}
|
|
export type webhooks = Record<string, never>;
|
|
export interface components {
|
|
schemas: {
|
|
"cabana.AdminActionRequest": {
|
|
/**
|
|
* @description Payload is the widget's own JSON value (the summer-action event's
|
|
* detail.payload): any JSON, at most 64 KiB, handed to the action as-is.
|
|
* Toolbar and record routes refuse it.
|
|
*/
|
|
payload?: unknown;
|
|
record_id?: number;
|
|
values?: {
|
|
[key: string]: unknown;
|
|
};
|
|
};
|
|
"cabana.AdminActionResult": {
|
|
/**
|
|
* @description Data is the action's structured answer for the widget: any JSON value,
|
|
* not filtered by fill, absent when the action returned none.
|
|
*/
|
|
data?: unknown;
|
|
fill: {
|
|
[key: string]: unknown;
|
|
};
|
|
message: string;
|
|
};
|
|
"cabana.AdminFileCaptionRequest": {
|
|
description?: string;
|
|
title?: string;
|
|
};
|
|
"cabana.AdminIDsRequest": {
|
|
ids: number[];
|
|
};
|
|
"cabana.AdminLoginData": {
|
|
access_token?: string;
|
|
expires_in?: number;
|
|
token_type: string;
|
|
};
|
|
"cabana.AdminLoginRequest": {
|
|
email?: string;
|
|
login?: string;
|
|
password: string;
|
|
};
|
|
"cabana.AdminLogoutData": {
|
|
status: string;
|
|
};
|
|
"cabana.AdminProfile": {
|
|
email: string;
|
|
first_name: string;
|
|
id: number;
|
|
is_superuser: boolean;
|
|
last_name: string;
|
|
login: string;
|
|
role?: components["schemas"]["cabana.AdminRoleSummary"];
|
|
};
|
|
"cabana.AdminRecord": {
|
|
[key: string]: unknown;
|
|
};
|
|
"cabana.AdminRelationLinkRequest": {
|
|
ids: number[];
|
|
pivot?: {
|
|
[key: string]: unknown;
|
|
};
|
|
};
|
|
"cabana.AdminRoleSummary": {
|
|
code: string;
|
|
id: number;
|
|
name: string;
|
|
};
|
|
"cabana.BulkAction": {
|
|
confirm?: string;
|
|
label?: string;
|
|
name: string;
|
|
};
|
|
"cabana.BulkActionResult": {
|
|
affected: number;
|
|
message: string;
|
|
};
|
|
"cabana.BulkResult": {
|
|
deleted: number;
|
|
};
|
|
"cabana.ControllerAssets": {
|
|
scripts: string[];
|
|
styles: string[];
|
|
};
|
|
"cabana.Envelope-array_cabana_FileItem": {
|
|
data: components["schemas"]["cabana.FileItem"][];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-array_cabana_FilterOption": {
|
|
data: components["schemas"]["cabana.FilterOption"][];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-array_cabana_NavigationEntry": {
|
|
data: components["schemas"]["cabana.NavigationEntry"][];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-array_cabana_SettingsEntry": {
|
|
data: components["schemas"]["cabana.SettingsEntry"][];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_AdminActionResult": {
|
|
data: components["schemas"]["cabana.AdminActionResult"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_AdminLoginData": {
|
|
data: components["schemas"]["cabana.AdminLoginData"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_AdminLogoutData": {
|
|
data: components["schemas"]["cabana.AdminLogoutData"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_AdminProfile": {
|
|
data: components["schemas"]["cabana.AdminProfile"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_AdminRecord": {
|
|
data: components["schemas"]["cabana.AdminRecord"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_BulkActionResult": {
|
|
data: components["schemas"]["cabana.BulkActionResult"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_BulkResult": {
|
|
data: components["schemas"]["cabana.BulkResult"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_FileItem": {
|
|
data: components["schemas"]["cabana.FileItem"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_FileMutationResult": {
|
|
data: components["schemas"]["cabana.FileMutationResult"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_FormView": {
|
|
data: components["schemas"]["cabana.FormView"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_LangBundle": {
|
|
data: components["schemas"]["cabana.LangBundle"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_ListSchema": {
|
|
data: components["schemas"]["cabana.ListSchema"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_PartialView": {
|
|
data: components["schemas"]["cabana.PartialView"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_RelationMutationResult": {
|
|
data: components["schemas"]["cabana.RelationMutationResult"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_RelationSchema": {
|
|
data: components["schemas"]["cabana.RelationSchema"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.Envelope-cabana_SettingsResult": {
|
|
data: components["schemas"]["cabana.SettingsResult"];
|
|
meta: components["schemas"]["cabana.SuccessMeta"];
|
|
};
|
|
"cabana.ErrorBody": {
|
|
code: string;
|
|
details: {
|
|
[key: string]: unknown;
|
|
};
|
|
message: string;
|
|
};
|
|
"cabana.ErrorEnvelope": {
|
|
error: components["schemas"]["cabana.ErrorBody"];
|
|
};
|
|
"cabana.FieldPreset": {
|
|
field: string;
|
|
type: string;
|
|
};
|
|
"cabana.FileItem": {
|
|
content_type: string;
|
|
created_at: string;
|
|
description: string;
|
|
file_name: string;
|
|
file_size: number;
|
|
id: number;
|
|
pending: boolean;
|
|
sort_order: number;
|
|
thumb_url?: string;
|
|
title: string;
|
|
url?: string;
|
|
};
|
|
"cabana.FileMutationResult": {
|
|
removed: number;
|
|
};
|
|
"cabana.FilterOption": {
|
|
label: string;
|
|
value: string;
|
|
};
|
|
"cabana.FormField": {
|
|
/** @description Action names the controller action the widget runs (pact.HasAdminActions). */
|
|
action?: string;
|
|
/** @description ActionLabel is the action's Label, localized per request. */
|
|
actionLabel?: string;
|
|
attributes?: {
|
|
[key: string]: components["schemas"]["cabana.jsonScalar"];
|
|
};
|
|
comment?: string;
|
|
context?: components["schemas"]["cabana.fieldContext"];
|
|
default?: components["schemas"]["cabana.jsonScalar"];
|
|
/**
|
|
* @description Deferrable is true on a relation-manager field whose relation can be
|
|
* managed before the record is first saved (RelationSchema.Deferrable):
|
|
* the SPA shows it on the create screen.
|
|
*/
|
|
deferrable?: boolean;
|
|
displayFormat?: string;
|
|
emptyOption?: string;
|
|
/** @description FileTypes are the allowed lower-case extensions of a fileupload field. */
|
|
fileTypes?: string[];
|
|
/** @description Fill lists the fields of the same form the action writes back (D-07). */
|
|
fill?: string[];
|
|
/** @description FirstDay is the first day of the week, 0 (Sunday) to 6. */
|
|
firstDay?: number;
|
|
/**
|
|
* @description Format is a datepicker's WinterCMS (PHP date) display format;
|
|
* DisplayFormat is the same format in the SPA's moment-style tokens.
|
|
*/
|
|
format?: string;
|
|
/** @description IgnoreTimezone keeps a datetime's wall-clock value with no conversion. */
|
|
ignoreTimezone?: boolean;
|
|
imageHeight?: number;
|
|
/** @description ImageWidth and ImageHeight are the preview size of an image upload. */
|
|
imageWidth?: number;
|
|
label?: string;
|
|
maxDate?: string;
|
|
/** @description MaxFiles caps the number of files of an attachMany field. */
|
|
maxFiles?: number;
|
|
/** @description MaxFilesize is the largest accepted file in megabytes. */
|
|
maxFilesize?: number;
|
|
/**
|
|
* @description MimeTypes are the allowed MIME patterns (or extensions) of a
|
|
* fileupload field.
|
|
*/
|
|
mimeTypes?: string[];
|
|
/**
|
|
* @description MinDate and MaxDate bound a datepicker's calendar date (YYYY-MM-DD),
|
|
* checked again on save.
|
|
*/
|
|
minDate?: string;
|
|
/**
|
|
* @description Mode is the fileupload mode (image or file, default file), the
|
|
* datepicker mode (date, datetime or time, default datetime) or the
|
|
* permissioneditor mode (radio or checkbox).
|
|
*/
|
|
mode?: string;
|
|
multiple?: boolean;
|
|
name: string;
|
|
nameFrom?: string;
|
|
options?: components["schemas"]["cabana.FormOption"][];
|
|
/**
|
|
* @description Path names the controller partial of a `type: partial` field: the
|
|
* template {ConfigDir}/_{path}.htm (D-09).
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* @description PermissionOptions are the permissions a `type: permissioneditor` field
|
|
* offers the requesting administrator, in display order. They are filled
|
|
* per request by the form schema route.
|
|
*/
|
|
permissionOptions?: components["schemas"]["cabana.PermissionOption"][];
|
|
/**
|
|
* @description Preset makes a text field follow another field of the form while the
|
|
* administrator has not edited it, on create only (fields.yaml preset).
|
|
*/
|
|
preset?: components["schemas"]["cabana.FieldPreset"];
|
|
/** @description Prompt is the upload button text, localized per request. */
|
|
prompt?: string;
|
|
/**
|
|
* @description Protected is true for a fileupload field whose relation is not
|
|
* public: its files are served only through the admin file routes.
|
|
*/
|
|
protected?: boolean;
|
|
readOnly?: boolean;
|
|
relation?: string;
|
|
required?: boolean;
|
|
size?: string;
|
|
span?: string;
|
|
tab?: string;
|
|
/** @description ThumbOptions carries the preview thumbnail mode. */
|
|
thumbOptions?: components["schemas"]["cabana.ThumbOptions"];
|
|
/** @description TwelveHour shows a 12-hour clock. */
|
|
twelveHour?: boolean;
|
|
type: string;
|
|
/** @description UseCaption lets the admin edit each file's title and description. */
|
|
useCaption?: boolean;
|
|
/** @description Widget is the custom-element tag of a `type: widget` field (D-06). */
|
|
widget?: string;
|
|
/** @description YearRange is [n] (years either side of today) or [from, to]. */
|
|
yearRange?: number[];
|
|
};
|
|
"cabana.FormMessages": {
|
|
create: components["schemas"]["cabana.MessageForms"];
|
|
deleteConfirm: components["schemas"]["cabana.MessageForms"];
|
|
deleted: components["schemas"]["cabana.MessageForms"];
|
|
edit: components["schemas"]["cabana.MessageForms"];
|
|
/** @description The preview screen's subtitle and its edit button (D-11). */
|
|
preview: components["schemas"]["cabana.MessageForms"];
|
|
saved: components["schemas"]["cabana.MessageForms"];
|
|
update: components["schemas"]["cabana.MessageForms"];
|
|
};
|
|
"cabana.FormMeta": {
|
|
locale: string;
|
|
};
|
|
"cabana.FormOption": {
|
|
label: string;
|
|
value: components["schemas"]["cabana.jsonScalar"];
|
|
};
|
|
"cabana.FormPreview": {
|
|
headerPartial?: string;
|
|
};
|
|
"cabana.FormRedirect": {
|
|
redirect: string;
|
|
redirectClose: string;
|
|
};
|
|
"cabana.FormRedirects": {
|
|
create: components["schemas"]["cabana.FormRedirect"];
|
|
default: string;
|
|
update: components["schemas"]["cabana.FormRedirect"];
|
|
};
|
|
"cabana.FormView": {
|
|
/**
|
|
* @description Assets are the controller's plugin JS and CSS URLs; a settings form
|
|
* carries empty lists.
|
|
*/
|
|
assets: components["schemas"]["cabana.ControllerAssets"];
|
|
fields: components["schemas"]["cabana.FormField"][];
|
|
/** @description Messages is the form's copy resolved in the request locale (D-13). */
|
|
messages: components["schemas"]["cabana.FormMessages"];
|
|
meta: components["schemas"]["cabana.FormMeta"];
|
|
modelClass?: string;
|
|
name?: string;
|
|
/**
|
|
* @description Preview is set when the form has a preview screen (D-11); a form
|
|
* without one omits the key.
|
|
*/
|
|
preview?: components["schemas"]["cabana.FormPreview"];
|
|
/**
|
|
* @description Redirects are the raw Winter config_form.yaml targets; the SPA maps
|
|
* them onto its routes.
|
|
*/
|
|
redirects: components["schemas"]["cabana.FormRedirects"];
|
|
};
|
|
"cabana.LangBundle": {
|
|
[key: string]: components["schemas"]["cabana.MessageForms"];
|
|
};
|
|
"cabana.ListColumn": {
|
|
/**
|
|
* @description Invisible marks a column that is searched and sorted on the server but
|
|
* not shown: the admin renders no header or cell for it and list rows do
|
|
* not carry its value (columns.yaml invisible).
|
|
*/
|
|
invisible?: boolean;
|
|
key: string;
|
|
label: string;
|
|
relation?: string;
|
|
searchable: boolean;
|
|
select?: string;
|
|
sortable: boolean;
|
|
type?: string;
|
|
};
|
|
"cabana.ListEnvelope-array_cabana_AdminRecord": {
|
|
data: {
|
|
[key: string]: unknown;
|
|
}[];
|
|
meta: components["schemas"]["cabana.ListMeta"];
|
|
};
|
|
"cabana.ListEnvelope-array_cabana_RelationOption": {
|
|
data: components["schemas"]["cabana.RelationOption"][];
|
|
meta: components["schemas"]["cabana.ListMeta"];
|
|
};
|
|
"cabana.ListFilter": {
|
|
column?: string;
|
|
falseValue?: components["schemas"]["cabana.jsonScalar"];
|
|
label?: string;
|
|
modelClass?: string;
|
|
name: string;
|
|
nameFrom?: string;
|
|
options?: components["schemas"]["cabana.FormOption"][];
|
|
scope?: string;
|
|
trueValue?: components["schemas"]["cabana.jsonScalar"];
|
|
type: string;
|
|
};
|
|
"cabana.ListMessages": {
|
|
create: components["schemas"]["cabana.MessageForms"];
|
|
deleteConfirm: components["schemas"]["cabana.MessageForms"];
|
|
deleteSelected: components["schemas"]["cabana.MessageForms"];
|
|
deleted: components["schemas"]["cabana.MessageForms"];
|
|
empty: components["schemas"]["cabana.MessageForms"];
|
|
emptySearch: components["schemas"]["cabana.MessageForms"];
|
|
emptySearchHint: components["schemas"]["cabana.MessageForms"];
|
|
recordCount: components["schemas"]["cabana.MessageForms"];
|
|
/** @description The row-state badge labels (D-12). */
|
|
rowStateDeleted: components["schemas"]["cabana.MessageForms"];
|
|
rowStateDisabled: components["schemas"]["cabana.MessageForms"];
|
|
rowStateNegative: components["schemas"]["cabana.MessageForms"];
|
|
searchPrompt: components["schemas"]["cabana.MessageForms"];
|
|
selected: components["schemas"]["cabana.MessageForms"];
|
|
};
|
|
"cabana.ListMeta": {
|
|
last_page: number;
|
|
page: number;
|
|
per_page: number;
|
|
row_states?: {
|
|
[key: string]: string[];
|
|
};
|
|
total: number;
|
|
};
|
|
"cabana.ListSchema": {
|
|
/** @description Assets are the controller's plugin JS and CSS URLs (pact.AdminClientAssets). */
|
|
assets: components["schemas"]["cabana.ControllerAssets"];
|
|
bulkActions: components["schemas"]["cabana.BulkAction"][];
|
|
columns: components["schemas"]["cabana.ListColumn"][];
|
|
defaultSort?: components["schemas"]["cabana.ListSort"];
|
|
filters: components["schemas"]["cabana.ListFilter"][];
|
|
/**
|
|
* @description HeaderPartial names the controller partial rendered above the list
|
|
* (config_list.yaml headerPartial, D-11).
|
|
*/
|
|
headerPartial?: string;
|
|
/**
|
|
* @description Messages is the list's copy (D-13). The cached schema carries each
|
|
* phrase key as its own form; a response resolves them in its locale.
|
|
*/
|
|
messages: components["schemas"]["cabana.ListMessages"];
|
|
meta?: components["schemas"]["cabana.FormMeta"];
|
|
modelClass?: string;
|
|
noRecordsMessage?: string;
|
|
perPageOptions: number[];
|
|
recordUrl?: string;
|
|
recordsPerPage: number;
|
|
rowActions: components["schemas"]["cabana.RowAction"][];
|
|
searchPrompt?: string;
|
|
searchTerm: string;
|
|
showCheckboxes: boolean;
|
|
showSearch: boolean;
|
|
showSetup: boolean;
|
|
showSorting: boolean;
|
|
title?: string;
|
|
/**
|
|
* @description ToolbarActions are the controller-registered toolbar.buttons entries
|
|
* the requesting admin may run, in declared order, with their labels.
|
|
*/
|
|
toolbarActions: components["schemas"]["cabana.ToolbarAction"][];
|
|
toolbarButtons: string[];
|
|
};
|
|
"cabana.ListSort": {
|
|
column: string;
|
|
direction: string;
|
|
};
|
|
"cabana.MessageForms": {
|
|
[key: string]: string;
|
|
};
|
|
"cabana.NavigationEntry": {
|
|
code: string;
|
|
controller: string;
|
|
icon: string;
|
|
label: string;
|
|
order: number;
|
|
sideMenu: components["schemas"]["cabana.NavigationEntry"][];
|
|
};
|
|
"cabana.PartialNode": {
|
|
attrs?: {
|
|
[key: string]: string;
|
|
};
|
|
children?: components["schemas"]["cabana.PartialNode"][];
|
|
tag?: string;
|
|
text?: string;
|
|
};
|
|
"cabana.PartialView": {
|
|
nodes: components["schemas"]["cabana.PartialNode"][];
|
|
};
|
|
"cabana.PermissionOption": {
|
|
code: string;
|
|
comment?: string;
|
|
label: string;
|
|
locked?: boolean;
|
|
tab?: string;
|
|
};
|
|
"cabana.RecordAction": {
|
|
confirm?: string;
|
|
label: string;
|
|
name: string;
|
|
};
|
|
"cabana.RecordEnvelope": {
|
|
data: components["schemas"]["cabana.AdminRecord"];
|
|
meta: components["schemas"]["cabana.RecordMeta"];
|
|
};
|
|
"cabana.RecordMeta": {
|
|
actions?: components["schemas"]["cabana.RecordAction"][];
|
|
labels: {
|
|
[key: string]: components["schemas"]["cabana.RelationOption"][];
|
|
};
|
|
};
|
|
"cabana.RelationColumn": {
|
|
key: string;
|
|
label: string;
|
|
searchable: boolean;
|
|
sortable: boolean;
|
|
};
|
|
"cabana.RelationList": {
|
|
columns: components["schemas"]["cabana.RelationColumn"][];
|
|
};
|
|
"cabana.RelationMessages": {
|
|
candidateSearch: components["schemas"]["cabana.MessageForms"];
|
|
create: components["schemas"]["cabana.MessageForms"];
|
|
createSubmit: components["schemas"]["cabana.MessageForms"];
|
|
createTitle: components["schemas"]["cabana.MessageForms"];
|
|
created: components["schemas"]["cabana.MessageForms"];
|
|
deleteConfirm: components["schemas"]["cabana.MessageForms"];
|
|
deleteOneConfirm: components["schemas"]["cabana.MessageForms"];
|
|
deleteSelected: components["schemas"]["cabana.MessageForms"];
|
|
deleted: components["schemas"]["cabana.MessageForms"];
|
|
editPivot: components["schemas"]["cabana.MessageForms"];
|
|
empty: components["schemas"]["cabana.MessageForms"];
|
|
link: components["schemas"]["cabana.MessageForms"];
|
|
linkHint: components["schemas"]["cabana.MessageForms"];
|
|
linkSubmit: components["schemas"]["cabana.MessageForms"];
|
|
linked: components["schemas"]["cabana.MessageForms"];
|
|
pivotSaved: components["schemas"]["cabana.MessageForms"];
|
|
pivotSubmit: components["schemas"]["cabana.MessageForms"];
|
|
pivotTitle: components["schemas"]["cabana.MessageForms"];
|
|
previewTitle: components["schemas"]["cabana.MessageForms"];
|
|
unlinkConfirm: components["schemas"]["cabana.MessageForms"];
|
|
unlinkSelected: components["schemas"]["cabana.MessageForms"];
|
|
unlinked: components["schemas"]["cabana.MessageForms"];
|
|
updateSubmit: components["schemas"]["cabana.MessageForms"];
|
|
updateTitle: components["schemas"]["cabana.MessageForms"];
|
|
updated: components["schemas"]["cabana.MessageForms"];
|
|
};
|
|
"cabana.RelationMutationResult": {
|
|
linked?: number;
|
|
removed?: number;
|
|
};
|
|
"cabana.RelationOption": {
|
|
label: string;
|
|
locked?: boolean;
|
|
value: number;
|
|
};
|
|
"cabana.RelationPanel": {
|
|
list: components["schemas"]["cabana.RelationList"];
|
|
showSearch: boolean;
|
|
toolbarButtons: string[];
|
|
};
|
|
"cabana.RelationSchema": {
|
|
/**
|
|
* @description Deferrable is true when the relation can be managed on a record that
|
|
* is not saved yet: always for belongsToMany, and for a hasMany whose
|
|
* ForeignKey is nullable.
|
|
*/
|
|
deferrable: boolean;
|
|
/** @description Kind is the contract kind: belongsToMany or hasMany. */
|
|
kind: string;
|
|
label: string;
|
|
manage: components["schemas"]["cabana.RelationPanel"];
|
|
/**
|
|
* @description ManageForm is the child create and update form (manage.form, or the
|
|
* top-level form); ViewForm is the read-only preview form (view.form,
|
|
* or the top-level form); PivotForm edits pivot columns of a
|
|
* belongsToMany link (pivot.form). Each is omitted when not declared.
|
|
*/
|
|
manageForm?: components["schemas"]["cabana.FormField"][];
|
|
/**
|
|
* @description Messages is the relation manager's copy (D-13); the cached schema
|
|
* carries each phrase key as its own form.
|
|
*/
|
|
messages: components["schemas"]["cabana.RelationMessages"];
|
|
name: string;
|
|
pivotForm?: components["schemas"]["cabana.FormField"][];
|
|
view: components["schemas"]["cabana.RelationPanel"];
|
|
viewForm?: components["schemas"]["cabana.FormField"][];
|
|
};
|
|
"cabana.RowAction": {
|
|
label?: string;
|
|
name: string;
|
|
url?: string;
|
|
};
|
|
"cabana.SettingsEntry": {
|
|
category: string;
|
|
code: string;
|
|
description: string;
|
|
icon: string;
|
|
keywords: string[];
|
|
label: string;
|
|
model: string;
|
|
order: number;
|
|
};
|
|
"cabana.SettingsResult": {
|
|
data: {
|
|
[key: string]: unknown;
|
|
};
|
|
exists: boolean;
|
|
};
|
|
"cabana.SuccessMeta": {
|
|
last_page?: number;
|
|
locale?: string;
|
|
page?: number;
|
|
per_page?: number;
|
|
total?: number;
|
|
};
|
|
"cabana.ThumbOptions": {
|
|
mode: string;
|
|
};
|
|
"cabana.ToolbarAction": {
|
|
label: string;
|
|
name: string;
|
|
};
|
|
"cabana.fieldContext": string | string[];
|
|
"cabana.jsonScalar": (string | number | boolean) | null;
|
|
};
|
|
responses: never;
|
|
parameters: never;
|
|
requestBodies: never;
|
|
headers: never;
|
|
pathItems: never;
|
|
}
|
|
export type $defs = Record<string, never>;
|
|
export type operations = Record<string, never>;
|