export interface Post {
/**
* Post ID.
* @readonly
*/
id?: string;
/** Post title. */
title?: string;
/**
* Post excerpt.
* Can be selected by a site contributor. By default, it is extracted from the content text's first characters.
*
* Max: 500 characters
*/
excerpt?: string;
/**
* The post's content in plain text.
* @readonly
*/
contentText?: string | null;
/** Date the post was first published. */
firstPublishedDate?: Date | null;
/**
* Date the post was last published.
* @readonly
*/
lastPublishedDate?: Date | null;
/** Post URL. */
url?: PageUrl;
/** Post slug. For example, `'post-slug'`. */
slug?: string;
/** Whether the post is marked as featured. */
featured?: boolean;
/** Whether the post is pinned. If `true`, the post is placed at the top of the post list. */
pinned?: boolean;
/** [Category IDs](https://dev.wix.com/docs/rest/business-solutions/blog/category/introduction) of the post. */
categoryIds?: string[];
/**
* __Deprecated.__ Use `media` instead.
* This property will be removed on June 30, 2023.
*
* Post cover media.
* @deprecated
* @replacedBy media
* @targetRemovalDate 2024-06-30
*/
coverMedia?: CoverMedia;
/** Post owner's [member ID](https://dev.wix.com/api/rest/members). */
memberId?: string;
/**
* Hashtags in the post.
* @readonly
*/
hashtags?: string[];
/** Whether commenting on the post is enabled. */
commentingEnabled?: boolean;
/** Estimated reading time (calculated automatically). */
minutesToRead?: number;
/** Image placed at the top of the blog page. */
heroImage?: Image;
/**
* IDs of [tags](https://dev.wix.com/docs/rest/business-solutions/blog/tags) the post is tagged with.
* @readonly
*/
tagIds?: string[];
/**
* IDs of posts related to the post.
* @readonly
*/
relatedPostIds?: string[];
/**
* [Pricing plan IDs](https://dev.wix.com/api/rest/wix-pricing-plans). Only relevant if a post is assigned to a specific pricing plan.
* @readonly
*/
pricingPlanIds?: string[];
/** ID of the translations of this post. All translations of a single post share the same `translationId`. */
translationId?: string | null;
/**
* Language the post is written in.
*
* 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.
*/
language?: string | null;
/** SEO data. */
seoData?: SeoSchema;
/**
* Reserved for internal use.
* @readonly
*/
content?: string | null;
/** Post owner's [contact ID](https://dev.wix.com/api/rest/contacts). */
contactId?: string | null;
/**
* Post rich content
*
*
* See Ricos document reference
*
* @readonly
*/
richContent?: RichContent;
/**
* Whether the returned content is a preview of premium content. Defaults to `false`.
* A preview displays a limited number of paragraphs of paid content to non-subscribed users.
* @readonly
*/
preview?: boolean;
/** Reserved for internal use. */
contentId?: string | null;
/**
* Reserved for internal use.
* @readonly
*/
mostRecentContributorId?: string | null;
/**
* Post moderation details. Only relevant to posts submitted by [guest writers](https://support.wix.com/en/article/wix-blog-moderating-blog-posts-from-your-guest-writers).
* @readonly
*/
moderationDetails?: ModerationDetails;
/** Post cover media. */
media?: Media;
/**
* Indicates if there is a draft post with changes that have not yet been published.
* @readonly
*/
hasUnpublishedChanges?: boolean;
/**
* Post reference ID. You can reference the post from other entities, for example, comments.
* @readonly
*/
referenceId?: string | null;
}
export interface PageUrl {
/** The base URL. For premium sites, this is the domain. For free sites, this is the site URL. For example, `mysite.wixsite.com/mysite`. */
base?: string;
/** The relative path for the page within the site. For example, `/product-page/a-product`. */
path?: string;
}
export interface CoverMedia extends CoverMediaMediaOneOf {
/** Image url. */
image?: Image;
/** Video url. */
video?: Video;
/**
* Is cover media enabled.
* Selected by user whether to display cover media on the feed
* @deprecated Is cover media enabled.
* Selected by user whether to display cover media on the feed
* @replacedBy displayed
* @targetRemovalDate 2024-06-30
*/
enabled?: boolean;
/** Whether cover media is displayed. */
displayed?: boolean;
/** Whether cover media is custom. If `false` the cover image is set to the first media item that appears in the content. */
custom?: boolean;
/** Media alternative text. */
altText?: string | null;
}
/** @oneof */
export interface CoverMediaMediaOneOf {
/** Image url. */
image?: Image;
/** Video url. */
video?: Video;
}
export interface Image {
/** WixMedia image ID. */
id?: string;
/** Image URL. */
url?: string;
/**
* Original image height.
* @readonly
*/
height?: number;
/**
* Original image width.
* @readonly
*/
width?: number;
/** Image alt text. */
altText?: string | null;
/**
* Image filename.
* @readonly
*/
filename?: string | null;
}
export interface FocalPoint {
/** X-coordinate of the focal point. */
x?: number;
/** Y-coordinate of the focal point. */
y?: number;
/** crop by height */
height?: number | null;
/** crop by width */
width?: number | null;
}
/** Deprecated - use VideoV2 */
export interface Video {
/** WixMedia ID */
id?: string;
/** URL of video */
url?: string;
/**
* Original image height
* @readonly
*/
height?: number;
/**
* Original image width
* @readonly
*/
width?: number;
/** Video poster */
thumbnail?: Image;
}
export interface PostCountInfo {
/**
* Total number of post comments
* @readonly
*/
comments?: number;
/**
* Total number of post likes
* @readonly
*/
likes?: number;
/**
* Total number of post views
* @readonly
*/
views?: number;
}
export interface Metrics {
/**
* Total number of post comments.
* @readonly
*/
comments?: number;
/**
* Total number of post likes.
* @readonly
*/
likes?: number;
/**
* Total number of post views.
* @readonly
*/
views?: number;
}
/**
* 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.
* The search engines use this information for ranking purposes, or to display snippets in the search results.
* This data will override other sources of tags (for example patterns) and will be included in the
section of the HTML document, while not being displayed on the page itself.
*/
export interface SeoSchema {
/** SEO tag information. */
tags?: Tag[];
/** SEO general settings. */
settings?: Settings;
}
export interface Keyword {
/** Keyword value. */
term?: string;
/** Whether the keyword is the main focus keyword. */
isMain?: boolean;
/** The source that added the keyword terms to the SEO settings. */
origin?: string | null;
}
export interface Tag {
/**
* SEO tag type.
*
*
* Supported values: `title`, `meta`, `script`, `link`.
*/
type?: string;
/**
* A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.
* For example: `{"name": "description", "content": "the description itself"}`.
*/
props?: Record | null;
/** SEO tag meta data. For example, `{"height": 300, "width": 240}`. */
meta?: Record | null;
/** SEO tag inner content. For example, ` inner content `. */
children?: string;
/** Whether the tag is a custom tag. */
custom?: boolean;
/** Whether the tag is disabled. */
disabled?: boolean;
}
export interface Settings {
/**
* Whether the Auto Redirect feature, which creates `301 redirects` on a slug change, is enabled.
*
*
* Default: `false` (Auto Redirect is enabled.)
*/
preventAutoRedirect?: boolean;
/** User-selected keyword terms for a specific page. */
keywords?: Keyword[];
}
export interface RichContent {
/** Node objects representing a rich content document. */
nodes?: Node[];
/** Object metadata. */
metadata?: Metadata;
/** Global styling for header, paragraph, block quote, and code block nodes in the object. */
documentStyle?: DocumentStyle;
}
export interface Node extends NodeDataOneOf {
/** Data for a button node. */
buttonData?: ButtonData;
/** Data for a code block node. */
codeBlockData?: CodeBlockData;
/** Data for a divider node. */
dividerData?: DividerData;
/** Data for a file node. */
fileData?: FileData;
/** Data for a gallery node. */
galleryData?: GalleryData;
/** Data for a GIF node. */
gifData?: GIFData;
/** Data for a heading node. */
headingData?: HeadingData;
/** Data for an embedded HTML node. */
htmlData?: HTMLData;
/** Data for an image node. */
imageData?: ImageData;
/** Data for a link preview node. */
linkPreviewData?: LinkPreviewData;
/** @deprecated */
mapData?: MapData;
/** Data for a paragraph node. */
paragraphData?: ParagraphData;
/** Data for a poll node. */
pollData?: PollData;
/** Data for a text node. Used to apply decorations to text. */
textData?: TextData;
/** Data for an app embed node. */
appEmbedData?: AppEmbedData;
/** Data for a video node. */
videoData?: VideoData;
/** Data for an oEmbed node. */
embedData?: EmbedData;
/** Data for a collapsible list node. */
collapsibleListData?: CollapsibleListData;
/** Data for a table node. */
tableData?: TableData;
/** Data for a table cell node. */
tableCellData?: TableCellData;
/** Data for a custom external node. */
externalData?: Record | null;
/** Data for an audio node. */
audioData?: AudioData;
/** Data for an ordered list node. */
orderedListData?: OrderedListData;
/** Data for a bulleted list node. */
bulletedListData?: BulletedListData;
/** Data for a block quote node. */
blockquoteData?: BlockquoteData;
/** Data for a caption node. */
captionData?: CaptionData;
/** LayoutData layout_data = 31; // Data for a layout node. Reserved for future use. */
layoutCellData?: LayoutCellData;
/** Node type. Use `APP_EMBED` for nodes that embed content from other Wix apps. Use `EMBED` to embed content in [oEmbed](https://oembed.com/) format. */
type?: NodeType;
/** Node ID. */
id?: string;
/** A list of child nodes. */
nodes?: Node[];
/** Padding and background color styling for the node. */
style?: NodeStyle;
}
/** @oneof */
export interface NodeDataOneOf {
/** Data for a button node. */
buttonData?: ButtonData;
/** Data for a code block node. */
codeBlockData?: CodeBlockData;
/** Data for a divider node. */
dividerData?: DividerData;
/** Data for a file node. */
fileData?: FileData;
/** Data for a gallery node. */
galleryData?: GalleryData;
/** Data for a GIF node. */
gifData?: GIFData;
/** Data for a heading node. */
headingData?: HeadingData;
/** Data for an embedded HTML node. */
htmlData?: HTMLData;
/** Data for an image node. */
imageData?: ImageData;
/** Data for a link preview node. */
linkPreviewData?: LinkPreviewData;
/** @deprecated */
mapData?: MapData;
/** Data for a paragraph node. */
paragraphData?: ParagraphData;
/** Data for a poll node. */
pollData?: PollData;
/** Data for a text node. Used to apply decorations to text. */
textData?: TextData;
/** Data for an app embed node. */
appEmbedData?: AppEmbedData;
/** Data for a video node. */
videoData?: VideoData;
/** Data for an oEmbed node. */
embedData?: EmbedData;
/** Data for a collapsible list node. */
collapsibleListData?: CollapsibleListData;
/** Data for a table node. */
tableData?: TableData;
/** Data for a table cell node. */
tableCellData?: TableCellData;
/** Data for a custom external node. */
externalData?: Record | null;
/** Data for an audio node. */
audioData?: AudioData;
/** Data for an ordered list node. */
orderedListData?: OrderedListData;
/** Data for a bulleted list node. */
bulletedListData?: BulletedListData;
/** Data for a block quote node. */
blockquoteData?: BlockquoteData;
/** Data for a caption node. */
captionData?: CaptionData;
/** LayoutData layout_data = 31; // Data for a layout node. Reserved for future use. */
layoutCellData?: LayoutCellData;
}
export declare enum NodeType {
PARAGRAPH = "PARAGRAPH",
TEXT = "TEXT",
HEADING = "HEADING",
BULLETED_LIST = "BULLETED_LIST",
ORDERED_LIST = "ORDERED_LIST",
LIST_ITEM = "LIST_ITEM",
BLOCKQUOTE = "BLOCKQUOTE",
CODE_BLOCK = "CODE_BLOCK",
VIDEO = "VIDEO",
DIVIDER = "DIVIDER",
FILE = "FILE",
GALLERY = "GALLERY",
GIF = "GIF",
HTML = "HTML",
IMAGE = "IMAGE",
LINK_PREVIEW = "LINK_PREVIEW",
/** @deprecated */
MAP = "MAP",
POLL = "POLL",
APP_EMBED = "APP_EMBED",
BUTTON = "BUTTON",
COLLAPSIBLE_LIST = "COLLAPSIBLE_LIST",
TABLE = "TABLE",
EMBED = "EMBED",
COLLAPSIBLE_ITEM = "COLLAPSIBLE_ITEM",
COLLAPSIBLE_ITEM_TITLE = "COLLAPSIBLE_ITEM_TITLE",
COLLAPSIBLE_ITEM_BODY = "COLLAPSIBLE_ITEM_BODY",
TABLE_CELL = "TABLE_CELL",
TABLE_ROW = "TABLE_ROW",
EXTERNAL = "EXTERNAL",
AUDIO = "AUDIO",
CAPTION = "CAPTION",
LAYOUT = "LAYOUT",
LAYOUT_CELL = "LAYOUT_CELL"
}
export interface NodeStyle {
/** The top padding value in pixels. */
paddingTop?: string | null;
/** The bottom padding value in pixels. */
paddingBottom?: string | null;
/** The background color as a hexadecimal value. */
backgroundColor?: string | null;
}
export interface ButtonData {
/** Styling for the button's container. */
containerData?: PluginContainerData;
/** The button type. */
type?: Type;
/** Styling for the button. */
styles?: Styles;
/** The text to display on the button. */
text?: string | null;
/** Button link details. */
link?: Link;
}
export interface Border {
/** Border width in pixels. */
width?: number | null;
/** Border radius in pixels. */
radius?: number | null;
}
export interface Colors {
/** The text color as a hexadecimal value. */
text?: string | null;
/** The border color as a hexadecimal value. */
border?: string | null;
/** The background color as a hexadecimal value. */
background?: string | null;
}
export interface PluginContainerData {
/** The width of the node when it's displayed. */
width?: PluginContainerDataWidth;
/** The node's alignment within its container. */
alignment?: PluginContainerDataAlignment;
/** Spoiler cover settings for the node. */
spoiler?: Spoiler;
/** The height of the node when it's displayed. */
height?: Height;
/** Sets whether text should wrap around this node when it's displayed. If `textWrap` is `false`, the node takes up the width of its container. Defaults to `true` for all node types except 'DIVIVDER' where it defaults to `false`. */
textWrap?: boolean | null;
}
export declare enum WidthType {
/** Width matches the content width */
CONTENT = "CONTENT",
/** Small Width */
SMALL = "SMALL",
/** Width will match the original asset width */
ORIGINAL = "ORIGINAL",
/** coast-to-coast display */
FULL_WIDTH = "FULL_WIDTH"
}
export interface PluginContainerDataWidth extends PluginContainerDataWidthDataOneOf {
/**
* One of the following predefined width options:
* `CONTENT`: The width of the container matches the content width.
* `SMALL`: A small width.
* `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width.
* `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.
*/
size?: WidthType;
/** A custom width value in pixels. */
custom?: string | null;
}
/** @oneof */
export interface PluginContainerDataWidthDataOneOf {
/**
* One of the following predefined width options:
* `CONTENT`: The width of the container matches the content width.
* `SMALL`: A small width.
* `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width.
* `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.
*/
size?: WidthType;
/** A custom width value in pixels. */
custom?: string | null;
}
export declare enum PluginContainerDataAlignment {
/** Center Alignment */
CENTER = "CENTER",
/** Left Alignment */
LEFT = "LEFT",
/** Right Alignment */
RIGHT = "RIGHT"
}
export interface Spoiler {
/** Sets whether the spoiler cover is enabled for this node. Defaults to `false`. */
enabled?: boolean | null;
/** The description displayed on top of the spoiler cover. */
description?: string | null;
/** The text for the button used to remove the spoiler cover. */
buttonText?: string | null;
}
export interface Height {
/** A custom height value in pixels. */
custom?: string | null;
}
export declare enum Type {
/** Regular link button */
LINK = "LINK",
/** Triggers custom action that is defined in plugin configuration by the consumer */
ACTION = "ACTION"
}
export interface Styles {
/** Border attributes. */
border?: Border;
/** Color attributes. */
colors?: Colors;
}
export interface Link extends LinkDataOneOf {
/** The absolute URL for the linked document. */
url?: string;
/** The target node's ID. Used for linking to another node in this object. */
anchor?: string;
/**
* he HTML `target` attribute value for the link. This property defines where the linked document opens as follows:
* `SELF` - Default. Opens the linked document in the same frame as the link.
* `BLANK` - Opens the linked document in a new browser tab or window.
* `PARENT` - Opens the linked document in the link's parent frame.
* `TOP` - Opens the linked document in the full body of the link's browser tab or window.
*/
target?: Target;
/** The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document. */
rel?: Rel;
/** A serialized object used for a custom or external link panel. */
customData?: string | null;
}
/** @oneof */
export interface LinkDataOneOf {
/** The absolute URL for the linked document. */
url?: string;
/** The target node's ID. Used for linking to another node in this object. */
anchor?: string;
}
export declare enum Target {
/** Opens the linked document in the same frame as it was clicked (this is default) */
SELF = "SELF",
/** Opens the linked document in a new window or tab */
BLANK = "BLANK",
/** Opens the linked document in the parent frame */
PARENT = "PARENT",
/** Opens the linked document in the full body of the window */
TOP = "TOP"
}
export interface Rel {
/** Indicates to search engine crawlers not to follow the link. Defaults to `false`. */
nofollow?: boolean | null;
/** Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement. Defaults to `false`. */
sponsored?: boolean | null;
/** Indicates that this link is user-generated content and isn't necessarily trusted or endorsed by the page’s author. For example, a link in a fourm post. Defaults to `false`. */
ugc?: boolean | null;
/** Indicates that this link protect referral information from being passed to the target website. */
noreferrer?: boolean | null;
}
export interface CodeBlockData {
/** Styling for the code block's text. */
textStyle?: TextStyle;
}
export interface TextStyle {
/** Text alignment. Defaults to `AUTO`. */
textAlignment?: TextAlignment;
/** A CSS `line-height` value for the text expressed as a ratio relative to the font size. For example, if the font size is 20px, a `lineHeight` value of `'1.5'`` results in a line height of 30px. */
lineHeight?: string | null;
}
export declare enum TextAlignment {
/** browser default, eqivalent to `initial` */
AUTO = "AUTO",
/** Left align */
LEFT = "LEFT",
/** Right align */
RIGHT = "RIGHT",
/** Center align */
CENTER = "CENTER",
/** Text is spaced to line up its left and right edges to the left and right edges of the line box, except for the last line */
JUSTIFY = "JUSTIFY"
}
export interface DividerData {
/** Styling for the divider's container. */
containerData?: PluginContainerData;
/** Divider line style. */
lineStyle?: LineStyle;
/** Divider width. */
width?: Width;
/** Divider alignment. */
alignment?: Alignment;
}
export declare enum LineStyle {
/** Single Line */
SINGLE = "SINGLE",
/** Double Line */
DOUBLE = "DOUBLE",
/** Dashed Line */
DASHED = "DASHED",
/** Dotted Line */
DOTTED = "DOTTED"
}
export declare enum Width {
/** Large line */
LARGE = "LARGE",
/** Medium line */
MEDIUM = "MEDIUM",
/** Small line */
SMALL = "SMALL"
}
export declare enum Alignment {
/** Center alignment */
CENTER = "CENTER",
/** Left alignment */
LEFT = "LEFT",
/** Right alignment */
RIGHT = "RIGHT"
}
export interface FileData {
/** Styling for the file's container. */
containerData?: PluginContainerData;
/** The source for the file's data. */
src?: FileSource;
/** File name. */
name?: string | null;
/** File type. */
type?: string | null;
/**
* Use `sizeInKb` instead.
* @deprecated
*/
size?: number | null;
/** Settings for PDF files. */
pdfSettings?: PDFSettings;
/** File MIME type. */
mimeType?: string | null;
/** File path. */
path?: string | null;
/** File size in KB. */
sizeInKb?: string | null;
}
export declare enum ViewMode {
/** No PDF view */
NONE = "NONE",
/** Full PDF view */
FULL = "FULL",
/** Mini PDF view */
MINI = "MINI"
}
export interface FileSource extends FileSourceDataOneOf {
/** The absolute URL for the file's source. */
url?: string | null;
/**
* Custom ID. Use `id` instead.
* @deprecated
*/
custom?: string | null;
/** An ID that's resolved to a URL by a resolver function. */
id?: string | null;
/** Indicates whether the file's source is private. Defaults to `false`. */
private?: boolean | null;
}
/** @oneof */
export interface FileSourceDataOneOf {
/** The absolute URL for the file's source. */
url?: string | null;
/**
* Custom ID. Use `id` instead.
* @deprecated
*/
custom?: string | null;
/** An ID that's resolved to a URL by a resolver function. */
id?: string | null;
}
export interface PDFSettings {
/**
* PDF view mode. One of the following:
* `NONE` : The PDF isn't displayed.
* `FULL` : A full page view of the PDF is displayed.
* `MINI` : A mini view of the PDF is displayed.
*/
viewMode?: ViewMode;
/** Sets whether the PDF download button is disabled. Defaults to `false`. */
disableDownload?: boolean | null;
/** Sets whether the PDF print button is disabled. Defaults to `false`. */
disablePrint?: boolean | null;
}
export interface GalleryData {
/** Styling for the gallery's container. */
containerData?: PluginContainerData;
/** The items in the gallery. */
items?: Item[];
/** Options for defining the gallery's appearance. */
options?: GalleryOptions;
/** Sets whether the gallery's expand button is disabled. Defaults to `false`. */
disableExpand?: boolean | null;
/** Sets whether the gallery's download button is disabled. Defaults to `false`. */
disableDownload?: boolean | null;
}
export interface V1Media {
/** The source for the media's data. */
src?: FileSource;
/** Media width in pixels. */
width?: number | null;
/** Media height in pixels. */
height?: number | null;
/** Media duration in seconds. Only relevant for audio and video files. */
duration?: number | null;
}
export interface ItemImage {
/** Image file details. */
media?: V1Media;
/** Link details for images that are links. */
link?: Link;
}
export interface ItemVideo {
/** Video file details. */
media?: V1Media;
/** Video thumbnail file details. */
thumbnail?: V1Media;
}
export interface Item extends ItemDataOneOf {
/** An image item. */
image?: ItemImage;
/** A video item. */
video?: ItemVideo;
/** Item title. */
title?: string | null;
/** Item's alternative text. */
altText?: string | null;
}
/** @oneof */
export interface ItemDataOneOf {
/** An image item. */
image?: ItemImage;
/** A video item. */
video?: ItemVideo;
}
export interface GalleryOptions {
/** Gallery layout. */
layout?: Layout;
/** Styling for gallery items. */
item?: ItemStyle;
/** Styling for gallery thumbnail images. */
thumbnails?: Thumbnails;
}
export declare enum LayoutType {
/** Collage type */
COLLAGE = "COLLAGE",
/** Masonry type */
MASONRY = "MASONRY",
/** Grid type */
GRID = "GRID",
/** Thumbnail type */
THUMBNAIL = "THUMBNAIL",
/** Slider type */
SLIDER = "SLIDER",
/** Slideshow type */
SLIDESHOW = "SLIDESHOW",
/** Panorama type */
PANORAMA = "PANORAMA",
/** Column type */
COLUMN = "COLUMN",
/** Magic type */
MAGIC = "MAGIC",
/** Fullsize images type */
FULLSIZE = "FULLSIZE"
}
export declare enum Orientation {
/** Rows Orientation */
ROWS = "ROWS",
/** Columns Orientation */
COLUMNS = "COLUMNS"
}
export declare enum Crop {
/** Crop to fill */
FILL = "FILL",
/** Crop to fit */
FIT = "FIT"
}
export declare enum ThumbnailsAlignment {
/** Top alignment */
TOP = "TOP",
/** Right alignment */
RIGHT = "RIGHT",
/** Bottom alignment */
BOTTOM = "BOTTOM",
/** Left alignment */
LEFT = "LEFT",
/** No thumbnail */
NONE = "NONE"
}
export interface Layout {
/** Gallery layout type. */
type?: LayoutType;
/** Sets whether horizontal scroll is enabled. Defaults to `true` unless the layout `type` is set to `GRID` or `COLLAGE`. */
horizontalScroll?: boolean | null;
/** Gallery orientation. */
orientation?: Orientation;
/** The number of columns to display on full size screens. */
numberOfColumns?: number | null;
/** The number of columns to display on mobile screens. */
mobileNumberOfColumns?: number | null;
}
export interface ItemStyle {
/** Desirable dimension for each item in pixels (behvaior changes according to gallery type) */
targetSize?: number | null;
/** Item ratio */
ratio?: number | null;
/** Sets how item images are cropped. */
crop?: Crop;
/** The spacing between items in pixels. */
spacing?: number | null;
}
export interface Thumbnails {
/** Thumbnail alignment. */
placement?: ThumbnailsAlignment;
/** Spacing between thumbnails in pixels. */
spacing?: number | null;
}
export interface GIFData {
/** Styling for the GIF's container. */
containerData?: PluginContainerData;
/** The source of the full size GIF. */
original?: GIF;
/** The source of the downsized GIF. */
downsized?: GIF;
/** Height in pixels. */
height?: number;
/** Width in pixels. */
width?: number;
}
export interface GIF {
/** GIF format URL. */
gif?: string | null;
/** MP4 format URL. */
mp4?: string | null;
/** Thumbnail URL. */
still?: string | null;
}
export interface HeadingData {
/** Heading level from 1-6. */
level?: number;
/** Styling for the heading text. */
textStyle?: TextStyle;
/** Indentation level from 1-4. */
indentation?: number | null;
}
export interface HTMLData extends HTMLDataDataOneOf {
/** The URL for the HTML code for the node. */
url?: string;
/** The HTML code for the node. */
html?: string;
/**
* Whether this is an AdSense element. Use `source` instead.
* @deprecated
*/
isAdsense?: boolean | null;
/** Styling for the HTML node's container. */
containerData?: PluginContainerData;
/** The type of HTML code. */
source?: Source;
}
/** @oneof */
export interface HTMLDataDataOneOf {
/** The URL for the HTML code for the node. */
url?: string;
/** The HTML code for the node. */
html?: string;
/**
* Whether this is an AdSense element. Use `source` instead.
* @deprecated
*/
isAdsense?: boolean | null;
}
export declare enum Source {
HTML = "HTML",
ADSENSE = "ADSENSE"
}
export interface ImageData {
/** Styling for the image's container. */
containerData?: PluginContainerData;
/** Image file details. */
image?: V1Media;
/** Link details for images that are links. */
link?: Link;
/** Sets whether the image expands to full screen when clicked. Defaults to `false`. */
disableExpand?: boolean | null;
/** Image's alternative text. */
altText?: string | null;
/**
* Deprecated: use Caption node instead.
* @deprecated
*/
caption?: string | null;
/** Sets whether the image's download button is disabled. Defaults to `false`. */
disableDownload?: boolean | null;
}
export interface LinkPreviewData {
/** Styling for the link preview's container. */
containerData?: PluginContainerData;
/** Link details. */
link?: Link;
/** Preview title. */
title?: string | null;
/** Preview thumbnail URL. */
thumbnailUrl?: string | null;
/** Preview description. */
description?: string | null;
/** The preview content as HTML. */
html?: string | null;
}
export interface MapData {
/** Styling for the map's container. */
containerData?: PluginContainerData;
/** Map settings. */
mapSettings?: MapSettings;
}
export interface MapSettings {
/** The address to display on the map. */
address?: string | null;
/** Sets whether the map is draggable. */
draggable?: boolean | null;
/** Sets whether the location marker is visible. */
marker?: boolean | null;
/** Sets whether street view control is enabled. */
streetViewControl?: boolean | null;
/** Sets whether zoom control is enabled. */
zoomControl?: boolean | null;
/** Location latitude. */
lat?: number | null;
/** Location longitude. */
lng?: number | null;
/** Location name. */
locationName?: string | null;
/** Sets whether view mode control is enabled. */
viewModeControl?: boolean | null;
/** Initial zoom value. */
initialZoom?: number | null;
/** Map type. `HYBRID` is a combination of the `ROADMAP` and `SATELLITE` map types. */
mapType?: MapType;
}
export declare enum MapType {
/** Roadmap map type */
ROADMAP = "ROADMAP",
/** Satellite map type */
SATELITE = "SATELITE",
/** Hybrid map type */
HYBRID = "HYBRID",
/** Terrain map type */
TERRAIN = "TERRAIN"
}
export interface ParagraphData {
/** Styling for the paragraph text. */
textStyle?: TextStyle;
/** Indentation level from 1-4. */
indentation?: number | null;
/** Paragraph level */
level?: number | null;
}
export interface PollData {
/** Styling for the poll's container. */
containerData?: PluginContainerData;
/** Poll data. */
poll?: Poll;
/** Layout settings for the poll and voting options. */
layout?: PollDataLayout;
/** Styling for the poll and voting options. */
design?: Design;
}
export declare enum ViewRole {
/** Only Poll creator can view the results */
CREATOR = "CREATOR",
/** Anyone who voted can see the results */
VOTERS = "VOTERS",
/** Anyone can see the results, even if one didn't vote */
EVERYONE = "EVERYONE"
}
export declare enum VoteRole {
/** Logged in member */
SITE_MEMBERS = "SITE_MEMBERS",
/** Anyone */
ALL = "ALL"
}
export interface Permissions {
/** Sets who can view the poll results. */
view?: ViewRole;
/** Sets who can vote. */
vote?: VoteRole;
/** Sets whether one voter can vote multiple times. Defaults to `false`. */
allowMultipleVotes?: boolean | null;
}
export interface Option {
/** Option ID. */
id?: string | null;
/** Option title. */
title?: string | null;
/** The image displayed with the option. */
image?: V1Media;
}
export interface PollSettings {
/** Permissions settings for voting. */
permissions?: Permissions;
/** Sets whether voters are displayed in the vote results. Defaults to `true`. */
showVoters?: boolean | null;
/** Sets whether the vote count is displayed. Defaults to `true`. */
showVotesCount?: boolean | null;
}
export declare enum PollLayoutType {
/** List */
LIST = "LIST",
/** Grid */
GRID = "GRID"
}
export declare enum PollLayoutDirection {
/** Left-to-right */
LTR = "LTR",
/** Right-to-left */
RTL = "RTL"
}
export interface PollLayout {
/** The layout for displaying the voting options. */
type?: PollLayoutType;
/** The direction of the text displayed in the voting options. Text can be displayed either right-to-left or left-to-right. */
direction?: PollLayoutDirection;
/** Sets whether to display the main poll image. Defaults to `false`. */
enableImage?: boolean | null;
}
export interface OptionLayout {
/** Sets whether to display option images. Defaults to `false`. */
enableImage?: boolean | null;
}
export declare enum BackgroundType {
/** Color background type */
COLOR = "COLOR",
/** Image background type */
IMAGE = "IMAGE",
/** Gradiant background type */
GRADIENT = "GRADIENT"
}
export interface Gradient {
/** The gradient angle in degrees. */
angle?: number | null;
/** The start color as a hexademical value. */
startColor?: string | null;
/** The end color as a hexademical value. */
lastColor?: string | null;
}
export interface Background extends BackgroundBackgroundOneOf {
/** The background color as a hexademical value. */
color?: string | null;
/** An image to use for the background. */
image?: V1Media;
/** Details for a gradient background. */
gradient?: Gradient;
/** Background type. For each option, include the relevant details. */
type?: BackgroundType;
}
/** @oneof */
export interface BackgroundBackgroundOneOf {
/** The background color as a hexademical value. */
color?: string | null;
/** An image to use for the background. */
image?: V1Media;
/** Details for a gradient background. */
gradient?: Gradient;
}
export interface PollDesign {
/** Background styling. */
background?: Background;
/** Border radius in pixels. */
borderRadius?: number | null;
}
export interface OptionDesign {
/** Border radius in pixels. */
borderRadius?: number | null;
}
export interface Poll {
/** Poll ID. */
id?: string | null;
/** Poll title. */
title?: string | null;
/** Poll creator ID. */
creatorId?: string | null;
/** Main poll image. */
image?: V1Media;
/** Voting options. */
options?: Option[];
/** The poll's permissions and display settings. */
settings?: PollSettings;
}
export interface PollDataLayout {
/** Poll layout settings. */
poll?: PollLayout;
/** Voting otpions layout settings. */
options?: OptionLayout;
}
export interface Design {
/** Styling for the poll. */
poll?: PollDesign;
/** Styling for voting options. */
options?: OptionDesign;
}
export interface TextData {
/** The text to apply decorations to. */
text?: string;
/** The decorations to apply. */
decorations?: Decoration[];
}
/** Adds appearence changes to text */
export interface Decoration extends DecorationDataOneOf {
/** Data for an anchor link decoration. */
anchorData?: AnchorData;
/** Data for a color decoration. */
colorData?: ColorData;
/** Data for an external link decoration. */
linkData?: LinkData;
/** Data for a mention decoration. */
mentionData?: MentionData;
/** Data for a font size decoration. */
fontSizeData?: FontSizeData;
/** Font weight for a bold decoration. */
fontWeightValue?: number | null;
/** Data for an italic decoration. Defaults to `true`. */
italicData?: boolean | null;
/** Data for an underline decoration. Defaults to `true`. */
underlineData?: boolean | null;
/** Data for a spoiler decoration. */
spoilerData?: SpoilerData;
/** The type of decoration to apply. */
type?: DecorationType;
}
/** @oneof */
export interface DecorationDataOneOf {
/** Data for an anchor link decoration. */
anchorData?: AnchorData;
/** Data for a color decoration. */
colorData?: ColorData;
/** Data for an external link decoration. */
linkData?: LinkData;
/** Data for a mention decoration. */
mentionData?: MentionData;
/** Data for a font size decoration. */
fontSizeData?: FontSizeData;
/** Font weight for a bold decoration. */
fontWeightValue?: number | null;
/** Data for an italic decoration. Defaults to `true`. */
italicData?: boolean | null;
/** Data for an underline decoration. Defaults to `true`. */
underlineData?: boolean | null;
/** Data for a spoiler decoration. */
spoilerData?: SpoilerData;
}
export declare enum DecorationType {
BOLD = "BOLD",
ITALIC = "ITALIC",
UNDERLINE = "UNDERLINE",
SPOILER = "SPOILER",
ANCHOR = "ANCHOR",
MENTION = "MENTION",
LINK = "LINK",
COLOR = "COLOR",
FONT_SIZE = "FONT_SIZE",
EXTERNAL = "EXTERNAL"
}
export interface AnchorData {
/** The target node's ID. */
anchor?: string;
}
export interface ColorData {
/** The text's background color as a hexadecimal value. */
background?: string | null;
/** The text's foreground color as a hexadecimal value. */
foreground?: string | null;
}
export interface LinkData {
/** Link details. */
link?: Link;
}
export interface MentionData {
/** The mentioned user's name. */
name?: string;
/** The version of the user's name that appears after the `@` character in the mention. */
slug?: string;
/** Mentioned user's ID. */
id?: string | null;
}
export interface FontSizeData {
/** The units used for the font size. */
unit?: FontType;
/** Font size value. */
value?: number | null;
}
export declare enum FontType {
PX = "PX",
EM = "EM"
}
export interface SpoilerData {
/** Spoiler ID. */
id?: string | null;
}
export interface AppEmbedData extends AppEmbedDataAppDataOneOf {
/** Data for embedded Wix Bookings content. */
bookingData?: BookingData;
/** Data for embedded Wix Events content. */
eventData?: EventData;
/** The type of Wix App content being embedded. */
type?: AppType;
/** The ID of the embedded content. */
itemId?: string | null;
/** The name of the embedded content. */
name?: string | null;
/**
* Deprecated: Use `image` instead.
* @deprecated
*/
imageSrc?: string | null;
/** The URL for the embedded content. */
url?: string | null;
/** An image for the embedded content. */
image?: V1Media;
}
/** @oneof */
export interface AppEmbedDataAppDataOneOf {
/** Data for embedded Wix Bookings content. */
bookingData?: BookingData;
/** Data for embedded Wix Events content. */
eventData?: EventData;
}
export declare enum AppType {
PRODUCT = "PRODUCT",
EVENT = "EVENT",
BOOKING = "BOOKING"
}
export interface BookingData {
/** Booking duration in minutes. */
durations?: string | null;
}
export interface EventData {
/** Event schedule. */
scheduling?: string | null;
/** Event location. */
location?: string | null;
}
export interface VideoData {
/** Styling for the video's container. */
containerData?: PluginContainerData;
/** Video details. */
video?: V1Media;
/** Video thumbnail details. */
thumbnail?: V1Media;
/** Sets whether the video's download button is disabled. Defaults to `false`. */
disableDownload?: boolean | null;
/** Video title. */
title?: string | null;
/** Video options. */
options?: PlaybackOptions;
}
export interface PlaybackOptions {
/** Sets whether the media will automatically start playing. */
autoPlay?: boolean | null;
/** Sets whether media's will be looped. */
playInLoop?: boolean | null;
/** Sets whether media's controls will be shown. */
showControls?: boolean | null;
}
export interface EmbedData {
/** Styling for the oEmbed node's container. */
containerData?: PluginContainerData;
/** An [oEmbed](https://www.oembed.com) object. */
oembed?: Oembed;
/** Origin asset source. */
src?: string | null;
}
export interface Oembed {
/** The resource type. */
type?: string | null;
/** The width of the resource specified in the `url` property in pixels. */
width?: number | null;
/** The height of the resource specified in the `url` property in pixels. */
height?: number | null;
/** Resource title. */
title?: string | null;
/** The source URL for the resource. */
url?: string | null;
/** HTML for embedding a video player. The HTML should have no padding or margins. */
html?: string | null;
/** The name of the author or owner of the resource. */
authorName?: string | null;
/** The URL for the author or owner of the resource. */
authorUrl?: string | null;
/** The name of the resource provider. */
providerName?: string | null;
/** The URL for the resource provider. */
providerUrl?: string | null;
/** The URL for a thumbnail image for the resource. If this property is defined, `thumbnailWidth` and `thumbnailHeight` must also be defined. */
thumbnailUrl?: string | null;
/** The width of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailHeight` must also be defined. */
thumbnailWidth?: string | null;
/** The height of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailWidth`must also be defined. */
thumbnailHeight?: string | null;
/** The URL for an embedded viedo. */
videoUrl?: string | null;
/** The oEmbed version number. This value must be `1.0`. */
version?: string | null;
}
export interface CollapsibleListData {
/** Styling for the collapsible list's container. */
containerData?: PluginContainerData;
/** If `true`, only one item can be expanded at a time. Defaults to `false`. */
expandOnlyOne?: boolean | null;
/** Sets which items are expanded when the page loads. */
initialExpandedItems?: InitialExpandedItems;
/** The direction of the text in the list. Either left-to-right or right-to-left. */
direction?: Direction;
/** If `true`, The collapsible item will appear in search results as an FAQ. */
isQapageData?: boolean | null;
}
export declare enum InitialExpandedItems {
/** First item will be expended initally */
FIRST = "FIRST",
/** All items will expended initally */
ALL = "ALL",
/** All items collapsed initally */
NONE = "NONE"
}
export declare enum Direction {
/** Left-to-right */
LTR = "LTR",
/** Right-to-left */
RTL = "RTL"
}
export interface TableData {
/** Styling for the table's container. */
containerData?: PluginContainerData;
/** The table's dimensions. */
dimensions?: Dimensions;
/**
* Deprecated: Use `rowHeader` and `columnHeader` instead.
* @deprecated
*/
header?: boolean | null;
/** Sets whether the table's first row is a header. Defaults to `false`. */
rowHeader?: boolean | null;
/** Sets whether the table's first column is a header. Defaults to `false`. */
columnHeader?: boolean | null;
}
export interface Dimensions {
/** An array representing relative width of each column in relation to the other columns. */
colsWidthRatio?: number[];
/** An array representing the height of each row in pixels. */
rowsHeight?: number[];
/** An array representing the minimum width of each column in pixels. */
colsMinWidth?: number[];
}
export interface TableCellData {
/** Styling for the cell's background color and text alignment. */
cellStyle?: CellStyle;
/** The cell's border colors. */
borderColors?: BorderColors;
}
export declare enum VerticalAlignment {
/** Top alignment */
TOP = "TOP",
/** Middle alignment */
MIDDLE = "MIDDLE",
/** Bottom alignment */
BOTTOM = "BOTTOM"
}
export interface CellStyle {
/** Vertical alignment for the cell's text. */
verticalAlignment?: VerticalAlignment;
/** Cell background color as a hexadecimal value. */
backgroundColor?: string | null;
}
export interface BorderColors {
/** Left border color as a hexadecimal value. */
left?: string | null;
/** Right border color as a hexadecimal value. */
right?: string | null;
/** Top border color as a hexadecimal value. */
top?: string | null;
/** Bottom border color as a hexadecimal value. */
bottom?: string | null;
}
/**
* `NullValue` is a singleton enumeration to represent the null value for the
* `Value` type union.
*
* The JSON representation for `NullValue` is JSON `null`.
*/
export declare enum NullValue {
/** Null value. */
NULL_VALUE = "NULL_VALUE"
}
/**
* `ListValue` is a wrapper around a repeated field of values.
*
* The JSON representation for `ListValue` is JSON array.
*/
export interface ListValue {
/** Repeated field of dynamically typed values. */
values?: any[];
}
export interface AudioData {
/** Styling for the audio node's container. */
containerData?: PluginContainerData;
/** Audio file details. */
audio?: V1Media;
/** Sets whether the audio node's download button is disabled. Defaults to `false`. */
disableDownload?: boolean | null;
/** Cover image. */
coverImage?: V1Media;
/** Track name. */
name?: string | null;
/** Author name. */
authorName?: string | null;
/** An HTML version of the audio node. */
html?: string | null;
}
export interface OrderedListData {
/** Indentation level from 0-4. */
indentation?: number;
/** Offset level from 0-4. */
offset?: number | null;
/** List start number. */
start?: number | null;
}
export interface BulletedListData {
/** Indentation level from 0-4. */
indentation?: number;
/** Offset level from 0-4. */
offset?: number | null;
}
export interface BlockquoteData {
/** Indentation level from 1-4. */
indentation?: number;
}
export interface CaptionData {
textStyle?: TextStyle;
}
export interface LayoutCellData {
/** Size of the cell in 12 columns grid. */
colSpan?: number | null;
}
export interface Metadata {
/** Schema version. */
version?: number;
/**
* When the object was created.
* @readonly
* @deprecated
*/
createdTimestamp?: Date | null;
/**
* When the object was most recently updated.
* @deprecated
*/
updatedTimestamp?: Date | null;
/** Object ID. */
id?: string | null;
}
export interface DocumentStyle {
/** Styling for H1 nodes. */
headerOne?: TextNodeStyle;
/** Styling for H2 nodes. */
headerTwo?: TextNodeStyle;
/** Styling for H3 nodes. */
headerThree?: TextNodeStyle;
/** Styling for H4 nodes. */
headerFour?: TextNodeStyle;
/** Styling for H5 nodes. */
headerFive?: TextNodeStyle;
/** Styling for H6 nodes. */
headerSix?: TextNodeStyle;
/** Styling for paragraph nodes. */
paragraph?: TextNodeStyle;
/** Styling for block quote nodes. */
blockquote?: TextNodeStyle;
/** Styling for code block nodes. */
codeBlock?: TextNodeStyle;
}
export interface TextNodeStyle {
/** The decorations to apply to the node. */
decorations?: Decoration[];
/** Padding and background color for the node. */
nodeStyle?: NodeStyle;
/** Line height for text in the node. */
lineHeight?: string | null;
}
export interface ModerationDetails {
/** Member ID of the person submitting the draft post for review. */
submittedBy?: string;
/** Date the post was submitted for review. */
submittedDate?: Date | null;
/** Status indicating whether the submission was approved or rejected by the moderator. */
status?: ModerationStatusStatus;
/** Member ID of the person who approved or rejected the post. */
moderatedBy?: string | null;
/** Date the post was approved or rejected. */
moderationDate?: Date | null;
}
export declare enum ModerationStatusStatus {
UNKNOWN = "UNKNOWN",
APPROVED = "APPROVED",
REJECTED = "REJECTED"
}
export interface Media extends MediaMediaOneOf {
/** Wix Media details. */
wixMedia?: WixMedia;
/** Embed media details. */
embedMedia?: EmbedMedia;
/** Whether cover media is displayed. */
displayed?: boolean;
/** Whether custom cover media has been specified. If `false`, the first media item in the post's content serves as cover media. */
custom?: boolean;
/** Media alternative text. */
altText?: string | null;
}
/** @oneof */
export interface MediaMediaOneOf {
/** Wix Media details. */
wixMedia?: WixMedia;
/** Embed media details. */
embedMedia?: EmbedMedia;
}
export interface WixMedia {
/** Image details. */
image?: Image;
/** Video details. */
videoV2?: VideoV2;
}
export interface VideoV2 {
/** WixMedia ID. */
id?: string;
/**
* Available resolutions for the video, starting with the optimal resolution.
* @readonly
*/
resolutions?: VideoResolution[];
/**
* Video filename.
* @readonly
*/
filename?: string | null;
}
export interface VideoResolution {
/** Video URL. */
url?: string;
/** Video height. */
height?: number;
/** Video width. */
width?: number;
/** Video format for example, mp4, hls. */
format?: string;
}
export interface EmbedMedia {
/** Thumbnail details. */
thumbnail?: EmbedThumbnail;
/** Video details. */
video?: EmbedVideo;
}
export interface EmbedThumbnail {
/** Thumbnail url. */
url?: string;
/** Thumbnail width. */
width?: number;
/** Thumbnail height. */
height?: number;
}
export interface EmbedVideo {
/** Video url. */
url?: string;
/** Video width. */
width?: number;
/** Video height. */
height?: number;
}
export interface PostTranslation {
/** Post ID. */
id?: string;
/** Language the post is written in. */
language?: string | null;
/** Post slug. For example, 'post-slug'. */
slug?: string | null;
/** SEO data. */
seoData?: SeoSchema;
/** Post URL. */
url?: PageUrl;
}
export interface OldBlogMigratedEvent {
/** Instance id of new version of blog */
newBlogInstanceId?: string;
/** Instance id of old version of blog */
oldBlogInstanceId?: string;
}
export interface PostCategoriesUpdated {
/** ID of the post which counters were updated. */
postId?: string;
/** Current categories of the post. */
categories?: string[];
/** Previous categories of the post. */
previousCategories?: string[];
}
export interface PostTagsUpdated {
/** ID of the post which counters were updated. */
postId?: string;
/** Current tags of the post. */
tags?: string[];
/** Previous tags of the post. */
previousTags?: string[];
}
export interface ScheduledPostPublished {
/** ID of the scheduled post which was published. */
postId?: string;
}
export interface DomainEvent extends DomainEventBodyOneOf {
createdEvent?: EntityCreatedEvent;
updatedEvent?: EntityUpdatedEvent;
deletedEvent?: EntityDeletedEvent;
actionEvent?: ActionEvent;
/**
* Unique event ID.
* Allows clients to ignore duplicate webhooks.
*/
id?: string;
/**
* Assumes actions are also always typed to an entity_type
* Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction
*/
entityFqdn?: string;
/**
* This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug)
* This is although the created/updated/deleted notion is duplication of the oneof types
* Example: created/updated/deleted/started/completed/email_opened
*/
slug?: string;
/** ID of the entity associated with the event. */
entityId?: string;
/** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example: 2020-04-26T13:57:50.699Z */
eventTime?: Date | null;
/**
* Whether the event was triggered as a result of a privacy regulation application
* (for example, GDPR).
*/
triggeredByAnonymizeRequest?: boolean | null;
/** If present, indicates the action that triggered the event. */
originatedFrom?: string | null;
/**
* A sequence number defining the order of updates to the underlying entity.
* For example, given that some entity was updated at 16:00 and than again at 16:01,
* it is guaranteed that the sequence number of the second update is strictly higher than the first.
* As the consumer, you can use this value to ensure that you handle messages in the correct order.
* To do so, you will need to persist this number on your end, and compare the sequence number from the
* message against the one you have stored. Given that the stored number is higher, you should ignore the message.
*/
entityEventSequence?: string | null;
}
/** @oneof */
export interface DomainEventBodyOneOf {
createdEvent?: EntityCreatedEvent;
updatedEvent?: EntityUpdatedEvent;
deletedEvent?: EntityDeletedEvent;
actionEvent?: ActionEvent;
}
export interface EntityCreatedEvent {
entityAsJson?: string;
/** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */
restoreInfo?: RestoreInfo;
}
export interface RestoreInfo {
deletedDate?: Date | null;
}
export interface EntityUpdatedEvent {
/**
* Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.
* This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.
* We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.
*/
currentEntityAsJson?: string;
}
export interface EntityDeletedEvent {
/** Entity that was deleted */
deletedEntityAsJson?: string | null;
}
export interface ActionEvent {
bodyAsJson?: string;
}
export interface MessageEnvelope {
/** App instance ID. */
instanceId?: string | null;
/** Event type. */
eventType?: string;
/** The identification type and identity data. */
identity?: IdentificationData;
/** Stringify payload. */
data?: string;
}
export interface IdentificationData extends IdentificationDataIdOneOf {
/** ID of a site visitor that has not logged in to the site. */
anonymousVisitorId?: string;
/** ID of a site visitor that has logged in to the site. */
memberId?: string;
/** ID of a Wix user (site owner, contributor, etc.). */
wixUserId?: string;
/** ID of an app. */
appId?: string;
/** @readonly */
identityType?: WebhookIdentityType;
}
/** @oneof */
export interface IdentificationDataIdOneOf {
/** ID of a site visitor that has not logged in to the site. */
anonymousVisitorId?: string;
/** ID of a site visitor that has logged in to the site. */
memberId?: string;
/** ID of a Wix user (site owner, contributor, etc.). */
wixUserId?: string;
/** ID of an app. */
appId?: string;
}
export declare enum WebhookIdentityType {
UNKNOWN = "UNKNOWN",
ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
MEMBER = "MEMBER",
WIX_USER = "WIX_USER",
APP = "APP"
}
export interface ConvertDraftJsToRichContentRequest {
/** DraftJs content to convert to Rich content. */
content?: Record | null;
}
export interface ConvertDraftJsToRichContentResponse {
/** Rich content converted from DraftJs content. */
richContent?: string;
}
export interface ConvertRichContentToDraftJsRequest {
/** Rich content to convert to DraftJs content. */
richContent?: string;
}
export interface ConvertRichContentToDraftJsResponse {
/** DraftJs content converted from Rich content. */
content?: Record | null;
}
export interface ListDemoPostsRequest {
/**
* Whether to return only featured posts.
*
* Default: `false`
*/
featured?: boolean;
/**
* Hashtag filter.
*
* Pass an array of hashtags to return only posts containing any of the provided hashtags.
* If omitted, all posts with or without hashtags are returned.
*/
hashtags?: string[];
/**
* Category filter.
*
* Pass an array of category IDs to return only posts with any of the provided categories.
* If omitted, all posts with or without associated categories are returned.
*/
categoryIds?: string[];
/**
* Tag filter.
*
* Pass an array of tag IDs to return only posts with any of the provided tags.
* If omitted, all posts with or without tags are returned.
*/
tagIds?: string[];
/**
* Sorting options.
*
* - `FEED`: Ordered by `firstPublishedDate` in descending order with pinned posts first.
* - `VIEW_COUNT`: Ordered by total number of views in descending order.
* - `LIKE_COUNT`: Ordered by total number of likes in descending order.
* - `PUBLISHED_DATE_ASC`: Ordered by `firstPublishedDate` in ascending order.
* - `PUBLISHED_DATE_DESC`: Ordered by `firstPublishedDate` in descending order.
* - `TITLE_ASC`: Ordered by `title` in ascening order.
* - `TITLE_DESC`: Ordered by `title` in descending order.
* - `RATING`: reserved for internal use.
*
* Default: `FEED`
*/
sort?: GetPostsSort;
/** Pagination options. */
paging?: BlogPaging;
/**
* __Deprecated.__ Use `fieldsets` instead.
* This parameter will be removed on June 30, 2023.
*
* List of post fields to be included in the response.
* @deprecated __Deprecated.__ Use `fieldsets` instead.
* This parameter will be removed on June 30, 2023.
*
* List of post fields to be included in the response.
* @replacedBy fieldsets
* @targetRemovalDate 2024-06-30
*/
fieldsToInclude?: PostFieldField[];
/**
* Language filter.
*
* 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.
* Pass a language to only receive posts that are in that language.
* If omitted, posts in all languages are returned.
*/
language?: string | null;
/** Post owner's member ID. */
memberId?: string | null;
/**
* List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in
* the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default
* only the post’s base fields are returned.
*/
fieldsets?: PostFieldField[];
}
export declare enum GetPostsSort {
/** Ordered by `firstPublishedDate` in descending order with pinned posts first. */
FEED = "FEED",
/** Ordered by `firstPublishedDate` in ascending order. */
PUBLISHED_DATE_ASC = "PUBLISHED_DATE_ASC",
/** Ordered by `firstPublishedDate` in descending order. */
PUBLISHED_DATE_DESC = "PUBLISHED_DATE_DESC",
/** Ordered by total number of views in descending order. */
VIEW_COUNT = "VIEW_COUNT",
/** Ordered by total number of likes in descending order. */
LIKE_COUNT = "LIKE_COUNT",
/** Ordered by `title` in ascening order. */
TITLE_ASC = "TITLE_ASC",
/** Ordered by `title` in descending order. */
TITLE_DESC = "TITLE_DESC"
}
export interface BlogPaging {
/**
* Number of items to skip in the current sort order.
*
*
* Default: `0`
*/
offset?: number;
/**
* Number of items to return.
*
*
* Default:`50`
*/
limit?: number;
/** Pointer to the next or previous page in the list of results. */
cursor?: string | null;
}
export declare enum PostFieldField {
UNKNOWN = "UNKNOWN",
/** Includes Post url when present. */
URL = "URL",
/** Includes Post content text string when present. */
CONTENT_TEXT = "CONTENT_TEXT",
/** Includes Post metrics when present. */
METRICS = "METRICS",
/** Includes SEO data. */
SEO = "SEO",
/** Includes post owner's contact ID */
CONTACT_ID = "CONTACT_ID",
/** Includes post rich content. */
RICH_CONTENT = "RICH_CONTENT",
/** Includes post reference id field. */
REFERENCE_ID = "REFERENCE_ID"
}
export interface ListDemoPostsResponse {
/** List of posts. */
posts?: Post[];
/** Details on the paged set of results returned. */
metaData?: MetaData;
}
export interface MetaData {
/** Number of items returned in this response. */
count?: number;
/** Requested offset. */
offset?: number;
/** Total number of items that match the query. */
total?: number;
/** Pointer to the next or previous page in the list of results. */
cursor?: string | null;
}
export interface ListTemplatesRequest {
/** Filter post templates by given template category ids */
categoryIds?: string[];
/** Filter post templates by provided language */
language?: string | null;
/** Returns post template categories when set to TRUE */
listTemplateCategories?: boolean;
/** Sort order by ascending/descending publish date. Default is ascending publish date sort */
sort?: GetPostTemplatesSort;
/** Pagination options. */
paging?: BlogPaging;
}
export declare enum GetPostTemplatesSort {
/** Sort by ascending publishing date. */
PUBLISHED_DATE_ASC = "PUBLISHED_DATE_ASC",
/** Sort by descending publishing date. */
PUBLISHED_DATE_DESC = "PUBLISHED_DATE_DESC"
}
export interface ListTemplatesResponse {
/** Available post templates */
postTemplates?: Post[];
/** Details on the paged set of posts templates returned. */
postTemplatesMetaData?: MetaData;
/** Post template categories. This value is returned empty unless asked explicitly */
templateCategories?: Category[];
}
export interface Category {
/** Category ID. */
id?: string;
/** Category label. Displayed in the Category Menu. */
label?: string;
/**
* Number of posts in the category.
* @readonly
*/
postCount?: number;
/**
* The `url` of the page that lists every post with the specified category.
* @readonly
*/
url?: PageUrl;
/** Category description. */
description?: string | null;
/**
* Category title.
* @deprecated Category title.
* @targetRemovalDate 2025-07-16
*/
title?: string;
/**
* Position of the category in the [Category Menu](https://support.wix.com/en/article/wix-blog-adding-and-customizing-a-category-menu).
* Categories are displayed in ascending order. Categories with a position of `-1` appear at the end of the sequence.
*
* Default: `-1`
*/
displayPosition?: number | null;
/** ID of the category's translations. All translations of a single category share the same `translationId`. */
translationId?: string | null;
/**
* Category language.
*
* 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.
*/
language?: string | null;
/** Part of a category's URL that refers to a specific category. For example, the slug of `https:/example.com/blog/category/famous-cats` is `famous-cats`. */
slug?: string;
/**
* Reserved for internal use.
* @readonly
*/
internalId?: string | null;
/** SEO data. */
seoData?: SeoSchema;
/** Category cover image. */
coverImage?: Image;
/**
* Date and time the Category was last updated.
* @readonly
*/
updatedDate?: Date | null;
}
export interface CategoryTranslation {
/** Category ID. */
id?: string;
/** Label displayed in the categories menu on the site. */
label?: string | null;
/** Language of the category. */
language?: string | null;
/** URL of this category page. */
url?: PageUrl;
}
export interface GetTemplateRequest {
/** Post template id */
postTemplateId?: string;
}
export interface GetTemplateResponse {
/** Post template */
postTemplate?: Post;
}
export interface CreateDraftPostFromTemplateRequest {
/** Post template id */
postTemplateId?: string;
}
export interface CreateDraftPostFromTemplateResponse {
/** Created draft post */
draftPost?: DraftPost;
}
export interface DraftPost {
/**
* Draft post ID.
* @readonly
*/
id?: string;
/** Draft post title. */
title?: string;
/**
* Draft post excerpt.
*
* If no excerpt has been manually set, an excerpt is automatically generated from the post's text.
* This can be retrieved using the `GENERATED_EXCERPT` fieldset.
*/
excerpt?: string | null;
/** Whether the draft post is marked as featured. */
featured?: boolean | null;
/** Category IDs of the draft post. */
categoryIds?: string[];
/** Draft post owner's member ID. */
memberId?: string | null;
/** Hashtags in the post. */
hashtags?: string[];
/** Whether commenting on the draft post is enabled. */
commentingEnabled?: boolean | null;
/**
* Estimated reading time of the draft post (calculated automatically).
* @readonly
*/
minutesToRead?: number;
/** Image placed at the top of the blog page. */
heroImage?: Image;
/** Tag IDs the draft post is tagged with. */
tagIds?: string[];
/** IDs of posts related to this draft post. */
relatedPostIds?: string[];
/** [Pricing plan IDs](https://dev.wix.com/api/rest/wix-pricing-plans). Only relevant if a post is assigned to a specific pricing plan. */
pricingPlanIds?: string[];
/**
* ID of the draft post's translations.
*
* All translations of a single post share the same `translationId`.
* Available only if the [Multilingual](https://support.wix.com/en/article/wix-multilingual-an-overview) app is installed.
*/
translationId?: string | null;
/**
* Language the draft post is written in.
*
* 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.
*/
language?: string | null;
/**
* Reserved for internal use.
* @readonly
*/
changeOrigin?: Origin;
/**
* Reserved for internal use.
* @readonly
*/
contentId?: string | null;
/** Reserved for internal use. */
editingSessionId?: string | null;
/**
* Draft Post rich content.
*
*
* See Ricos document reference
*
*/
richContent?: RichContent;
/**
* Status of the draft post.
* @readonly
*/
status?: Status;
/** Details of the draft post in review. Only relevant to posts submitted by guest writers. */
moderationDetails?: ModerationDetails;
/**
* Reserved for internal use.
* @readonly
*/
mostRecentContributorId?: string | null;
/**
* Indicates if there are changes made to the draft post that have not yet been published.
* @readonly
*/
hasUnpublishedChanges?: boolean;
/**
* Date the draft post was last edited.
* @readonly
*/
editedDate?: Date | null;
/**
* Date the draft post is scheduled to be published.
* @readonly
*/
scheduledPublishDate?: Date | null;
/** Reserved for internal use. */
content?: Record | null;
/** Date the post was first published. */
firstPublishedDate?: Date | null;
/** SEO data. */
seoData?: SeoSchema;
/**
* Reserved for internal use.
* @deprecated
* @replacedBy preview_text_paragraph
* @targetRemovalDate 2024-06-30
*/
paidContentParagraph?: number | null;
/**
* Reserved for internal use.
* @readonly
*/
slugs?: string[];
/**
* Draft post URL preview. What the URL will look like once the post is published.
* @readonly
*/
url?: PageUrl;
/**
* Date the draft post was first created.
* @readonly
*/
createdDate?: Date | null;
/** SEO slug. */
seoSlug?: string | null;
/** Post cover media. */
media?: Media;
/** Number of paragraphs to display in a paid content preview for non-paying users. */
previewTextParagraph?: number | null;
/**
* Reserved for internal use.
* @readonly
*/
internalId?: string | null;
}
export declare enum Origin {
UNKNOWN = "UNKNOWN",
/** Changed by admin */
ADMIN = "ADMIN",
/** Categories were changed */
ADD_CATEGORIES = "ADD_CATEGORIES",
/** Saved automatically */
AUTO_SAVE = "AUTO_SAVE",
/** Copied from template */
COPY_TEMPLATE = "COPY_TEMPLATE",
/** Imported */
IMPORT = "IMPORT",
/** Imported in bulk */
IMPORT_BULK = "IMPORT_BULK",
/** Imported with html import */
IMPORT_HTML = "IMPORT_HTML",
/** Patch import */
IMPORT_PATCH = "IMPORT_PATCH",
/** Changed language */
LANGUAGE_CHANGE = "LANGUAGE_CHANGE",
/** Saved manually */
MANUAL_SAVE = "MANUAL_SAVE",
/** Affected by migration */
MIGRATION = "MIGRATION",
/** Affected by moderation */
MODERATION = "MODERATION",
/** Moved to trash */
MOVE_TO_TRASH = "MOVE_TO_TRASH",
/** Pricing plans were changed */
PRICING_PLANS_CHANGE = "PRICING_PLANS_CHANGE",
/** Was provisioned */
PROVISION = "PROVISION",
/** Was published */
PUBLISH = "PUBLISH",
/** Owner was reassigned */
REASSIGN_OWNER = "REASSIGN_OWNER",
/** Was reblogged */
REBLOG = "REBLOG",
/** Was restored */
RESTORE = "RESTORE",
/** Reverted to draft */
REVERT_TO_DRAFT = "REVERT_TO_DRAFT",
/** Was translated */
TRANSLATION = "TRANSLATION",
/** Was unpublished */
UNPUBLISH = "UNPUBLISH",
/** Was unscheduled */
UNSCHEDULE = "UNSCHEDULE",
/** New edit session started which updated editing_session_id id */
NEW_EDIT_SESSION = "NEW_EDIT_SESSION",
/** Was scheduled by Later */
SCHEDULING_SERVICE_SCHEDULE = "SCHEDULING_SERVICE_SCHEDULE",
/** Was unscheduled by Later */
SCHEDULING_SERVICE_UNSCHEDULE = "SCHEDULING_SERVICE_UNSCHEDULE",
/** Was published by Later */
SCHEDULING_SERVICE_PUBLISH = "SCHEDULING_SERVICE_PUBLISH",
/** Was scheduled */
SCHEDULE = "SCHEDULE",
/** Was removed from moderation */
REMOVE_FROM_MODERATION = "REMOVE_FROM_MODERATION",
/** Was rejected from moderation */
REJECT_FROM_MODERATION = "REJECT_FROM_MODERATION",
/** Was approved in moderation */
APPROVE_IN_MODERATION = "APPROVE_IN_MODERATION",
/** Tag was deleted */
DELETE_TAG = "DELETE_TAG",
/** Post was pinned */
PIN = "PIN",
/** Post was unpinned */
UNPIN = "UNPIN",
/** Saved automatically by AI tool. */
AI_AUTO_SAVE = "AI_AUTO_SAVE"
}
export declare enum Status {
UNKNOWN = "UNKNOWN",
/** Status indicating the draft post is published. */
PUBLISHED = "PUBLISHED",
/** Status indicating the draft post is unpublished. */
UNPUBLISHED = "UNPUBLISHED",
/** Status indicating the draft post is scheduled for publication. */
SCHEDULED = "SCHEDULED",
/** Status indicating the draft post is deleted. */
DELETED = "DELETED",
/**
* Deprecated. Use `IN_REVIEW` instead. Status indicating the draft post is in review.
* Target removal date 2024-06-30
* Reserved for internal use.
*/
IN_MODERATION = "IN_MODERATION",
/** Status indicating the draft post is in review. */
IN_REVIEW = "IN_REVIEW"
}
export interface DraftPostTranslation {
/** Post ID. */
id?: string;
/** Post status. */
status?: Status;
/** Language the post is written in. */
language?: string | null;
/** Post slug. For example, 'post-slug'. */
slug?: string | null;
/** SEO data. */
seoData?: SeoSchema;
/** Post URL. */
url?: PageUrl;
}
export interface GetTotalLikesPerMemberRequest {
/** Member ID. */
memberId?: string;
}
export interface GetTotalLikesPerMemberResponse {
/** The total number of likes of the member. */
total?: number;
}
export interface PostLiked extends PostLikedInitiatorOneOf {
/** Member ID of person who liked the post (only returned when the member was logged in when liking the post). */
memberId?: string | null;
/** Visitor ID of person who liked the post when they are not logged in. */
anonymousVisitorId?: string | null;
/** ID of the liked post. */
postId?: string;
}
/** @oneof */
export interface PostLikedInitiatorOneOf {
/** Member ID of person who liked the post (only returned when the member was logged in when liking the post). */
memberId?: string | null;
/** Visitor ID of person who liked the post when they are not logged in. */
anonymousVisitorId?: string | null;
}
export interface PostUnliked extends PostUnlikedInitiatorOneOf {
/** Member ID of person who unliked the post (returned when the member was logged in when unliking the post). */
memberId?: string | null;
/** Visitor ID of person who unliked the post when they are not logged in. */
anonymousVisitorId?: string | null;
/** ID of the unliked post. */
postId?: string;
}
/** @oneof */
export interface PostUnlikedInitiatorOneOf {
/** Member ID of person who unliked the post (returned when the member was logged in when unliking the post). */
memberId?: string | null;
/** Visitor ID of person who unliked the post when they are not logged in. */
anonymousVisitorId?: string | null;
}
export interface PostCountersUpdated extends PostCountersUpdatedInitiatorOneOf {
/** Member ID of person who triggered the counter update */
memberId?: string | null;
/** Visitor ID if person that liked the post is not logged in */
anonymousVisitorId?: string | null;
/** ID of the post which counters were updated. */
postId?: string;
/** Field of the updated counter. */
updatedCounterField?: Field;
/** New counter value. */
counter?: number;
}
/** @oneof */
export interface PostCountersUpdatedInitiatorOneOf {
/** Member ID of person who triggered the counter update */
memberId?: string | null;
/** Visitor ID if person that liked the post is not logged in */
anonymousVisitorId?: string | null;
}
export declare enum Field {
/** Undefined field. */
UNKNOWN = "UNKNOWN",
/** Total comments field. */
TOTAL_COMMENTS = "TOTAL_COMMENTS",
/** Like count field. */
LIKE_COUNT = "LIKE_COUNT",
/** View count field. */
VIEW_COUNT = "VIEW_COUNT",
/** Rating count field. */
RATING_COUNT = "RATING_COUNT"
}
export interface PostOwnerChanged {
}
export interface InitialPostsCopied {
/** Number of posts copied. */
count?: number;
}
export interface GetPostRequest {
/** Post ID. */
postId: string;
/**
* __Deprecated.__ Use `fieldsets` instead.
* This parameter will be removed on June 30, 2023.
*
* List of post fields to be included in the response.
* @deprecated __Deprecated.__ Use `fieldsets` instead.
* This parameter will be removed on June 30, 2023.
*
* List of post fields to be included in the response.
* @replacedBy fieldsets
* @targetRemovalDate 2024-06-30
*/
fieldsToInclude?: PostFieldField[];
/**
* List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in
* the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default
* only the post’s base fields are returned.
*/
fieldsets?: PostFieldField[];
}
export interface GetPostResponse {
/** Post info. */
post?: Post;
}
export interface GetPostBySlugRequest {
/** Slug of the post to retrieve. */
slug: string;
/**
* __Deprecated.__ Use `fieldsets` instead.
* This parameter will be removed on June 30, 2023.
*
* List of post fields to be included in the response.
* @deprecated __Deprecated.__ Use `fieldsets` instead.
* This parameter will be removed on June 30, 2023.
*
* List of post fields to be included in the response.
* @replacedBy fieldsets
* @targetRemovalDate 2024-06-30
*/
fieldsToInclude?: PostFieldField[];
/**
* List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in
* the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default
* only the post’s base fields are returned.
*/
fieldsets?: PostFieldField[];
}
export interface GetPostBySlugResponse {
/** Post info. */
post?: Post;
}
export interface ListPostsRequest {
/**
* Whether to return only featured posts.
*
* Default: `false`
*/
featured?: boolean;
/**
* Hashtag filter.
*
* Pass an array of hashtags to return only posts containing any of the provided hashtags.
* If omitted, all posts with or without hashtags are returned.
*/
hashtags?: string[];
/**
* Category filter.
*
* Pass an array of category IDs to return only posts with any of the provided categories.
* If omitted, all posts with or without associated categories are returned.
*/
categoryIds?: string[];
/**
* Tag filter.
*
* Pass an array of tag IDs to return only posts with any of the provided tags.
* If omitted, all posts with or without tags are returned.
*/
tagIds?: string[];
/**
* Sorting options.
*
* Default: `FEED`
*/
sort?: GetPostsSort;
/** Pagination options. */
paging?: BlogPaging;
/**
* __Deprecated.__ Use `fieldsets` instead.
* This parameter will be removed on June 30, 2023.
*
* List of post fields to be included in the response.
* @deprecated __Deprecated.__ Use `fieldsets` instead.
* This parameter will be removed on June 30, 2023.
*
* List of post fields to be included in the response.
* @replacedBy fieldsets
* @targetRemovalDate 2024-06-30
*/
fieldsToInclude?: PostFieldField[];
/**
* Language filter.
*
* 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.
* Pass a language to only receive posts that are in that language.
* If omitted, posts in all languages are returned.
*/
language?: string | null;
/** Post owner's member ID. */
memberId?: string | null;
/**
* List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in
* the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default
* only the post’s base fields are returned.
*/
fieldsets?: PostFieldField[];
}
export interface ListPostsResponse {
/** List of posts. */
posts?: Post[];
/** Details on the paged set of results returned. */
metaData?: MetaData;
}
export interface QueryPostsRequest {
/**
* __Deprecated.__ Use `query` instead.
* This parameter will be removed on June 30, 2023.
*
* Pagination options.
* @deprecated __Deprecated.__ Use `query` instead.
* This parameter will be removed on June 30, 2023.
*
* Pagination options.
* @replacedBy query
* @targetRemovalDate 2024-06-30
*/
paging?: BlogPaging;
/**
* __Deprecated.__ Use `query` instead.
* This parameter will be removed on June 30, 2023.
*
* Filter object.
* @deprecated __Deprecated.__ Use `query` instead.
* This parameter will be removed on June 30, 2023.
*
* Filter object.
* @replacedBy query
* @targetRemovalDate 2024-06-30
*/
filter?: Record | null;
/**
* __Deprecated.__ Use `query` instead.
* This parameter will be removed on June 30, 2023.
*
* Sorting options. For a list of sortable fields, see [Field Support for Filtering and Sorting](https://dev.wix.com/docs/rest/business-solutions/blog/posts-stats/filter-and-sort).
* @deprecated __Deprecated.__ Use `query` instead.
* This parameter will be removed on June 30, 2023.
*
* Sorting options. For a list of sortable fields, see [Field Support for Filtering and Sorting](https://dev.wix.com/docs/rest/business-solutions/blog/posts-stats/filter-and-sort).
* @replacedBy query
* @targetRemovalDate 2024-06-30
*/
sort?: Sorting[];
/**
* __Deprecated.__ Use `fieldsets` instead.
* This parameter will be removed on June 30, 2023.
*
* List of post fields to be included in the response.
* @deprecated __Deprecated.__ Use `fieldsets` instead.
* This parameter will be removed on June 30, 2023.
*
* List of post fields to be included in the response.
* @replacedBy fieldsets
* @targetRemovalDate 2024-06-30
*/
fieldsToInclude?: PostFieldField[];
/** Query options. */
query?: PlatformQuery;
/**
* List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in
* the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default
* only the post’s base fields are returned.
*/
fieldsets?: PostFieldField[];
}
export interface Sorting {
/** Name of the field to sort by. */
fieldName?: string;
/** Sort order. */
order?: SortOrder;
}
export declare enum SortOrder {
ASC = "ASC",
DESC = "DESC"
}
export interface PlatformQuery extends PlatformQueryPagingMethodOneOf {
/** Paging options to limit and skip the number of items. */
paging?: Paging;
/** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */
cursorPaging?: CursorPaging;
/**
* Filter object in the following format:
* `"filter" : {
* "fieldName1": "value1",
* "fieldName2":{"$operator":"value2"}
* }`
* Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`
*/
filter?: Record | null;
/**
* Sort object in the following format:
* `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]`
*/
sort?: Sorting[];
}
/** @oneof */
export interface PlatformQueryPagingMethodOneOf {
/** Paging options to limit and skip the number of items. */
paging?: Paging;
/** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */
cursorPaging?: CursorPaging;
}
export interface Paging {
/** Number of items to load. */
limit?: number | null;
/** Number of items to skip in the current sort order. */
offset?: number | null;
}
export interface CursorPaging {
/** Number of items to load. */
limit?: number | null;
/**
* Pointer to the next or previous page in the list of results.
*
* You can get the relevant cursor token
* from the `pagingMetadata` object in the previous call's response.
* Not relevant for the first request.
*/
cursor?: string | null;
}
export interface QueryPostsResponse {
/** List of posts. */
posts?: Post[];
/**
* __Deprecated.__ Use `pagingMetadata` instead.
* This property will be removed on June 30, 2023.
*
* Details on the paged set of results returned.
* @deprecated __Deprecated.__ Use `pagingMetadata` instead.
* This property will be removed on June 30, 2023.
*
* Details on the paged set of results returned.
* @replacedBy pagingMetadata
* @targetRemovalDate 2024-06-30
*/
metaData?: MetaData;
/** Details on the paged set of results returned. */
pagingMetadata?: PagingMetadataV2;
}
export interface PagingMetadataV2 {
/** Number of items returned in the response. */
count?: number | null;
/** Offset that was requested. */
offset?: number | null;
/** Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set. */
total?: number | null;
/** Flag that indicates the server failed to calculate the `total` field. */
tooManyToCount?: boolean | null;
/** Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used. */
cursors?: Cursors;
}
export interface Cursors {
/** Cursor pointing to next page in the list of results. */
next?: string | null;
/** Cursor pointing to previous page in the list of results. */
prev?: string | null;
}
export interface GetPostMetricsRequest {
/** Post ID. */
postId: string;
}
export interface GetPostMetricsResponse {
/** Post metrics. */
metrics?: Metrics;
}
export interface BulkGetPostMetricsRequest {
/** Post IDs. */
postIds?: string[];
}
export interface BulkGetPostMetricsResponse {
/** Map of post.id to metrics */
metrics?: Record;
}
export interface ViewPostRequest {
/** Post ID. */
postId?: string;
}
export interface ViewPostResponse {
/** Total number of post views */
views?: number;
}
export interface LikePostRequest {
/** Post ID. */
postId?: string;
/**
* List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in
* the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default
* only the post’s base fields are returned.
*/
fieldsets?: PostFieldField[];
}
export interface LikePostResponse {
/** Post info. */
post?: Post;
}
export interface UnlikePostRequest {
/** Post ID. */
postId?: string;
/**
* List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in
* the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default
* only the post’s base fields are returned.
*/
fieldsets?: PostFieldField[];
}
export interface UnlikePostResponse {
/** Post info. */
post?: Post;
}
export interface PinPostRequest {
/** Post ID. */
postId?: string;
/**
* List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in
* the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default
* only the post’s base fields are returned.
*/
fieldsets?: PostFieldField[];
}
export interface PinPostResponse {
/** Post info. */
post?: Post;
}
export interface UnpinPostRequest {
/** Post ID. */
postId?: string;
/**
* List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in
* the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default
* only the post’s base fields are returned.
*/
fieldsets?: PostFieldField[];
}
export interface UnpinPostResponse {
/** Post info. */
post?: Post;
}
export interface ListPostsArchiveRequest {
/** Month */
month?: number | null;
/** Year */
year?: number;
/** Time zone */
timeZone?: string | null;
/** Pagination options. */
paging?: BlogPaging;
/**
* Language filter.
*
* 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.
* Pass a language to only receive posts that are in that language.
* If omitted, posts in all languages are returned.
*/
language?: string | null;
/**
* List of additional post fields to include in the response. For example, use the `URL` fieldset to retrieve the url field in
* the response in addition to the post’s base fields. Base fields don’t include any of the supported fieldset values. By default
* only the post’s base fields are returned.
*/
fieldsets?: PostFieldField[];
}
export interface ListPostsArchiveResponse {
/** List of posts. */
posts?: Post[];
/** Details on the paged set of results returned. */
metaData?: MetaData;
/** Details on the paged set of results returned. */
pagingMetadata?: PagingMetadataV2;
}
export interface BulkGetPostReactionsRequest {
/** Post IDs. */
postIds?: string[];
}
export interface BulkGetPostReactionsResponse {
/** Map of post.id to reactions */
reactionsMap?: Record;
}
export interface Reactions {
/**
* Is post liked by the current user
* @readonly
*/
liked?: boolean;
}
/** Get Blog Publications Count Stats request */
export interface QueryPublicationsCountStatsRequest {
/** Start of time range to return, in ISO 8601 date and time format. */
rangeStart?: Date | null;
/** Non-inclusive end of time range to return, in ISO 8601 date and time format. */
rangeEnd?: Date | null;
/** Order of the returned results. */
order?: QueryPublicationsCountStatsRequestOrder;
/** Number of months to include in the response. */
months?: number;
/**
* Language filter
*
* 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.
*/
language?: string | null;
/** Timezone of the client. */
timeZone?: string | null;
}
export declare enum QueryPublicationsCountStatsRequestOrder {
UNKNOWN = "UNKNOWN",
OLDEST = "OLDEST",
NEWEST = "NEWEST"
}
/** Get Blog Publications Count Stats response */
export interface QueryPublicationsCountStatsResponse {
/** Chronologically ordered list of publications. */
stats?: PeriodPublicationsCount[];
}
/** Publications count for a specific time period */
export interface PeriodPublicationsCount {
/** Start of time range in ISO 8601 date and time format. */
periodStart?: Date | null;
/** Number of posts published during this month. */
publicationsCount?: number;
}
/** Get Blog Post Count Stats request */
export interface QueryPostCountStatsRequest {
/** Start of time range to return, in ISO 8601 date and time format. */
rangeStart?: Date | null;
/**
* __Deprecated.__ Use `months` instead.
* This property will be removed on June 30, 2023.
*
* Non-inclusive end of time range to return, in ISO 8601 date and time format.
* @deprecated __Deprecated.__ Use `months` instead.
* This property will be removed on June 30, 2023.
*
* Non-inclusive end of time range to return, in ISO 8601 date and time format.
* @replacedBy months
* @targetRemovalDate 2024-06-30
*/
rangeEnd?: Date | null;
/**
* Order of returned results.
*
* - `OLDEST`: posts by date in ascending order.
* - `NEWEST`: posts by date in descending order.
*
* Default: `OLDEST`
*/
order?: Order;
/** Number of months to include in response. */
months?: number;
/**
* Language filter.
*
* 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.
* Pass a language to only receive the period post count for that specified language.
*/
language?: string | null;
/**
* Time zone to use when calculating the start of the month.
*
* [UTC timezone offset](https://en.wikipedia.org/wiki/List_of_UTC_offsets) format. For example, New York time zone is `-05`.
*/
timeZone?: string | null;
}
export declare enum Order {
UNKNOWN = "UNKNOWN",
OLDEST = "OLDEST",
NEWEST = "NEWEST"
}
/** Get Blog Post Count Stats response */
export interface QueryPostCountStatsResponse {
/** List of published post counts by month. */
stats?: PeriodPostCount[];
}
/** Post count for a specific time period */
export interface PeriodPostCount {
/** Start of time range in ISO 8601 date and time format. */
periodStart?: Date | null;
/** Number of posts published during this month. */
postCount?: number;
}
export interface GetTotalPublicationsRequest {
/** Language filter */
language?: string | null;
}
export interface GetTotalPublicationsResponse {
/** Total amount of publications. */
total?: number;
}
export interface GetTotalPostsRequest {
/**
* Language filter.
*
* 2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.
* Pass a language to receive the total amount of posts in that specified language.
*/
language?: string | null;
}
export interface GetTotalPostsResponse {
/** Total amount of published posts. */
total?: number;
}
interface PageUrlNonNullableFields {
base: string;
path: string;
}
interface FocalPointNonNullableFields {
x: number;
y: number;
}
interface ImageNonNullableFields {
id: string;
url: string;
height: number;
width: number;
focalPoint?: FocalPointNonNullableFields;
}
interface VideoNonNullableFields {
id: string;
url: string;
height: number;
width: number;
thumbnail?: ImageNonNullableFields;
}
interface CoverMediaNonNullableFields {
image?: ImageNonNullableFields;
video?: VideoNonNullableFields;
enabled: boolean;
displayed: boolean;
custom: boolean;
}
interface PostCountInfoNonNullableFields {
comments: number;
likes: number;
views: number;
}
interface MetricsNonNullableFields {
comments: number;
likes: number;
views: number;
totalRatings: number;
averageRating: number;
}
interface TagNonNullableFields {
type: string;
children: string;
custom: boolean;
disabled: boolean;
}
interface KeywordNonNullableFields {
term: string;
isMain: boolean;
}
interface SettingsNonNullableFields {
preventAutoRedirect: boolean;
keywords: KeywordNonNullableFields[];
}
interface SeoSchemaNonNullableFields {
tags: TagNonNullableFields[];
settings?: SettingsNonNullableFields;
}
interface PluginContainerDataWidthNonNullableFields {
size: WidthType;
}
interface PluginContainerDataNonNullableFields {
width?: PluginContainerDataWidthNonNullableFields;
alignment: PluginContainerDataAlignment;
}
interface LinkNonNullableFields {
url: string;
anchor: string;
target: Target;
}
interface ButtonDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
type: Type;
link?: LinkNonNullableFields;
}
interface TextStyleNonNullableFields {
textAlignment: TextAlignment;
}
interface CodeBlockDataNonNullableFields {
textStyle?: TextStyleNonNullableFields;
}
interface DividerDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
lineStyle: LineStyle;
width: Width;
alignment: Alignment;
}
interface PDFSettingsNonNullableFields {
viewMode: ViewMode;
}
interface FileDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
pdfSettings?: PDFSettingsNonNullableFields;
}
interface ItemImageNonNullableFields {
link?: LinkNonNullableFields;
}
interface ItemNonNullableFields {
image?: ItemImageNonNullableFields;
}
interface LayoutNonNullableFields {
type: LayoutType;
orientation: Orientation;
}
interface ItemStyleNonNullableFields {
crop: Crop;
}
interface ThumbnailsNonNullableFields {
placement: ThumbnailsAlignment;
}
interface GalleryOptionsNonNullableFields {
layout?: LayoutNonNullableFields;
item?: ItemStyleNonNullableFields;
thumbnails?: ThumbnailsNonNullableFields;
}
interface GalleryDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
items: ItemNonNullableFields[];
options?: GalleryOptionsNonNullableFields;
}
interface GIFDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
height: number;
width: number;
}
interface HeadingDataNonNullableFields {
level: number;
textStyle?: TextStyleNonNullableFields;
}
interface HTMLDataNonNullableFields {
url: string;
html: string;
containerData?: PluginContainerDataNonNullableFields;
source: Source;
}
interface ImageDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
link?: LinkNonNullableFields;
}
interface LinkPreviewDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
link?: LinkNonNullableFields;
}
interface MapSettingsNonNullableFields {
mapType: MapType;
}
interface MapDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
mapSettings?: MapSettingsNonNullableFields;
}
interface ParagraphDataNonNullableFields {
textStyle?: TextStyleNonNullableFields;
}
interface PermissionsNonNullableFields {
view: ViewRole;
vote: VoteRole;
}
interface PollSettingsNonNullableFields {
permissions?: PermissionsNonNullableFields;
}
interface PollNonNullableFields {
settings?: PollSettingsNonNullableFields;
}
interface PollLayoutNonNullableFields {
type: PollLayoutType;
direction: PollLayoutDirection;
}
interface PollDataLayoutNonNullableFields {
poll?: PollLayoutNonNullableFields;
}
interface BackgroundNonNullableFields {
type: BackgroundType;
}
interface PollDesignNonNullableFields {
background?: BackgroundNonNullableFields;
}
interface DesignNonNullableFields {
poll?: PollDesignNonNullableFields;
}
interface PollDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
poll?: PollNonNullableFields;
layout?: PollDataLayoutNonNullableFields;
design?: DesignNonNullableFields;
}
interface AnchorDataNonNullableFields {
anchor: string;
}
interface LinkDataNonNullableFields {
link?: LinkNonNullableFields;
}
interface MentionDataNonNullableFields {
name: string;
slug: string;
}
interface FontSizeDataNonNullableFields {
unit: FontType;
}
interface DecorationNonNullableFields {
anchorData?: AnchorDataNonNullableFields;
linkData?: LinkDataNonNullableFields;
mentionData?: MentionDataNonNullableFields;
fontSizeData?: FontSizeDataNonNullableFields;
type: DecorationType;
}
interface TextDataNonNullableFields {
text: string;
decorations: DecorationNonNullableFields[];
}
interface AppEmbedDataNonNullableFields {
type: AppType;
}
interface VideoDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
}
interface EmbedDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
}
interface CollapsibleListDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
initialExpandedItems: InitialExpandedItems;
direction: Direction;
}
interface DimensionsNonNullableFields {
colsWidthRatio: number[];
rowsHeight: number[];
colsMinWidth: number[];
}
interface TableDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
dimensions?: DimensionsNonNullableFields;
}
interface CellStyleNonNullableFields {
verticalAlignment: VerticalAlignment;
}
interface TableCellDataNonNullableFields {
cellStyle?: CellStyleNonNullableFields;
}
interface AudioDataNonNullableFields {
containerData?: PluginContainerDataNonNullableFields;
}
interface OrderedListDataNonNullableFields {
indentation: number;
}
interface BulletedListDataNonNullableFields {
indentation: number;
}
interface BlockquoteDataNonNullableFields {
indentation: number;
}
interface CaptionDataNonNullableFields {
textStyle?: TextStyleNonNullableFields;
}
interface NodeNonNullableFields {
buttonData?: ButtonDataNonNullableFields;
codeBlockData?: CodeBlockDataNonNullableFields;
dividerData?: DividerDataNonNullableFields;
fileData?: FileDataNonNullableFields;
galleryData?: GalleryDataNonNullableFields;
gifData?: GIFDataNonNullableFields;
headingData?: HeadingDataNonNullableFields;
htmlData?: HTMLDataNonNullableFields;
imageData?: ImageDataNonNullableFields;
linkPreviewData?: LinkPreviewDataNonNullableFields;
mapData?: MapDataNonNullableFields;
paragraphData?: ParagraphDataNonNullableFields;
pollData?: PollDataNonNullableFields;
textData?: TextDataNonNullableFields;
appEmbedData?: AppEmbedDataNonNullableFields;
videoData?: VideoDataNonNullableFields;
embedData?: EmbedDataNonNullableFields;
collapsibleListData?: CollapsibleListDataNonNullableFields;
tableData?: TableDataNonNullableFields;
tableCellData?: TableCellDataNonNullableFields;
audioData?: AudioDataNonNullableFields;
orderedListData?: OrderedListDataNonNullableFields;
bulletedListData?: BulletedListDataNonNullableFields;
blockquoteData?: BlockquoteDataNonNullableFields;
captionData?: CaptionDataNonNullableFields;
type: NodeType;
id: string;
nodes: NodeNonNullableFields[];
}
interface MetadataNonNullableFields {
version: number;
}
interface TextNodeStyleNonNullableFields {
decorations: DecorationNonNullableFields[];
}
interface DocumentStyleNonNullableFields {
headerOne?: TextNodeStyleNonNullableFields;
headerTwo?: TextNodeStyleNonNullableFields;
headerThree?: TextNodeStyleNonNullableFields;
headerFour?: TextNodeStyleNonNullableFields;
headerFive?: TextNodeStyleNonNullableFields;
headerSix?: TextNodeStyleNonNullableFields;
paragraph?: TextNodeStyleNonNullableFields;
blockquote?: TextNodeStyleNonNullableFields;
codeBlock?: TextNodeStyleNonNullableFields;
}
interface RichContentNonNullableFields {
nodes: NodeNonNullableFields[];
metadata?: MetadataNonNullableFields;
documentStyle?: DocumentStyleNonNullableFields;
}
interface ModerationDetailsNonNullableFields {
submittedBy: string;
status: ModerationStatusStatus;
}
interface VideoResolutionNonNullableFields {
url: string;
height: number;
width: number;
poster?: ImageNonNullableFields;
format: string;
}
interface VideoV2NonNullableFields {
id: string;
url: string;
resolutions: VideoResolutionNonNullableFields[];
posters: ImageNonNullableFields[];
}
interface WixMediaNonNullableFields {
image?: ImageNonNullableFields;
videoV2?: VideoV2NonNullableFields;
}
interface EmbedThumbnailNonNullableFields {
url: string;
width: number;
height: number;
}
interface EmbedVideoNonNullableFields {
url: string;
width: number;
height: number;
}
interface EmbedMediaNonNullableFields {
thumbnail?: EmbedThumbnailNonNullableFields;
video?: EmbedVideoNonNullableFields;
}
interface MediaNonNullableFields {
wixMedia?: WixMediaNonNullableFields;
embedMedia?: EmbedMediaNonNullableFields;
displayed: boolean;
custom: boolean;
}
interface PostTranslationNonNullableFields {
id: string;
seoData?: SeoSchemaNonNullableFields;
url?: PageUrlNonNullableFields;
}
interface PostNonNullableFields {
id: string;
title: string;
excerpt: string;
url?: PageUrlNonNullableFields;
slug: string;
featured: boolean;
pinned: boolean;
categoryIds: string[];
coverMedia?: CoverMediaNonNullableFields;
memberId: string;
hashtags: string[];
commentingEnabled: boolean;
postCountInfo?: PostCountInfoNonNullableFields;
minutesToRead: number;
heroImage?: ImageNonNullableFields;
tagIds: string[];
relatedPostIds: string[];
pricingPlanIds: string[];
metrics?: MetricsNonNullableFields;
seoData?: SeoSchemaNonNullableFields;
richContent?: RichContentNonNullableFields;
preview: boolean;
moderationDetails?: ModerationDetailsNonNullableFields;
media?: MediaNonNullableFields;
hasUnpublishedChanges: boolean;
translations: PostTranslationNonNullableFields[];
customExcerpt: boolean;
internalCategoryIds: string[];
internalRelatedPostIds: string[];
}
export interface GetPostResponseNonNullableFields {
post?: PostNonNullableFields;
}
export interface GetPostBySlugResponseNonNullableFields {
post?: PostNonNullableFields;
}
interface MetaDataNonNullableFields {
count: number;
offset: number;
total: number;
}
export interface ListPostsResponseNonNullableFields {
posts: PostNonNullableFields[];
metaData?: MetaDataNonNullableFields;
}
export interface QueryPostsResponseNonNullableFields {
posts: PostNonNullableFields[];
metaData?: MetaDataNonNullableFields;
}
export interface GetPostMetricsResponseNonNullableFields {
metrics?: MetricsNonNullableFields;
}
interface PeriodPostCountNonNullableFields {
postCount: number;
}
export interface QueryPostCountStatsResponseNonNullableFields {
stats: PeriodPostCountNonNullableFields[];
}
export interface GetTotalPostsResponseNonNullableFields {
total: number;
}
export {};