@superbright/indexeddb-orm 1.0.59 → 1.0.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/api.generated.d.ts +1009 -30
- package/dist/api/schemas.generated.cjs +1 -1
- package/dist/api/schemas.generated.cjs.map +1 -1
- package/dist/api/schemas.generated.d.ts +3411 -48
- package/dist/api/schemas.generated.mjs +324 -207
- package/dist/api/schemas.generated.mjs.map +1 -1
- package/dist/schemas.cjs +1 -1
- package/dist/schemas.mjs +79 -57
- package/package.json +1 -1
|
@@ -348,7 +348,7 @@ export interface paths {
|
|
|
348
348
|
};
|
|
349
349
|
/**
|
|
350
350
|
* Get property details
|
|
351
|
-
* @description Returns property details
|
|
351
|
+
* @description Returns property details for the Embed app. The response includes a `theme` field (`EmbedTheme`): the currently-published theme config + fonts. When the property has never been published, `theme.config` is the system default and `theme.fonts` is empty — the Embed app should fall back to its built-in font stack in that case. Fonts are served as public CDN URLs (`media.url`); preload them with `<link rel="preload" as="font" crossorigin>` for best paint.
|
|
352
352
|
*/
|
|
353
353
|
get: operations["getPropertyDetails"];
|
|
354
354
|
put?: never;
|
|
@@ -539,6 +539,74 @@ export interface paths {
|
|
|
539
539
|
patch?: never;
|
|
540
540
|
trace?: never;
|
|
541
541
|
};
|
|
542
|
+
"/fonts": {
|
|
543
|
+
parameters: {
|
|
544
|
+
query?: never;
|
|
545
|
+
header?: never;
|
|
546
|
+
path?: never;
|
|
547
|
+
cookie?: never;
|
|
548
|
+
};
|
|
549
|
+
/**
|
|
550
|
+
* List the authed user's fonts
|
|
551
|
+
* @description Returns the user's font library. Up to 5 non-archived fonts per user. Use include_archived=true to also return archived fonts.
|
|
552
|
+
*/
|
|
553
|
+
get: operations["listUserFonts"];
|
|
554
|
+
put?: never;
|
|
555
|
+
/**
|
|
556
|
+
* Register a font that was just uploaded to S3
|
|
557
|
+
* @description Creates a UserFont row pointing at an asset_key the client just uploaded via the URL from /fonts/upload-url. The asset_key must live under the authed user's font path (assets/fonts/{user_id}/...).
|
|
558
|
+
*/
|
|
559
|
+
post: operations["createUserFont"];
|
|
560
|
+
delete?: never;
|
|
561
|
+
options?: never;
|
|
562
|
+
head?: never;
|
|
563
|
+
patch?: never;
|
|
564
|
+
trace?: never;
|
|
565
|
+
};
|
|
566
|
+
"/fonts/upload-url": {
|
|
567
|
+
parameters: {
|
|
568
|
+
query?: never;
|
|
569
|
+
header?: never;
|
|
570
|
+
path?: never;
|
|
571
|
+
cookie?: never;
|
|
572
|
+
};
|
|
573
|
+
/**
|
|
574
|
+
* Get a pre-signed S3 URL for uploading a font file
|
|
575
|
+
* @description Returns a pre-signed PUT URL the client uses to upload the font file directly to S3 under assets/fonts/. The client should then call POST /fonts with the returned asset_key plus font metadata. The client is responsible for setting the correct Content-Type header (e.g. font/woff2) on the PUT request.
|
|
576
|
+
*/
|
|
577
|
+
get: operations["getFontUploadUrl"];
|
|
578
|
+
put?: never;
|
|
579
|
+
post?: never;
|
|
580
|
+
delete?: never;
|
|
581
|
+
options?: never;
|
|
582
|
+
head?: never;
|
|
583
|
+
patch?: never;
|
|
584
|
+
trace?: never;
|
|
585
|
+
};
|
|
586
|
+
"/fonts/{id}": {
|
|
587
|
+
parameters: {
|
|
588
|
+
query?: never;
|
|
589
|
+
header?: never;
|
|
590
|
+
path?: never;
|
|
591
|
+
cookie?: never;
|
|
592
|
+
};
|
|
593
|
+
get?: never;
|
|
594
|
+
/**
|
|
595
|
+
* Update a font (family rename / archive toggle)
|
|
596
|
+
* @description Only family and is_archived are mutable. To "delete" a font without removing it, set is_archived=true; archived fonts are hidden from the CMS picker but their S3 file and DB row are preserved.
|
|
597
|
+
*/
|
|
598
|
+
put: operations["updateUserFont"];
|
|
599
|
+
post?: never;
|
|
600
|
+
/**
|
|
601
|
+
* Delete a font from the library
|
|
602
|
+
* @description Removes the font, its Media row, and all draft/non-published-version references to it (those role slots fall back to the embed default). Refuses with HTTP 409 if the font is referenced by any currently-published theme version — the user must first publish a new version of the affected theme(s) without this font.
|
|
603
|
+
*/
|
|
604
|
+
delete: operations["deleteUserFont"];
|
|
605
|
+
options?: never;
|
|
606
|
+
head?: never;
|
|
607
|
+
patch?: never;
|
|
608
|
+
trace?: never;
|
|
609
|
+
};
|
|
542
610
|
"/floorPlans": {
|
|
543
611
|
parameters: {
|
|
544
612
|
query?: never;
|
|
@@ -1652,7 +1720,7 @@ export interface paths {
|
|
|
1652
1720
|
patch?: never;
|
|
1653
1721
|
trace?: never;
|
|
1654
1722
|
};
|
|
1655
|
-
"/queue/jobs/{id}/
|
|
1723
|
+
"/queue/jobs/{id}/upload_url": {
|
|
1656
1724
|
parameters: {
|
|
1657
1725
|
query?: never;
|
|
1658
1726
|
header?: never;
|
|
@@ -1771,7 +1839,7 @@ export interface paths {
|
|
|
1771
1839
|
patch?: never;
|
|
1772
1840
|
trace?: never;
|
|
1773
1841
|
};
|
|
1774
|
-
"/renders/jobs/{id}/
|
|
1842
|
+
"/renders/jobs/{id}/upload_url": {
|
|
1775
1843
|
parameters: {
|
|
1776
1844
|
query?: never;
|
|
1777
1845
|
header?: never;
|
|
@@ -2074,6 +2142,140 @@ export interface paths {
|
|
|
2074
2142
|
patch?: never;
|
|
2075
2143
|
trace?: never;
|
|
2076
2144
|
};
|
|
2145
|
+
"/properties/{id}/theme": {
|
|
2146
|
+
parameters: {
|
|
2147
|
+
query?: never;
|
|
2148
|
+
header?: never;
|
|
2149
|
+
path?: never;
|
|
2150
|
+
cookie?: never;
|
|
2151
|
+
};
|
|
2152
|
+
/**
|
|
2153
|
+
* Get the property's theme state
|
|
2154
|
+
* @description Returns `{ current, live, versions }`. `current` is the row the CMS is editing — the draft if one exists, else the live row. `live` is the currently-live row (or null if never published). `versions` is every published + archived row, newest-first.
|
|
2155
|
+
*
|
|
2156
|
+
* The Publish button is enabled iff `current.status === "draft"`.
|
|
2157
|
+
*/
|
|
2158
|
+
get: operations["getPropertyTheme"];
|
|
2159
|
+
put?: never;
|
|
2160
|
+
post?: never;
|
|
2161
|
+
delete?: never;
|
|
2162
|
+
options?: never;
|
|
2163
|
+
head?: never;
|
|
2164
|
+
patch?: never;
|
|
2165
|
+
trace?: never;
|
|
2166
|
+
};
|
|
2167
|
+
"/properties/{id}/theme/draft": {
|
|
2168
|
+
parameters: {
|
|
2169
|
+
query?: never;
|
|
2170
|
+
header?: never;
|
|
2171
|
+
path?: never;
|
|
2172
|
+
cookie?: never;
|
|
2173
|
+
};
|
|
2174
|
+
get?: never;
|
|
2175
|
+
/**
|
|
2176
|
+
* Save the theme draft (creates one if needed)
|
|
2177
|
+
* @description Replace-style upsert of the draft. If no draft row exists, the API creates one by forking from the live row (parent_id = live.id). If a draft already exists, it is updated in place. The provided `fonts` array becomes the new draft font set (the old set is dropped).
|
|
2178
|
+
*/
|
|
2179
|
+
put: operations["updatePropertyThemeDraft"];
|
|
2180
|
+
post?: never;
|
|
2181
|
+
/**
|
|
2182
|
+
* Discard the in-progress draft
|
|
2183
|
+
* @description Deletes the draft row. After this call the CMS shows the live row as `current` (read-only baseline) and the Publish button becomes disabled. Idempotent — succeeds even if no draft exists.
|
|
2184
|
+
*/
|
|
2185
|
+
delete: operations["discardPropertyThemeDraft"];
|
|
2186
|
+
options?: never;
|
|
2187
|
+
head?: never;
|
|
2188
|
+
patch?: never;
|
|
2189
|
+
trace?: never;
|
|
2190
|
+
};
|
|
2191
|
+
"/properties/{id}/theme/publish": {
|
|
2192
|
+
parameters: {
|
|
2193
|
+
query?: never;
|
|
2194
|
+
header?: never;
|
|
2195
|
+
path?: never;
|
|
2196
|
+
cookie?: never;
|
|
2197
|
+
};
|
|
2198
|
+
get?: never;
|
|
2199
|
+
put?: never;
|
|
2200
|
+
/**
|
|
2201
|
+
* Publish the current draft
|
|
2202
|
+
* @description The draft row graduates to `status='published'` with `version = max(version) + 1` and an optional `message`. The previously-live row, if any, is demoted to `status='archived'`. If the property now has more than 5 published+archived rows, the oldest archived row is hard-deleted. Returns the updated `{ current, live, versions }`.
|
|
2203
|
+
*
|
|
2204
|
+
* 422 if there is no draft to publish.
|
|
2205
|
+
*/
|
|
2206
|
+
post: operations["publishPropertyTheme"];
|
|
2207
|
+
delete?: never;
|
|
2208
|
+
options?: never;
|
|
2209
|
+
head?: never;
|
|
2210
|
+
patch?: never;
|
|
2211
|
+
trace?: never;
|
|
2212
|
+
};
|
|
2213
|
+
"/properties/{id}/theme/versions": {
|
|
2214
|
+
parameters: {
|
|
2215
|
+
query?: never;
|
|
2216
|
+
header?: never;
|
|
2217
|
+
path?: never;
|
|
2218
|
+
cookie?: never;
|
|
2219
|
+
};
|
|
2220
|
+
/**
|
|
2221
|
+
* List published + archived versions of the theme
|
|
2222
|
+
* @description Newest-first list of every row with `status` in {`published`, `archived`}. The live one has `is_published: true`. Up to 5 rows are kept; the oldest archived row is pruned on publish when the cap is exceeded. The in-progress draft (if any) does NOT appear here — it's surfaced as `state.current` from GET /theme.
|
|
2223
|
+
*/
|
|
2224
|
+
get: operations["listPropertyThemeVersions"];
|
|
2225
|
+
put?: never;
|
|
2226
|
+
post?: never;
|
|
2227
|
+
delete?: never;
|
|
2228
|
+
options?: never;
|
|
2229
|
+
head?: never;
|
|
2230
|
+
patch?: never;
|
|
2231
|
+
trace?: never;
|
|
2232
|
+
};
|
|
2233
|
+
"/properties/{id}/theme/versions/{version_id}": {
|
|
2234
|
+
parameters: {
|
|
2235
|
+
query?: never;
|
|
2236
|
+
header?: never;
|
|
2237
|
+
path?: never;
|
|
2238
|
+
cookie?: never;
|
|
2239
|
+
};
|
|
2240
|
+
/**
|
|
2241
|
+
* Get a single published/archived version with full config + fonts
|
|
2242
|
+
* @description Used by the CMS to render a past version in the styler in read-only mode. To make it live, call POST /properties/{id}/theme/versions/{version_id}/publish.
|
|
2243
|
+
*/
|
|
2244
|
+
get: operations["getPropertyThemeVersion"];
|
|
2245
|
+
put?: never;
|
|
2246
|
+
post?: never;
|
|
2247
|
+
delete?: never;
|
|
2248
|
+
options?: never;
|
|
2249
|
+
head?: never;
|
|
2250
|
+
patch?: never;
|
|
2251
|
+
trace?: never;
|
|
2252
|
+
};
|
|
2253
|
+
"/properties/{id}/theme/versions/{version_id}/publish": {
|
|
2254
|
+
parameters: {
|
|
2255
|
+
query?: never;
|
|
2256
|
+
header?: never;
|
|
2257
|
+
path?: never;
|
|
2258
|
+
cookie?: never;
|
|
2259
|
+
};
|
|
2260
|
+
get?: never;
|
|
2261
|
+
put?: never;
|
|
2262
|
+
/**
|
|
2263
|
+
* Publish a past version (rollback)
|
|
2264
|
+
* @description Make this past version the live one in a single shot.
|
|
2265
|
+
*
|
|
2266
|
+
* - Every row with `version > target.version` is hard-deleted (the previously-live row and any newer archived rows).
|
|
2267
|
+
* - Any in-progress draft is also deleted. The FE must warn the user about unsaved changes BEFORE calling this endpoint.
|
|
2268
|
+
* - The target row's `status` is flipped from `archived` to `published`. Its `version`, `message`, `published_at`, and `published_by_user_id` are preserved (this is a re-promotion, not a new commit).
|
|
2269
|
+
*
|
|
2270
|
+
* Idempotent: if the target is already live (status='published'), returns the current state without changes.
|
|
2271
|
+
*/
|
|
2272
|
+
post: operations["publishPropertyThemeVersion"];
|
|
2273
|
+
delete?: never;
|
|
2274
|
+
options?: never;
|
|
2275
|
+
head?: never;
|
|
2276
|
+
patch?: never;
|
|
2277
|
+
trace?: never;
|
|
2278
|
+
};
|
|
2077
2279
|
"/units": {
|
|
2078
2280
|
parameters: {
|
|
2079
2281
|
query?: never;
|
|
@@ -2529,7 +2731,7 @@ export interface components {
|
|
|
2529
2731
|
* @description Render status for this style on the floor plan
|
|
2530
2732
|
* @enum {string}
|
|
2531
2733
|
*/
|
|
2532
|
-
status?: "UN_RENDERED" | "RENDERING" | "RENDERED" | "FAILED";
|
|
2734
|
+
status?: "UN_RENDERED" | "IN_QUEUE" | "RENDERING" | "RENDERED" | "FAILED";
|
|
2533
2735
|
};
|
|
2534
2736
|
/** @description Floor plan with associated rooms and styles */
|
|
2535
2737
|
FloorPlan: {
|
|
@@ -2673,23 +2875,23 @@ export interface components {
|
|
|
2673
2875
|
/** @description Furniture category */
|
|
2674
2876
|
category?: string;
|
|
2675
2877
|
/** @description Width dimension */
|
|
2676
|
-
width?:
|
|
2878
|
+
width?: number | null;
|
|
2677
2879
|
/** @description Depth dimension */
|
|
2678
|
-
depth?:
|
|
2880
|
+
depth?: number | null;
|
|
2679
2881
|
/** @description Height dimension */
|
|
2680
|
-
height?:
|
|
2882
|
+
height?: number | null;
|
|
2681
2883
|
/**
|
|
2682
2884
|
* @description Stock availability status
|
|
2683
2885
|
* @enum {string}
|
|
2684
2886
|
*/
|
|
2685
|
-
availability?: "IN_STOCK" | "OUT_OF_STOCK";
|
|
2887
|
+
availability?: "IN_STOCK" | "OUT_OF_STOCK" | "SOLD_OUT" | "WAIT_LIST";
|
|
2686
2888
|
/** @description Price as formatted string */
|
|
2687
2889
|
price?: string;
|
|
2688
2890
|
/**
|
|
2689
2891
|
* @description Price currency
|
|
2690
2892
|
* @enum {string}
|
|
2691
2893
|
*/
|
|
2692
|
-
currency?: "USD" | "EUR";
|
|
2894
|
+
currency?: "USD" | "EUR" | "GBP";
|
|
2693
2895
|
/** @description Brand name */
|
|
2694
2896
|
brand_name?: string;
|
|
2695
2897
|
/** @description Retailer name */
|
|
@@ -2895,6 +3097,92 @@ export interface components {
|
|
|
2895
3097
|
/** @description Service-specific additional data (e.g. Hyly URL, Bozzuto siteId) */
|
|
2896
3098
|
additional_data?: Record<string, never>;
|
|
2897
3099
|
};
|
|
3100
|
+
/** @description Design-token JSON shared by CMS styler and Embed app. Stored in every row of property_themes. */
|
|
3101
|
+
ThemeConfig: {
|
|
3102
|
+
/** @description H1 / hero heading size in px */
|
|
3103
|
+
heading_size: number;
|
|
3104
|
+
/** @description H2 / subheading size in px */
|
|
3105
|
+
subheading_size: number;
|
|
3106
|
+
/** @description Body text size in px */
|
|
3107
|
+
body_size: number;
|
|
3108
|
+
/** @description Captions / small text size in px */
|
|
3109
|
+
small_body_size: number;
|
|
3110
|
+
/** @description Page background color */
|
|
3111
|
+
color_bg: string;
|
|
3112
|
+
/** @description Primary text color */
|
|
3113
|
+
color_text: string;
|
|
3114
|
+
/** @description Secondary / muted text color */
|
|
3115
|
+
color_text_muted: string;
|
|
3116
|
+
/** @description Primary button background */
|
|
3117
|
+
color_primary_btn_bg: string;
|
|
3118
|
+
/** @description Primary button label color */
|
|
3119
|
+
color_primary_btn_text: string;
|
|
3120
|
+
/** @description Default border color */
|
|
3121
|
+
color_secondary_border: string;
|
|
3122
|
+
/** @description Anchor / link color */
|
|
3123
|
+
color_link: string;
|
|
3124
|
+
/** @description Text color used on darker card surfaces */
|
|
3125
|
+
color_card_text: string;
|
|
3126
|
+
/** @description Button corner radius in px */
|
|
3127
|
+
radius_button: number;
|
|
3128
|
+
/** @description Card corner radius in px */
|
|
3129
|
+
radius_card: number;
|
|
3130
|
+
};
|
|
3131
|
+
/**
|
|
3132
|
+
* @description Which slot the font fills
|
|
3133
|
+
* @enum {string}
|
|
3134
|
+
*/
|
|
3135
|
+
ThemeFontRole: "BODY" | "HEADING";
|
|
3136
|
+
/**
|
|
3137
|
+
* @description Font style
|
|
3138
|
+
* @enum {string}
|
|
3139
|
+
*/
|
|
3140
|
+
FontStyle: "NORMAL" | "ITALIC";
|
|
3141
|
+
/**
|
|
3142
|
+
* @description Supported font file formats
|
|
3143
|
+
* @enum {string}
|
|
3144
|
+
*/
|
|
3145
|
+
FontFormat: "WOFF2" | "WOFF" | "TTF" | "OTF";
|
|
3146
|
+
/** @description An entry in a user's font library */
|
|
3147
|
+
UserFont: {
|
|
3148
|
+
/** @description Font ID */
|
|
3149
|
+
id: number;
|
|
3150
|
+
/** @description Display name shown in the CMS picker */
|
|
3151
|
+
family: string;
|
|
3152
|
+
/** @description Font weight, e.g. 400, 700 */
|
|
3153
|
+
weight: number;
|
|
3154
|
+
style: components["schemas"]["FontStyle"];
|
|
3155
|
+
format: components["schemas"]["FontFormat"];
|
|
3156
|
+
/** @description Hidden from picker but kept around; does not count toward the 5-font limit */
|
|
3157
|
+
is_archived: boolean;
|
|
3158
|
+
/** @description S3 object key under assets/fonts/ */
|
|
3159
|
+
asset_key: string;
|
|
3160
|
+
/** @description Public CDN URL the browser fetches the font from */
|
|
3161
|
+
url: string;
|
|
3162
|
+
/**
|
|
3163
|
+
* Format: date-time
|
|
3164
|
+
* @description Creation timestamp
|
|
3165
|
+
*/
|
|
3166
|
+
created_at: string;
|
|
3167
|
+
/**
|
|
3168
|
+
* Format: date-time
|
|
3169
|
+
* @description Last update timestamp
|
|
3170
|
+
*/
|
|
3171
|
+
updated_at: string;
|
|
3172
|
+
};
|
|
3173
|
+
/** @description Theme font assignment with the UserFont expanded */
|
|
3174
|
+
ThemeFontRef: {
|
|
3175
|
+
font_id: number;
|
|
3176
|
+
role: components["schemas"]["ThemeFontRole"];
|
|
3177
|
+
font: components["schemas"]["UserFont"];
|
|
3178
|
+
};
|
|
3179
|
+
/** @description The currently-live theme as served to the Embed app. When the property has no published row yet, `config` is the system default and `fonts` is empty (Embed should fall back to its built-in stack). */
|
|
3180
|
+
EmbedTheme: {
|
|
3181
|
+
config: components["schemas"]["ThemeConfig"];
|
|
3182
|
+
fonts: components["schemas"]["ThemeFontRef"][];
|
|
3183
|
+
/** @description Published version number, or null when the property has never published */
|
|
3184
|
+
version: number | null;
|
|
3185
|
+
};
|
|
2898
3186
|
/** @description Full property data returned by the embed API */
|
|
2899
3187
|
PropertyResponseData: {
|
|
2900
3188
|
/** @description Property ID */
|
|
@@ -2951,6 +3239,7 @@ export interface components {
|
|
|
2951
3239
|
lead_video?: components["schemas"]["Media"];
|
|
2952
3240
|
/** @description Active external service integrations */
|
|
2953
3241
|
external_services?: components["schemas"]["ExternalServiceConfig"][];
|
|
3242
|
+
theme?: components["schemas"]["EmbedTheme"];
|
|
2954
3243
|
};
|
|
2955
3244
|
/** @description Embed property details response */
|
|
2956
3245
|
PropertyResponse: {
|
|
@@ -3245,6 +3534,117 @@ export interface components {
|
|
|
3245
3534
|
filter_id: number;
|
|
3246
3535
|
};
|
|
3247
3536
|
};
|
|
3537
|
+
/** @description List of the user's fonts */
|
|
3538
|
+
UserFontsListResponse: {
|
|
3539
|
+
/** @description The user's fonts */
|
|
3540
|
+
data: components["schemas"]["UserFont"][];
|
|
3541
|
+
};
|
|
3542
|
+
/** @description Single font response */
|
|
3543
|
+
UserFontResponse: {
|
|
3544
|
+
data: components["schemas"]["UserFont"];
|
|
3545
|
+
};
|
|
3546
|
+
/** @description Pre-signed URL for direct-to-S3 font upload */
|
|
3547
|
+
FontUploadUrlResponse: {
|
|
3548
|
+
/** @description Upload target */
|
|
3549
|
+
data: {
|
|
3550
|
+
/** @description Pre-signed S3 PUT URL */
|
|
3551
|
+
upload_url: string;
|
|
3552
|
+
/** @description S3 object key the client should later submit to POST /fonts */
|
|
3553
|
+
asset_key: string;
|
|
3554
|
+
};
|
|
3555
|
+
};
|
|
3556
|
+
/** @description A single reference to the font from a currently-published theme version */
|
|
3557
|
+
FontUsageItem: {
|
|
3558
|
+
property_id: number;
|
|
3559
|
+
property_name: string;
|
|
3560
|
+
theme_id: number;
|
|
3561
|
+
/** @description Published version number that references this font */
|
|
3562
|
+
version: number;
|
|
3563
|
+
/** @enum {string} */
|
|
3564
|
+
role: "BODY" | "HEADING";
|
|
3565
|
+
};
|
|
3566
|
+
/** @description Returned with HTTP 409 when attempting to delete a font that is referenced by a currently-published theme version */
|
|
3567
|
+
FontInUseConflictResponse: {
|
|
3568
|
+
/** @description Conflict detail */
|
|
3569
|
+
error: {
|
|
3570
|
+
/** @enum {string} */
|
|
3571
|
+
message: "FONT_USED_IN_PUBLISHED_VERSION";
|
|
3572
|
+
/** @description Where the font is currently referenced */
|
|
3573
|
+
details: {
|
|
3574
|
+
usages: components["schemas"]["FontUsageItem"][];
|
|
3575
|
+
};
|
|
3576
|
+
};
|
|
3577
|
+
};
|
|
3578
|
+
/**
|
|
3579
|
+
* @description Lifecycle state of a theme row. At most one row per property may be in draft or published at a time; archived rows are historical published rows kept for rollback.
|
|
3580
|
+
* @enum {string}
|
|
3581
|
+
*/
|
|
3582
|
+
ThemeStatus: "draft" | "published" | "archived";
|
|
3583
|
+
/** @description A (font, role) pair sent by the CMS in draft updates */
|
|
3584
|
+
ThemeFontAssignment: {
|
|
3585
|
+
/** @description UserFont ID */
|
|
3586
|
+
font_id: number;
|
|
3587
|
+
role: components["schemas"]["ThemeFontRole"];
|
|
3588
|
+
};
|
|
3589
|
+
/** @description One row from property_themes */
|
|
3590
|
+
ThemeRow: {
|
|
3591
|
+
/** @description Row id (also the version id for published+archived rows) */
|
|
3592
|
+
id: number;
|
|
3593
|
+
property_id: number;
|
|
3594
|
+
/** @description id of the row this was forked from (null for the very first row) */
|
|
3595
|
+
parent_id: number | null;
|
|
3596
|
+
/** @description Monotonic version number per property. null while status=draft. */
|
|
3597
|
+
version: number | null;
|
|
3598
|
+
status: components["schemas"]["ThemeStatus"];
|
|
3599
|
+
config: components["schemas"]["ThemeConfig"];
|
|
3600
|
+
fonts: components["schemas"]["ThemeFontRef"][];
|
|
3601
|
+
message: string | null;
|
|
3602
|
+
/** Format: date-time */
|
|
3603
|
+
published_at: string | null;
|
|
3604
|
+
/** Format: date-time */
|
|
3605
|
+
created_at: string;
|
|
3606
|
+
/** Format: date-time */
|
|
3607
|
+
updated_at: string;
|
|
3608
|
+
};
|
|
3609
|
+
/** @description Lightweight version row used in the versions list */
|
|
3610
|
+
ThemeVersionSummary: {
|
|
3611
|
+
id: number;
|
|
3612
|
+
/** @description Monotonic per-property version number */
|
|
3613
|
+
version: number;
|
|
3614
|
+
/** @enum {string} */
|
|
3615
|
+
status: "published" | "archived";
|
|
3616
|
+
/** @description Convenience: status === "published" */
|
|
3617
|
+
is_published: boolean;
|
|
3618
|
+
message: string | null;
|
|
3619
|
+
/** Format: date-time */
|
|
3620
|
+
published_at: string | null;
|
|
3621
|
+
/** Format: date-time */
|
|
3622
|
+
created_at: string;
|
|
3623
|
+
};
|
|
3624
|
+
/** @description Full theme state returned by GET /properties/{id}/theme */
|
|
3625
|
+
ThemeState: {
|
|
3626
|
+
current: components["schemas"]["ThemeRow"];
|
|
3627
|
+
live?: components["schemas"]["ThemeRow"];
|
|
3628
|
+
versions: components["schemas"]["ThemeVersionSummary"][];
|
|
3629
|
+
};
|
|
3630
|
+
ThemeStateResponse: {
|
|
3631
|
+
data: components["schemas"]["ThemeState"];
|
|
3632
|
+
};
|
|
3633
|
+
ThemeRowResponse: {
|
|
3634
|
+
data: components["schemas"]["ThemeRow"];
|
|
3635
|
+
};
|
|
3636
|
+
ThemeVersionsListResponse: {
|
|
3637
|
+
data: components["schemas"]["ThemeVersionSummary"][];
|
|
3638
|
+
};
|
|
3639
|
+
/** @description Replace-style update. The provided fonts become the new draft font set; the prior set (if any) is dropped. */
|
|
3640
|
+
UpdateThemeDraftPayload: {
|
|
3641
|
+
config: components["schemas"]["ThemeConfig"];
|
|
3642
|
+
fonts: components["schemas"]["ThemeFontAssignment"][];
|
|
3643
|
+
};
|
|
3644
|
+
PublishThemePayload: {
|
|
3645
|
+
/** @description Optional commit-style note shown in the version list */
|
|
3646
|
+
message?: string;
|
|
3647
|
+
};
|
|
3248
3648
|
};
|
|
3249
3649
|
responses: never;
|
|
3250
3650
|
parameters: never;
|
|
@@ -4401,13 +4801,10 @@ export interface operations {
|
|
|
4401
4801
|
};
|
|
4402
4802
|
};
|
|
4403
4803
|
};
|
|
4404
|
-
|
|
4804
|
+
listUserFonts: {
|
|
4405
4805
|
parameters: {
|
|
4406
4806
|
query?: {
|
|
4407
|
-
|
|
4408
|
-
limit?: number;
|
|
4409
|
-
search?: string;
|
|
4410
|
-
sort_order?: "asc" | "desc";
|
|
4807
|
+
include_archived?: "true" | "false";
|
|
4411
4808
|
};
|
|
4412
4809
|
header?: never;
|
|
4413
4810
|
path?: never;
|
|
@@ -4421,12 +4818,26 @@ export interface operations {
|
|
|
4421
4818
|
[name: string]: unknown;
|
|
4422
4819
|
};
|
|
4423
4820
|
content: {
|
|
4424
|
-
"application/json": components["schemas"]["
|
|
4821
|
+
"application/json": components["schemas"]["UserFontsListResponse"];
|
|
4822
|
+
};
|
|
4823
|
+
};
|
|
4824
|
+
/** @description Unauthorized */
|
|
4825
|
+
401: {
|
|
4826
|
+
headers: {
|
|
4827
|
+
[name: string]: unknown;
|
|
4828
|
+
};
|
|
4829
|
+
content?: never;
|
|
4830
|
+
};
|
|
4831
|
+
/** @description Internal Server Error */
|
|
4832
|
+
500: {
|
|
4833
|
+
headers: {
|
|
4834
|
+
[name: string]: unknown;
|
|
4425
4835
|
};
|
|
4836
|
+
content?: never;
|
|
4426
4837
|
};
|
|
4427
4838
|
};
|
|
4428
4839
|
};
|
|
4429
|
-
|
|
4840
|
+
createUserFont: {
|
|
4430
4841
|
parameters: {
|
|
4431
4842
|
query?: never;
|
|
4432
4843
|
header?: never;
|
|
@@ -4436,38 +4847,281 @@ export interface operations {
|
|
|
4436
4847
|
requestBody: {
|
|
4437
4848
|
content: {
|
|
4438
4849
|
"application/json": {
|
|
4439
|
-
|
|
4440
|
-
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
|
|
4850
|
+
/** @description S3 key returned by /fonts/upload-url */
|
|
4851
|
+
asset_key: string;
|
|
4852
|
+
/** @description Display name shown in the CMS picker */
|
|
4853
|
+
family: string;
|
|
4854
|
+
/** @description Default 400 */
|
|
4855
|
+
weight?: number;
|
|
4856
|
+
style?: components["schemas"]["FontStyle"];
|
|
4857
|
+
format: components["schemas"]["FontFormat"];
|
|
4444
4858
|
};
|
|
4445
4859
|
};
|
|
4446
4860
|
};
|
|
4447
4861
|
responses: {
|
|
4448
|
-
/** @description
|
|
4449
|
-
|
|
4862
|
+
/** @description OK */
|
|
4863
|
+
200: {
|
|
4450
4864
|
headers: {
|
|
4451
4865
|
[name: string]: unknown;
|
|
4452
4866
|
};
|
|
4453
4867
|
content: {
|
|
4454
|
-
"application/json": components["schemas"]["
|
|
4868
|
+
"application/json": components["schemas"]["UserFontResponse"];
|
|
4455
4869
|
};
|
|
4456
4870
|
};
|
|
4457
|
-
/** @description
|
|
4871
|
+
/** @description Unauthorized */
|
|
4872
|
+
401: {
|
|
4873
|
+
headers: {
|
|
4874
|
+
[name: string]: unknown;
|
|
4875
|
+
};
|
|
4876
|
+
content?: never;
|
|
4877
|
+
};
|
|
4878
|
+
/** @description Font library is full (max 5 non-archived fonts) */
|
|
4879
|
+
409: {
|
|
4880
|
+
headers: {
|
|
4881
|
+
[name: string]: unknown;
|
|
4882
|
+
};
|
|
4883
|
+
content?: never;
|
|
4884
|
+
};
|
|
4885
|
+
/** @description Validation error (e.g. asset_key not in user namespace) */
|
|
4458
4886
|
422: {
|
|
4459
4887
|
headers: {
|
|
4460
4888
|
[name: string]: unknown;
|
|
4461
4889
|
};
|
|
4462
4890
|
content?: never;
|
|
4463
4891
|
};
|
|
4892
|
+
/** @description Internal Server Error */
|
|
4893
|
+
500: {
|
|
4894
|
+
headers: {
|
|
4895
|
+
[name: string]: unknown;
|
|
4896
|
+
};
|
|
4897
|
+
content?: never;
|
|
4898
|
+
};
|
|
4464
4899
|
};
|
|
4465
4900
|
};
|
|
4466
|
-
|
|
4901
|
+
getFontUploadUrl: {
|
|
4467
4902
|
parameters: {
|
|
4468
|
-
query
|
|
4903
|
+
query: {
|
|
4904
|
+
/** @description File format; determines the S3 key extension */
|
|
4905
|
+
format: components["schemas"]["FontFormat"];
|
|
4906
|
+
};
|
|
4469
4907
|
header?: never;
|
|
4470
|
-
path
|
|
4908
|
+
path?: never;
|
|
4909
|
+
cookie?: never;
|
|
4910
|
+
};
|
|
4911
|
+
requestBody?: never;
|
|
4912
|
+
responses: {
|
|
4913
|
+
/** @description OK */
|
|
4914
|
+
200: {
|
|
4915
|
+
headers: {
|
|
4916
|
+
[name: string]: unknown;
|
|
4917
|
+
};
|
|
4918
|
+
content: {
|
|
4919
|
+
"application/json": components["schemas"]["FontUploadUrlResponse"];
|
|
4920
|
+
};
|
|
4921
|
+
};
|
|
4922
|
+
/** @description Unauthorized */
|
|
4923
|
+
401: {
|
|
4924
|
+
headers: {
|
|
4925
|
+
[name: string]: unknown;
|
|
4926
|
+
};
|
|
4927
|
+
content?: never;
|
|
4928
|
+
};
|
|
4929
|
+
/** @description Font library is full (max 5 non-archived fonts) */
|
|
4930
|
+
409: {
|
|
4931
|
+
headers: {
|
|
4932
|
+
[name: string]: unknown;
|
|
4933
|
+
};
|
|
4934
|
+
content?: never;
|
|
4935
|
+
};
|
|
4936
|
+
/** @description Internal Server Error */
|
|
4937
|
+
500: {
|
|
4938
|
+
headers: {
|
|
4939
|
+
[name: string]: unknown;
|
|
4940
|
+
};
|
|
4941
|
+
content?: never;
|
|
4942
|
+
};
|
|
4943
|
+
};
|
|
4944
|
+
};
|
|
4945
|
+
updateUserFont: {
|
|
4946
|
+
parameters: {
|
|
4947
|
+
query?: never;
|
|
4948
|
+
header?: never;
|
|
4949
|
+
path: {
|
|
4950
|
+
id: number;
|
|
4951
|
+
};
|
|
4952
|
+
cookie?: never;
|
|
4953
|
+
};
|
|
4954
|
+
requestBody: {
|
|
4955
|
+
content: {
|
|
4956
|
+
"application/json": {
|
|
4957
|
+
family?: string;
|
|
4958
|
+
is_archived?: boolean;
|
|
4959
|
+
};
|
|
4960
|
+
};
|
|
4961
|
+
};
|
|
4962
|
+
responses: {
|
|
4963
|
+
/** @description OK */
|
|
4964
|
+
200: {
|
|
4965
|
+
headers: {
|
|
4966
|
+
[name: string]: unknown;
|
|
4967
|
+
};
|
|
4968
|
+
content: {
|
|
4969
|
+
"application/json": components["schemas"]["UserFontResponse"];
|
|
4970
|
+
};
|
|
4971
|
+
};
|
|
4972
|
+
/** @description Unauthorized */
|
|
4973
|
+
401: {
|
|
4974
|
+
headers: {
|
|
4975
|
+
[name: string]: unknown;
|
|
4976
|
+
};
|
|
4977
|
+
content?: never;
|
|
4978
|
+
};
|
|
4979
|
+
/** @description Font not found */
|
|
4980
|
+
404: {
|
|
4981
|
+
headers: {
|
|
4982
|
+
[name: string]: unknown;
|
|
4983
|
+
};
|
|
4984
|
+
content?: never;
|
|
4985
|
+
};
|
|
4986
|
+
/** @description Validation error */
|
|
4987
|
+
422: {
|
|
4988
|
+
headers: {
|
|
4989
|
+
[name: string]: unknown;
|
|
4990
|
+
};
|
|
4991
|
+
content?: never;
|
|
4992
|
+
};
|
|
4993
|
+
/** @description Internal Server Error */
|
|
4994
|
+
500: {
|
|
4995
|
+
headers: {
|
|
4996
|
+
[name: string]: unknown;
|
|
4997
|
+
};
|
|
4998
|
+
content?: never;
|
|
4999
|
+
};
|
|
5000
|
+
};
|
|
5001
|
+
};
|
|
5002
|
+
deleteUserFont: {
|
|
5003
|
+
parameters: {
|
|
5004
|
+
query?: never;
|
|
5005
|
+
header?: never;
|
|
5006
|
+
path: {
|
|
5007
|
+
id: number;
|
|
5008
|
+
};
|
|
5009
|
+
cookie?: never;
|
|
5010
|
+
};
|
|
5011
|
+
requestBody?: never;
|
|
5012
|
+
responses: {
|
|
5013
|
+
/** @description OK */
|
|
5014
|
+
200: {
|
|
5015
|
+
headers: {
|
|
5016
|
+
[name: string]: unknown;
|
|
5017
|
+
};
|
|
5018
|
+
content: {
|
|
5019
|
+
"application/json": {
|
|
5020
|
+
data: {
|
|
5021
|
+
id: number;
|
|
5022
|
+
};
|
|
5023
|
+
};
|
|
5024
|
+
};
|
|
5025
|
+
};
|
|
5026
|
+
/** @description Unauthorized */
|
|
5027
|
+
401: {
|
|
5028
|
+
headers: {
|
|
5029
|
+
[name: string]: unknown;
|
|
5030
|
+
};
|
|
5031
|
+
content?: never;
|
|
5032
|
+
};
|
|
5033
|
+
/** @description Font not found */
|
|
5034
|
+
404: {
|
|
5035
|
+
headers: {
|
|
5036
|
+
[name: string]: unknown;
|
|
5037
|
+
};
|
|
5038
|
+
content?: never;
|
|
5039
|
+
};
|
|
5040
|
+
/** @description Font is in use by a currently-published theme version. The response body lists the affected properties / themes / roles. */
|
|
5041
|
+
409: {
|
|
5042
|
+
headers: {
|
|
5043
|
+
[name: string]: unknown;
|
|
5044
|
+
};
|
|
5045
|
+
content: {
|
|
5046
|
+
"application/json": components["schemas"]["FontInUseConflictResponse"];
|
|
5047
|
+
};
|
|
5048
|
+
};
|
|
5049
|
+
/** @description Internal Server Error */
|
|
5050
|
+
500: {
|
|
5051
|
+
headers: {
|
|
5052
|
+
[name: string]: unknown;
|
|
5053
|
+
};
|
|
5054
|
+
content?: never;
|
|
5055
|
+
};
|
|
5056
|
+
};
|
|
5057
|
+
};
|
|
5058
|
+
listFloorPlans: {
|
|
5059
|
+
parameters: {
|
|
5060
|
+
query?: {
|
|
5061
|
+
page?: number;
|
|
5062
|
+
limit?: number;
|
|
5063
|
+
search?: string;
|
|
5064
|
+
sort_order?: "asc" | "desc";
|
|
5065
|
+
};
|
|
5066
|
+
header?: never;
|
|
5067
|
+
path?: never;
|
|
5068
|
+
cookie?: never;
|
|
5069
|
+
};
|
|
5070
|
+
requestBody?: never;
|
|
5071
|
+
responses: {
|
|
5072
|
+
/** @description OK */
|
|
5073
|
+
200: {
|
|
5074
|
+
headers: {
|
|
5075
|
+
[name: string]: unknown;
|
|
5076
|
+
};
|
|
5077
|
+
content: {
|
|
5078
|
+
"application/json": components["schemas"]["FloorPlan"][];
|
|
5079
|
+
};
|
|
5080
|
+
};
|
|
5081
|
+
};
|
|
5082
|
+
};
|
|
5083
|
+
createFloorPlan: {
|
|
5084
|
+
parameters: {
|
|
5085
|
+
query?: never;
|
|
5086
|
+
header?: never;
|
|
5087
|
+
path?: never;
|
|
5088
|
+
cookie?: never;
|
|
5089
|
+
};
|
|
5090
|
+
requestBody: {
|
|
5091
|
+
content: {
|
|
5092
|
+
"application/json": {
|
|
5093
|
+
name: string;
|
|
5094
|
+
description?: string;
|
|
5095
|
+
customer_id: number;
|
|
5096
|
+
render_version?: number;
|
|
5097
|
+
property_ids: number[];
|
|
5098
|
+
};
|
|
5099
|
+
};
|
|
5100
|
+
};
|
|
5101
|
+
responses: {
|
|
5102
|
+
/** @description Created */
|
|
5103
|
+
201: {
|
|
5104
|
+
headers: {
|
|
5105
|
+
[name: string]: unknown;
|
|
5106
|
+
};
|
|
5107
|
+
content: {
|
|
5108
|
+
"application/json": components["schemas"]["FloorPlan"];
|
|
5109
|
+
};
|
|
5110
|
+
};
|
|
5111
|
+
/** @description Unprocessable Entity */
|
|
5112
|
+
422: {
|
|
5113
|
+
headers: {
|
|
5114
|
+
[name: string]: unknown;
|
|
5115
|
+
};
|
|
5116
|
+
content?: never;
|
|
5117
|
+
};
|
|
5118
|
+
};
|
|
5119
|
+
};
|
|
5120
|
+
getFloorPlan: {
|
|
5121
|
+
parameters: {
|
|
5122
|
+
query?: never;
|
|
5123
|
+
header?: never;
|
|
5124
|
+
path: {
|
|
4471
5125
|
id: number;
|
|
4472
5126
|
};
|
|
4473
5127
|
cookie?: never;
|
|
@@ -6872,8 +7526,8 @@ export interface operations {
|
|
|
6872
7526
|
page?: number;
|
|
6873
7527
|
limit?: number;
|
|
6874
7528
|
search?: string;
|
|
6875
|
-
|
|
6876
|
-
|
|
7529
|
+
sort_by?: "created_at" | "status";
|
|
7530
|
+
sort_direction?: "asc" | "desc";
|
|
6877
7531
|
};
|
|
6878
7532
|
header?: never;
|
|
6879
7533
|
path?: never;
|
|
@@ -7690,6 +8344,331 @@ export interface operations {
|
|
|
7690
8344
|
};
|
|
7691
8345
|
};
|
|
7692
8346
|
};
|
|
8347
|
+
getPropertyTheme: {
|
|
8348
|
+
parameters: {
|
|
8349
|
+
query?: never;
|
|
8350
|
+
header?: never;
|
|
8351
|
+
path: {
|
|
8352
|
+
id: number;
|
|
8353
|
+
};
|
|
8354
|
+
cookie?: never;
|
|
8355
|
+
};
|
|
8356
|
+
requestBody?: never;
|
|
8357
|
+
responses: {
|
|
8358
|
+
/** @description OK */
|
|
8359
|
+
200: {
|
|
8360
|
+
headers: {
|
|
8361
|
+
[name: string]: unknown;
|
|
8362
|
+
};
|
|
8363
|
+
content: {
|
|
8364
|
+
"application/json": components["schemas"]["ThemeStateResponse"];
|
|
8365
|
+
};
|
|
8366
|
+
};
|
|
8367
|
+
/** @description Unauthorized */
|
|
8368
|
+
401: {
|
|
8369
|
+
headers: {
|
|
8370
|
+
[name: string]: unknown;
|
|
8371
|
+
};
|
|
8372
|
+
content?: never;
|
|
8373
|
+
};
|
|
8374
|
+
/** @description Property or theme not found */
|
|
8375
|
+
404: {
|
|
8376
|
+
headers: {
|
|
8377
|
+
[name: string]: unknown;
|
|
8378
|
+
};
|
|
8379
|
+
content?: never;
|
|
8380
|
+
};
|
|
8381
|
+
/** @description Internal Server Error */
|
|
8382
|
+
500: {
|
|
8383
|
+
headers: {
|
|
8384
|
+
[name: string]: unknown;
|
|
8385
|
+
};
|
|
8386
|
+
content?: never;
|
|
8387
|
+
};
|
|
8388
|
+
};
|
|
8389
|
+
};
|
|
8390
|
+
updatePropertyThemeDraft: {
|
|
8391
|
+
parameters: {
|
|
8392
|
+
query?: never;
|
|
8393
|
+
header?: never;
|
|
8394
|
+
path: {
|
|
8395
|
+
id: number;
|
|
8396
|
+
};
|
|
8397
|
+
cookie?: never;
|
|
8398
|
+
};
|
|
8399
|
+
requestBody: {
|
|
8400
|
+
content: {
|
|
8401
|
+
"application/json": components["schemas"]["UpdateThemeDraftPayload"];
|
|
8402
|
+
};
|
|
8403
|
+
};
|
|
8404
|
+
responses: {
|
|
8405
|
+
/** @description OK */
|
|
8406
|
+
200: {
|
|
8407
|
+
headers: {
|
|
8408
|
+
[name: string]: unknown;
|
|
8409
|
+
};
|
|
8410
|
+
content: {
|
|
8411
|
+
"application/json": components["schemas"]["ThemeStateResponse"];
|
|
8412
|
+
};
|
|
8413
|
+
};
|
|
8414
|
+
/** @description Unauthorized */
|
|
8415
|
+
401: {
|
|
8416
|
+
headers: {
|
|
8417
|
+
[name: string]: unknown;
|
|
8418
|
+
};
|
|
8419
|
+
content?: never;
|
|
8420
|
+
};
|
|
8421
|
+
/** @description Property or theme not found */
|
|
8422
|
+
404: {
|
|
8423
|
+
headers: {
|
|
8424
|
+
[name: string]: unknown;
|
|
8425
|
+
};
|
|
8426
|
+
content?: never;
|
|
8427
|
+
};
|
|
8428
|
+
/** @description Validation error (invalid config shape, duplicate role in fonts, or font_id not owned by user / archived) */
|
|
8429
|
+
422: {
|
|
8430
|
+
headers: {
|
|
8431
|
+
[name: string]: unknown;
|
|
8432
|
+
};
|
|
8433
|
+
content?: never;
|
|
8434
|
+
};
|
|
8435
|
+
/** @description Internal Server Error */
|
|
8436
|
+
500: {
|
|
8437
|
+
headers: {
|
|
8438
|
+
[name: string]: unknown;
|
|
8439
|
+
};
|
|
8440
|
+
content?: never;
|
|
8441
|
+
};
|
|
8442
|
+
};
|
|
8443
|
+
};
|
|
8444
|
+
discardPropertyThemeDraft: {
|
|
8445
|
+
parameters: {
|
|
8446
|
+
query?: never;
|
|
8447
|
+
header?: never;
|
|
8448
|
+
path: {
|
|
8449
|
+
id: number;
|
|
8450
|
+
};
|
|
8451
|
+
cookie?: never;
|
|
8452
|
+
};
|
|
8453
|
+
requestBody?: never;
|
|
8454
|
+
responses: {
|
|
8455
|
+
/** @description OK */
|
|
8456
|
+
200: {
|
|
8457
|
+
headers: {
|
|
8458
|
+
[name: string]: unknown;
|
|
8459
|
+
};
|
|
8460
|
+
content: {
|
|
8461
|
+
"application/json": components["schemas"]["ThemeStateResponse"];
|
|
8462
|
+
};
|
|
8463
|
+
};
|
|
8464
|
+
/** @description Unauthorized */
|
|
8465
|
+
401: {
|
|
8466
|
+
headers: {
|
|
8467
|
+
[name: string]: unknown;
|
|
8468
|
+
};
|
|
8469
|
+
content?: never;
|
|
8470
|
+
};
|
|
8471
|
+
/** @description Property or theme not found */
|
|
8472
|
+
404: {
|
|
8473
|
+
headers: {
|
|
8474
|
+
[name: string]: unknown;
|
|
8475
|
+
};
|
|
8476
|
+
content?: never;
|
|
8477
|
+
};
|
|
8478
|
+
/** @description Internal Server Error */
|
|
8479
|
+
500: {
|
|
8480
|
+
headers: {
|
|
8481
|
+
[name: string]: unknown;
|
|
8482
|
+
};
|
|
8483
|
+
content?: never;
|
|
8484
|
+
};
|
|
8485
|
+
};
|
|
8486
|
+
};
|
|
8487
|
+
publishPropertyTheme: {
|
|
8488
|
+
parameters: {
|
|
8489
|
+
query?: never;
|
|
8490
|
+
header?: never;
|
|
8491
|
+
path: {
|
|
8492
|
+
id: number;
|
|
8493
|
+
};
|
|
8494
|
+
cookie?: never;
|
|
8495
|
+
};
|
|
8496
|
+
requestBody?: {
|
|
8497
|
+
content: {
|
|
8498
|
+
"application/json": components["schemas"]["PublishThemePayload"];
|
|
8499
|
+
};
|
|
8500
|
+
};
|
|
8501
|
+
responses: {
|
|
8502
|
+
/** @description OK */
|
|
8503
|
+
200: {
|
|
8504
|
+
headers: {
|
|
8505
|
+
[name: string]: unknown;
|
|
8506
|
+
};
|
|
8507
|
+
content: {
|
|
8508
|
+
"application/json": components["schemas"]["ThemeStateResponse"];
|
|
8509
|
+
};
|
|
8510
|
+
};
|
|
8511
|
+
/** @description Unauthorized */
|
|
8512
|
+
401: {
|
|
8513
|
+
headers: {
|
|
8514
|
+
[name: string]: unknown;
|
|
8515
|
+
};
|
|
8516
|
+
content?: never;
|
|
8517
|
+
};
|
|
8518
|
+
/** @description Property or theme not found */
|
|
8519
|
+
404: {
|
|
8520
|
+
headers: {
|
|
8521
|
+
[name: string]: unknown;
|
|
8522
|
+
};
|
|
8523
|
+
content?: never;
|
|
8524
|
+
};
|
|
8525
|
+
/** @description No in-progress draft to publish */
|
|
8526
|
+
422: {
|
|
8527
|
+
headers: {
|
|
8528
|
+
[name: string]: unknown;
|
|
8529
|
+
};
|
|
8530
|
+
content?: never;
|
|
8531
|
+
};
|
|
8532
|
+
/** @description Internal Server Error */
|
|
8533
|
+
500: {
|
|
8534
|
+
headers: {
|
|
8535
|
+
[name: string]: unknown;
|
|
8536
|
+
};
|
|
8537
|
+
content?: never;
|
|
8538
|
+
};
|
|
8539
|
+
};
|
|
8540
|
+
};
|
|
8541
|
+
listPropertyThemeVersions: {
|
|
8542
|
+
parameters: {
|
|
8543
|
+
query?: never;
|
|
8544
|
+
header?: never;
|
|
8545
|
+
path: {
|
|
8546
|
+
id: number;
|
|
8547
|
+
};
|
|
8548
|
+
cookie?: never;
|
|
8549
|
+
};
|
|
8550
|
+
requestBody?: never;
|
|
8551
|
+
responses: {
|
|
8552
|
+
/** @description OK */
|
|
8553
|
+
200: {
|
|
8554
|
+
headers: {
|
|
8555
|
+
[name: string]: unknown;
|
|
8556
|
+
};
|
|
8557
|
+
content: {
|
|
8558
|
+
"application/json": components["schemas"]["ThemeVersionsListResponse"];
|
|
8559
|
+
};
|
|
8560
|
+
};
|
|
8561
|
+
/** @description Unauthorized */
|
|
8562
|
+
401: {
|
|
8563
|
+
headers: {
|
|
8564
|
+
[name: string]: unknown;
|
|
8565
|
+
};
|
|
8566
|
+
content?: never;
|
|
8567
|
+
};
|
|
8568
|
+
/** @description Property or theme not found */
|
|
8569
|
+
404: {
|
|
8570
|
+
headers: {
|
|
8571
|
+
[name: string]: unknown;
|
|
8572
|
+
};
|
|
8573
|
+
content?: never;
|
|
8574
|
+
};
|
|
8575
|
+
/** @description Internal Server Error */
|
|
8576
|
+
500: {
|
|
8577
|
+
headers: {
|
|
8578
|
+
[name: string]: unknown;
|
|
8579
|
+
};
|
|
8580
|
+
content?: never;
|
|
8581
|
+
};
|
|
8582
|
+
};
|
|
8583
|
+
};
|
|
8584
|
+
getPropertyThemeVersion: {
|
|
8585
|
+
parameters: {
|
|
8586
|
+
query?: never;
|
|
8587
|
+
header?: never;
|
|
8588
|
+
path: {
|
|
8589
|
+
id: number;
|
|
8590
|
+
version_id: number;
|
|
8591
|
+
};
|
|
8592
|
+
cookie?: never;
|
|
8593
|
+
};
|
|
8594
|
+
requestBody?: never;
|
|
8595
|
+
responses: {
|
|
8596
|
+
/** @description OK */
|
|
8597
|
+
200: {
|
|
8598
|
+
headers: {
|
|
8599
|
+
[name: string]: unknown;
|
|
8600
|
+
};
|
|
8601
|
+
content: {
|
|
8602
|
+
"application/json": components["schemas"]["ThemeRowResponse"];
|
|
8603
|
+
};
|
|
8604
|
+
};
|
|
8605
|
+
/** @description Unauthorized */
|
|
8606
|
+
401: {
|
|
8607
|
+
headers: {
|
|
8608
|
+
[name: string]: unknown;
|
|
8609
|
+
};
|
|
8610
|
+
content?: never;
|
|
8611
|
+
};
|
|
8612
|
+
/** @description Version not found */
|
|
8613
|
+
404: {
|
|
8614
|
+
headers: {
|
|
8615
|
+
[name: string]: unknown;
|
|
8616
|
+
};
|
|
8617
|
+
content?: never;
|
|
8618
|
+
};
|
|
8619
|
+
/** @description Internal Server Error */
|
|
8620
|
+
500: {
|
|
8621
|
+
headers: {
|
|
8622
|
+
[name: string]: unknown;
|
|
8623
|
+
};
|
|
8624
|
+
content?: never;
|
|
8625
|
+
};
|
|
8626
|
+
};
|
|
8627
|
+
};
|
|
8628
|
+
publishPropertyThemeVersion: {
|
|
8629
|
+
parameters: {
|
|
8630
|
+
query?: never;
|
|
8631
|
+
header?: never;
|
|
8632
|
+
path: {
|
|
8633
|
+
id: number;
|
|
8634
|
+
version_id: number;
|
|
8635
|
+
};
|
|
8636
|
+
cookie?: never;
|
|
8637
|
+
};
|
|
8638
|
+
requestBody?: never;
|
|
8639
|
+
responses: {
|
|
8640
|
+
/** @description OK */
|
|
8641
|
+
200: {
|
|
8642
|
+
headers: {
|
|
8643
|
+
[name: string]: unknown;
|
|
8644
|
+
};
|
|
8645
|
+
content: {
|
|
8646
|
+
"application/json": components["schemas"]["ThemeStateResponse"];
|
|
8647
|
+
};
|
|
8648
|
+
};
|
|
8649
|
+
/** @description Unauthorized */
|
|
8650
|
+
401: {
|
|
8651
|
+
headers: {
|
|
8652
|
+
[name: string]: unknown;
|
|
8653
|
+
};
|
|
8654
|
+
content?: never;
|
|
8655
|
+
};
|
|
8656
|
+
/** @description Version not found */
|
|
8657
|
+
404: {
|
|
8658
|
+
headers: {
|
|
8659
|
+
[name: string]: unknown;
|
|
8660
|
+
};
|
|
8661
|
+
content?: never;
|
|
8662
|
+
};
|
|
8663
|
+
/** @description Internal Server Error */
|
|
8664
|
+
500: {
|
|
8665
|
+
headers: {
|
|
8666
|
+
[name: string]: unknown;
|
|
8667
|
+
};
|
|
8668
|
+
content?: never;
|
|
8669
|
+
};
|
|
8670
|
+
};
|
|
8671
|
+
};
|
|
7693
8672
|
listUnits: {
|
|
7694
8673
|
parameters: {
|
|
7695
8674
|
query?: {
|