Initializing help system before first use

Insight REST API client

Topics covered in this chapter:

Introduction

The mminsightrestapi package implements a client for making calls to the Insight v5 REST webservice interfaces. You can use mminsightrestapi to create/update/delete apps, folders and scenarios; to read or write entity data, and to perform any other operation that is supported by the Insight REST webservices.

mminsightrestapi can be used both inside and outside of Insight apps. When used within an Insight scenario, there is no relationship between the calls made through mminsightrestapi and the currently running scenario (any reads/writes behave as though they came from outside of the scenario).

The mminsightrestapi subroutines and data structures implement a direct mapping to the Insight v5 REST webservice operations; it's recommended this package is only used where the required operation is not supported by the mminsightscenario package.

Initialization

Before making any calls to the webservices, you must initialize an insightapi2~insightconfig value with the URL of the Insight server, for example:

parameters
  INSIGHT_URL="http://localhost:8080/"
end-parameters
declarations
  cfg: insightapi2~insightconfig
end-declarations
insightapi2~insightconfig_init(cfg, INSIGHT_URL)

Provided that Mosel restrictions are not active, the package will automatically read your Insight REST API credentials from the Windows Credential Manager, or the Mac Keychain, or an encrypted file on Linux - consult the below section Providing REST API credentials for instructions on how to do this.

If you are not able to provide credentials securely using the Credential Manager / Keychain / etc, you can pass them to the insightapi2~insightconfig_init procedure directly, for example:

parameters
  INSIGHT_URL="http://localhost:8080/"
  CLIENT_ID=""
  SECRET=""
end-parameters
declarations
  cfg: insightapi2~insightconfig
end-declarations
insightapi2~insightconfig_init(cfg, INSIGHT_URL, CLIENT_ID, SECRET)

If your code is executing within an Insight 5 app on DMP, you can initialize the insightapi2~insightconfig using a populated dmpresource value, e.g.

declarations
  cfg: insightapi2~insightconfig
  comp: dmpresource
end-declarations

! Populate dmpresource for current Insight component
dmpinitcomp(comp, getdmpcompid, "Xpress Insight", "", getdmplifecycleenv)
if comp.status<>DMP_OK then
  writeln('Error initializing dmpresource: ', comp.lasterror)
  exit(1)
end-if

! Pass component details to insightconfig_init
insightapi2~insightconfig_init(cfg, comp)

Once the insightapi2~insightconfig value is initialized, it should be passed to all requests to the Insight server, e.g.:

declarations
  apps: insightapi2~page_of_app
end-declarations
apps := insightapi2~get_apps(cfg, 0, 1000)

The credentials will not be validated until the first call to an Insight webservice operation - it is not possible for the call to insightapi2~insightconfig_init to fail.

Design Patterns

The mminsightrestapi package is derived directly from the public Insight OpenAPI specification and therefore is not aligned with normal Mosel design patterns in terms of type and function naming and record behaviour. For each operation supported by the Insight webservice interface, the package offers several subroutines that differ in what arguments are required. Each takes an insightapi2~insightconfig value containing details of the Insight webservices to use, and returns the expected return type of a 'successful' call (e.g. insightapi2~scenario in the case of insightapi2~create_scenario). The first subroutine variant takes the operation's input parameters and a insightapi2~httpresponse record into which details of the response will be written; for example to rename a scenario using this pattern:

declarations
  SCENARIO_ID='2926e9a1-9568-4116-84ed-2e75190bc651'
  fields_to_update: insightapi2~scenario
  updated_scenario: insightapi2~scenario
  resp: insightapi2~httpresponse
end-declarations
fields_to_update.name := 'new name'
updated_scenario := insightapi2~update_scenario(cfg, SCENARIO_ID, fields_to_update, resp)
if not resp.success then
  writeln_('ERROR renaming scenario: ',resp.errormsg)
end-if

The second variant omits the insightapi2~httpresponse argument; when called in this way, the model will terminate with an error message if the operation fails, e.g.:

declarations
  SCENARIO_ID='2926e9a1-9568-4116-84ed-2e75190bc651'
  fields_to_update: insightapi2~scenario
  updated_scenario: insightapi2~scenario
end-declarations
fields_to_update.name := 'new name'
updated_scenario := insightapi2~update_scenario(cfg, SCENARIO_ID, fields_to_update)
! Model will automatically terminate on failure

The final variant wraps the input parameters in an insightapi2~httprequest value; this is intended mostly for advanced use cases where you want to build up the parameters programmatically. To rename the scenario using this pattern, you would do this:

declarations
  SCENARIO_ID='2926e9a1-9568-4116-84ed-2e75190bc651'
  fields_to_update: insightapi2~scenario
  updated_scenario: insightapi2~scenario
  resp: insightapi2~httpresponse
  req: insightapi2~httprequest
end-declarations
fields_to_update.name := 'new name'
req.params('id') := SCENARIO_ID
req.body := fields_to_update
updated_scenario := insightapi2~update_scenario(cfg, req, resp)
if not resp.success then
  writeln_('ERROR renaming scenario: ',resp.errormsg)
end-if

When making a call to an operation that returns a binary file, you should set the bodyfilename attribute of the insightapi2~httpresponse record to the path of the file to write to.

The data models of the Insight REST API have been converted into Mosel types which are described in the Data Model Types section of this document. These behave similarly to Mosel records, but have several important differences:

  • All the fields are optional — unpopulated fields will return their default values if you try to access them but you can check if a field is present using the has<name> functions (e.g. to see if a insightapi2~attachment named att has a populated id field, call has_id(att)).
  • All values stored in the fields are read-only — if a field contains a structured type, you must create that value in a local variable before assigning it to the field.
  • You cannot use a record constructor to initialize or create new instances of any of the data model types.

The insightapi2~dictionary type (or a similar type such as insightapi2~dictionary_of_text) is used to represent a collection of named values. There is a standard pattern for accessing dictionaries where you can call insightapi2~get_value to access an individual named value but access a list of the name-value pairs in the entries field (or values if you want the values without the names). To edit the values in a dictionary, you use the insightapi2~put_value procedure.

Internally, requests to the Insight webservices are made through the dmp module and you can use the dmp_max_retries and dmp_retry_error_codes parameters to control how many times and which failed requests should be automatically retried, before returning an error to the calling code.

Providing REST API credentials

Overview

The recommended way to pass the Insight REST API credentials to the mminsightrestapi or mminsightscenario package is using your system's local secure storage. This section describes how to do this for each platform. Before adding your REST API credentials to the secure storage, you must obtain them from Insight for your account — consult the Insight 5 documentation for instructions.

You will not be able to provide credentials in this way if your Mosel will be executing in restricted mode, or on another server, or within an Insight execution worker, or within a role account. Consult the mminsightrestapi or mminsightscenario documentation for alternate ways to pass in credentials, but always remember that the client ID and secret values allow access to your account on the Insight 5 server, so must be handled securely.

Note that for Windows and Mac, this process is identical to providing REST API credentials to Workbench or to the Insight 5 Compute Interface; if you have already configured either, you do not need to repeat these steps again.

Windows

  1. Open the Credential Manager, by typing credential manager in the search box on the taskbar and selecting Credential Manager Control Panel.
  2. Select Windows Credentials to access the manager.
  3. In the Generic Credentials list, click Add a generic credential
  4. In the Internet or network address field, enter ficoxpress:<insight URL>, e.g. ficoxpress:http://localhost:8080
  5. In the User name field, enter the Client ID value from Insight.
  6. In the Secret field, enter the Client Secret value from Insight.
  7. Click OK, then close the Credential Manager.

Mac

  1. In Applications > Utilities, open the Keychain Access app on your Mac.
  2. Select the login keychain in the Keychains list.
  3. Select File > New Password Item.
  4. In the Keychain Item Name field, enter ficoxpress:<insight URL>, e.g. ficoxpress:http://localhost:8080
  5. In the Account Name field, enter the Client ID value from Insight.
  6. In the Password field, enter the Client Secret value from Insight.
  7. Click Add, then close the Keychain Access application.

Linux

On Linux, openssl tools are used to encrypt a file containing the Client id and Client secret.

To start, choose a location to save a keyfile. Set environment variable XPRESS_CREDENTIALS_DSO_AUTH_KEYFILE to the keyfile location. From the Linux bash shell, enter the following command and press Enter:

XPRESS_CREDENTIALS_DSO_AUTH_KEYFILE = keyfile_path

Note: For security, the <keyfile_path> should be on a different drive to the home directory.

Populate the key file with secure random data. Enter the following command and press Enter:

openssl rand -base64 -out $XPRESS_CREDENTIALS_DSO_AUTH_KEYFILE 48

To encrypt the Client ID and Client secret values into a file named .ficoxpress in your home directory, enter the following command, replacing CLIENTID and SECRET with the actual Client ID and Client secret values from the Insight Server:

(echo "CLIENTID" ; echo "SECRET" ) | openssl enc -aes-256-cbc -salt -md sha256 -out ~/.ficoxpress -pass file:$XPRESS_CREDENTIALS_DSO_AUTH_KEYFILE

In your Insight 5 execution worker configuration, you must configure the XPRESS_CREDENTIALS_DSO_AUTH_KEYFILE environment variable to be the same value used above.

If you wish to store the .ficoxpress file somewhere other than your home directory, you can set the XPRESS_CREDENTIALS_DSO_AUTH_DIR to the path of the alternate location.

Example: Creating a scenario

This example code demonstrates how to create a new scenario within an existing app. It assumes that cfg is an initialized insightapi2~insightconfig value and APP_ID is the ID of the app in which to create the scenario.

declarations
  appref: insightapi2~reference_app
  newscenreq: insightapi2~scenario_creation_request
  newscen: insightapi2~scenario
  resp: insightapi2~httpresponse
end-declarations

appref.id := APP_ID
appref.object_type := 'APP'
newscenreq.parent := appref
newscenreq.name := 'my scenario'

newscen := insightapi2~create_scenario(cfg, newscenreq, resp)
if not resp.success then
  writeln_('ERROR creating scenario: ',resp.errormsg)
  exit(1)
end-if
writeln('Created new scenario with ID: ',newscen.id)

Example: Updating an array

This example code demonstrates how to fetch the an entity 'prices' of type array(regions:set of string,items:set of integer) of real, double each value, and save this change back to the server. It assumes that cfg is an initialized insightapi2~insightconfig value and SCENARIO_ID is the ID of the scenario to modify.

declarations
  query: insightapi2~scenario_data_query
  data: insightapi2~scenario_data
  modifications: insightapi2~scenario_data_modification
  delta: insightapi2~entity_delta
  arrdelta: insightapi2~array_delta
  elem: insightapi2~array_element
  resp: insightapi2~httpresponse

  prices: dynamic array(regions:set of string,items:set of integer) of real
end-declarations

! Fetch array
query.entity_names := ['prices']
data := insightapi2~get_scenario_data(cfg, SCENARIO_ID, query, resp)
if not resp.success then
  writeln_('ERROR downloading "prices" entity: ',resp.errormsg)
  exit(1)
end-if

! Now copy the downloaded 'prices' entity into a local Mosel array.
! Start by finding the 'prices' entity in the scenario_data value
with prices_entity=insightapi2~get_value(data.entities, 'prices') do
  ! The array data will have been fetched in a nested set of dictionaries, the names in each
  ! being the index set values
  ! Iterate through the outer dictionary, which will be indexed by region name
  forall (region_entry in prices_entity.insightapi2~array.array.entries) do
    ! 'region_entry' value will be dictionary from region
    ! name to (dictionary from item ID as string to price value)
    forall (item_entry in region_entry.value.insightapi2~dictionary.entries) do
      ! 'item_entry' value will be value from prices array
      prices( string(region_entry.name), parseint(item_entry.name) ) := item_entry.value.real
    end-do
  end-do
end-do

! Next we update populate the arrdelta structure with an array_element for each element we
! want to update
forall (region in regions, item in items | exists(prices(region,item))) do
  reset(elem)
  elem.key := [region,item]
  elem.value := prices(region,item)*2
  arrdelta.add := arrdelta.add + [elem]
end-do
! Save the arraydelta describing the changes to this array into a scenario_data_modification
! record
delta.entity_name := 'prices'
delta.array_delta := arrdelta
modifications.deltas := [delta]
! Send the modification to the server
insightapi2~modify_scenario_data(cfg, SCENARIO_ID, modifications)
if not resp.success then
  writeln_('ERROR updating "prices" entity: ',resp.errormsg)
  exit(1)
end-if
writeln('Prices have been doubled.')

Be aware that if you are fetching an entity of type integer, the value arriving in Mosel will always be of type real - you will need to cast these to integer if the type is significant.

Example: Downloading an attachment

This example code demonstrates how to download a scenario attachment named 'alldata.xls' to a local file. It assumes that cfg is an initialized insightapi2~insightconfig value and SCENARIO_ID is the ID of the scenario.

declarations
  resp: insightapi2~httpresponse
  attach: insightapi2~attachment
  page: insightapi2~page_of_attachment
end-declarations

! Fetch the list of attachments and look for one with the name we want
page := insightapi2~get_scenario_attachments(cfg, SCENARIO_ID, 0, 1000, resp)
if not resp.success then
  writeln_('ERROR fetching list of scenario attachments: ',resp.errormsg)
  exit(1)
end-if
forall (att in page.content) do
  if att.filename='alldata.xls' then
    attach := att
    break
  end-if
end-do
if not has_id(attach) then
  ! Attachment record never populated
  writeln('Attachment "alldata.xls" not found')
  exit(1)
end-if

! Set the filename into which to save the attachment
resp.bodyfilename := 'alldata.xls'
! Download the attachment
insightapi2~get_scenario_attachment_file(cfg, SCENARIO_ID, attach.id, resp)
if not resp.success then
  writeln_('ERROR downloading attachment: ',resp.errormsg)
  exit(1)
end-if
writeln('Attachment downloaded')

Example: Uploading an attachment

This example code demonstrates how to create a scenario attachment named 'username.txt'. Note we specify the attachment content using a insightapi2~file_data record, specifying a local source filename containing the attachment content that has a different name from the attachment filename in the Insight server - the filename field can be left unpopulated if these are the same. We assume that cfg is an initialized insightapi2~insightconfig value and SCENARIO_ID is the ID of the scenario.

declarations
  public username='william shakespeare'
  resp: insightapi2~httpresponse
  attach: insightapi2~attachment
end-declarations

attach := insightapi2~upload_scenario_attachment(cfg, SCENARIO_ID,
  insightapi2~file_data(.source:='text:username', .filename:='username.txt'), true, "mytag", resp)
if not resp.success then
  writeln_('ERROR uploading attachment: ',resp.errormsg)
  exit(1)
end-if
writeln('Attachment uploaded')

Data Model Types

The data model defines the structures used to communicate with the remote API.

insightapi2~app  : record
This object represents one app in the system. See the wider product documentation for an explanation of what an app is used for.
custom_scenario_types  : boolean
Whether this app defines custom scenario types. False if the only scenario type is the default SCENARIO.
execution_modes  : insightapi2~dictionary_of_execution_mode
The app's execution modes, mapped by name
execution_resource_groups  : insightapi2~dictionary_of_execution_resource_group
The app's execution resource groups, mapped by name
help_url  : text
The URL of this app's help documentation. This can either be a path relative to client resources or an absolute URL.
id  : text
The ID of this app
managed  : boolean
Whether this app is managed by insight and therefore cannot be deleted, upgraded, renamed or exported by an end user
mirror_defined  : boolean
Whether a mirror has been defined within the companion file for this app
model  : insightapi2~app_model
Additional attributes of the main model
name  : text
The name of this app
object_type  : text
(Allowed values are: APP)
path  : text
The path within the repository
scenario_types  : insightapi2~dictionary_of_scenario_type
The app's scenario types, mapped by type ID
url  : text
The URL of this app
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_custom_scenario_types(myapp) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A app returned from a property of another model will be read-only; use the function insightapi2~copy_app to create an editable copy, e.g. myapp := insightapi2~copy_app(otherobj.originalapp)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~app_creation_response  : record
app  : insightapi2~app
The newly created app
messages  : list of text
Information messages about the app creation which can be displayed to a user
url  : text
The URL of newly created app
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_app(myapp_creation_response) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A app_creation_response returned from a property of another model will be read-only; use the function insightapi2~copy_app_creation_response to create an editable copy, e.g. myapp_creation_response := insightapi2~copy_app_creation_response(otherobj.originalapp_creation_response)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~app_execution_environment  : record
The execution environment to use when executing scenarios
app  : insightapi2~reference_app
The app this execution environment belongs to
name  : text
The name of the execution environment
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_app(myapp_execution_environment) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A app_execution_environment returned from a property of another model will be read-only; use the function insightapi2~copy_app_execution_environment to create an editable copy, e.g. myapp_execution_environment := insightapi2~copy_app_execution_environment(otherobj.originalapp_execution_environment)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~app_execution_mode  : record
An execution mode for an app
app  : insightapi2~reference_app
The app this execution mode belongs to
clears_input_data  : boolean
Whether this execution mode causes input data to be cleared when it is run
description  : text
The description of this execution mode
execution_resource_group  : text
The name of the execution resource group that defines the resources used by this execution mode
name  : text
The name of this execution mode
preferred_execution_service  : insightapi2~reference_execution_service
The execution service preferred by this execution mode
preferred_execution_service_name  : text
The name of this execution mode's preferred service
priority  : integer
The priority of this execution mode. A higher number indicates higher precedence, for example a priority of 100 will be prioritised over a priority of 1.
sends_progress  : boolean
Whether the execution sends progress when this execution mode is run
threads  : integer
The number of threads that this execution mode uses, or null for unlimited. Threads is deprecated and is now defined on the associated execution resource group.
unlimited_threads  : boolean
Whether this execution mode places any restriction on number of threads
url  : text
The URL of this execution mode
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_app(myapp_execution_mode) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A app_execution_mode returned from a property of another model will be read-only; use the function insightapi2~copy_app_execution_mode to create an editable copy, e.g. myapp_execution_mode := insightapi2~copy_app_execution_mode(otherobj.originalapp_execution_mode)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~app_execution_resource_group  : record
An execution resource group for an app
app  : insightapi2~reference_app
The app this resource group belongs to
default_memory  : text
The default amount of memory that this resource group defines, as set by the app developer.
default_threads  : integer
The default number of threads that this resource group defines, as set by the app developer.
description  : text
The description of this resource group
memory  : text
The amount of memory that this resource group currently defines. This will default to the value of defaultMemory but can be modified by an insight administrator.
min_memory  : text
The minimum amount of memory that this resource group can define. Memory cannot be set below this value.
min_threads  : integer
The minimum number of threads that this resource group can define. Threads cannot be set below this number.
name  : text
The name of this resource group
read_only  : boolean
Whether or not this resource group is read only
threads  : integer
The number of threads that this resource group currently defines. This will default to the value of defaultThreads but can be modified by an insight administrator. (Allowed values are: 1,256)
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_app(myapp_execution_resource_group) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A app_execution_resource_group returned from a property of another model will be read-only; use the function insightapi2~copy_app_execution_resource_group to create an editable copy, e.g. myapp_execution_resource_group := insightapi2~copy_app_execution_resource_group(otherobj.originalapp_execution_resource_group)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~app_member  : record
A user who has access to the app.
authorities  : list of text
The authorities granted to this app member
authority_groups  : list of insightapi2~reference_authority_group
The authority groups granted to this app member
first_name  : text
This app member's first name
id  : text
The ID of this app member
last_name  : text
This app member's last name
name  : text
This app member's name
object_type  : text
(Allowed values are: APP_MEMBER)
url  : text
The URL of this app member
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_authorities(myapp_member) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A app_member returned from a property of another model will be read-only; use the function insightapi2~copy_app_member to create an editable copy, e.g. myapp_member := insightapi2~copy_app_member(otherobj.originalapp_member)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~app_model  : record
data_version  : integer
The model data version
name  : text
The model name
version  : text
The model version
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_data_version(myapp_model) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A app_model returned from a property of another model will be read-only; use the function insightapi2~copy_app_model to create an editable copy, e.g. myapp_model := insightapi2~copy_app_model(otherobj.originalapp_model)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~app_or_folder_or_scenario  : insightapi2~app or insightapi2~folder or insightapi2~scenario
See also
insightapi2~app_upgrade_request  : record
Used to provide options affecting how an upgrade request is treated. This object is now deprecated. See UpgradeRequest for updated usage.
upgrade_type  : text
Whether the upgrade app file should be considered to represent the full app or a partial. A full upgrade will replace the existing app with the app being uploaded, deleting any existing app content that is not in the app being uploaded. A partial upgrade will add and/or replace content in the existing app. (Allowed values are: FULL,PARTIAL)
validate_model_name  : boolean
Whether to validate that the new model name matches the previous model name
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_upgrade_type(myapp_upgrade_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A app_upgrade_request returned from a property of another model will be read-only; use the function insightapi2~copy_app_upgrade_request to create an editable copy, e.g. myapp_upgrade_request := insightapi2~copy_app_upgrade_request(otherobj.originalapp_upgrade_request)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~app_upgrade_response  : record
This object is now deprecated. See Upgrade for updated usage.
messages  : list of text
The messages describing the result of the upgrade
url  : text
The URL of the upgraded app
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_messages(myapp_upgrade_response) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A app_upgrade_response returned from a property of another model will be read-only; use the function insightapi2~copy_app_upgrade_response to create an editable copy, e.g. myapp_upgrade_response := insightapi2~copy_app_upgrade_response(otherobj.originalapp_upgrade_response)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~array  : record
Represents a map from a set of one or more index values, to a value
array  : insightapi2~dictionary
The data in this array. The data is represented by a nested set of object maps. Leaves are the values, keys are the indices.
array_size  : integer
The number of elements in this array
entity_name  : text
The name of this array
filter_id  : text
The id of the filter that was applied to this array, if present on the filter
scenario_id  : text
The id of the scenario that owns this array
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_array(myarray) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A array returned from a property of another model will be read-only; use the function insightapi2~copy_array to create an editable copy, e.g. myarray := insightapi2~copy_array(otherobj.originalarray)
4. It is not possible to use a constructor to initialize this type within an expression.
5. If this structure is holding data retrieved from the webservice, numeric values in fields of type any will always be represented as real. If you are populating this type to send structure to the webservice, you may store numbers as either real or integer values in such fields.
See also
insightapi2~array_delta  : record
Details changes to a scenario array entity.
add  : list of insightapi2~array_element
Array elements to add to the array entity.
remove  : list of list of any
The keys of elements to remove from the array entity. Accepts Strings, Numbers and Booleans.
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_add(myarray_delta) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A array_delta returned from a property of another model will be read-only; use the function insightapi2~copy_array_delta to create an editable copy, e.g. myarray_delta := insightapi2~copy_array_delta(otherobj.originalarray_delta)
4. It is not possible to use a constructor to initialize this type within an expression.
5. If this structure is holding data retrieved from the webservice, numeric values in fields of type any will always be represented as real. If you are populating this type to send structure to the webservice, you may store numbers as either real or integer values in such fields.
See also
insightapi2~array_element  : record
An element in an array entity.
key  : list of any
The key of the element. Accepts strings, numbers and booleans.
value  : any
The value of the element. Accepts strings, numbers and booleans.
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_key(myarray_element) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A array_element returned from a property of another model will be read-only; use the function insightapi2~copy_array_element to create an editable copy, e.g. myarray_element := insightapi2~copy_array_element(otherobj.originalarray_element)
4. It is not possible to use a constructor to initialize this type within an expression.
5. If this structure is holding data retrieved from the webservice, numeric values in fields of type any will always be represented as real. If you are populating this type to send structure to the webservice, you may store numbers as either real or integer values in such fields.
See also
insightapi2~array_filter  : record
A filter that can be applied to an array, matching a subset of keys and values. This filter can specify for each index set the set elements that match the filter. When an array is filtered by the filter, the result is an array with only the values whose keys match the set elements of the filter for each index set. If an index set is not included in the filter then it is equivalent to including all set elements of that index set.
entity_name  : text
The name of the entity this filter applies to
filter_id  : text
The id of this filter
index_filters  : insightapi2~dictionary_of_list_of_any
A map of index set name to the array of set elements to use when filtering the array. The index set name may be substituted with the ordinal of the index set within the array. (The first index set of the array has ordinal 0.)
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_entity_name(myarray_filter) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A array_filter returned from a property of another model will be read-only; use the function insightapi2~copy_array_filter to create an editable copy, e.g. myarray_filter := insightapi2~copy_array_filter(otherobj.originalarray_filter)
4. It is not possible to use a constructor to initialize this type within an expression.
5. If this structure is holding data retrieved from the webservice, numeric values in fields of type any will always be represented as real. If you are populating this type to send structure to the webservice, you may store numbers as either real or integer values in such fields.
See also
insightapi2~array_or_scalar_or_set  : insightapi2~array or insightapi2~scalar or insightapi2~set
See also
insightapi2~attachment  : record
A file that is attached to an app or scenario
app  : insightapi2~reference_app
The app that this attachment belongs to
content_url  : text
The URL from which the contents of this attachment can be downloaded
description  : text
A description of this attachment
filename  : text
The file name of this attachment
hidden  : boolean
Whether the attachment is hidden. This indicates the attachment is not for general user interaction.
id  : text
The ID of this attachment
last_modified  : text
When the attachment contents were last modified
last_modified_by  : insightapi2~reference_user
The user who last modified this attachment
name  : text
The name of this attachment
object_type  : text
(Allowed values are: ATTACHMENT)
parent  : insightapi2~reference_app_or_reference_scenario
The parent of this attachment (either an app or a scenario). If the attachment is an app attachment, then the parent property will have the same value as the app property.
size  : real
The size of this attachment in bytes
tags  : list of text
The tags that are present on this attachment
url  : text
The URL of this attachment
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_app(myattachment) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A attachment returned from a property of another model will be read-only; use the function insightapi2~copy_attachment to create an editable copy, e.g. myattachment := insightapi2~copy_attachment(otherobj.originalattachment)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~attachment_download_request  : record
A request to download a number of attachments
ids  : list of text
The IDs of attachments to download
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_ids(myattachment_download_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A attachment_download_request returned from a property of another model will be read-only; use the function insightapi2~copy_attachment_download_request to create an editable copy, e.g. myattachment_download_request := insightapi2~copy_attachment_download_request(otherobj.originalattachment_download_request)
4. It is not possible to use a constructor to initialize this type within an expression.
insightapi2~attachment_tag  : record
A label/tag which can be applied to one or more attachments depending on its properties.
description  : text
A human-readable description for this tag
mandatory  : boolean
Whether this tag must be present on at least one attachment belonging to the app or scenario
multi_file  : boolean
Whether this tag can be present on multiple attachments
name  : text
The unique name of this tag
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_description(myattachment_tag) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A attachment_tag returned from a property of another model will be read-only; use the function insightapi2~copy_attachment_tag to create an editable copy, e.g. myattachment_tag := insightapi2~copy_attachment_tag(otherobj.originalattachment_tag)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~attachment_upload_request  : record
The attachment filename must conform to the following rules: The length must be between 1 and 255 characters (in UTF-16), it must not begin or end with a whitespace character, it must not contain any ISO Control Characters and it must not contain any of the characters \/?*: -<>"
attachment  : insightapi2~file_data
The attachment to upload
hidden  : boolean
Whether the attachment is hidden. This indicates the attachment is not for general user interaction.
overwrite  : boolean
Whether to overwrite an existing attachment with the same filename or to create a new one with a new name
tag_name  : text
The name of the tag to create this attachment with
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_attachment(myattachment_upload_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A attachment_upload_request returned from a property of another model will be read-only; use the function insightapi2~copy_attachment_upload_request to create an editable copy, e.g. myattachment_upload_request := insightapi2~copy_attachment_upload_request(otherobj.originalattachment_upload_request)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~authority_group  : record
A group of authorities that can be assigned to user accounts.
authorities  : list of text
The authorities in this group (Allowed values are: APP_ALL,APP_ATTACHMENT_EDIT,APP_ATTACHMENT_VIEW,APP_DELETE,APP_EDIT,APP_EXPORT,APP_NEW,DEVELOPER,DIRECT_DATA_VIEW,FOLDER_DELETE,FOLDER_EDIT,FOLDER_NEW,FOLDER_OWNER,FOLDER_SHARE,SCENARIO_ALL,SCENARIO_ATTACHMENT_EDIT,SCENARIO_DELETE,SCENARIO_EDIT,SCENARIO_EXEC,SCENARIO_NEW,SCENARIO_OWNER,SCENARIO_SHARE,SYS_IMPORTEXPORT,SYS_SERVER,SYS_SERVICES,SYS_USER)
custom_authorities  : list of insightapi2~custom_authority
The custom authorities in this group
description  : text
The description of this authority group
execution_services  : list of insightapi2~reference_execution_service
The execution services permitted by this group
id  : text
The ID of this authority group
managed  : boolean
Whether this authority group is managed by insight
name  : text
The name of this authority group
object_type  : text
(Allowed values are: AUTHORITY_GROUP)
url  : text
The URL of this authority group
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_authorities(myauthority_group) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A authority_group returned from a property of another model will be read-only; use the function insightapi2~copy_authority_group to create an editable copy, e.g. myauthority_group := insightapi2~copy_authority_group(otherobj.originalauthority_group)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~bearer_token_info  : record
Information about a bearer token
access_token_expiration_time  : text
The expiration time of the token
cn  : text
The user's common name
mail  : text
The user's email address
uid  : text
The user ID
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_access_token_expiration_time(mybearer_token_info) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A bearer_token_info returned from a property of another model will be read-only; use the function insightapi2~copy_bearer_token_info to create an editable copy, e.g. mybearer_token_info := insightapi2~copy_bearer_token_info(otherobj.originalbearer_token_info)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~bearer_token_request  : record
REST API credentials to generate a bearer token
client_id  : text
The ID of client
max_age  : real
The number of seconds until the generated token will expire
secret  : text
The secret used to authorize the client
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_client_id(mybearer_token_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A bearer_token_request returned from a property of another model will be read-only; use the function insightapi2~copy_bearer_token_request to create an editable copy, e.g. mybearer_token_request := insightapi2~copy_bearer_token_request(otherobj.originalbearer_token_request)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~compute_execution  : record
Details of how a compute job will be executed
execution_service  : text
The execution service that should run this job
priority  : integer
The priority of this job
threads  : integer
The number of threads that this job requires. If set, must be between 1 and 256. This setting takes precedence over the XPRS_THREADS control.
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_execution_service(mycompute_execution) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A compute_execution returned from a property of another model will be read-only; use the function insightapi2~copy_compute_execution to create an editable copy, e.g. mycompute_execution := insightapi2~copy_compute_execution(otherobj.originalcompute_execution)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~compute_job  : record
This object represents one job request submitted via the compute interface
app  : insightapi2~reference_app
The app this job belongs to. This will always be the app named 'FICO Xpress Insight Compute'.
compute_job_type  : text
The compute job type (Allowed values are: MOSEL,SOLVER)
dependency  : text
Name of a dependency zip. Must match the name of a dependency uploaded as an app attachment to the compute app.
execution  : insightapi2~compute_execution
Execution Service and threads to run the compute job on
id  : text
The ID of this job
job_metrics_url  : text
The URL of the metrics
model_status  : text
The model status (Allowed values are: NA,OK,INSTR,MATHERR,UNKN_PF,UNKN_SYS,PROB,ERROR,EXIT,IOERR,BREAK,NIFCT,NULL,LICERR,STOP,UNKNOWN)
mosel  : insightapi2~compute_mosel
Specify any mosel specific options if the type of the job is MOSEL
object_type  : text
(Allowed values are: COMPUTE_JOB)
owner  : insightapi2~reference_user
The user who owns this compute job
payload_url  : text
The URL of the payload
result_url  : text
The URL of the result
run_log_messages  : boolean
True indicates that incremental run log messages should be sent to the web socket for the client that submitted this request
run_log_url  : text
The URL of the run log
scenario  : insightapi2~reference_scenario
The scenario this job relates to
solver  : insightapi2~compute_solver
Specify any solver specific options if the type of the job is SOLVER
status  : text
The status of this job (Allowed values are: INACTIVE,QUEUED,EXECUTING,COMPLETING,COMPLETED,FAILED,CANCELLING,CANCELLED,DELETING,DELETED)
url  : text
The URL of this job
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_app(mycompute_job) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A compute_job returned from a property of another model will be read-only; use the function insightapi2~copy_compute_job to create an editable copy, e.g. mycompute_job := insightapi2~copy_compute_job(otherobj.originalcompute_job)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~compute_job_request  : record
A request to create a new compute job
compute_job_type  : text
The compute job type (Allowed values are: MOSEL,SOLVER)
dependency  : text
The name of a zip file to use for the compute job. If supplied, must match the name of a dependency uploaded to the compute app as an app attachment.
execution  : insightapi2~compute_execution
Execution Service and threads to run the compute job on.
id  : text
The ID of this compute job. This must be unique across all compute jobs. It must be between 1 and 60 characters and may only contain lower-case alphanumeric characters (a-z), underscores (_), dots (.) and hyphens (-).
log_level  : text
Specify the log level for execution log output (Allowed values are: DEBUG,INFO,WARN,ERROR)
mosel  : insightapi2~compute_mosel
Specify any mosel specific options if the type of the job is MOSEL
run_log_messages  : boolean
True indicates that incremental run log messages should be sent to the web socket for the client that submitted this request.
solver  : insightapi2~compute_solver
Specify any solver specific options if the type of the job is SOLVER
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_compute_job_type(mycompute_job_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A compute_job_request returned from a property of another model will be read-only; use the function insightapi2~copy_compute_job_request to create an editable copy, e.g. mycompute_job_request := insightapi2~copy_compute_job_request(otherobj.originalcompute_job_request)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~compute_mosel  : record
Configuration for a Mosel compute job
parameters  : insightapi2~dictionary_of_text
A map of Mosel model parameters
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_parameters(mycompute_mosel) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A compute_mosel returned from a property of another model will be read-only; use the function insightapi2~copy_compute_mosel to create an editable copy, e.g. mycompute_mosel := insightapi2~copy_compute_mosel(otherobj.originalcompute_mosel)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~compute_solver  : record
Configuration for a Solver compute job
action  : text
The solver action (Allowed values are: OPTIMIZE,IIS)
callbacks  : list of text
Callbacks to invoke during the solving of a job of type SOLVER (requires integration with the Progress Events API) (Allowed values are: BARLOG,CUTLOG,GLOBALLOG,LPLOG,GAPNOTIFY,INTSOL)
controls  : insightapi2~dictionary_of_text
A map of controls to values
flags  : list of text
The flags to be applied during the solve (Allowed values are: DUAL,PRIMAL,BARRIER,NETWORK)
problem_type  : text
The type of problem being solved. If not set, the solver will determine this based on the problem characteristics. (Allowed values are: LP,MIP)
results_to_include  : list of text
The results to include in the output of this job (Allowed values are: SOLUTION,BASIS,ATTRIBUTES,SAVE,IIS)
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_action(mycompute_solver) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A compute_solver returned from a property of another model will be read-only; use the function insightapi2~copy_compute_solver to create an editable copy, e.g. mycompute_solver := insightapi2~copy_compute_solver(otherobj.originalcompute_solver)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~custom_authority  : record
An authority defined by an app
name  : text
The authority's name
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_name(mycustom_authority) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A custom_authority returned from a property of another model will be read-only; use the function insightapi2~copy_custom_authority to create an editable copy, e.g. mycustom_authority := insightapi2~copy_custom_authority(otherobj.originalcustom_authority)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~dashboard_query  : record
excluded_folder_ids  : list of text
Folders to exclude from the query
root  : insightapi2~reference_app_or_reference_folder
The starting point of the query
timestamp  : text
Scenarios in the defined folder hierarchy will be checked to see whether they have been modified since this time
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_excluded_folder_ids(mydashboard_query) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A dashboard_query returned from a property of another model will be read-only; use the function insightapi2~copy_dashboard_query to create an editable copy, e.g. mydashboard_query := insightapi2~copy_dashboard_query(otherobj.originaldashboard_query)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~dashboard_response  : record
modified  : boolean
Whether any of the scenarios have been modified
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_modified(mydashboard_response) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A dashboard_response returned from a property of another model will be read-only; use the function insightapi2~copy_dashboard_response to create an editable copy, e.g. mydashboard_response := insightapi2~copy_dashboard_response(otherobj.originaldashboard_response)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~entity_delta  : record
Details changes to a scenario entity.
array_delta  : insightapi2~array_delta
The changes to apply to an array entity.
entity_name  : text
The name of the scenario entity being changed.
set_delta  : insightapi2~set_delta
The changes to apply to a set entity.
value  : any
The new value for the entity. Accepts strings, numbers and booleans.
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_array_delta(myentity_delta) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A entity_delta returned from a property of another model will be read-only; use the function insightapi2~copy_entity_delta to create an editable copy, e.g. myentity_delta := insightapi2~copy_entity_delta(otherobj.originalentity_delta)
4. It is not possible to use a constructor to initialize this type within an expression.
5. If this structure is holding data retrieved from the webservice, numeric values in fields of type any will always be represented as real. If you are populating this type to send structure to the webservice, you may store numbers as either real or integer values in such fields.
See also
insightapi2~error_detail  : record
An error detail
code  : text
The unique code for this error
desc  : text
A description of this error for client information, not intended for display to the end user
message  : text
A message providing further information which may be displayed to the end user
target  : text
An identifier to help the client locate the error. Typically a JSON property name.
timestamp  : text
When the error was first detected
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_code(myerror_detail) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A error_detail returned from a property of another model will be read-only; use the function insightapi2~copy_error_detail to create an editable copy, e.g. myerror_detail := insightapi2~copy_error_detail(otherobj.originalerror_detail)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~error_response  : record
An error response containing fault or error information
error  : insightapi2~outer_error
The top level error
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_error(myerror_response) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A error_response returned from a property of another model will be read-only; use the function insightapi2~copy_error_response to create an editable copy, e.g. myerror_response := insightapi2~copy_error_response(otherobj.originalerror_response)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~outer_error
insightapi2~any_scenarios_modified_since
insightapi2~cancel_job
insightapi2~cancel_jobs
insightapi2~check_mirror_health
insightapi2~create_app
insightapi2~create_authority_group
insightapi2~create_compute_job
insightapi2~create_execution_service
insightapi2~create_execution_worker
insightapi2~create_folder
insightapi2~create_job
insightapi2~create_or_update_execution_worker_mapping
insightapi2~create_scenario
insightapi2~create_sso_attribute_mapping
insightapi2~create_user
insightapi2~delete_app
insightapi2~delete_app_attachment
insightapi2~delete_app_attachments
insightapi2~delete_compute_job
insightapi2~delete_execution_service
insightapi2~delete_execution_worker
insightapi2~delete_execution_worker_mapping
insightapi2~delete_folder
insightapi2~delete_scenario
insightapi2~delete_scenario_attachment
insightapi2~delete_scenario_attachments
insightapi2~delete_sso_attribute_mapping
insightapi2~delete_user
insightapi2~dismiss_portations
insightapi2~get_app
insightapi2~get_app_attachment
insightapi2~get_app_attachment_file
insightapi2~get_app_attachment_tags
insightapi2~get_app_attachments
insightapi2~get_app_children
insightapi2~get_app_members
insightapi2~get_app_message_file
insightapi2~get_app_model_schema
insightapi2~get_authority_group
insightapi2~get_compute_job
insightapi2~get_compute_message_file
insightapi2~get_execution_service
insightapi2~get_execution_worker
insightapi2~get_execution_worker_mapping
insightapi2~get_export
insightapi2~get_export_file
insightapi2~get_folder
insightapi2~get_folder_children
insightapi2~get_import
insightapi2~get_item_by_path
insightapi2~get_job
insightapi2~get_job_log
insightapi2~get_job_metrics
insightapi2~get_job_run_log
insightapi2~get_mirror_configuration
insightapi2~get_multiple_app_attachment_files
insightapi2~get_multiple_scenario_attachment_files
insightapi2~get_scenario
insightapi2~get_scenario_attachment
insightapi2~get_scenario_attachment_file
insightapi2~get_scenario_attachments
insightapi2~get_scenario_data
insightapi2~get_scenario_job_metrics
insightapi2~get_scenario_run_log
insightapi2~get_sso_attribute_mapping
insightapi2~get_upgrade
insightapi2~get_user
insightapi2~modify_scenario_data
insightapi2~move_to_app_root
insightapi2~move_to_folder
insightapi2~perform_export
insightapi2~perform_import
insightapi2~perform_upgrade
insightapi2~send_message_to_job
insightapi2~update_app
insightapi2~update_app_attachment
insightapi2~update_authority_group
insightapi2~update_execution_environment
insightapi2~update_execution_mode
insightapi2~update_execution_resource_group
insightapi2~update_execution_service
insightapi2~update_execution_worker
insightapi2~update_folder
insightapi2~update_mirror_configuration
insightapi2~update_scenario
insightapi2~update_scenario_attachment
insightapi2~update_sso_attribute_mapping
insightapi2~update_user
insightapi2~upgrade_app
insightapi2~upload_app_attachment
insightapi2~upload_scenario_attachment
insightapi2~execution_mode  : record
A standard or custom mode by which a job is executed which provides additional control by either altering the code path of the model itself or routing the job to particular execution services
clears_input_data  : boolean
Whether this execution mode causes input data to be cleared when it is run
description  : text
The description of this execution mode
execution_resource_group  : text
The name of the execution resource group that defines the resources used by this execution mode
name  : text
The name of this execution mode
priority  : integer
The priority of this execution mode. A higher number indicates higher precedence, for example a priority of 100 will be prioritised over a priority of 1.
sends_progress  : boolean
Whether the execution sends progress when this execution mode is run
threads  : integer
The number of threads that this execution mode uses, or null for unlimited. Threads is deprecated and is now defined on the associated execution resource group.
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_clears_input_data(myexecution_mode) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A execution_mode returned from a property of another model will be read-only; use the function insightapi2~copy_execution_mode to create an editable copy, e.g. myexecution_mode := insightapi2~copy_execution_mode(otherobj.originalexecution_mode)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~execution_resource_group  : record
A group which defines the resources (memory and threads) used by execution modes which reference this group. Each group defines the minimum, default and current values for threads and memory.
default_memory  : text
The default amount of memory that this resource group defines, as set by the app developer.
default_threads  : integer
The default number of threads that this resource group defines, as set by the app developer.
description  : text
The description of this resource group
memory  : text
The amount of memory that this resource group currently defines. This will default to the value of defaultMemory but can be modified by an insight administrator.
min_memory  : text
The minimum amount of memory that this resource group can define. Memory cannot be set below this value.
min_threads  : integer
The minimum number of threads that this resource group can define. Threads cannot be set below this number.
name  : text
The name of this resource group
read_only  : boolean
Whether or not this resource group is read only
threads  : integer
The number of threads that this resource group currently defines. This will default to the value of defaultThreads but can be modified by an insight administrator. (Allowed values are: 1,256)
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_default_memory(myexecution_resource_group) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A execution_resource_group returned from a property of another model will be read-only; use the function insightapi2~copy_execution_resource_group to create an editable copy, e.g. myexecution_resource_group := insightapi2~copy_execution_resource_group(otherobj.originalexecution_resource_group)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~execution_service  : record
An execution service running on an execution worker
default  : boolean
Whether this service is the default for models which do not nominate a specific service
enabled  : boolean
Whether this service is enabled
id  : text
The ID of this execution service
name  : text
The name of this execution service
object_type  : text
(Allowed values are: EXECUTION_SERVICE)
restricted  : boolean
Whether this service is restricted to certain users via user authorities
url  : text
The URL of this execution service
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_default(myexecution_service) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A execution_service returned from a property of another model will be read-only; use the function insightapi2~copy_execution_service to create an editable copy, e.g. myexecution_service := insightapi2~copy_execution_service(otherobj.originalexecution_service)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~execution_service_creation_request  : record
A request to create a new execution service
default  : boolean
Whether this service is the default for models which do not nominate a specific service
enabled  : boolean
Whether this service is enabled
name  : text
The name of the new service
restricted  : boolean
Whether this service is restricted to certain users via user authorities
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_default(myexecution_service_creation_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A execution_service_creation_request returned from a property of another model will be read-only; use the function insightapi2~copy_execution_service_creation_request to create an editable copy, e.g. myexecution_service_creation_request := insightapi2~copy_execution_service_creation_request(otherobj.originalexecution_service_creation_request)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~execution_service_worker_mapping  : record
enabled  : boolean
Whether this mapping is enabled
job_capacity  : integer
The maximum number of jobs that can run at once (Allowed values are: 1,256)
memory_capacity  : text
The maximum amount of memory that can be consumed by jobs running on this mapping. This is a number followed by either Mi or Gi to specify megabytes or gigabytes
object_type  : text
The type of reference (Allowed values are: EXECUTION_SERVICE_WORKER_MAPPING)
service  : insightapi2~reference_execution_service
A reference to the execution service
thread_capacity  : integer
The maximum number of threads that can run at once (Allowed values are: 1,256)
unlimited_jobs  : boolean
Whether this mapping places any restriction on the number of jobs
unlimited_memory  : boolean
Whether this mapping places any restriction on the amount of memory
unlimited_threads  : boolean
Whether this mapping places any restriction on the number of threads
url  : text
The URL of this mapping
worker  : insightapi2~reference_execution_worker
A reference to the execution worker
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_enabled(myexecution_service_worker_mapping) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A execution_service_worker_mapping returned from a property of another model will be read-only; use the function insightapi2~copy_execution_service_worker_mapping to create an editable copy, e.g. myexecution_service_worker_mapping := insightapi2~copy_execution_service_worker_mapping(otherobj.originalexecution_service_worker_mapping)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~execution_worker  : record
A worker which executes jobs
enabled  : boolean
Whether this worker is enabled
id  : text
The ID of this execution worker
job_capacity  : integer
The maximum number of jobs that this worker can run at once (Allowed values are: 1,256)
memory_capacity  : text
The maximum amount of memory that can be consumed by jobs running on this worker. This is a number followed by either Mi or Gi to specify megabytes or gigabytes
name  : text
The name of this execution worker
object_type  : text
(Allowed values are: EXECUTION_WORKER)
state  : insightapi2~execution_worker_state
The current state of this worker
thread_capacity  : integer
The maximum number of threads that this worker can run at once (Allowed values are: 1,256)
unlimited_memory  : boolean
Whether this worker has unlimited memory capacity
unlimited_threads  : boolean
Whether this worker has unlimited thread capacity
url  : text
The URL of this execution worker
version  : text
The version of this worker
worker_url  : text
The URL that this worker is available on
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_enabled(myexecution_worker) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A execution_worker returned from a property of another model will be read-only; use the function insightapi2~copy_execution_worker to create an editable copy, e.g. myexecution_worker := insightapi2~copy_execution_worker(otherobj.originalexecution_worker)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~execution_worker_creation_request  : record
A request to create a new execution worker
enabled  : boolean
Whether this worker is enabled
job_capacity  : integer
The maximum number of jobs that this worker can run at once (Allowed values are: 1,256)
memory_capacity  : text
The maximum amount of memory that can be consumed by jobs running on this worker. This is a number followed by either Mi or Gi to specify megabytes or gigabytes
name  : text
The name for this worker
thread_capacity  : integer
The maximum number of threads that this worker can run at once (Allowed values are: 1,256)
unlimited_memory  : boolean
Whether this worker has unlimited memory capacity
unlimited_threads  : boolean
Whether this worker has unlimited thread capacity
worker_url  : text
The URL that this worker is available on
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_enabled(myexecution_worker_creation_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A execution_worker_creation_request returned from a property of another model will be read-only; use the function insightapi2~copy_execution_worker_creation_request to create an editable copy, e.g. myexecution_worker_creation_request := insightapi2~copy_execution_worker_creation_request(otherobj.originalexecution_worker_creation_request)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~execution_worker_state  : record
message  : text
A message containing information about this worker's status
status  : text
The current status of this worker (Allowed values are: ONLINE,OFFLINE,IDLE,PROVISIONING)
status_last_modified  : text
When this worker's status was last modified
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_message(myexecution_worker_state) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A execution_worker_state returned from a property of another model will be read-only; use the function insightapi2~copy_execution_worker_state to create an editable copy, e.g. myexecution_worker_state := insightapi2~copy_execution_worker_state(otherobj.originalexecution_worker_state)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~export  : record
Contains the status and location of an export.
dismissed  : boolean
True indicates this portation has been dismissed by the owner.
download_url  : text
The download url of this export
error_messages  : list of text
The error messages produced by this portation
filename  : text
The filename for this portation
finished  : text
When this portation finished
id  : text
The ID of this export
include_folders_and_scenarios  : boolean
The filter to indicate whether folders and scenario are included as part of this export or not. This is applicable only for an app export
info_messages  : list of text
The info messages produced by this portation
name  : text
The name of this export
object_type  : text
(Allowed values are: EXPORT)
owner  : insightapi2~reference_user
The user that owns this portation
parent  : insightapi2~reference_export_or_reference_import_or_reference_upgrade
The parent of this portation. This is populated when this portation belongs to another. For example when importing an insight file which contains many apps then each app import will be parented by the original import portation.
path  : text
The path for this export relative to the configured portation directory.
reference  : insightapi2~reference_app_or_reference_folder_or_reference_scenario
The reference of the item (app, folder or scenario) being ported
started  : text
When this portation started
status  : text
The status of this portation (Allowed values are: QUEUED,MIGRATING,PORTING,SUCCESS,ERROR)
url  : text
The URL of this export
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_dismissed(myexport) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A export returned from a property of another model will be read-only; use the function insightapi2~copy_export to create an editable copy, e.g. myexport := insightapi2~copy_export(otherobj.originalexport)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~export_request  : record
include_folders_and_scenarios  : boolean
Filter to indicate whether to include folders and scenario as part of an app export. This is not required for a folder or a scenario export
path  : text
Path to the export location. Should be used when exporting to FICO Drive.
source  : insightapi2~reference_app_or_reference_folder_or_reference_scenario
Reference to the item (app, folder or scenario) to be exported
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_include_folders_and_scenarios(myexport_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A export_request returned from a property of another model will be read-only; use the function insightapi2~copy_export_request to create an editable copy, e.g. myexport_request := insightapi2~copy_export_request(otherobj.originalexport_request)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~folder  : record
Represents a folder in the app folder hierarchy. See the wider product documentation for more information on folders
app  : insightapi2~reference_app
The app that owns this folder
id  : text
The ID of this folder
name  : text
The name of this folder
object_type  : text
(Allowed values are: FOLDER)
owner  : insightapi2~reference_user
The user that owns this folder
parent  : insightapi2~reference_app_or_reference_folder
The parent of this folder
path  : text
The path within the repository
share_status  : text
The share status of this folder (Allowed values are: PRIVATE,READONLY,FULLACCESS)
url  : text
The URL of this folder
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_app(myfolder) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A folder returned from a property of another model will be read-only; use the function insightapi2~copy_folder to create an editable copy, e.g. myfolder := insightapi2~copy_folder(otherobj.originalfolder)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~folder_creation_request  : record
A request to create a new folder
name  : text
The name for the folder
parent  : insightapi2~reference_app_or_reference_folder
The app or folder to create this folder under
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_name(myfolder_creation_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A folder_creation_request returned from a property of another model will be read-only; use the function insightapi2~copy_folder_creation_request to create an editable copy, e.g. myfolder_creation_request := insightapi2~copy_folder_creation_request(otherobj.originalfolder_creation_request)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~folder_or_scenario  : insightapi2~folder or insightapi2~scenario
See also
insightapi2~import  : record
Contains the status and location of an import.
dismissed  : boolean
True indicates this portation has been dismissed by the owner.
error_messages  : list of text
The error messages produced by this portation
filename  : text
The filename for this portation
finished  : text
When this portation finished
id  : text
The ID of this import
import_type  : text
Type of import to perform with the supplied file. (Allowed values are: APP,FOLDER_OR_SCENARIO,REPOSITORY)
info_messages  : list of text
The info messages produced by this portation
name  : text
The name of this import
object_type  : text
(Allowed values are: IMPORT)
owner  : insightapi2~reference_user
The user that owns this portation
parent  : insightapi2~reference_export_or_reference_import_or_reference_upgrade
The parent of this portation. This is populated when this portation belongs to another. For example when importing an insight file which contains many apps then each app import will be parented by the original import portation.
reference  : insightapi2~reference_app_or_reference_folder_or_reference_scenario
The reference of the item (app, folder or scenario) being ported
security  : text
Controls the security of imported assets (Allowed values are: ORIGINAL,PRIVATE)
started  : text
When this portation started
status  : text
The status of this portation (Allowed values are: QUEUED,MIGRATING,PORTING,SUCCESS,ERROR)
target  : insightapi2~reference_app_or_reference_folder
The reference to the parent of the imported scenario or folder. This will not be populated for an app import
url  : text
The URL of this import
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_dismissed(myimport) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A import returned from a property of another model will be read-only; use the function insightapi2~copy_import to create an editable copy, e.g. myimport := insightapi2~copy_import(otherobj.originalimport)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~import_upload_request  : record
import_type  : text
Type of import to perform with the supplied file. (Allowed values are: APP,FOLDER_OR_SCENARIO,REPOSITORY)
security  : text
Controls the security of imported assets (Allowed values are: ORIGINAL,PRIVATE)
target  : insightapi2~reference_app_or_reference_folder
The reference to the target item (app or folder) to which a folder or a scenario is to be imported. This will not be needed for an app or repository import
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_import_type(myimport_upload_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A import_upload_request returned from a property of another model will be read-only; use the function insightapi2~copy_import_upload_request to create an editable copy, e.g. myimport_upload_request := insightapi2~copy_import_upload_request(otherobj.originalimport_upload_request)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~inner_error  : record
More specific error information
code  : text
The unique code for this error
desc  : text
A description of this error for client information, not intended for display to the end user
inner_error  : insightapi2~inner_error
More specific error information
message  : text
A message providing further information which may be displayed to the end user
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_code(myinner_error) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A inner_error returned from a property of another model will be read-only; use the function insightapi2~copy_inner_error to create an editable copy, e.g. myinner_error := insightapi2~copy_inner_error(otherobj.originalinner_error)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~job  : record
The state of a job
app  : insightapi2~reference_app
The app this job belongs to
created  : text
When the job was created
duration  : real
The duration of this job. This is only present when the job is finished
execution_attempts  : integer
The number of attempts to execute this job
execution_id  : text
The current execution ID for this job. This changes if a job is rescheduled and executed again
execution_mode  : insightapi2~execution_mode
The execution mode this job will run in
execution_resource_group  : insightapi2~execution_resource_group
The execution resource group that defines the resources this job will run with
execution_service  : insightapi2~reference_execution_service
The execution service for this job
execution_worker  : insightapi2~reference_execution_worker
The execution worker for this job
finished  : text
When the job was finished
id  : text
The ID of this job state
model_status  : text
The model status (Allowed values are: NA,OK,INSTR,MATHERR,UNKN_PF,UNKN_SYS,PROB,ERROR,EXIT,IOERR,BREAK,NIFCT,NULL,LICERR,STOP,UNKNOWN)
name  : text
The name of this job state
object_type  : text
(Allowed values are: JOB_STATE)
objective  : real
The objective
owner  : insightapi2~reference_user
The user who owns this job
scenario  : insightapi2~reference_scenario
The scenario this job belongs to
solver_status  : text
The solver status (Allowed values are: NA,UNKNOWN,SOLUTION,OPTIMAL,UNFINISHED,INFEASIBLE,UNBOUNDED,OTHER)
started  : text
When the job was started
status  : text
The status of this job (Allowed values are: INACTIVE,QUEUED,EXECUTING,COMPLETING,COMPLETED,FAILED,CANCELLING,CANCELLED,DELETING,DELETED)
url  : text
The URL of this job state
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_app(myjob) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A job returned from a property of another model will be read-only; use the function insightapi2~copy_job to create an editable copy, e.g. myjob := insightapi2~copy_job(otherobj.originaljob)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~job_creation_request  : record
A request to create a new job
execution_mode  : text
The execution mode (standard or user-defined) of the job
scenario  : insightapi2~reference_scenario
The scenario to create the job for
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_execution_mode(myjob_creation_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A job_creation_request returned from a property of another model will be read-only; use the function insightapi2~copy_job_creation_request to create an editable copy, e.g. myjob_creation_request := insightapi2~copy_job_creation_request(otherobj.originaljob_creation_request)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~job_log_file  : record
Job log file details
filename  : text
The file name of the job log
last_modified  : text
The last modified timestamp of the job log file
size  : real
Size of the job log file in bytes
url  : text
The URL of this file
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_filename(myjob_log_file) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A job_log_file returned from a property of another model will be read-only; use the function insightapi2~copy_job_log_file to create an editable copy, e.g. myjob_log_file := insightapi2~copy_job_log_file(otherobj.originaljob_log_file)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~job_message  : record
A message sent from a client to an executing job. Messages are used to send commands to the model.
execution_id  : text
The execution id of the job to send a message to
message  : text
The message to send to the model
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_execution_id(myjob_message) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A job_message returned from a property of another model will be read-only; use the function insightapi2~copy_job_message to create an editable copy, e.g. myjob_message := insightapi2~copy_job_message(otherobj.originaljob_message)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~job_metrics  : record
Metrics for a job that is either executing or has completed execution. Job metrics consist of 3 distinct stages that a job progresses through in order to complete execution.
duration  : real
The current duration of this job
execution  : insightapi2~job_stage
The execution stage
queued  : insightapi2~job_stage
The queued stage
started  : text
When this job started
worker  : insightapi2~job_stage
The worker stage
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_duration(myjob_metrics) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A job_metrics returned from a property of another model will be read-only; use the function insightapi2~copy_job_metrics to create an editable copy, e.g. myjob_metrics := insightapi2~copy_job_metrics(otherobj.originaljob_metrics)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~job_phase  : record
A phase of a job stage. Each phase may have one or more phase metrics.
duration  : real
The current duration of this job phase
metrics  : insightapi2~dictionary_of_job_phase_metric
This phase's metrics, keyed by name
name  : text
The name of this phase
started  : text
When this phase started
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_duration(myjob_phase) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A job_phase returned from a property of another model will be read-only; use the function insightapi2~copy_job_phase to create an editable copy, e.g. myjob_phase := insightapi2~copy_job_phase(otherobj.originaljob_phase)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~job_phase_metric  : record
A metric of a job phase
count  : integer
The count of this phase metric
data_size  : real
The size of this phase metric
duration  : real
The current duration of this job phase metric
name  : text
The name of this phase metric
started  : text
When this phase metric started
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_count(myjob_phase_metric) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A job_phase_metric returned from a property of another model will be read-only; use the function insightapi2~copy_job_phase_metric to create an editable copy, e.g. myjob_phase_metric := insightapi2~copy_job_phase_metric(otherobj.originaljob_phase_metric)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~job_query  : record
scenario_ids  : list of text
The IDs of the scenarios to find jobs for
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_scenario_ids(myjob_query) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A job_query returned from a property of another model will be read-only; use the function insightapi2~copy_job_query to create an editable copy, e.g. myjob_query := insightapi2~copy_job_query(otherobj.originaljob_query)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~job_stage  : record
A stage of a job metric. A stage is sub-divided into phases.
duration  : real
The current duration of this job stage
name  : text
The name of this job stage
phases  : list of insightapi2~job_phase
This stage's phases
started  : text
When this stage started
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_duration(myjob_stage) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A job_stage returned from a property of another model will be read-only; use the function insightapi2~copy_job_stage to create an editable copy, e.g. myjob_stage := insightapi2~copy_job_stage(otherobj.originaljob_stage)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~list_of_ids  : record
A list of UUIDs
ids  : list of text
The IDs
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_ids(mylist_of_ids) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A list_of_ids returned from a property of another model will be read-only; use the function insightapi2~copy_list_of_ids to create an editable copy, e.g. mylist_of_ids := insightapi2~copy_list_of_ids(otherobj.originallist_of_ids)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~mirror_admin_configuration  : record
Provides for configuring mirror behaviour.
max_idle_time  : integer
The configured maximum time, in seconds, the data for a scenario will live before it is evicted (Allowed values are: 0,31536000)
min_time_to_live  : integer
The configured minimum time, in seconds, the data for a scenario will live before being eligible for eviction (Allowed values are: 0,31536000)
target_capacity  : integer
The mirror capacity the system will attempt to maintain (Allowed values are: 0,1000)
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_max_idle_time(mymirror_admin_configuration) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A mirror_admin_configuration returned from a property of another model will be read-only; use the function insightapi2~copy_mirror_admin_configuration to create an editable copy, e.g. mymirror_admin_configuration := insightapi2~copy_mirror_admin_configuration(otherobj.originalmirror_admin_configuration)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~mirror_configuration_health  : record
Configuration details for display in health checks
database_url  : text
The configured mirror database connection string
max_idle_time  : integer
The configured maximum time, in seconds, the data for a scenario will live before it is evicted
min_time_to_live  : integer
The configured minimum time, in seconds, the data for a scenario will live before being eligible for eviction
target_capacity  : integer
The mirror capacity the system will attempt to maintain
username  : text
The configured database username
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_database_url(mymirror_configuration_health) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A mirror_configuration_health returned from a property of another model will be read-only; use the function insightapi2~copy_mirror_configuration_health to create an editable copy, e.g. mymirror_configuration_health := insightapi2~copy_mirror_configuration_health(otherobj.originalmirror_configuration_health)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~mirror_health  : record
Provides health check information relating to the mirror configuration
configuration  : insightapi2~mirror_configuration_health
Holds mirror configuration information
health_checks  : insightapi2~dictionary_of_visualization_health_check
A map of VisualizationHealthCheck objects detailing the health of the mirror configuration
status  : text
The combined status for the mirror health checks. (Allowed values are: PASS,WARN,FAIL,SKIPPED)
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_configuration(mymirror_health) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A mirror_health returned from a property of another model will be read-only; use the function insightapi2~copy_mirror_health to create an editable copy, e.g. mymirror_health := insightapi2~copy_mirror_health(otherobj.originalmirror_health)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~model_entity  : record
Represents one data entity and its attributes in the data schema of the app.
abbreviated_name  : text
The abbreviated name of this entity
alias  : text
The alias of this entity
always_hidden  : boolean
Indicates whether this entity is always hidden
constant  : boolean
Indicates whether this entity is a constant
data_type  : text
The data type of this entity (Allowed values are: UNSUPPORTED,BOOLEAN,INTEGER,REAL,STRING,SET,ARRAY,DECISION_VARIABLE,CONSTRAINT,MODEL,CONSTRAINT_TYPE,VARIABLE_TYPE,PROBLEM_STATUS)
element_type  : text
The type of elements this array or set contains (Allowed values are: UNSUPPORTED,BOOLEAN,INTEGER,REAL,STRING,SET,ARRAY,DECISION_VARIABLE,CONSTRAINT,MODEL,CONSTRAINT_TYPE,VARIABLE_TYPE,PROBLEM_STATUS)
format  : text
The formatting of this entity
hidden  : boolean
Indicates whether this entity is hidden
index_grouping  : boolean
Indicates whether this entity is used to group an index
index_groupings  : list of text
The index groupings for this set
index_sets  : list of text
The name of the index sets that index this array
labels_entity  : boolean
Indicates whether this entity is used as the labels for another entity
labels_entity_name  : text
The name of the entity that holds the labels for this entity
management_type  : text
Indicates whether entity is part of the input or the results data (Allowed values are: DEFAULT,INPUT,RESULT,IGNORE)
name  : text
The name of this entity
update_strategy  : text
The update strategy of this entity (Allowed values are: DEFAULT,AFTER_EXECUTION,PROGRESS)
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_abbreviated_name(mymodel_entity) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A model_entity returned from a property of another model will be read-only; use the function insightapi2~copy_model_entity to create an editable copy, e.g. mymodel_entity := insightapi2~copy_model_entity(otherobj.originalmodel_entity)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~model_schema  : record
The data schema of the scenarios in the app, derived from the model.
app  : insightapi2~reference_app
The app that owns this schema
entities  : insightapi2~dictionary_of_model_entity
The entities defined by this schema, keyed by entity name
id  : text
The ID of this model schema
name  : text
The name of this model schema
object_type  : text
(Allowed values are: MODEL_SCHEMA)
url  : text
The URL of this model schema
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_app(mymodel_schema) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A model_schema returned from a property of another model will be read-only; use the function insightapi2~copy_model_schema to create an editable copy, e.g. mymodel_schema := insightapi2~copy_model_schema(otherobj.originalmodel_schema)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~outer_error  : record
The top level error
code  : text
The unique code for this error (Allowed values are: FICO-Platform-Http-400,FICO-Platform-Http-404,FICO-Platform-Http-406,FICO-Platform-Http-409,FICO-Platform-Http-413,FICO-Platform-Http-422,FICO-Platform-Http-423,FICO-Platform-Http-429,FICO-Platform-Http-500,FICO-Platform-Http-502,FICO-Platform-Http-503)
desc  : text
A description of this error for client information, not intended for display to the end user
details  : list of insightapi2~error_detail
Details about specific errors that led to this reported error
inner_error  : insightapi2~inner_error
More specific error information
message  : text
A message providing further information which may be displayed to the end user
parent_id  : text
An OpenTracing parent-span ID
span_id  : text
An OpenTracing span ID
timestamp  : text
When the error was first detected
trace_id  : text
An OpenTracing trace ID
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_code(myouter_error) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A outer_error returned from a property of another model will be read-only; use the function insightapi2~copy_outer_error to create an editable copy, e.g. myouter_error := insightapi2~copy_outer_error(otherobj.originalouter_error)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_app  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~app
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_app) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_app returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_app to create an editable copy, e.g. mypage_of_app := insightapi2~copy_page_of_app(otherobj.originalpage_of_app)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_app_execution_environment  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~app_execution_environment
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_app_execution_environment) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_app_execution_environment returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_app_execution_environment to create an editable copy, e.g. mypage_of_app_execution_environment := insightapi2~copy_page_of_app_execution_environment(otherobj.originalpage_of_app_execution_environment)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_app_execution_mode  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~app_execution_mode
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_app_execution_mode) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_app_execution_mode returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_app_execution_mode to create an editable copy, e.g. mypage_of_app_execution_mode := insightapi2~copy_page_of_app_execution_mode(otherobj.originalpage_of_app_execution_mode)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_app_execution_resource_group  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~app_execution_resource_group
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_app_execution_resource_group) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_app_execution_resource_group returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_app_execution_resource_group to create an editable copy, e.g. mypage_of_app_execution_resource_group := insightapi2~copy_page_of_app_execution_resource_group(otherobj.originalpage_of_app_execution_resource_group)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_app_member  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~app_member
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_app_member) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_app_member returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_app_member to create an editable copy, e.g. mypage_of_app_member := insightapi2~copy_page_of_app_member(otherobj.originalpage_of_app_member)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_attachment  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~attachment
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_attachment) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_attachment returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_attachment to create an editable copy, e.g. mypage_of_attachment := insightapi2~copy_page_of_attachment(otherobj.originalpage_of_attachment)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_attachment_tag  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~attachment_tag
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_attachment_tag) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_attachment_tag returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_attachment_tag to create an editable copy, e.g. mypage_of_attachment_tag := insightapi2~copy_page_of_attachment_tag(otherobj.originalpage_of_attachment_tag)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_authority_group  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~authority_group
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_authority_group) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_authority_group returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_authority_group to create an editable copy, e.g. mypage_of_authority_group := insightapi2~copy_page_of_authority_group(otherobj.originalpage_of_authority_group)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_compute_job  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~compute_job
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_compute_job) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_compute_job returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_compute_job to create an editable copy, e.g. mypage_of_compute_job := insightapi2~copy_page_of_compute_job(otherobj.originalpage_of_compute_job)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_custom_authority  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~custom_authority
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_custom_authority) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_custom_authority returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_custom_authority to create an editable copy, e.g. mypage_of_custom_authority := insightapi2~copy_page_of_custom_authority(otherobj.originalpage_of_custom_authority)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_execution_service  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~execution_service
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_execution_service) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_execution_service returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_execution_service to create an editable copy, e.g. mypage_of_execution_service := insightapi2~copy_page_of_execution_service(otherobj.originalpage_of_execution_service)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_execution_service_worker_mapping  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~execution_service_worker_mapping
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_execution_service_worker_mapping) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_execution_service_worker_mapping returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_execution_service_worker_mapping to create an editable copy, e.g. mypage_of_execution_service_worker_mapping := insightapi2~copy_page_of_execution_service_worker_mapping(otherobj.originalpage_of_execution_service_worker_mapping)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_execution_worker  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~execution_worker
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_execution_worker) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_execution_worker returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_execution_worker to create an editable copy, e.g. mypage_of_execution_worker := insightapi2~copy_page_of_execution_worker(otherobj.originalpage_of_execution_worker)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_folder_or_scenario  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~folder_or_scenario
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_folder_or_scenario) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_folder_or_scenario returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_folder_or_scenario to create an editable copy, e.g. mypage_of_folder_or_scenario := insightapi2~copy_page_of_folder_or_scenario(otherobj.originalpage_of_folder_or_scenario)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_job  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~job
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_job) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_job returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_job to create an editable copy, e.g. mypage_of_job := insightapi2~copy_page_of_job(otherobj.originalpage_of_job)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_job_log_file  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~job_log_file
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_job_log_file) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_job_log_file returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_job_log_file to create an editable copy, e.g. mypage_of_job_log_file := insightapi2~copy_page_of_job_log_file(otherobj.originalpage_of_job_log_file)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_portation  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~portation
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_portation) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_portation returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_portation to create an editable copy, e.g. mypage_of_portation := insightapi2~copy_page_of_portation(otherobj.originalpage_of_portation)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_portation_directory  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~portation_directory
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_portation_directory) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_portation_directory returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_portation_directory to create an editable copy, e.g. mypage_of_portation_directory := insightapi2~copy_page_of_portation_directory(otherobj.originalpage_of_portation_directory)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_sso_attribute_mapping  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~sso_attribute_mapping
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_sso_attribute_mapping) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_sso_attribute_mapping returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_sso_attribute_mapping to create an editable copy, e.g. mypage_of_sso_attribute_mapping := insightapi2~copy_page_of_sso_attribute_mapping(otherobj.originalpage_of_sso_attribute_mapping)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_user  : record
first  : boolean
Whether this is the first page
last  : boolean
Whether this is the last page
number  : integer
The page number, starting at 0
number_of_elements  : integer
The number of elements in this page of results
size  : integer
The number of results per page
sort  : insightapi2~sort
The sort order applied to the results
total_elements  : integer
The total number of elements in all the pages
total_pages  : integer
The total number of pages
content  : list of insightapi2~user
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_content(mypage_of_user) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A page_of_user returned from a property of another model will be read-only; use the function insightapi2~copy_page_of_user to create an editable copy, e.g. mypage_of_user := insightapi2~copy_page_of_user(otherobj.originalpage_of_user)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~portation  : record
Contains the status and location of a portation.
dismissed  : boolean
True indicates this portation has been dismissed by the owner.
error_messages  : list of text
The error messages produced by this portation
filename  : text
The filename for this portation
finished  : text
When this portation finished
id  : text
The ID of this reference
info_messages  : list of text
The info messages produced by this portation
name  : text
The name of this reference
object_type  : text
(Allowed values are: EXPORT,IMPORT,UPGRADE)
owner  : insightapi2~reference_user
The user that owns this portation
parent  : insightapi2~reference_export_or_reference_import_or_reference_upgrade
The parent of this portation. This is populated when this portation belongs to another. For example when importing an insight file which contains many apps then each app import will be parented by the original import portation.
reference  : insightapi2~reference_app_or_reference_folder_or_reference_scenario
The reference of the item (app, folder or scenario) being ported
started  : text
When this portation started
status  : text
The status of this portation (Allowed values are: QUEUED,MIGRATING,PORTING,SUCCESS,ERROR)
url  : text
The URL of this reference
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_dismissed(myportation) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A portation returned from a property of another model will be read-only; use the function insightapi2~copy_portation to create an editable copy, e.g. myportation := insightapi2~copy_portation(otherobj.originalportation)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~portation_directory  : record
Describes the location and contents of a directory within the configured portation path.
files  : list of insightapi2~portation_file
The portation files present in this directory
name  : text
The directory name
path  : text
The directory path, relative to the configured portation path
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_files(myportation_directory) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A portation_directory returned from a property of another model will be read-only; use the function insightapi2~copy_portation_directory to create an editable copy, e.g. myportation_directory := insightapi2~copy_portation_directory(otherobj.originalportation_directory)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~portation_file  : record
Describes the location and attributes of a portation file.
filename  : text
The filename
last_modified  : text
When the file was last modified
path  : text
The file path, relative to the configured portation path
size  : real
The file size in bytes
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_filename(myportation_file) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A portation_file returned from a property of another model will be read-only; use the function insightapi2~copy_portation_file to create an editable copy, e.g. myportation_file := insightapi2~copy_portation_file(otherobj.originalportation_file)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~reference_app  : record
The basic details of an app
id  : text
The ID of this app
name  : text
The name of this app
object_type  : text
(Allowed values are: APP)
url  : text
The URL of this app
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_id(myreference_app) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A reference_app returned from a property of another model will be read-only; use the function insightapi2~copy_reference_app to create an editable copy, e.g. myreference_app := insightapi2~copy_reference_app(otherobj.originalreference_app)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~reference_app_or_reference_folder  : insightapi2~reference_app or insightapi2~reference_folder
See also
insightapi2~reference_app_or_reference_folder_or_reference_scenario  : insightapi2~reference_app or insightapi2~reference_folder or insightapi2~reference_scenario
See also
insightapi2~reference_app_or_reference_scenario  : insightapi2~reference_app or insightapi2~reference_scenario
See also
insightapi2~reference_authority_group  : record
The basic details of an authority group
id  : text
The ID of this authority group
name  : text
The name of this authority group
object_type  : text
(Allowed values are: AUTHORITY_GROUP)
url  : text
The URL of this authority group
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_id(myreference_authority_group) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A reference_authority_group returned from a property of another model will be read-only; use the function insightapi2~copy_reference_authority_group to create an editable copy, e.g. myreference_authority_group := insightapi2~copy_reference_authority_group(otherobj.originalreference_authority_group)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~reference_execution_service  : record
id  : text
The ID of this execution service
name  : text
The name of this execution service
object_type  : text
(Allowed values are: EXECUTION_SERVICE)
url  : text
The URL of this execution service
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_id(myreference_execution_service) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A reference_execution_service returned from a property of another model will be read-only; use the function insightapi2~copy_reference_execution_service to create an editable copy, e.g. myreference_execution_service := insightapi2~copy_reference_execution_service(otherobj.originalreference_execution_service)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~reference_execution_worker  : record
id  : text
The ID of this execution worker
name  : text
The name of this execution worker
object_type  : text
(Allowed values are: EXECUTION_WORKER)
url  : text
The URL of this execution worker
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_id(myreference_execution_worker) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A reference_execution_worker returned from a property of another model will be read-only; use the function insightapi2~copy_reference_execution_worker to create an editable copy, e.g. myreference_execution_worker := insightapi2~copy_reference_execution_worker(otherobj.originalreference_execution_worker)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~reference_export  : record
The basic details of an export
id  : text
The ID of this export
name  : text
The name of this export
object_type  : text
(Allowed values are: EXPORT)
url  : text
The URL of this export
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_id(myreference_export) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A reference_export returned from a property of another model will be read-only; use the function insightapi2~copy_reference_export to create an editable copy, e.g. myreference_export := insightapi2~copy_reference_export(otherobj.originalreference_export)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~reference_export_or_reference_import_or_reference_upgrade  : insightapi2~reference_export or insightapi2~reference_import or insightapi2~reference_upgrade
See also
insightapi2~reference_folder  : record
The basic details of a folder
id  : text
The ID of this folder
name  : text
The name of this folder
object_type  : text
(Allowed values are: FOLDER)
url  : text
The URL of this folder
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_id(myreference_folder) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A reference_folder returned from a property of another model will be read-only; use the function insightapi2~copy_reference_folder to create an editable copy, e.g. myreference_folder := insightapi2~copy_reference_folder(otherobj.originalreference_folder)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~reference_folder_or_reference_scenario  : insightapi2~reference_folder or insightapi2~reference_scenario
See also
insightapi2~reference_import  : record
The basic details of an import
id  : text
The ID of this import
name  : text
The name of this import
object_type  : text
(Allowed values are: IMPORT)
url  : text
The URL of this import
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_id(myreference_import) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A reference_import returned from a property of another model will be read-only; use the function insightapi2~copy_reference_import to create an editable copy, e.g. myreference_import := insightapi2~copy_reference_import(otherobj.originalreference_import)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~reference_scenario  : record
The basic details of a scenario
id  : text
The ID of this scenario
name  : text
The name of this scenario
object_type  : text
(Allowed values are: SCENARIO)
url  : text
The URL of this scenario
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_id(myreference_scenario) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A reference_scenario returned from a property of another model will be read-only; use the function insightapi2~copy_reference_scenario to create an editable copy, e.g. myreference_scenario := insightapi2~copy_reference_scenario(otherobj.originalreference_scenario)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~reference_upgrade  : record
The basic details of an upgrade
id  : text
The ID of this upgrade
name  : text
The name of this upgrade
object_type  : text
(Allowed values are: UPGRADE)
url  : text
The URL of this upgrade
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_id(myreference_upgrade) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A reference_upgrade returned from a property of another model will be read-only; use the function insightapi2~copy_reference_upgrade to create an editable copy, e.g. myreference_upgrade := insightapi2~copy_reference_upgrade(otherobj.originalreference_upgrade)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~reference_user  : record
The basic details of a user
id  : text
The ID of this user
name  : text
The name of this user
object_type  : text
(Allowed values are: USER)
url  : text
The URL of this user
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_id(myreference_user) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A reference_user returned from a property of another model will be read-only; use the function insightapi2~copy_reference_user to create an editable copy, e.g. myreference_user := insightapi2~copy_reference_user(otherobj.originalreference_user)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~scalar  : record
Represents an entity with a value
entity_name  : text
The name of this scalar
value  : any
The value of this scalar
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_entity_name(myscalar) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A scalar returned from a property of another model will be read-only; use the function insightapi2~copy_scalar to create an editable copy, e.g. myscalar := insightapi2~copy_scalar(otherobj.originalscalar)
4. It is not possible to use a constructor to initialize this type within an expression.
5. If this structure is holding data retrieved from the webservice, numeric values in fields of type any will always be represented as real. If you are populating this type to send structure to the webservice, you may store numbers as either real or integer values in such fields.
See also
insightapi2~scenario  : record
This object represents one scenario in the system. See the wider product documentation for an explanation of what a scenario is used for.
app  : insightapi2~reference_app
The app that owns this scenario
created  : text
The datetime this scenario was created
id  : text
The ID of this scenario
name  : text
The name of this scenario
object_type  : text
(Allowed values are: SCENARIO)
owner  : insightapi2~reference_user
The user that owns this scenario
parent  : insightapi2~reference_app_or_reference_folder
The parent of this scenario
path  : text
The path within the repository
scenario_type  : text
The scenario's custom type if it has one, otherwise SCENARIO.
share_status  : text
The share status of this scenario (Allowed values are: PRIVATE,READONLY,FULLACCESS)
summary  : insightapi2~scenario_summary
The summary of this scenario's data
url  : text
The URL of this scenario
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_app(myscenario) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A scenario returned from a property of another model will be read-only; use the function insightapi2~copy_scenario to create an editable copy, e.g. myscenario := insightapi2~copy_scenario(otherobj.originalscenario)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~scenario_creation_request  : record
name  : text
The name for the scenario; a suffix will be applied to ensure its name is unique among its siblings
parent  : insightapi2~reference_app_or_reference_folder
The parent of the new scenario, an app or folder
scenario_type  : text
The type for the new scenario; the app defines the available scenario types. If no scenarioType is supplied it defaults to SCENARIO.
source_scenario  : insightapi2~reference_scenario
The scenario to clone if this is a clone operation. When cloning, the new scenario will have the same scenario type as the source and any supplied scenarioType will be ignored. The scenario will be cloned into the same location as the source scenario if the parent attribute is omitted.
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_name(myscenario_creation_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A scenario_creation_request returned from a property of another model will be read-only; use the function insightapi2~copy_scenario_creation_request to create an editable copy, e.g. myscenario_creation_request := insightapi2~copy_scenario_creation_request(otherobj.originalscenario_creation_request)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~scenario_data  : record
Contains summary information and entity data for a scenario
entities  : insightapi2~dictionary_of_array_or_scalar_or_set
Array, set and scalar entities, mapped by name
summary  : insightapi2~scenario_summary
The data summary for this scenario
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_entities(myscenario_data) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A scenario_data returned from a property of another model will be read-only; use the function insightapi2~copy_scenario_data to create an editable copy, e.g. myscenario_data := insightapi2~copy_scenario_data(otherobj.originalscenario_data)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~scenario_data_modification  : record
A list of changes to apply to the scenario data.
deltas  : list of insightapi2~entity_delta
A list of deltas to apply to the scenario data.
force_load  : boolean
Specifies that the scenario should be loaded.
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_deltas(myscenario_data_modification) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A scenario_data_modification returned from a property of another model will be read-only; use the function insightapi2~copy_scenario_data_modification to create an editable copy, e.g. myscenario_data_modification := insightapi2~copy_scenario_data_modification(otherobj.originalscenario_data_modification)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~scenario_data_query  : record
The entities to retrieve from the scenario data, optionally filtering the arrays
entity_names  : list of text
The names of the entities to retrieve
filters  : list of insightapi2~array_filter
The array filters to apply
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_entity_names(myscenario_data_query) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A scenario_data_query returned from a property of another model will be read-only; use the function insightapi2~copy_scenario_data_query to create an editable copy, e.g. myscenario_data_query := insightapi2~copy_scenario_data_query(otherobj.originalscenario_data_query)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~scenario_summary  : record
This object is a container for a number of properties describing the state of a scenario, its data and the most recent job that executed it.
execution_duration  : real
The duration of the last execution of this scenario in milliseconds
execution_finished  : text
When this scenario last finished loading or executing
execution_mode  : text
The execution mode for the last execution
execution_started  : text
When this scenario last started loading or executing
execution_user  : insightapi2~reference_user
The user that last executed this scenario
model_data_version  : integer
The version number of the model data
model_status  : text
The model status for this scenario (Allowed values are: NA,OK,INSTR,MATHERR,UNKN_PF,UNKN_SYS,PROB,ERROR,EXIT,IOERR,BREAK,NIFCT,NULL,LICERR,STOP,UNKNOWN)
objective  : real
The objective result for this scenario
problem_status  : text
The problem status for this scenario (Allowed values are: NA,UNKNOWN,SOLUTION,OPTIMAL,UNFINISHED,INFEASIBLE,UNBOUNDED,OTHER)
reserved_for_job  : boolean
Whether the scenario is reserved for a job
state  : text
The states that scenario data can be in. UNLOADED - the scenario input data has not been loaded. LOADED - the scenario input data has been loaded but no results have been generated. RESULTS - the scenario has input data has been loaded and the results have been generated. RESULTS_DIRTY - the scenario input data has been changed since the results have been generated. (Allowed values are: UNLOADED,LOADED,RESULTS,RESULTS_DIRTY)
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_execution_duration(myscenario_summary) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A scenario_summary returned from a property of another model will be read-only; use the function insightapi2~copy_scenario_summary to create an editable copy, e.g. myscenario_summary := insightapi2~copy_scenario_summary(otherobj.originalscenario_summary)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~scenario_type  : record
Defines a custom scenario type. See the wider product documentation for an explanation of what a custom scenario type is used for.
icons  : insightapi2~scenario_type_icons
Overrides for icons which can be used to customise the appearance of this scenario type
id  : text
The unique ID of this scenario type
name  : text
The display name of this scenario type
operations  : insightapi2~scenario_type_operation
Operations that can be performed on this scenario type and whether they are enabled (true) or disabled (false)
style  : insightapi2~scenario_type_style
A map of CSS style properties to values which can be used to customise the appearance of this scenario type
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_icons(myscenario_type) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A scenario_type returned from a property of another model will be read-only; use the function insightapi2~copy_scenario_type to create an editable copy, e.g. myscenario_type := insightapi2~copy_scenario_type(otherobj.originalscenario_type)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~scenario_type_icons  : record
Icon overrides for customising the appearance of a scenario type
executed  : text
The icon to display when the scenario is executed
executed_hover  : text
The icon to display when the scenario is executed and the mouse is hovering over the icon
loaded  : text
The icon to display when the scenario is loaded
loaded_hover  : text
The icon to display when the scenario is loaded and the mouse is hovering over the icon
unloaded  : text
The icon to display when the scenario is unloaded
unloaded_hover  : text
The icon to display when the scenario is unloaded and the mouse is hovering over the icon
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_executed(myscenario_type_icons) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A scenario_type_icons returned from a property of another model will be read-only; use the function insightapi2~copy_scenario_type_icons to create an editable copy, e.g. myscenario_type_icons := insightapi2~copy_scenario_type_icons(otherobj.originalscenario_type_icons)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~scenario_type_operation  : record
Defines the operations that a user is allowed to perform on a scenario of this custom scenario type via the user interface.
attachments  : boolean
Viewing the attachments of the scenario (through the attachments dialog)
clone  : boolean
Cloning the scenario
create  : boolean
Creating a scenario of a certain type
delete  : boolean
Deleting the scenario
drag  : boolean
Dragging the scenario to a different shelf location
export  : boolean
Exporting the scenario
load  : boolean
Loading the scenario
location  : boolean
Changing the location of the scenario
owner  : boolean
Changing the owner of the scenario
properties  : boolean
Viewing the properties of the scenario
rename  : boolean
Changing the name of the scenario
run  : boolean
Running the scenario
run_log  : boolean
Viewing the run log of the scenario
select  : boolean
Selecting and deselecting the scenario from the shelf
share  : boolean
Changing the share status of the scenario
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_attachments(myscenario_type_operation) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A scenario_type_operation returned from a property of another model will be read-only; use the function insightapi2~copy_scenario_type_operation to create an editable copy, e.g. myscenario_type_operation := insightapi2~copy_scenario_type_operation(otherobj.originalscenario_type_operation)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~scenario_type_style  : record
Style overrides for customising the appearance of a scenario of this scenario type when rendered on the user interface
active_background_color  : text
Background color of the pill when the scenario is active
border_color  : text
Color of the pill border
inactive_background_color  : text
Background color of the pill when the scenario is inactive
text_color  : text
Color of the text within the pill
text_color_hover  : text
Color of the text within the pill when the mouse is hovering over the pill
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_active_background_color(myscenario_type_style) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A scenario_type_style returned from a property of another model will be read-only; use the function insightapi2~copy_scenario_type_style to create an editable copy, e.g. myscenario_type_style := insightapi2~copy_scenario_type_style(otherobj.originalscenario_type_style)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~set  : record
Represents a set of values
entity_name  : text
The name of this set
values  : list of any
The values of this set
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_entity_name(myset) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A set returned from a property of another model will be read-only; use the function insightapi2~copy_set to create an editable copy, e.g. myset := insightapi2~copy_set(otherobj.originalset)
4. It is not possible to use a constructor to initialize this type within an expression.
5. If this structure is holding data retrieved from the webservice, numeric values in fields of type any will always be represented as real. If you are populating this type to send structure to the webservice, you may store numbers as either real or integer values in such fields.
See also
insightapi2~set_delta  : record
Details changes to a scenario set entity.
add  : list of any
The values to add to the set. Accepts Strings, Numbers and Booleans.
remove  : list of any
The values to remove from the set. Accepts Strings, Numbers and Booleans.
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_add(myset_delta) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A set_delta returned from a property of another model will be read-only; use the function insightapi2~copy_set_delta to create an editable copy, e.g. myset_delta := insightapi2~copy_set_delta(otherobj.originalset_delta)
4. It is not possible to use a constructor to initialize this type within an expression.
5. If this structure is holding data retrieved from the webservice, numeric values in fields of type any will always be represented as real. If you are populating this type to send structure to the webservice, you may store numbers as either real or integer values in such fields.
See also
insightapi2~sort  : record
Details of how paged results were sorted
empty  : boolean
True if there are no results
sorted  : boolean
True if the results are sorted
unsorted  : boolean
True if the results are not sorted
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_empty(mysort) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A sort returned from a property of another model will be read-only; use the function insightapi2~copy_sort to create an editable copy, e.g. mysort := insightapi2~copy_sort(otherobj.originalsort)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~sso_attribute_mapping  : record
The mapping between SSO attribute and the apps and authorities that it grants.
grant_apps  : list of insightapi2~reference_app
The apps that this attribute mapping grants access to
grant_authority_groups  : list of insightapi2~reference_authority_group
The authority groups this attribute mapping will provide the logged in user
id  : text
The ID of this sso attribute mapping
name  : text
The attribute name to match on
object_type  : text
(Allowed values are: SSO_ATTRIBUTE_MAPPING)
url  : text
The URL of this sso attribute mapping
values_to_match  : list of text
The values to match on. If an exact match is found against this mappings attribute name and any one of the values to match then the configured App's and Authority Groups will be granted to the user on login
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_grant_apps(mysso_attribute_mapping) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A sso_attribute_mapping returned from a property of another model will be read-only; use the function insightapi2~copy_sso_attribute_mapping to create an editable copy, e.g. mysso_attribute_mapping := insightapi2~copy_sso_attribute_mapping(otherobj.originalsso_attribute_mapping)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~tableau_configuration_health  : record
Configuration details for display in health checks
mirror_host  : text
The configured mirror host. This is optional and may be null, in which case the host from the mirror url is used.
mirror_port  : integer
The configured mirror host. This is optional and may be null, in which case the port from the mirror url is used.
site_id  : text
The configured siteId
system_user  : text
The user name of the Tableau system Insight will use to connect to Tableau
tableau_url  : text
The configured Tableau server URL
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_mirror_host(mytableau_configuration_health) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A tableau_configuration_health returned from a property of another model will be read-only; use the function insightapi2~copy_tableau_configuration_health to create an editable copy, e.g. mytableau_configuration_health := insightapi2~copy_tableau_configuration_health(otherobj.originaltableau_configuration_health)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~tableau_health  : record
Provides health check information relating to the Tableau configuration
configuration  : insightapi2~tableau_configuration_health
Holds Tableau configuration information
health_checks  : insightapi2~dictionary_of_visualization_health_check
A map of VisualizationHealthCheck objects detailing the health of the Tableau configuration
status  : text
The combined status for the tableau health checks. (Allowed values are: PASS,WARN,FAIL,SKIPPED)
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_configuration(mytableau_health) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A tableau_health returned from a property of another model will be read-only; use the function insightapi2~copy_tableau_health to create an editable copy, e.g. mytableau_health := insightapi2~copy_tableau_health(otherobj.originaltableau_health)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~upgrade  : record
Contains the status of an upgrade
dismissed  : boolean
True indicates this portation has been dismissed by the owner.
error_messages  : list of text
The error messages produced by this portation
filename  : text
The filename for this portation
finished  : text
When this portation finished
id  : text
The ID of this upgrade
info_messages  : list of text
The info messages produced by this portation
name  : text
The name of this upgrade
object_type  : text
(Allowed values are: UPGRADE)
owner  : insightapi2~reference_user
The user that owns this portation
parent  : insightapi2~reference_export_or_reference_import_or_reference_upgrade
The parent of this portation. This is populated when this portation belongs to another. For example when importing an insight file which contains many apps then each app import will be parented by the original import portation.
reference  : insightapi2~reference_app
The reference of the App to be upgraded
started  : text
When this portation started
status  : text
The status of this portation (Allowed values are: QUEUED,MIGRATING,PORTING,SUCCESS,ERROR)
url  : text
The URL of this upgrade
validate_model_name  : boolean
Whether to validate that the new model name matches the previous model name
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_dismissed(myupgrade) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A upgrade returned from a property of another model will be read-only; use the function insightapi2~copy_upgrade to create an editable copy, e.g. myupgrade := insightapi2~copy_upgrade(otherobj.originalupgrade)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~upgrade_request  : record
The request to upgrade an app
reference  : insightapi2~reference_app
The reference of the App to be upgraded.
upgrade_type  : text
Whether the upgrade app file should be considered to represent the full app or a partial. A full upgrade will replace the existing app with the app being uploaded, deleting any existing app content that is not in the app being uploaded. A partial upgrade will add and/or replace content in the existing app. (Allowed values are: FULL,PARTIAL)
validate_model_name  : boolean
Whether the model name should be validated or not.
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_reference(myupgrade_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A upgrade_request returned from a property of another model will be read-only; use the function insightapi2~copy_upgrade_request to create an editable copy, e.g. myupgrade_request := insightapi2~copy_upgrade_request(otherobj.originalupgrade_request)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~user  : record
A user
apps  : list of insightapi2~reference_app
The apps which this user has access to
authority_groups  : list of insightapi2~reference_authority_group
The authority groups granted to this user
email  : text
The email address of this user
first_name  : text
This user's first name
id  : text
The ID of this user
last_name  : text
This user's last name
name  : text
The name of this user
object_type  : text
(Allowed values are: USER)
password  : text
The new user's password
status  : text
The status of this user's account (Allowed values are: DELETED,DISABLED,LOCKED,ACTIVE)
url  : text
The URL of this user
username  : text
This user's username
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_apps(myuser) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A user returned from a property of another model will be read-only; use the function insightapi2~copy_user to create an editable copy, e.g. myuser := insightapi2~copy_user(otherobj.originaluser)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~user_creation_request  : record
A request to create a new user
apps  : list of insightapi2~reference_app
The apps which this user has access to
authority_groups  : list of insightapi2~reference_authority_group
The authority groups granted to this user
email  : text
The new user's email address
first_name  : text
The new user's first name
last_name  : text
The new user's last name
name  : text
The new user's name
password  : text
The new user's password
status  : text
The status of the new user's account (Allowed values are: DELETED,DISABLED,LOCKED,ACTIVE)
username  : text
The new user's username
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_apps(myuser_creation_request) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A user_creation_request returned from a property of another model will be read-only; use the function insightapi2~copy_user_creation_request to create an editable copy, e.g. myuser_creation_request := insightapi2~copy_user_creation_request(otherobj.originaluser_creation_request)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~user_profile  : record
Information about a user
authorities  : list of text
The authorities granted to this user
authority_groups  : list of insightapi2~reference_authority_group
The authority groups granted to this user
email  : text
The email address of this user
execution_services  : list of insightapi2~reference_execution_service
Restricted execution services that the user has access to
first_name  : text
This user's first name
id  : text
The ID of this user profile
last_name  : text
This user's last name
name  : text
The name of this user
object_type  : text
(Allowed values are: USER_PROFILE)
url  : text
The URL of this user profile
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_authorities(myuser_profile) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A user_profile returned from a property of another model will be read-only; use the function insightapi2~copy_user_profile to create an editable copy, e.g. myuser_profile := insightapi2~copy_user_profile(otherobj.originaluser_profile)
4. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~visualization_health_check  : record
Holds health check details
description  : text
Describes what this health check covers
status  : text
The status of this health check. Whether it has passed, failed or was skipped due to failures recorded in other checks (Allowed values are: PASS,WARN,FAIL,SKIPPED)
status_message  : text
Provides a detailed explanation of the status
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_description(myvisualization_health_check) then...
2. Properties of this type cannot be inspected using a debugger such as Xpress Workbench.
3. A visualization_health_check returned from a property of another model will be read-only; use the function insightapi2~copy_visualization_health_check to create an editable copy, e.g. myvisualization_health_check := insightapi2~copy_visualization_health_check(otherobj.originalvisualization_health_check)
4. It is not possible to use a constructor to initialize this type within an expression.
See also

© 2001-2025 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.