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)

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')

REST Client Configuration

insightapi2~file_data  : record
The file_data record defines external data being uploaded to a webservice
source  : text
The local filename from which to read the data to upload. Must be set.
filename  : text
The filename to attach to the uploaded data in the Content-Disposition header; if unset, will be derived from the source filename
contenttype  : text
The content type of the uploaded data; defaults to 'application/octet-stream' if unset
insightapi2~httprequest  : record
The httprequest record contains the request sent to an operation on the remote webservice.
params  : dynamic array(set of string) of any
Parameters to set on the request. Refer to the operation documentation for a list of which parameters may be set for a specific operation.
contenttype  : text
The content type of the request; only needs to be set if it can't be inferred by the operation or the type of the body field
bodyfilename  : text
The filename from which to read the message body, if the request needs a body and the body field is unset.
body  : any
The mosel value to use to populate the message body. Refer to the operation documentation for details on what types are supported by a specific operation.
headers  : dynamic array(set of string) of list of text
Array defining additional HTTP headers to write to the request; a map from header name to list of header values to set.
ifparseresponsebody  : function(insightapi2~httpresponse):boolean
Optional; a function that takes a insightapi2~httpresponse and returns 'true' if we shoudl try to parse the response body data from 'bodyfilename' to 'body', 'false' otherwise. If not specified, the operation will apply a default heuristic.
insightapi2~httpresponse  : record
The httpresponse record contains the response returned by an operation called on the remote webservice.
operid  : string
The name of the operation from the REST API that was called.
status  : integer
The HTTP status code; values between 200 and 299 usually indicate success.
success  : boolean
Field indicating whether the status code indicates success (read-only)
errormsg  : text
Field containing a suitable error message that describes a non-successful response. The error message will be built from the status code and any response body.
headers  : dynamic array(set of string) of list of text
HTTP response headers; a map from header name (in lowercase) to a list of values for that header
contenttype  : text
The content type of the HTTP response, e.g. 'application/json'
body  : any
The value of the response body, if was a type that could be parsed into a Mosel value.
bodyfilename  : text
The filename in which the response body was stored, if it could not be parsed into a Mosel value. Can be set before the operation is called to write the response into a specific file.
cookies  : dynamic array(set of string) of text
Array of cookies set by the response
Note
The caller can set the bodyfilename attribute to force the response body to be written to a given filename; if unset, a temporary file will be used.
insightapi2~insightconfig  : record
The insightconfig type represents the remote webservice we're interacting with.
preprocessors  : list of procedure(string,insightapi2~httprequest)
procedures that will be called for every outgoing request, allowing you to (for example) add additional headers (list of procedure(operationId:string, request:insightapi2~httprequest))
postprocessors  : list of procedure(string,insightapi2~httpresponse)
procedures that will be called for every incoming request, allowing you to perform any post-processing on the request. (list of procedure(operationId:string, response:insightapi2~httpresponse)) Post-processors are called after the body file is parsed into Mosel data structures but before the raw data has been deleted to disk; ie the response can be read from the body or bodyfilename attributes of the httpresponse record (the former only if it's of a type that could be parsed into a Mosel value).
Notes
1. Use the insightapi2~insightconfig_init function to initialize the insightconfig before use.
2. Advanced users can add preprocessor/postprocessor callbacks to modify or log the interactions with the wbservice
Initializes the insightconfig based on the given parameters

Data Model Types

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

insightapi2~api_apps_body  : record
app_file  : insightapi2~file_data
The app zip file used to create the app
app_name  : text
The app name to use if none is present in the app configuration
override_app_name  : text
The app name override, used as the new app name regardless of any other app configuration
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_app_file(myapi_apps_body) then...
2. A api_apps_body returned from a property of another model will be read-only; use the function insightapi2~copy_api_apps_body to create an editable copy, e.g. myapi_apps_body := insightapi2~copy_api_apps_body(otherobj.originalapi_apps_body)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~api_computejobs_body  : record
compute_job_request  : insightapi2~compute_job_request
computeJobRequest
payload  : insightapi2~file_data
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_request(myapi_computejobs_body) then...
2. A api_computejobs_body returned from a property of another model will be read-only; use the function insightapi2~copy_api_computejobs_body to create an editable copy, e.g. myapi_computejobs_body := insightapi2~copy_api_computejobs_body(otherobj.originalapi_computejobs_body)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
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
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
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
(Value should be one of: 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. 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)
3. 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. 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)
3. 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
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
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. 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)
3. 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
(Value should be one of: 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. 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)
3. 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. 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)
3. 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
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.app (Value should be one of: 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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~app_upgrade_response  : record
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~apps_id_body  : record
app_file  : insightapi2~file_data
The app file
app_upgrade_request  : insightapi2~app_upgrade_request
The AppUpgradeRequest to specify options for the upgrade.
validate_model_name  : boolean
Whether to validate that the new model name matches the previous model name. Deprecated in favour of validateModelName on the AppUpgradeRequest.
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_app_file(myapps_id_body) then...
2. A apps_id_body returned from a property of another model will be read-only; use the function insightapi2~copy_apps_id_body to create an editable copy, e.g. myapps_id_body := insightapi2~copy_apps_id_body(otherobj.originalapps_id_body)
3. 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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
4. 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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
4. 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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
4. 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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
4. 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
(Value should be one of: 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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
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. 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)
3. 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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~attachments_files_body  : record
ids  : list of text
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_ids(myattachments_files_body) then...
2. A attachments_files_body returned from a property of another model will be read-only; use the function insightapi2~copy_attachments_files_body to create an editable copy, e.g. myattachments_files_body := insightapi2~copy_attachments_files_body(otherobj.originalattachments_files_body)
3. It is not possible to use a constructor to initialize this type within an expression.
insightapi2~attachments_files_body_1  : record
ids  : list of text
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_ids(myattachments_files_body_1) then...
2. A attachments_files_body_1 returned from a property of another model will be read-only; use the function insightapi2~copy_attachments_files_body_1 to create an editable copy, e.g. myattachments_files_body_1 := insightapi2~copy_attachments_files_body_1(otherobj.originalattachments_files_body_1)
3. It is not possible to use a constructor to initialize this type within an expression.
insightapi2~authority_group  : record
A group of authorities that can be assigned to user accounts.
authorities  : list of text
The authorities in this group (Value should be one of: 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
name  : text
The name of this authority group
object_type  : text
(Value should be one of: 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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. 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 (Value should be one of: 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 (Value should be one of: BREAK,ERROR,EXIT,INSTR,IOERR,LICERR,MATHERR,NA,NIFCT,NULL,OK,PROB,STOP,UNKNOWN,UNKN_PF,UNKN_SYS)
mosel  : insightapi2~compute_mosel
Specify any mosel specific options if the type of the job is MOSEL
object_type  : text
(Value should be one of: 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 (Value should be one of: CANCELLED,CANCELLING,COMPLETED,COMPLETING,DELETED,DELETING,EXECUTING,FAILED,INACTIVE,QUEUED)
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. 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)
3. 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 (Value should be one of: 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 (Value should be one of: DEBUG,ERROR,INFO,WARN)
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. 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)
3. 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. 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)
3. 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 (Value should be one of: IIS,OPTIMIZE)
callbacks  : list of text
Callbacks to invoke during the solving of a job of type SOLVER (requires integration with the Progress Events API) (Value should be one of: BARLOG,CUTLOG,GAPNOTIFY,GLOBALLOG,INTSOL,LPLOG)
controls  : insightapi2~dictionary_of_text
A map of controls to values
flags  : list of text
The flags to be applied during the solve (Value should be one of: BARRIER,DUAL,NETWORK,PRIMAL)
problem_type  : text
The type of problem being solved. If not set, the solver will determine this based on the problem characteristics. (Value should be one of: LP,MIP)
results_to_include  : list of text
The results to include in the output of this job (Value should be one of: ATTRIBUTES,BASIS,IIS,SAVE,SOLUTION)
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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
4. 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. 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)
3. 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. 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)
3. 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_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_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_metrics
insightapi2~get_job_run_log
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_user
insightapi2~modify_scenario_data
insightapi2~move_to_app_root
insightapi2~move_to_folder
insightapi2~perform_export
insightapi2~perform_import
insightapi2~send_message_to_job
insightapi2~update_app
insightapi2~update_app_attachment
insightapi2~update_authority_group
insightapi2~update_execution_mode
insightapi2~update_execution_service
insightapi2~update_execution_worker
insightapi2~update_folder
insightapi2~update_scenario
insightapi2~update_scenario_attachment
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
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
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. 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)
3. 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
(Value should be one of: 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. 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)
3. 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. 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)
3. 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
object_type  : text
The type of reference (Value should be one of: 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
unlimited_jobs  : boolean
Whether this mapping places any restriction on the number of jobs
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. 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)
3. 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
name  : text
The name of this execution worker
object_type  : text
(Value should be one of: 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
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. 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)
3. 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
name  : text
The name for this worker
thread_capacity  : integer
The maximum number of threads that this worker can run at once
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. 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)
3. 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 (Value should be one of: OFFLINE,ONLINE)
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. 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)
3. 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
(Value should be one of: EXPORT)
owner  : insightapi2~reference_user
The user that owns this portation
parent  : insightapi2~reference_export_or_reference_import
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 (Value should be one of: ERROR,MIGRATING,PORTING,QUEUED,SUCCESS)
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. 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)
3. 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
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. 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)
3. 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
(Value should be one of: 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 (Value should be one of: FULLACCESS,PRIVATE,READONLY)
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. 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)
3. 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. 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)
3. 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. (Value should be one of: 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
(Value should be one of: IMPORT)
owner  : insightapi2~reference_user
The user that owns this portation
parent  : insightapi2~reference_export_or_reference_import
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 (Value should be one of: ORIGINAL,PRIVATE)
started  : text
When this portation started
status  : text
The status of this portation (Value should be one of: ERROR,MIGRATING,PORTING,QUEUED,SUCCESS)
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. 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)
3. 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. (Value should be one of: APP,FOLDER_OR_SCENARIO,REPOSITORY)
security  : text
Controls the security of imported assets (Value should be one of: 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. 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)
3. 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. 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)
3. 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_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 (Value should be one of: BREAK,ERROR,EXIT,INSTR,IOERR,LICERR,MATHERR,NA,NIFCT,NULL,OK,PROB,STOP,UNKNOWN,UNKN_PF,UNKN_SYS)
name  : text
The name of this job state
object_type  : text
(Value should be one of: 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 (Value should be one of: INFEASIBLE,NA,OPTIMAL,OTHER,SOLUTION,UNBOUNDED,UNFINISHED,UNKNOWN)
started  : text
When the job was started
status  : text
The status of this job (Value should be one of: CANCELLED,CANCELLING,COMPLETED,COMPLETING,DELETED,DELETING,EXECUTING,FAILED,INACTIVE,QUEUED)
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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. 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. (Value should be one of: FAIL,PASS,SKIPPED,WARN)
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. 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)
3. 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 (Value should be one of: ARRAY,BOOLEAN,CONSTRAINT,CONSTRAINT_TYPE,DECISION_VARIABLE,INTEGER,MODEL,PROBLEM_STATUS,REAL,SET,STRING,UNSUPPORTED,VARIABLE_TYPE)
element_type  : text
The type of elements this array or set contains (Value should be one of: ARRAY,BOOLEAN,CONSTRAINT,CONSTRAINT_TYPE,DECISION_VARIABLE,INTEGER,MODEL,PROBLEM_STATUS,REAL,SET,STRING,UNSUPPORTED,VARIABLE_TYPE)
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 (Value should be one of: DEFAULT,IGNORE,INPUT,RESULT)
name  : text
The name of this entity
update_strategy  : text
The update strategy of this entity (Value should be one of: AFTER_EXECUTION,DEFAULT,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. 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)
3. 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
(Value should be one of: 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. 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)
3. 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 (Value should be one of: FICO-Platform-Http-400,FICO-Platform-Http-404,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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_app  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~app
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_app_execution_mode  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~app_execution_mode
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_app_member  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~app_member
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_attachment  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~attachment
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_attachment_tag  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~attachment_tag
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_authority_group  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~authority_group
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_compute_job  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~compute_job
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_custom_authority  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~custom_authority
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_execution_service  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~execution_service
The items in this page of results
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
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. 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)
3. 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
A page containing a subset of content which can be paginated through
content  : list of insightapi2~execution_service_worker_mapping
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_execution_worker  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~execution_worker
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_folder_or_scenario  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~folder_or_scenario
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_job  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~job
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_portation  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~portation
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_portation_directory  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~portation_directory
The items in this page of results
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
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~page_of_user  : record
A page containing a subset of content which can be paginated through
content  : list of insightapi2~user
The items in this page of results
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
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. 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)
3. 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
(Value should be one of: EXPORT,IMPORT)
owner  : insightapi2~reference_user
The user that owns this portation
parent  : insightapi2~reference_export_or_reference_import
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 (Value should be one of: ERROR,MIGRATING,PORTING,QUEUED,SUCCESS)
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. 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)
3. 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. 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)
3. 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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~portations_imports_body  : record
import_upload_request  : insightapi2~import_upload_request
Options controlling the import
insight_file  : insightapi2~file_data
The insight file to be imported
Notes
1. For each property of the type, there is a has function to check if it is populated, e.g. if has_import_upload_request(myportations_imports_body) then...
2. A portations_imports_body returned from a property of another model will be read-only; use the function insightapi2~copy_portations_imports_body to create an editable copy, e.g. myportations_imports_body := insightapi2~copy_portations_imports_body(otherobj.originalportations_imports_body)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~reference  : record
Base reference for any resource that shares the same key identifiers
id  : text
The ID of this reference
name  : text
The name of this reference
object_type  : text
The type of reference
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_id(myreference) then...
2. A reference returned from a property of another model will be read-only; use the function insightapi2~copy_reference to create an editable copy, e.g. myreference := insightapi2~copy_reference(otherobj.originalreference)
3. It is not possible to use a constructor to initialize this type within an expression.
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
(Value should be one of: 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. 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)
3. 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
(Value should be one of: 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. 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)
3. 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
(Value should be one of: 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. 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)
3. 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
(Value should be one of: 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. 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)
3. 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
(Value should be one of: 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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also
insightapi2~reference_export_or_reference_import  : insightapi2~reference_export or insightapi2~reference_import
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
(Value should be one of: 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. 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)
3. 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
(Value should be one of: 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. 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)
3. 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
(Value should be one of: 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. 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)
3. 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
(Value should be one of: 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. 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)
3. 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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
4. 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
(Value should be one of: 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 (Value should be one of: FULLACCESS,PRIVATE,READONLY)
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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. 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 (Value should be one of: BREAK,ERROR,EXIT,INSTR,IOERR,LICERR,MATHERR,NA,NIFCT,NULL,OK,PROB,STOP,UNKNOWN,UNKN_PF,UNKN_SYS)
objective  : real
The objective result for this scenario
problem_status  : text
The problem status for this scenario (Value should be one of: INFEASIBLE,NA,OPTIMAL,OTHER,SOLUTION,UNBOUNDED,UNFINISHED,UNKNOWN)
reserved_for_job  : boolean
Whether the scenario is reserved for a job
state  : text
The current state of this scenario's data (Value should be one of: LOADED,RESULTS,RESULTS_DIRTY,UNLOADED)
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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. 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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
4. 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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
4. 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. 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)
3. 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. 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)
3. 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. (Value should be one of: FAIL,PASS,SKIPPED,WARN)
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. 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)
3. 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
(Value should be one of: USER)
password  : text
The new user's password
status  : text
The status of this user's account (Value should be one of: ACTIVE,DELETED,DISABLED,LOCKED)
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. 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)
3. 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 (Value should be one of: ACTIVE,DELETED,DISABLED,LOCKED)
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. 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)
3. 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
(Value should be one of: 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. 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)
3. 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 (Value should be one of: FAIL,PASS,SKIPPED,WARN)
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. 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)
3. It is not possible to use a constructor to initialize this type within an expression.
See also

Dictionaries

Dictionaries define mappings from strings to values

insightapi2~dictionary  : record
Contains named values of type any
names  : set of constant text
The names of all the values in the dictionary
values  : list of any
The values stored in the dictionary
entries  : list of insightapi2~dictionary_entry
The name-value pairs stored in the dictionary
See also
insightapi2~dictionary_entry  : record
Contains a single name/value pair from a dictionary
name  : text
value  : any
See also
insightapi2~dictionary_of_array_or_scalar_or_set  : record
Contains named values of type insightapi2~array_or_scalar_or_set
names  : set of constant text
The names of all the values in the dictionary
values  : list of insightapi2~array_or_scalar_or_set
The values stored in the dictionary
entries  : list of insightapi2~dictionary_of_array_or_scalar_or_set_entry
The name-value pairs stored in the dictionary
See also
insightapi2~dictionary_of_array_or_scalar_or_set_entry  : record
Contains a single name/value pair from a dictionary
name  : text
value  : insightapi2~array_or_scalar_or_set
See also
insightapi2~dictionary_of_execution_mode  : record
Contains named values of type insightapi2~execution_mode
names  : set of constant text
The names of all the values in the dictionary
values  : list of insightapi2~execution_mode
The values stored in the dictionary
entries  : list of insightapi2~dictionary_of_execution_mode_entry
The name-value pairs stored in the dictionary
See also
insightapi2~dictionary_of_execution_mode_entry  : record
Contains a single name/value pair from a dictionary
name  : text
value  : insightapi2~execution_mode
See also
insightapi2~dictionary_of_job_phase_metric  : record
Contains named values of type insightapi2~job_phase_metric
names  : set of constant text
The names of all the values in the dictionary
values  : list of insightapi2~job_phase_metric
The values stored in the dictionary
entries  : list of insightapi2~dictionary_of_job_phase_metric_entry
The name-value pairs stored in the dictionary
See also
insightapi2~dictionary_of_job_phase_metric_entry  : record
Contains a single name/value pair from a dictionary
name  : text
value  : insightapi2~job_phase_metric
See also
insightapi2~dictionary_of_list_of_any  : record
Contains named values of type list of any
names  : set of constant text
The names of all the values in the dictionary
values  : list of list of any
The values stored in the dictionary
entries  : list of insightapi2~dictionary_of_list_of_any_entry
The name-value pairs stored in the dictionary
See also
insightapi2~dictionary_of_list_of_any_entry  : record
Contains a single name/value pair from a dictionary
name  : text
value  : list of any
See also
insightapi2~dictionary_of_model_entity  : record
Contains named values of type insightapi2~model_entity
names  : set of constant text
The names of all the values in the dictionary
values  : list of insightapi2~model_entity
The values stored in the dictionary
entries  : list of insightapi2~dictionary_of_model_entity_entry
The name-value pairs stored in the dictionary
See also
insightapi2~dictionary_of_model_entity_entry  : record
Contains a single name/value pair from a dictionary
name  : text
value  : insightapi2~model_entity
See also
insightapi2~dictionary_of_scenario_type  : record
Contains named values of type insightapi2~scenario_type
names  : set of constant text
The names of all the values in the dictionary
values  : list of insightapi2~scenario_type
The values stored in the dictionary
entries  : list of insightapi2~dictionary_of_scenario_type_entry
The name-value pairs stored in the dictionary
See also
insightapi2~dictionary_of_scenario_type_entry  : record
Contains a single name/value pair from a dictionary
name  : text
value  : insightapi2~scenario_type
See also
insightapi2~dictionary_of_text  : record
Contains named values of type text
names  : set of constant text
The names of all the values in the dictionary
values  : list of text
The values stored in the dictionary
entries  : list of insightapi2~dictionary_of_text_entry
The name-value pairs stored in the dictionary
See also
insightapi2~dictionary_of_text_entry  : record
Contains a single name/value pair from a dictionary
name  : text
value  : text
See also
insightapi2~dictionary_of_visualization_health_check  : record
Contains named values of type insightapi2~visualization_health_check
names  : set of constant text
The names of all the values in the dictionary
values  : list of insightapi2~visualization_health_check
The values stored in the dictionary
entries  : list of insightapi2~dictionary_of_visualization_health_check_entry
The name-value pairs stored in the dictionary
See also
insightapi2~dictionary_of_visualization_health_check_entry  : record
Contains a single name/value pair from a dictionary
name  : text
value  : insightapi2~visualization_health_check
See also
Removes a dictionary entry with the given name
Retrieve a named value stored in a dictionary
Check if a dictionary contains a value with the given name
Add or update a dictionary entry with a given name

Apps Operations

Create a new app from the given app file, optionally providing the name of the new app. If the name is not present in the configuration, it will be taken from the appName parameter. If the overrideAppName parameter is supplied, this will be used instead.
Delete the app together with all its scenarios, jobs and custom authorities.
Get an app by ID.
Get the immediate child folders and scenarios of the app root.
Get all direct members, and users who have authority to access all apps.
Get the model schema, which is the description of the scenario data model.
Get all apps that are visible to the current user.
Move the given folder or scenario to the root (top level) of this app. The folder or scenario must already belong to this app.
Update the name of this app by supplying the desired new name.
Upgrading an app will augment all the resources in the app with the contents of the zip.

Attachments Operations

Delete an app attachment by ID.
Delete multiple app attachments by providing a list of attachment IDs to delete.
Delete a scenario attachment by ID.
Delete multiple scenario attachments by providing a list of attachment IDs to delete.
Get the metadata for an app attachment.
Download the content of an app attachment file.
Get all the attachment tags for an app.
Get the metadata for all the attachments belonging to an app.
Download multiple app attachment files as a zip archive.
Download multiple scenario attachment files as a zip archive.
Get the metadata for a scenario attachment.
Download the content of a scenario attachment file.
Get the metadata for all attachments belonging to a scenario.
Update the metadata of an app attachment. Updatable fields include filename, description, tags and hidden visibility.
Update the metadata of a scenario attachment. Updatable fields include filename, description, tags and hidden visibility.
Create a new app attachment or overwrite an existing one.
Create a new scenario attachment or overwrite an existing one.

Authentication Operations

Generate a bearer token for the provided client for use in an Authorization: Bearer header
Get the bearer token details for the current user.
Get your user details.

ComputeJobs Operations

Create a compute job. The job request can supply a zip containing files, specify a dependency on an existing zip file, or both.
Delete a compute job by ID.
Get the details of a compute job by ID.
Find compute jobs related to a given scenario. This will either return an empty page or a page containing a single compute job.
Get the message file for a compute job.

ExecutionAdmin Operations

Create a new execution service.
Create a new execution worker.
Create a new mapping if one did not already exist for this worker and service combination, or update an existing mapping. The request body need not supply the worker and service, but if it does the IDs must match this URL.
Delete an execution service and its mappings.
Delete an execution worker and its mappings.
Delete an existing mapping between an execution service and an execution worker.
Get all execution modes.
Get an execution service by ID.
Get all execution services.
Get an execution worker by ID.
Get a mapping from an execution service to an execution worker.
Get all mappings from execution services to execution workers.
Get all execution workers.
Update the preferred execution service assigned to an app execution mode.
Update an execution service. If supplied, the name and flags (default, enabled, and restricted) will be updated.
If supplied, the name, worker URL, job and thread capacities, and unlimited threads flag will be updated.

Folders Operations

Create a new folder in the app. To create a folder in the app root, the app must be the same as the parent if given.
Delete a folder by ID. This will delete the folder and all descendant folders and scenarios. Security: FOLDER_DELETE is required to delete the folder.
Get a folder by ID.
Get the folders and scenarios that are the immediate children of this folder.
Move a folder or scenario into the parent folder.
Update the properties of a folder. Only the name, share status and owner of a folder can be changed. Changes to share status and owner can optionally be cascaded to all descendant folders. When changing the name of a folder, a suffix may be applied to ensure that the name is unique. If the share status is PRIVATE and no owner is supplied, the current user becomes the owner to prevent loss of access. Security: FOLDER_EDIT is required to change the name, FOLDER_SHARE is required to change the share status, and FOLDER_OWNER is required to change the owner. The user must have write access to the folder.

HealthCheck Operations

Provides detailed information about the current mirror configuration and the health of the configuration
Provides detailed information about the current Tableau configuration and the health of the configuration

Jobs Operations

Cancel a job by ID.
Cancel all jobs, all jobs owned by the current user, or all jobs for a given scenario. If a provided owner ID matches the current user, all jobs owned by that user will be cancelled. If a scenario ID is provided, the job belonging to that scenario will be cancelled. If neither owner nor scenario ID is provided, all jobs will be cancelled if the current user has sufficient authority to do so.
Create a job for a scenario.
Get the message file for a job. This endpoint is now deprecated. Its replacement is within Compute jobs. See "/api/compute-job/id/messages/messageId/file" for updated usage.
Get a job by ID.
Get the metrics that are generated for a job while it is going through the execution process.
Get the contents of the run log for a job. The current user must have read access for the provided job.
Get all jobs. This will include all queued jobs, currently executing jobs and (if requested) those finished jobs currently retained in the job history. If the job scenario is not visible to the user, redacted information will be returned. The jobs can be filtered by scenario ID. When including finished jobs, the filters are not applied to the finished jobs.
Get all jobs that match the provided query. Only jobs for scenarios that are visible to the current user will be returned.
Send a custom message to the job.

Portations Operations

Dismiss portations identified by the provided IDs.
Get an export by ID.
Get the binary data of the export identified by the provided ID.
Get an import by ID.
Get all portation files available for import to the server.
Get all portations visible to the current user that have not previously been dismissed.
Create an export from the provided ExportRequest. The created export will record the progress and outcome of exporting the source described by the request.
Create an import from the provided insight file. This will record the progress and outcome of importing the supplied file.

Repository Operations

Get an app, folder or scenario by repository path.

Scenarios Operations

Discover whether the scenarios under the given root in the folder structure have been modified since the provided timestamp.
The payload specifies the attributes of the new scenario. The name attribute specifies the preferred name for the scenario; a suffix will be applied to ensure its name is unique among its siblings. The scenarioType attribute specifies the type of scenario to create; the app defines the available scenario types. If no scenarioType is supplied it defaults to SCENARIO. The parent attribute specifies the folder or app the scenario will be created within. It must be an app or a folder and must declare its objectType and ID. To clone a scenario specify a sourceScenario. 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. Security: SCENARIO_NEW is required to create a new scenario and the user must have permission to modify the contents of the parent folder or app. When cloning, the user must also have permission to read the source scenario.
Delete a scenario including its data, attachments and run log. If a job exists for the scenario it will also be deleted.
Get a scenario by ID. A user can only see a scenario that they have read-access to.
Get the entity data from this scenario as described by the supplied query object.
Get the job metrics generated for the last execution of this scenario.
The run log is generated by the job during execution and captured against the scenario when execution completes.
Modify the scenario data. The data is modified by supplying a list of entity deltas. These entity deltas contain only the elements that are added, removed or changed. The scenario data cannot be modified if the scenario is in the job queue. Security: SCENARIO_EDIT is required to modify the scenario data and the user must have write access to the scenario.
The payload contains the updates to apply to the scenario. They are all optional. The name attribute specifies the new preferred name for the scenario; a suffix will be applied to ensure its name is unique among its siblings. The share status and owner attributes control visibility of the scenario. When the share status is set to PRIVATE and no owner is supplied then the current user becomes the owner to ensure they do not lose access to the scenario. The scenario ID attribute is optional, but if it is supplied then it must match the ID in the URL. The objectType is optional, but if it is supplied then it must be SCENARIO. All other attributes are ignored. Security: SCENARIO_EDIT is required to change the folder name, SCENARIO_SHARE is required to change the share status, and SCENARIO_OWNER is required to change the owner, and the user must have write access to the scenario.

UserAdmin Operations

The payload specifies the attributes of the new authority groups. All other attributes are mandatory. Security: SYS_USER is required to create a new user.
Create a new user. Security: SYS_USER is required to create a new user and current user must be logged in locally.
Delete an authority group. Security: SYS_USER is required to delete an authority group.
Deletes a user by ID. Security: SYS_USER is required to delete a user and current user must be logged in locally.
Get a single authority group by ID. Security: SYS_USER is required to read an authority group.
Get all authority groups. Security: SYS_USER is required to list authority groups.
Get all custom authorities.
Get a user by ID. Security: SYS_USER is required to read a user.
Get all users. Security: SYS_USER is required to list users.
Update the properties of an authority group. Only the name, description and authorities can be changed. The objectType is optional, but if it is supplied then it must be AUTHORITY_GROUP. All other attributes are ignored. Security: SYS_USER is required to edit an authority group.
The payload contains the updates to apply to the user. They are all optional. The first name, last name, email and status fields are optional. The status cannot be DELETED. The user id attribute is optional, but if it is supplied then it must match the id in the URL. The user's app membership will be updated to the supplied list of apps. Their membership is unchanged if this attribute is missing or null. If authority groups are supplied, they will replace the existing ones. The objectType is optional, but if it is supplied then it must be USER. All other attributes are ignored. When using SAML2 authentication, the first name, last name, email and status fields can only be edited in the Identity Provider - if specified here they will be ignored. Attempting to change the current user's status to a non ACTIVE status will result in a 422 error. Updating the current user's authority groups so that they no longer have the SYS_USER role will also result in a 422 error. Security: SYS_USER is required to edit a user.

© 2001-2023 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.