@wix/auto_sdk_seo_blog-post-candidates 1.0.0
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/build/cjs/index.d.ts +57 -0
- package/build/cjs/index.js +336 -0
- package/build/cjs/index.js.map +1 -0
- package/build/cjs/index.typings.d.ts +795 -0
- package/build/cjs/index.typings.js +314 -0
- package/build/cjs/index.typings.js.map +1 -0
- package/build/cjs/meta.d.ts +731 -0
- package/build/cjs/meta.js +290 -0
- package/build/cjs/meta.js.map +1 -0
- package/build/es/index.d.mts +57 -0
- package/build/es/index.mjs +308 -0
- package/build/es/index.mjs.map +1 -0
- package/build/es/index.typings.d.mts +795 -0
- package/build/es/index.typings.mjs +286 -0
- package/build/es/index.typings.mjs.map +1 -0
- package/build/es/meta.d.mts +731 -0
- package/build/es/meta.mjs +259 -0
- package/build/es/meta.mjs.map +1 -0
- package/build/es/package.json +3 -0
- package/build/internal/cjs/index.d.ts +57 -0
- package/build/internal/cjs/index.typings.d.ts +801 -0
- package/build/internal/cjs/meta.d.ts +779 -0
- package/build/internal/es/index.d.mts +57 -0
- package/build/internal/es/index.typings.d.mts +801 -0
- package/build/internal/es/meta.d.mts +779 -0
- package/meta/package.json +3 -0
- package/package.json +54 -0
|
@@ -0,0 +1,731 @@
|
|
|
1
|
+
import { ListBlogPostCandidatesRequest as ListBlogPostCandidatesRequest$1, ListBlogPostCandidatesResponse as ListBlogPostCandidatesResponse$1, CreateContentPlanRequest as CreateContentPlanRequest$1, CreateContentPlanResponse as CreateContentPlanResponse$1 } from './index.typings.js';
|
|
2
|
+
import '@wix/sdk-types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A blog post candidate is a single blog post brief in a site's content plan.
|
|
6
|
+
*
|
|
7
|
+
* Each candidate pairs a target keyword with a suggested title, the search
|
|
8
|
+
* data behind that keyword, and the site page the post should support. A site
|
|
9
|
+
* owner uses a candidate as the starting point for writing a post.
|
|
10
|
+
*
|
|
11
|
+
* Candidates are generated by the content plan pipeline and are read-only.
|
|
12
|
+
* Call Create Content Plan to generate them, and List Blog Post Candidates to
|
|
13
|
+
* read them.
|
|
14
|
+
*/
|
|
15
|
+
interface BlogPostCandidate {
|
|
16
|
+
/**
|
|
17
|
+
* Blog post candidate ID.
|
|
18
|
+
*
|
|
19
|
+
* Treat this value as opaque. Don't parse it or build it yourself, and
|
|
20
|
+
* pass it back exactly as received. The individual IDs it's built from are
|
|
21
|
+
* available on `candidateData`.
|
|
22
|
+
* @maxLength 100
|
|
23
|
+
* @readonly
|
|
24
|
+
*/
|
|
25
|
+
id?: string | null;
|
|
26
|
+
/** IDs that identify the candidate and the flow that generated it. */
|
|
27
|
+
candidateData?: CandidateData;
|
|
28
|
+
/**
|
|
29
|
+
* The blog post brief itself: the suggested title, the target keywords,
|
|
30
|
+
* and the search data behind them.
|
|
31
|
+
*/
|
|
32
|
+
briefData?: BriefData;
|
|
33
|
+
/**
|
|
34
|
+
* SEO tags suggested for the blog post, such as its title tag and meta
|
|
35
|
+
* description.
|
|
36
|
+
*/
|
|
37
|
+
seoData?: SeoSchema;
|
|
38
|
+
}
|
|
39
|
+
interface CandidateData {
|
|
40
|
+
/**
|
|
41
|
+
* ID of the blog post candidate within its content plan flow.
|
|
42
|
+
* @format GUID
|
|
43
|
+
* @readonly
|
|
44
|
+
*/
|
|
45
|
+
blogPostCandidateId?: string | null;
|
|
46
|
+
/**
|
|
47
|
+
* ID of the content plan flow that generated this candidate.
|
|
48
|
+
* @format GUID
|
|
49
|
+
* @readonly
|
|
50
|
+
*/
|
|
51
|
+
contentPlanFlowId?: string | null;
|
|
52
|
+
}
|
|
53
|
+
interface BriefData {
|
|
54
|
+
/**
|
|
55
|
+
* Suggested title for the blog post.
|
|
56
|
+
* @maxLength 1000
|
|
57
|
+
*/
|
|
58
|
+
h1Title?: string | null;
|
|
59
|
+
/**
|
|
60
|
+
* Keyword the blog post targets.
|
|
61
|
+
* @maxLength 1000
|
|
62
|
+
*/
|
|
63
|
+
keyword?: string | null;
|
|
64
|
+
/**
|
|
65
|
+
* Primary keyword for the page the blog post supports.
|
|
66
|
+
*
|
|
67
|
+
* A page has a single main keyword, and several blog posts can support the
|
|
68
|
+
* same one.
|
|
69
|
+
* @maxLength 1000
|
|
70
|
+
*/
|
|
71
|
+
mainKeyword?: string | null;
|
|
72
|
+
/**
|
|
73
|
+
* Search engine results data for `mainKeyword`, such as its search volume
|
|
74
|
+
* and how hard it is to rank for.
|
|
75
|
+
*
|
|
76
|
+
* List Blog Post Candidates doesn't currently return this field.
|
|
77
|
+
*/
|
|
78
|
+
serpData?: SerpData;
|
|
79
|
+
/**
|
|
80
|
+
* URL of the site page the blog post is meant to support.
|
|
81
|
+
* @maxLength 1000
|
|
82
|
+
*/
|
|
83
|
+
pageUrl?: string | null;
|
|
84
|
+
}
|
|
85
|
+
interface SerpData {
|
|
86
|
+
/**
|
|
87
|
+
* SerpDataResult ID
|
|
88
|
+
* @format GUID
|
|
89
|
+
* @readonly
|
|
90
|
+
*/
|
|
91
|
+
id?: string | null;
|
|
92
|
+
/**
|
|
93
|
+
* list of people also ask questions
|
|
94
|
+
* @maxSize 4
|
|
95
|
+
*/
|
|
96
|
+
peopleAlsoAskSuggestions?: PeopleAlsoAskQuestion[];
|
|
97
|
+
/**
|
|
98
|
+
* list of related searches
|
|
99
|
+
* @maxSize 10
|
|
100
|
+
* @maxLength 10000
|
|
101
|
+
*/
|
|
102
|
+
peopleAlsoSearchSuggestions?: string[] | null;
|
|
103
|
+
/**
|
|
104
|
+
* list of autocomplete suggestions
|
|
105
|
+
* @maxSize 15
|
|
106
|
+
* @maxLength 10000
|
|
107
|
+
*/
|
|
108
|
+
autocompleteSuggestions?: string[] | null;
|
|
109
|
+
}
|
|
110
|
+
interface PeopleAlsoAskQuestion {
|
|
111
|
+
/**
|
|
112
|
+
* people also ask question title
|
|
113
|
+
* @maxLength 10000
|
|
114
|
+
*/
|
|
115
|
+
question?: string | null;
|
|
116
|
+
/**
|
|
117
|
+
* answers to the question
|
|
118
|
+
* @maxSize 2
|
|
119
|
+
*/
|
|
120
|
+
answers?: PeopleAlsoAskAnswer[];
|
|
121
|
+
}
|
|
122
|
+
interface PeopleAlsoAskAnswer {
|
|
123
|
+
/**
|
|
124
|
+
* people also ask answer title
|
|
125
|
+
* @maxLength 10000
|
|
126
|
+
*/
|
|
127
|
+
title?: string | null;
|
|
128
|
+
/**
|
|
129
|
+
* description of the answer
|
|
130
|
+
* @maxLength 10000
|
|
131
|
+
*/
|
|
132
|
+
description?: string | null;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* The SEO schema object contains data about different types of meta tags. It makes sure that the information about your page is presented properly to search engines.
|
|
136
|
+
* The search engines use this information for ranking purposes, or to display snippets in the search results.
|
|
137
|
+
* This data will override other sources of tags (for example patterns) and will be included in the <head> section of the HTML document, while not being displayed on the page itself.
|
|
138
|
+
*/
|
|
139
|
+
interface SeoSchema {
|
|
140
|
+
/** SEO tag information. */
|
|
141
|
+
tags?: Tag[];
|
|
142
|
+
/** SEO general settings. */
|
|
143
|
+
settings?: Settings;
|
|
144
|
+
}
|
|
145
|
+
interface Keyword {
|
|
146
|
+
/** Keyword value. */
|
|
147
|
+
term?: string;
|
|
148
|
+
/** Whether the keyword is the main focus keyword. */
|
|
149
|
+
isMain?: boolean;
|
|
150
|
+
/**
|
|
151
|
+
* The source that added the keyword terms to the SEO settings.
|
|
152
|
+
* @maxLength 1000
|
|
153
|
+
*/
|
|
154
|
+
origin?: string | null;
|
|
155
|
+
}
|
|
156
|
+
interface Tag {
|
|
157
|
+
/**
|
|
158
|
+
* SEO tag type.
|
|
159
|
+
*
|
|
160
|
+
*
|
|
161
|
+
* Supported values: `title`, `meta`, `script`, `link`.
|
|
162
|
+
*
|
|
163
|
+
* Which of these an API actually accepts depends on where the tag is being set: this
|
|
164
|
+
* list is not a blanket guarantee across every API that reuses this message. Site SEO
|
|
165
|
+
* Tags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects
|
|
166
|
+
* `title`/`script`/`link` with a validation error even though they appear here —
|
|
167
|
+
* check the field description of the specific `tags`-typed field you're writing to
|
|
168
|
+
* for the types it actually supports and the error it returns.
|
|
169
|
+
*
|
|
170
|
+
* Limitation: `title` and `script` (e.g. a `script` tag with `props.type`
|
|
171
|
+
* `"application/ld+json"` carrying structured data) are supported only when
|
|
172
|
+
* `custom` is unset or `false`. Setting `custom: true` on a `title` or `script`
|
|
173
|
+
* tag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the
|
|
174
|
+
* write through the site's Advanced/Custom Tags list. To write structured data,
|
|
175
|
+
* omit `custom` (or set it to `false`).
|
|
176
|
+
*/
|
|
177
|
+
type?: string;
|
|
178
|
+
/**
|
|
179
|
+
* A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.
|
|
180
|
+
* For example: `{"name": "description", "content": "the description itself"}`.
|
|
181
|
+
*/
|
|
182
|
+
props?: Record<string, any> | null;
|
|
183
|
+
/** SEO tag metadata. For example, `{"height": 300, "width": 240}`. */
|
|
184
|
+
meta?: Record<string, any> | null;
|
|
185
|
+
/** SEO tag inner content. For example, `<title> inner content </title>`. */
|
|
186
|
+
children?: string;
|
|
187
|
+
/**
|
|
188
|
+
* Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —
|
|
189
|
+
* i.e. an entry from the site's Advanced/Custom Tags list.
|
|
190
|
+
*
|
|
191
|
+
* Setting this to `true` on a write restricts which `type` values are accepted
|
|
192
|
+
* — the same restriction the Advanced/Custom Tags UI enforces. `title` and
|
|
193
|
+
* `script` tags (including JSON-LD structured data) must be sent with `custom`
|
|
194
|
+
* omitted or `false`; sending them with `custom: true` is rejected with
|
|
195
|
+
* `TAG_TYPE_NOT_ALLOWED`.
|
|
196
|
+
*
|
|
197
|
+
* Note this is a separate restriction from Site SEO Tags' own type restriction on
|
|
198
|
+
* `SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.
|
|
199
|
+
* for site-wide structured data) unconditionally. There is currently no way to set
|
|
200
|
+
* site-wide, every-page structured data through any of these APIs — write a per-page
|
|
201
|
+
* `script` tag through the Item SEO Tags API instead.
|
|
202
|
+
*
|
|
203
|
+
* This flag is scoped to that feature only. It is NOT an indicator of whether a standard tag
|
|
204
|
+
* (`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed
|
|
205
|
+
* default/pattern — standard tags always resolve with `custom: false`, even when their content comes
|
|
206
|
+
* from a page's manually saved SEO title/description override. Don't use this field to verify whether
|
|
207
|
+
* a live page reflects a manual per-page SEO edit.
|
|
208
|
+
*
|
|
209
|
+
* Limitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read
|
|
210
|
+
* only from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor
|
|
211
|
+
* or Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the
|
|
212
|
+
* response entirely — there, `false` means this API could not tell, not that no custom tag exists.
|
|
213
|
+
* Pass `seoData` explicitly to resolve against a known set of tags.
|
|
214
|
+
*/
|
|
215
|
+
custom?: boolean;
|
|
216
|
+
/** Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines. */
|
|
217
|
+
disabled?: boolean;
|
|
218
|
+
}
|
|
219
|
+
interface Settings {
|
|
220
|
+
/**
|
|
221
|
+
* Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.
|
|
222
|
+
*
|
|
223
|
+
*
|
|
224
|
+
* Default: `false` (automatical redirect is enabled).
|
|
225
|
+
*/
|
|
226
|
+
preventAutoRedirect?: boolean;
|
|
227
|
+
/**
|
|
228
|
+
* User-selected keyword terms for a specific page.
|
|
229
|
+
* @maxSize 5
|
|
230
|
+
*/
|
|
231
|
+
keywords?: Keyword[];
|
|
232
|
+
}
|
|
233
|
+
interface GetBlogPostCandidateRequest {
|
|
234
|
+
/**
|
|
235
|
+
* id of the content plan flow this blog post candidate belongs to
|
|
236
|
+
* @format GUID
|
|
237
|
+
*/
|
|
238
|
+
contentPlanFlowId?: string | null;
|
|
239
|
+
}
|
|
240
|
+
interface GetBlogPostCandidateResponse {
|
|
241
|
+
/** blog post candidate */
|
|
242
|
+
blogPostCandidate?: BlogPostCandidate;
|
|
243
|
+
}
|
|
244
|
+
interface GetBlogPostCandidateByIdRequest {
|
|
245
|
+
/**
|
|
246
|
+
* id of the blog post candidate
|
|
247
|
+
* @minLength 1
|
|
248
|
+
* @maxLength 100
|
|
249
|
+
*/
|
|
250
|
+
blogPostCandidateId?: string | null;
|
|
251
|
+
}
|
|
252
|
+
interface GetBlogPostCandidateByIdResponse {
|
|
253
|
+
/** blog post candidate */
|
|
254
|
+
blogPostCandidate?: BlogPostCandidate;
|
|
255
|
+
}
|
|
256
|
+
interface MarkBlogPostCandidateRequest {
|
|
257
|
+
/** ids of the blog post candidate */
|
|
258
|
+
candidateData?: CandidateData;
|
|
259
|
+
/**
|
|
260
|
+
* ID of the blog post that was created from this candidate.
|
|
261
|
+
* @format GUID
|
|
262
|
+
*/
|
|
263
|
+
blogPostId?: string | null;
|
|
264
|
+
}
|
|
265
|
+
interface MarkBlogPostCandidateResponse {
|
|
266
|
+
}
|
|
267
|
+
interface BulkMarkBlogPostCandidatesRequest {
|
|
268
|
+
/**
|
|
269
|
+
* id of the content plan flow these blog post candidates belong to
|
|
270
|
+
* @format GUID
|
|
271
|
+
*/
|
|
272
|
+
contentPlanFlowId?: string | null;
|
|
273
|
+
/**
|
|
274
|
+
* List of blog post candidates to mark
|
|
275
|
+
* @maxSize 1000
|
|
276
|
+
*/
|
|
277
|
+
items?: BulkMarkBlogPostCandidateItem[];
|
|
278
|
+
}
|
|
279
|
+
interface BulkMarkBlogPostCandidateItem {
|
|
280
|
+
/**
|
|
281
|
+
* id of the blog post candidate
|
|
282
|
+
* @format GUID
|
|
283
|
+
*/
|
|
284
|
+
blogPostCandidateId?: string | null;
|
|
285
|
+
/**
|
|
286
|
+
* generated blog post id
|
|
287
|
+
* @format GUID
|
|
288
|
+
*/
|
|
289
|
+
blogPostId?: string | null;
|
|
290
|
+
}
|
|
291
|
+
interface BulkMarkBlogPostCandidatesResponse {
|
|
292
|
+
/**
|
|
293
|
+
* Per-entry results, correlated by `itemMetadata.originalIndex`.
|
|
294
|
+
* @maxSize 1000
|
|
295
|
+
*/
|
|
296
|
+
results?: BulkMarkBlogPostCandidateResult[];
|
|
297
|
+
/** How many entries succeeded and how many failed. */
|
|
298
|
+
bulkActionMetadata?: BulkActionMetadata;
|
|
299
|
+
}
|
|
300
|
+
interface ItemMetadata {
|
|
301
|
+
/**
|
|
302
|
+
* Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).
|
|
303
|
+
* @maxLength 100
|
|
304
|
+
*/
|
|
305
|
+
id?: string | null;
|
|
306
|
+
/** Index of the item within the request array. Allows for correlation between request and response items. */
|
|
307
|
+
originalIndex?: number;
|
|
308
|
+
/** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */
|
|
309
|
+
success?: boolean;
|
|
310
|
+
/** Details about the error in case of failure. */
|
|
311
|
+
error?: ApplicationError;
|
|
312
|
+
}
|
|
313
|
+
interface ApplicationError {
|
|
314
|
+
/** Error code. */
|
|
315
|
+
code?: string;
|
|
316
|
+
/** Description of the error. */
|
|
317
|
+
description?: string;
|
|
318
|
+
/** Data related to the error. */
|
|
319
|
+
data?: Record<string, any> | null;
|
|
320
|
+
}
|
|
321
|
+
/** Result of marking one blog post candidate in a bulk request. */
|
|
322
|
+
interface BulkMarkBlogPostCandidateResult {
|
|
323
|
+
/** Success/failure and error detail for this entry. */
|
|
324
|
+
itemMetadata?: ItemMetadata;
|
|
325
|
+
}
|
|
326
|
+
interface BulkActionMetadata {
|
|
327
|
+
/** Number of items that were successfully processed. */
|
|
328
|
+
totalSuccesses?: number;
|
|
329
|
+
/** Number of items that couldn't be processed. */
|
|
330
|
+
totalFailures?: number;
|
|
331
|
+
/** Number of failures without details because detailed failure threshold was exceeded. */
|
|
332
|
+
undetailedFailures?: number;
|
|
333
|
+
}
|
|
334
|
+
interface ListBlogPostCandidatesRequest {
|
|
335
|
+
/**
|
|
336
|
+
* ID of the content plan flow to retrieve candidates for.
|
|
337
|
+
*
|
|
338
|
+
* Omit to read the site's most recent successful flow.
|
|
339
|
+
* @format GUID
|
|
340
|
+
*/
|
|
341
|
+
contentPlanFlowId: string | null;
|
|
342
|
+
/**
|
|
343
|
+
* Whether to return only candidates that haven't been used for a blog post
|
|
344
|
+
* yet.
|
|
345
|
+
*
|
|
346
|
+
* A candidate is marked as used when a blog post is created from it in the
|
|
347
|
+
* Wix Blog product. An app can read this flag but can't set it, so track
|
|
348
|
+
* the posts you've written on your own side as well.
|
|
349
|
+
*
|
|
350
|
+
* Default: `false`, which returns every candidate.
|
|
351
|
+
*/
|
|
352
|
+
includeOnlyUnmarked?: boolean | null;
|
|
353
|
+
/**
|
|
354
|
+
* Cursor paging. Omit for the first page.
|
|
355
|
+
*
|
|
356
|
+
* Omit this object entirely to return every candidate in a single response.
|
|
357
|
+
*/
|
|
358
|
+
paging?: CursorPaging;
|
|
359
|
+
}
|
|
360
|
+
interface CursorPaging {
|
|
361
|
+
/**
|
|
362
|
+
* Max items per page. Default 50, max 100.
|
|
363
|
+
* @max 100
|
|
364
|
+
*/
|
|
365
|
+
limit?: number | null;
|
|
366
|
+
/**
|
|
367
|
+
* Cursor from a previous response. Omit for the first page.
|
|
368
|
+
* @maxLength 16000
|
|
369
|
+
*/
|
|
370
|
+
cursor?: string | null;
|
|
371
|
+
}
|
|
372
|
+
interface ListBlogPostCandidatesResponse {
|
|
373
|
+
/**
|
|
374
|
+
* Retrieved blog post candidates.
|
|
375
|
+
* @maxSize 1000
|
|
376
|
+
*/
|
|
377
|
+
blogPostCandidates?: BlogPostCandidate[];
|
|
378
|
+
/** Paging metadata. */
|
|
379
|
+
pagingMetadata?: CursorPagingMetadata;
|
|
380
|
+
}
|
|
381
|
+
interface CursorPagingMetadata {
|
|
382
|
+
/** Items returned in this page. */
|
|
383
|
+
count?: number | null;
|
|
384
|
+
/** Cursors for next/previous page. */
|
|
385
|
+
cursors?: Cursors;
|
|
386
|
+
/** Whether there are more pages. */
|
|
387
|
+
hasNext?: boolean | null;
|
|
388
|
+
}
|
|
389
|
+
interface Cursors {
|
|
390
|
+
/**
|
|
391
|
+
* Cursor for the next page.
|
|
392
|
+
* @maxLength 16000
|
|
393
|
+
*/
|
|
394
|
+
next?: string | null;
|
|
395
|
+
/**
|
|
396
|
+
* Cursor for the previous page.
|
|
397
|
+
* @maxLength 16000
|
|
398
|
+
*/
|
|
399
|
+
prev?: string | null;
|
|
400
|
+
}
|
|
401
|
+
/** Deprecated alias request. Same fields as ListBlogPostCandidatesRequest. */
|
|
402
|
+
interface QueryBlogPostCandidatesRequest {
|
|
403
|
+
/**
|
|
404
|
+
* Content plan flow ID.
|
|
405
|
+
* @format GUID
|
|
406
|
+
*/
|
|
407
|
+
contentPlanFlowId?: string | null;
|
|
408
|
+
/** Whether to return only unmarked candidates. */
|
|
409
|
+
includeOnlyUnmarked?: boolean | null;
|
|
410
|
+
/** Cursor paging. */
|
|
411
|
+
paging?: CursorPaging;
|
|
412
|
+
}
|
|
413
|
+
/** Deprecated alias response. Same fields as ListBlogPostCandidatesResponse. */
|
|
414
|
+
interface QueryBlogPostCandidatesResponse {
|
|
415
|
+
/**
|
|
416
|
+
* Blog post candidates.
|
|
417
|
+
* @maxSize 1000
|
|
418
|
+
*/
|
|
419
|
+
blogPostCandidates?: BlogPostCandidate[];
|
|
420
|
+
/** Paging metadata. */
|
|
421
|
+
pagingMetadata?: CursorPagingMetadata;
|
|
422
|
+
}
|
|
423
|
+
interface GetContentPlanRequest {
|
|
424
|
+
/** requested start date */
|
|
425
|
+
startDate?: Date | null;
|
|
426
|
+
/** requested end date */
|
|
427
|
+
endDate?: Date | null;
|
|
428
|
+
}
|
|
429
|
+
interface GetContentPlanResponse {
|
|
430
|
+
/** content plan */
|
|
431
|
+
contentPlan?: ContentPlan;
|
|
432
|
+
}
|
|
433
|
+
interface ContentPlan {
|
|
434
|
+
/**
|
|
435
|
+
* content plan columns
|
|
436
|
+
* @maxSize 10
|
|
437
|
+
*/
|
|
438
|
+
columns?: Column[];
|
|
439
|
+
/**
|
|
440
|
+
* content plan rows
|
|
441
|
+
* @maxSize 1000
|
|
442
|
+
*/
|
|
443
|
+
rows?: Row[];
|
|
444
|
+
/**
|
|
445
|
+
* description to show the user
|
|
446
|
+
* @maxLength 1000
|
|
447
|
+
*/
|
|
448
|
+
description?: string | null;
|
|
449
|
+
}
|
|
450
|
+
interface Column {
|
|
451
|
+
/**
|
|
452
|
+
* key is the column identifier (e.g. "date", "post-h1", "tags")
|
|
453
|
+
* @maxLength 100
|
|
454
|
+
*/
|
|
455
|
+
key?: string | null;
|
|
456
|
+
/** type of the column */
|
|
457
|
+
type?: ColumnTypeWithLiterals;
|
|
458
|
+
/** editable flag */
|
|
459
|
+
editable?: boolean;
|
|
460
|
+
/** limit of characters for the column */
|
|
461
|
+
limit?: number | null;
|
|
462
|
+
/**
|
|
463
|
+
* width of the column
|
|
464
|
+
* @maxLength 100
|
|
465
|
+
*/
|
|
466
|
+
width?: string | null;
|
|
467
|
+
}
|
|
468
|
+
declare enum ColumnType {
|
|
469
|
+
TEXT = "TEXT",
|
|
470
|
+
DATE = "DATE",
|
|
471
|
+
TEXT_LONG = "TEXT_LONG"
|
|
472
|
+
}
|
|
473
|
+
/** @enumType */
|
|
474
|
+
type ColumnTypeWithLiterals = ColumnType | 'TEXT' | 'DATE' | 'TEXT_LONG';
|
|
475
|
+
interface Row {
|
|
476
|
+
/**
|
|
477
|
+
* id of the row
|
|
478
|
+
* @readonly
|
|
479
|
+
* @format GUID
|
|
480
|
+
*/
|
|
481
|
+
id?: string | null;
|
|
482
|
+
/** order of the row */
|
|
483
|
+
order?: number | null;
|
|
484
|
+
/** data of the row (key = column key, value = cell value) */
|
|
485
|
+
data?: Record<string, any> | null;
|
|
486
|
+
/** status */
|
|
487
|
+
status?: RowStatusWithLiterals;
|
|
488
|
+
}
|
|
489
|
+
declare enum RowStatus {
|
|
490
|
+
DRAFT = "DRAFT",
|
|
491
|
+
PUBLISHED = "PUBLISHED"
|
|
492
|
+
}
|
|
493
|
+
/** @enumType */
|
|
494
|
+
type RowStatusWithLiterals = RowStatus | 'DRAFT' | 'PUBLISHED';
|
|
495
|
+
interface UpdateContentPlanRequest {
|
|
496
|
+
/**
|
|
497
|
+
* updated content plan rows
|
|
498
|
+
* @maxSize 100
|
|
499
|
+
*/
|
|
500
|
+
updatedRows?: Row[];
|
|
501
|
+
/**
|
|
502
|
+
* deleted content plan rows
|
|
503
|
+
* @maxSize 1000
|
|
504
|
+
* @maxLength 1000
|
|
505
|
+
*/
|
|
506
|
+
deletedRows?: string[] | null;
|
|
507
|
+
}
|
|
508
|
+
interface UpdateContentPlanResponse {
|
|
509
|
+
/** updated content plan */
|
|
510
|
+
contentPlan?: ContentPlan;
|
|
511
|
+
}
|
|
512
|
+
interface CreateContentPlanRequest {
|
|
513
|
+
/**
|
|
514
|
+
* ID of the content plan flow to generate the blog post briefs for.
|
|
515
|
+
*
|
|
516
|
+
* Omit to use the site's most recent eligible flow.
|
|
517
|
+
* Do not remove the fallback — existing callers depend on it.
|
|
518
|
+
* @format GUID
|
|
519
|
+
*/
|
|
520
|
+
contentPlanFlowId?: string | null;
|
|
521
|
+
}
|
|
522
|
+
interface CreateContentPlanResponse {
|
|
523
|
+
/**
|
|
524
|
+
* Whether the blog post briefs were generated.
|
|
525
|
+
*
|
|
526
|
+
* Check this field as well as the HTTP status. Some failures return `false`
|
|
527
|
+
* here rather than an error.
|
|
528
|
+
*/
|
|
529
|
+
success?: boolean | null;
|
|
530
|
+
/**
|
|
531
|
+
* Reason the generation failed.
|
|
532
|
+
*
|
|
533
|
+
* Returned only when `success` is `false`.
|
|
534
|
+
* @maxLength 1000
|
|
535
|
+
*/
|
|
536
|
+
message?: string | null;
|
|
537
|
+
/**
|
|
538
|
+
* ID of the content plan flow the briefs were generated under.
|
|
539
|
+
*
|
|
540
|
+
* When this method regenerates a plan for a flow that already succeeded,
|
|
541
|
+
* this is a new ID. Poll this ID rather than the one you sent.
|
|
542
|
+
* @format GUID
|
|
543
|
+
*/
|
|
544
|
+
contentPlanFlowId?: string | null;
|
|
545
|
+
}
|
|
546
|
+
interface DomainEvent extends DomainEventBodyOneOf {
|
|
547
|
+
createdEvent?: EntityCreatedEvent;
|
|
548
|
+
updatedEvent?: EntityUpdatedEvent;
|
|
549
|
+
deletedEvent?: EntityDeletedEvent;
|
|
550
|
+
actionEvent?: ActionEvent;
|
|
551
|
+
/** Event ID. With this ID you can easily spot duplicated events and ignore them. */
|
|
552
|
+
id?: string;
|
|
553
|
+
/**
|
|
554
|
+
* Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.
|
|
555
|
+
* For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.
|
|
556
|
+
*/
|
|
557
|
+
entityFqdn?: string;
|
|
558
|
+
/**
|
|
559
|
+
* Event action name, placed at the top level to make it easier for users to dispatch messages.
|
|
560
|
+
* For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.
|
|
561
|
+
*/
|
|
562
|
+
slug?: string;
|
|
563
|
+
/** ID of the entity associated with the event. */
|
|
564
|
+
entityId?: string;
|
|
565
|
+
/** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */
|
|
566
|
+
eventTime?: Date | null;
|
|
567
|
+
/**
|
|
568
|
+
* Whether the event was triggered as a result of a privacy regulation application
|
|
569
|
+
* (for example, GDPR).
|
|
570
|
+
*/
|
|
571
|
+
triggeredByAnonymizeRequest?: boolean | null;
|
|
572
|
+
/** If present, indicates the action that triggered the event. */
|
|
573
|
+
originatedFrom?: string | null;
|
|
574
|
+
/**
|
|
575
|
+
* A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.
|
|
576
|
+
* You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.
|
|
577
|
+
*/
|
|
578
|
+
entityEventSequence?: string | null;
|
|
579
|
+
}
|
|
580
|
+
/** @oneof */
|
|
581
|
+
interface DomainEventBodyOneOf {
|
|
582
|
+
createdEvent?: EntityCreatedEvent;
|
|
583
|
+
updatedEvent?: EntityUpdatedEvent;
|
|
584
|
+
deletedEvent?: EntityDeletedEvent;
|
|
585
|
+
actionEvent?: ActionEvent;
|
|
586
|
+
}
|
|
587
|
+
interface EntityCreatedEvent {
|
|
588
|
+
entityAsJson?: string;
|
|
589
|
+
/** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */
|
|
590
|
+
restoreInfo?: RestoreInfo;
|
|
591
|
+
}
|
|
592
|
+
interface RestoreInfo {
|
|
593
|
+
deletedDate?: Date | null;
|
|
594
|
+
}
|
|
595
|
+
interface EntityUpdatedEvent {
|
|
596
|
+
/**
|
|
597
|
+
* Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.
|
|
598
|
+
* This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.
|
|
599
|
+
* We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.
|
|
600
|
+
*/
|
|
601
|
+
currentEntityAsJson?: string;
|
|
602
|
+
}
|
|
603
|
+
interface EntityDeletedEvent {
|
|
604
|
+
/** Entity that was deleted. */
|
|
605
|
+
deletedEntityAsJson?: string | null;
|
|
606
|
+
}
|
|
607
|
+
interface ActionEvent {
|
|
608
|
+
bodyAsJson?: string;
|
|
609
|
+
}
|
|
610
|
+
interface MessageEnvelope {
|
|
611
|
+
/**
|
|
612
|
+
* App instance ID.
|
|
613
|
+
* @format GUID
|
|
614
|
+
*/
|
|
615
|
+
instanceId?: string | null;
|
|
616
|
+
/**
|
|
617
|
+
* Event type.
|
|
618
|
+
* @maxLength 150
|
|
619
|
+
*/
|
|
620
|
+
eventType?: string;
|
|
621
|
+
/** The identification type and identity data. */
|
|
622
|
+
identity?: IdentificationData;
|
|
623
|
+
/** Stringify payload. */
|
|
624
|
+
data?: string;
|
|
625
|
+
/** Details related to the account */
|
|
626
|
+
accountInfo?: AccountInfo;
|
|
627
|
+
}
|
|
628
|
+
interface IdentificationData extends IdentificationDataIdOneOf {
|
|
629
|
+
/**
|
|
630
|
+
* ID of a site visitor that has not logged in to the site.
|
|
631
|
+
* @format GUID
|
|
632
|
+
*/
|
|
633
|
+
anonymousVisitorId?: string;
|
|
634
|
+
/**
|
|
635
|
+
* ID of a site visitor that has logged in to the site.
|
|
636
|
+
* @format GUID
|
|
637
|
+
*/
|
|
638
|
+
memberId?: string;
|
|
639
|
+
/**
|
|
640
|
+
* ID of a Wix user (site owner, contributor, etc.).
|
|
641
|
+
* @format GUID
|
|
642
|
+
*/
|
|
643
|
+
wixUserId?: string;
|
|
644
|
+
/**
|
|
645
|
+
* ID of an app.
|
|
646
|
+
* @format GUID
|
|
647
|
+
*/
|
|
648
|
+
appId?: string;
|
|
649
|
+
/** @readonly */
|
|
650
|
+
identityType?: WebhookIdentityTypeWithLiterals;
|
|
651
|
+
}
|
|
652
|
+
/** @oneof */
|
|
653
|
+
interface IdentificationDataIdOneOf {
|
|
654
|
+
/**
|
|
655
|
+
* ID of a site visitor that has not logged in to the site.
|
|
656
|
+
* @format GUID
|
|
657
|
+
*/
|
|
658
|
+
anonymousVisitorId?: string;
|
|
659
|
+
/**
|
|
660
|
+
* ID of a site visitor that has logged in to the site.
|
|
661
|
+
* @format GUID
|
|
662
|
+
*/
|
|
663
|
+
memberId?: string;
|
|
664
|
+
/**
|
|
665
|
+
* ID of a Wix user (site owner, contributor, etc.).
|
|
666
|
+
* @format GUID
|
|
667
|
+
*/
|
|
668
|
+
wixUserId?: string;
|
|
669
|
+
/**
|
|
670
|
+
* ID of an app.
|
|
671
|
+
* @format GUID
|
|
672
|
+
*/
|
|
673
|
+
appId?: string;
|
|
674
|
+
}
|
|
675
|
+
declare enum WebhookIdentityType {
|
|
676
|
+
UNKNOWN = "UNKNOWN",
|
|
677
|
+
ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
|
|
678
|
+
MEMBER = "MEMBER",
|
|
679
|
+
WIX_USER = "WIX_USER",
|
|
680
|
+
APP = "APP"
|
|
681
|
+
}
|
|
682
|
+
/** @enumType */
|
|
683
|
+
type WebhookIdentityTypeWithLiterals = WebhookIdentityType | 'UNKNOWN' | 'ANONYMOUS_VISITOR' | 'MEMBER' | 'WIX_USER' | 'APP';
|
|
684
|
+
interface AccountInfo {
|
|
685
|
+
/**
|
|
686
|
+
* ID of the Wix account associated with the event.
|
|
687
|
+
* @format GUID
|
|
688
|
+
*/
|
|
689
|
+
accountId?: string | null;
|
|
690
|
+
/**
|
|
691
|
+
* ID of the parent Wix account. Only included when accountId belongs to a child account.
|
|
692
|
+
* @format GUID
|
|
693
|
+
*/
|
|
694
|
+
parentAccountId?: string | null;
|
|
695
|
+
/**
|
|
696
|
+
* ID of the Wix site associated with the event. Only included when the event is tied to a specific site.
|
|
697
|
+
* @format GUID
|
|
698
|
+
*/
|
|
699
|
+
siteId?: string | null;
|
|
700
|
+
}
|
|
701
|
+
/** @docsIgnore */
|
|
702
|
+
type CreateContentPlanApplicationErrors = {
|
|
703
|
+
code?: 'FLOW_NOT_READY_FOR_CONTENT_PLAN';
|
|
704
|
+
description?: string;
|
|
705
|
+
data?: Record<string, any>;
|
|
706
|
+
} | {
|
|
707
|
+
code?: 'CONTENT_PLAN_FLOW_NOT_FOUND';
|
|
708
|
+
description?: string;
|
|
709
|
+
data?: Record<string, any>;
|
|
710
|
+
} | {
|
|
711
|
+
code?: 'CONTENT_PLAN_FLOW_CANCELED';
|
|
712
|
+
description?: string;
|
|
713
|
+
data?: Record<string, any>;
|
|
714
|
+
};
|
|
715
|
+
|
|
716
|
+
type __PublicMethodMetaInfo<K = string, M = unknown, T = unknown, S = unknown, Q = unknown, R = unknown> = {
|
|
717
|
+
getUrl: (context: any) => string;
|
|
718
|
+
httpMethod: K;
|
|
719
|
+
path: string;
|
|
720
|
+
pathParams: M;
|
|
721
|
+
__requestType: T;
|
|
722
|
+
__originalRequestType: S;
|
|
723
|
+
__responseType: Q;
|
|
724
|
+
__originalResponseType: R;
|
|
725
|
+
};
|
|
726
|
+
declare function listBlogPostCandidates(): __PublicMethodMetaInfo<'GET', {
|
|
727
|
+
contentPlanFlowId: string;
|
|
728
|
+
}, ListBlogPostCandidatesRequest$1, ListBlogPostCandidatesRequest, ListBlogPostCandidatesResponse$1, ListBlogPostCandidatesResponse>;
|
|
729
|
+
declare function createContentPlan(): __PublicMethodMetaInfo<'POST', {}, CreateContentPlanRequest$1, CreateContentPlanRequest, CreateContentPlanResponse$1, CreateContentPlanResponse>;
|
|
730
|
+
|
|
731
|
+
export { type AccountInfo as AccountInfoOriginal, type ActionEvent as ActionEventOriginal, type ApplicationError as ApplicationErrorOriginal, type BlogPostCandidate as BlogPostCandidateOriginal, type BriefData as BriefDataOriginal, type BulkActionMetadata as BulkActionMetadataOriginal, type BulkMarkBlogPostCandidateItem as BulkMarkBlogPostCandidateItemOriginal, type BulkMarkBlogPostCandidateResult as BulkMarkBlogPostCandidateResultOriginal, type BulkMarkBlogPostCandidatesRequest as BulkMarkBlogPostCandidatesRequestOriginal, type BulkMarkBlogPostCandidatesResponse as BulkMarkBlogPostCandidatesResponseOriginal, type CandidateData as CandidateDataOriginal, type Column as ColumnOriginal, ColumnType as ColumnTypeOriginal, type ColumnTypeWithLiterals as ColumnTypeWithLiteralsOriginal, type ContentPlan as ContentPlanOriginal, type CreateContentPlanApplicationErrors as CreateContentPlanApplicationErrorsOriginal, type CreateContentPlanRequest as CreateContentPlanRequestOriginal, type CreateContentPlanResponse as CreateContentPlanResponseOriginal, type CursorPagingMetadata as CursorPagingMetadataOriginal, type CursorPaging as CursorPagingOriginal, type Cursors as CursorsOriginal, type DomainEventBodyOneOf as DomainEventBodyOneOfOriginal, type DomainEvent as DomainEventOriginal, type EntityCreatedEvent as EntityCreatedEventOriginal, type EntityDeletedEvent as EntityDeletedEventOriginal, type EntityUpdatedEvent as EntityUpdatedEventOriginal, type GetBlogPostCandidateByIdRequest as GetBlogPostCandidateByIdRequestOriginal, type GetBlogPostCandidateByIdResponse as GetBlogPostCandidateByIdResponseOriginal, type GetBlogPostCandidateRequest as GetBlogPostCandidateRequestOriginal, type GetBlogPostCandidateResponse as GetBlogPostCandidateResponseOriginal, type GetContentPlanRequest as GetContentPlanRequestOriginal, type GetContentPlanResponse as GetContentPlanResponseOriginal, type IdentificationDataIdOneOf as IdentificationDataIdOneOfOriginal, type IdentificationData as IdentificationDataOriginal, type ItemMetadata as ItemMetadataOriginal, type Keyword as KeywordOriginal, type ListBlogPostCandidatesRequest as ListBlogPostCandidatesRequestOriginal, type ListBlogPostCandidatesResponse as ListBlogPostCandidatesResponseOriginal, type MarkBlogPostCandidateRequest as MarkBlogPostCandidateRequestOriginal, type MarkBlogPostCandidateResponse as MarkBlogPostCandidateResponseOriginal, type MessageEnvelope as MessageEnvelopeOriginal, type PeopleAlsoAskAnswer as PeopleAlsoAskAnswerOriginal, type PeopleAlsoAskQuestion as PeopleAlsoAskQuestionOriginal, type QueryBlogPostCandidatesRequest as QueryBlogPostCandidatesRequestOriginal, type QueryBlogPostCandidatesResponse as QueryBlogPostCandidatesResponseOriginal, type RestoreInfo as RestoreInfoOriginal, type Row as RowOriginal, RowStatus as RowStatusOriginal, type RowStatusWithLiterals as RowStatusWithLiteralsOriginal, type SeoSchema as SeoSchemaOriginal, type SerpData as SerpDataOriginal, type Settings as SettingsOriginal, type Tag as TagOriginal, type UpdateContentPlanRequest as UpdateContentPlanRequestOriginal, type UpdateContentPlanResponse as UpdateContentPlanResponseOriginal, WebhookIdentityType as WebhookIdentityTypeOriginal, type WebhookIdentityTypeWithLiterals as WebhookIdentityTypeWithLiteralsOriginal, type __PublicMethodMetaInfo, createContentPlan, listBlogPostCandidates };
|