This page describes the different type of page models the REST API can return. 

General 

Each page model contains the following information.

{
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
	type: 'asset' | 'breadcrumb' | 'breadcrumbcontainer' | 
	      'button' | 'container' | 'contentitem' | 'failedelemend' |
	      'field' | 'image' | 'link' | 'page' | 'textitem' | 
	      'unknown' | project specific,
}

Asset

Specific properties of the asset model.

{
	/* specific */
	format: string,                    // The format of the asset
	text: string,                      // The content of the asset
 
	/* generic */
	type: 'asset',
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
}

BreadCrumb

Specific properties of the breadcrumb model.

{
	/* specific */
	children: string[],                // Element keys of the children
 
	/* generic */
	type: 'breadcrumb',
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
}

BreadCrumbContainer

Specific properties of the breadcrumb container model.

{
	/* specific */
	children: string[],                // Element keys of the children

	/* generic */
	type: 'breadcrumbcontainer',
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
}

Button

Specific properties of the button model.

{
	/* specific */
	disabled: bool,                    // If set to true the button is disabled
	refresh: bool,                     // If set to true the whole page will be refreshed when the button is clicked
	caption: string,                   // The caption displayed on the button 
 
	/* generic */
	type: 'button',
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
}

Container 

Specific properties of the container model.

{
	/* specific */
	displayName: string,               // The displayed name of the container
	contentStyle: string,              // The contentstyle of the container 
	children: string[],                // Element keys of the children

	/* generic */
	type: 'container',
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
}

ContentItem 

Specific properties of the content item model.

{
	/* specific */
	contentStyle: string,              // The contentstyle of the content item
	children: string[],                // Element keys of the children

	/* generic */
	type: 'contentitem',
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
}

FailedElement

Specific properties of the failed element model.

{
	/* specific */
	message: string,                   // The message of the failed element
	stacktrace: string,                // The stacktrace of the failed element


	/* generic */
	type: 'failedelement',
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
}

Field

Specific properties of the field model.

{
	/* specific */
    questionText: string,              // The question text of the field
    explainText: string,               // The explanation of the field
    dataType: string,                  // The datatype of the field
    rejectedValue: string,             // The rejected value of the field
    readonly: bool,                    // If set to true the field is readonly
    required: bool,                    // If set to true the field is required
    hasDomain: bool,                   // If set to true the field has a domain
    multiValued: bool,                 // If set to true the field is multivalued
    refresh: bool,                     // If set to true the field will refresh the whole page
    displayLength: int,                // The display length of the field
	values: string[],                  // Values of the field. Always an array, even if multiValued = false
	messages: [{ 
		type: 'ERROR' | 'WARNING',     // Message severity
		text: string,                  // The message text
	}],                                // Optional validation messages for the field.
	validations: [{
		blocking: bool,                // If set, the validation needs to be matched for the flow to continue.
		message: string,               // The message text
		parameters: { [string]: string }, // The parameters for the validation
		type: string,                  // the type of the validation.
	}],                                // Optional validation definitions for the field
    domain: [{                         // If hasDomain = true, this attribute describes the domain of the field
        displayValue: string,          // The display value of this domain item
        value: string,                 // The value of this domain item
        styles: string[]               // The presentation styles of this domain item
    }],


	/* generic */
	type: 'field',
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
}

Image 

Specific properties of the image model.

{
	/* specific */
	imageType: string,                 // The type of the image
	height: int,                       // The height of the image (in pixels) 
	width: int,                        // The width of the image (in pixels)
 
	/* generic */
	type: 'image',
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
}

Link 

Specific properties of the link model.

{
	/* specific */
	text: string,                      // The text of the link
	textRef: string,                   // The reference to the text
	parameters: { [string]: string },  // The parameters of the link
 
	/* generic */
	type: 'link',
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
}

Page

Specific properties of the page model.

{
	/* specific */	
	messages: [{ 
		type: 'ERROR' | 'WARNING',     // Message severity
		text: string,                  // The message text
	}],                                // The message model on the page]
	displayName: string,               // The name of the container which will be displayed
	contentStyle: string,              // The contentstyle of the container 
	children: string[],                // Element keys of the children

	/* generic */
	type: 'page',
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
}

TextItem 

Specific properties of the text item model      

{
	/* specific */
	nodes: TextItemNode[],           // Node in a TextItem


	/* generic */
	type: 'textitem',
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
}

TextItemNode

TextItemNode is an abstract model extended by 3 different models: TextItemStyleNode, TextItemTextNode and TextItemValueNode, identifiable by its nodeType property. These models are documented below.

TextItemStyleNode

Specific properties of the textitem style node model 

{	
	nodeType: 'style',
	presentationStyle: string,         // The presentation style of the TextItem
	nodes: TextItemNode[],             // Node in a TextItem
}

TextItemTextNode

Specific properties of the textitem text node model  

{	
	nodeType: 'text',
	text: string,                       // The text of the TextItem
}

TextItemValueNode

Specific properties of the textitem valuenode model   

{	
	nodeType: 'value',
	values: string[],                    // The value of the TextItemValueNode
}

Unknown

Specific properties of an unknown model      

{
	/* generic */
	type: 'unknown',
	key: string,                       // The key of the element
	functionalKey: string              // The functional, readable, key of the element
	name: string,                      // The name of the element
	styles: string[],                  // Names of the presentationStyles
	properties: { [string]: object },  // Additional properties of the element
}