Initializing help system before first use

Compute job resources

Operation Description
GET /api/compute-jobs

Get a compute job by scenario

POST /api/compute-jobs

Create a compute job

GET /api/compute-jobs/{computeJobId}/messages/{messageId}/file

Get the message file for a compute job

DELETE /api/compute-jobs/{id}

Delete a compute job

GET /api/compute-jobs/{id}

Get a compute job

GET /api/compute-jobs

Get a compute job by scenario

Find compute jobs related to a given scenario. This will either return an empty page or a page containing a single compute job.

Request Parameters

Name Description Type Data Type
scenarioId

The ID of a scenario to find compute jobs by

query string (uuid) required
page

Number of the page, starting at zero

query integer (int32)
size

Number of elements per page

query integer (int32)

Responses

200 OK

A page of compute jobs related to the given scenario (either 0 or 1)

Content-Type application/vnd.com.fico.xpress.insight.v2+json

Properties

content: object[]
Array of ComputeJob

403 Forbidden

The user did not have authority to read this compute job

POST /api/compute-jobs

Create a compute job

Create a compute job. The job request can supply a zip containing files, specify a dependency on an existing zip file, or both.

Request Body

Content-Type multipart/form-data

Properties

computeJobRequest: ComputeJobRequest required
payload: string (binary)

Responses

201 Created

The initial compute execution status

Content-Type application/vnd.com.fico.xpress.insight.v2+json

Location

The URL of the created resource

string
403 Forbidden

The user did not have authority to create the compute job, or did not have authority to execute the compute job on the execution service

409 Conflict

A compute job already exists with this identifier

Content-Type application/vnd.com.fico.xpress.insight.v2+json

Example:
{
"error": {
"code": "FICO-Platform-Http-409",
"desc": "Conflict",
"innerError": {
"code": "OPTI-Insight-Locks-ConcurrentDataModification",
"desc": "Concurrent data modification rejected",
"message": "Update rejected: concurrent data modification detected"
},
"message": "Conflict",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}
Example:
{
"error": {
"code": "FICO-Platform-Http-409",
"desc": "Conflict",
"innerError": {
"code": "OPTI-Insight-Validation-DocumentAlreadyExists",
"desc": "Document already exists",
"message": "Document already exists"
},
"message": "Conflict",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}
Example:
{
"error": {
"code": "FICO-Platform-Http-409",
"desc": "Conflict",
"innerError": {
"code": "OPTI-Insight-Locks-ConflictingNameUpdate",
"desc": "Conflicting naming operation",
"message": "An item with the same name already exists"
},
"message": "Conflict",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}
413 Request Entity Too Large

The compute job payload file was too large

Content-Type application/vnd.com.fico.xpress.insight.v2+json

Example:
{
"error": {
"code": "FICO-Platform-Http-413",
"desc": "Payload Too Large",
"innerError": {
"code": "FICO-Platform-Validation-FileTooLarge",
"desc": "Compute upload too large",
"message": "Files larger than 300 MB cannot be uploaded as a compute job payload."
},
"message": "Payload Too Large",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}
422 Unprocessable Entity

The request was invalid

Content-Type application/vnd.com.fico.xpress.insight.v2+json

Example:
{
"error": {
"code": "FICO-Platform-Http-422",
"desc": "Unprocessable Entity",
"innerError": {
"code": "FICO-Platform-Validation-InvalidValue",
"desc": "Missing compute job dependency",
"message": "The dependency was not found"
},
"message": "Unprocessable Entity",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}
Example:
{
"error": {
"code": "FICO-Platform-Http-422",
"desc": "Unprocessable Entity",
"innerError": {
"code": "FICO-Platform-Validation-InvalidValue",
"desc": "Missing compute job execution service",
"message": "The execution service was not found"
},
"message": "Unprocessable Entity",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}
Example:
{
"error": {
"code": "FICO-Platform-Http-422",
"desc": "Unprocessable Entity",
"innerError": {
"code": "FICO-Platform-Validation-InvalidValue",
"desc": "Missing compute job payload or dependency",
"message": "The request must have at least a dependency or payload"
},
"message": "Unprocessable Entity",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}
Example:
{
"error": {
"code": "FICO-Platform-Http-422",
"desc": "Unprocessable Entity",
"innerError": {
"code": "FICO-Platform-Validation-InvalidValue",
"desc": "Invalid compute job ID creation",
"message": "Invalid compute job ID \\'Compute-Job-1234\\'; should have [.a-z0-9_-] and be between 1 - 60 length"
},
"message": "Unprocessable Entity",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}
Example:
{
"error": {
"code": "FICO-Platform-Http-422",
"desc": "Unprocessable Entity",
"innerError": {
"code": "FICO-Platform-Validation-InvalidValue",
"desc": "Mandatory attachment tags missing",
"message": "Mandatory tags have not been applied to any attachments: [tag1, tag2]"
},
"message": "Unprocessable Entity",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}
429 Too Many Requests

Too many jobs are queued

Content-Type application/vnd.com.fico.xpress.insight.v2+json

Example:
{
"error": {
"code": "FICO-Platform-Http-429",
"desc": "Too Many Requests",
"innerError": {
"code": "OPTI-Insight-Validation-TooManyJobs",
"desc": "Maximum job queue length cannot be exceeded",
"message": "There are currently too many jobs in the queue to submit another one."
},
"message": "Too Many Requests",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}

GET /api/compute-jobs/{computeJobId}/messages/{messageId}/file

Get the message file for a compute job

Get the message file for a compute job.

Request Parameters

Name Description Type Data Type
computeJobId

The ID of the compute job

path string required
messageId

The ID of the message

path string (uuid) required

Responses

200 OK

The file contents

Content-Type application/vnd.com.fico.xpress.insight.v2+octet-stream

string (binary)

404 Not Found

The compute job or message did not exist or was unavailable to the current user

Content-Type application/vnd.com.fico.xpress.insight.v2+json

Example:
{
"error": {
"code": "FICO-Platform-Http-404",
"desc": "Not Found",
"innerError": {
"code": "OPTI-Insight-Persistence-DocumentNotFound",
"desc": "Document not found",
"message": "Unable to find document"
},
"message": "Not Found",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}
Content-Type application/vnd.com.fico.xpress.insight.v2+octet-stream

Empty response body

DELETE /api/compute-jobs/{id}

Delete a compute job

Delete a compute job by ID.

Request Parameters

Name Description Type Data Type
id

The ID of a compute job to delete

path string required

Responses

204 No Content

The compute job was successfully deleted

Content-Type application/vnd.com.fico.xpress.insight.v2+json

Empty response body

403 Forbidden

The user did not have authority to delete the compute job

404 Not Found

The compute job did not exist or was unavailable to the current user

Content-Type application/vnd.com.fico.xpress.insight.v2+json

Example:
{
"error": {
"code": "FICO-Platform-Http-404",
"desc": "Not Found",
"innerError": {
"code": "OPTI-Insight-Persistence-DocumentNotFound",
"desc": "Document not found",
"message": "Unable to find document"
},
"message": "Not Found",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}
Example:
{
"error": {
"code": "FICO-Platform-Http-404",
"desc": "Not Found",
"innerError": {
"code": "FICO-Platform-Validation-InvalidValue",
"desc": "Invalid compute job ID",
"message": "ID should have [.A-Za-z0-9_-] and be between 1 - 60 length"
},
"message": "Not Found",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}

GET /api/compute-jobs/{id}

Get a compute job

Get the details of a compute job by ID.

Request Parameters

Name Description Type Data Type
id

The ID of a compute job to get details of

path string required

Responses

200 OK

The requested compute job

Content-Type application/vnd.com.fico.xpress.insight.v2+json

403 Forbidden

The user did not have authority to read this compute job

404 Not Found

The compute job did not exist or was unavailable to the current user

Content-Type application/vnd.com.fico.xpress.insight.v2+json

Example:
{
"error": {
"code": "FICO-Platform-Http-404",
"desc": "Not Found",
"innerError": {
"code": "OPTI-Insight-Persistence-DocumentNotFound",
"desc": "Document not found",
"message": "Unable to find document"
},
"message": "Not Found",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}
Example:
{
"error": {
"code": "FICO-Platform-Http-404",
"desc": "Not Found",
"innerError": {
"code": "FICO-Platform-Validation-InvalidValue",
"desc": "Invalid compute job ID",
"message": "ID should have [.A-Za-z0-9_-] and be between 1 - 60 length"
},
"message": "Not Found",
"parentId": "0000000000000def",
"spanId": "0000000000000123",
"timestamp": "1970-01-03T02:01:33.219Z",
"traceId": "0000000000000abc"
}
}

ComputeExecution: object

Details of how a compute job will be executed

Properties

executionService: string

The execution service that should run this job

Example:
"SECONDARY"
priority: integer (int32)

The priority of this job

Example:
10
threads: integer (int32)

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.

Example:
2

ComputeJob: object

This object represents one job request submitted via the compute interface

Properties

app:

The app this job belongs to. This will always be the app named 'FICO Xpress Insight Compute'.

computeJobType: string , one of { MOSEL , SOLVER }

The compute job type

dependency: string

Name of a dependency zip. Must match the name of a dependency uploaded as an app attachment to the compute app.

Example:
"mydependency.zip"
execution:

Execution Service and threads to run the compute job on

id: string

The ID of this job

Example:
"compute-a2"
jobMetricsUrl: string (uri)

The URL of the metrics

Example:
"/api/scenarios/21384a4b-2c4a-4ce2-9f78-87c967ebe06e/job-metrics"
modelStatus: string , one of { NA , OK , INSTR , MATHERR , UNKN_PF , UNKN_SYS , PROB , ERROR , EXIT , IOERR , BREAK , NIFCT , NULL , LICERR , STOP , UNKNOWN }

The model status

mosel:

Specify any mosel specific options if the type of the job is MOSEL

objectType: string , one of { COMPUTE_JOB }
owner:

The user who owns this compute job

payloadUrl: string (uri)

The URL of the payload

Example:
"/api/scenarios/21384a4b-2c4a-4ce2-9f78-87c967ebe06e/attachments/29b11540-f020-4f0c-953b-079f814142db/file"
resultUrl: string (uri)

The URL of the result

Example:
"/api/scenarios/21384a4b-2c4a-4ce2-9f78-87c967ebe06e/attachments/7d7d090c-6ed5-4f7a-80fb-a144f214daca/file"
runLogMessages: boolean

True indicates that incremental run log messages should be sent to the web socket for the client that submitted this request

runLogUrl: string (uri)

The URL of the run log

Example:
"/api/scenarios/21384a4b-2c4a-4ce2-9f78-87c967ebe06e/run-log"
scenario:

The scenario this job relates to

solver:

Specify any solver specific options if the type of the job is SOLVER

status: string , one of { INACTIVE , QUEUED , EXECUTING , COMPLETING , COMPLETED , FAILED , CANCELLING , CANCELLED , DELETING , DELETED }

The status of this job

url: string (uri)

The URL of this job

ComputeJobRequest: object

A request to create a new compute job

Properties

computeJobType: string , one of { MOSEL , SOLVER }

The compute job type

Example:
"MOSEL"
dependency: string

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.

Example:
"mydependency.zip"
execution:

Execution Service and threads to run the compute job on.

id: string

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 (-).

Example:
"compute-job-1234"
logLevel: string , one of { DEBUG , INFO , WARN , ERROR }

Specify the log level for execution log output

mosel:

Specify any mosel specific options if the type of the job is MOSEL

runLogMessages: boolean

True indicates that incremental run log messages should be sent to the web socket for the client that submitted this request.

solver:

Specify any solver specific options if the type of the job is SOLVER

ComputeMosel: object

Configuration for a Mosel compute job

Properties

parameters: object

A map of Mosel model parameters

string

ComputeSolver: object

Configuration for a Solver compute job

Properties

action: string , one of { OPTIMIZE , IIS }

The solver action

Example:
"OPTIMIZE"
callbacks: string[]

Callbacks to invoke during the solving of a job of type SOLVER (requires integration with the Progress Events API)

Example:
[
"BARLOG",
"CUTLOG"
]
Array of string , one of { BARLOG , CUTLOG , GLOBALLOG , LPLOG , GAPNOTIFY , INTSOL }
controls: object

A map of controls to values

string
flags: string[]

The flags to be applied during the solve

Example:
[
"BARRIER"
]
Array of string , one of { DUAL , PRIMAL , BARRIER , NETWORK }
problemType: string , one of { LP , MIP }

The type of problem being solved. If not set, the solver will determine this based on the problem characteristics.

Example:
"LP"
resultsToInclude: string[]

The results to include in the output of this job

Example:
[
"SOLUTION"
]
Array of string , one of { SOLUTION , BASIS , ATTRIBUTES , SAVE , IIS }

ErrorDetail: object

An error detail

Properties

code: string

The unique code for this error

Example:
"FICO_PLATFORM_VALIDATION_INVALID_VALUE"
desc: string

A description of this error for client information, not intended for display to the end user

Example:
"Conflict"
message: string

A message providing further information which may be displayed to the end user

Example:
"Conflict"
target: string

An identifier to help the client locate the error. Typically a JSON property name.

timestamp: string (date-time)

When the error was first detected

ErrorResponse: object

An error response containing fault or error information

Properties

error:

The top level error

InnerError: object

More specific error information

Properties

code: string

The unique code for this error

Example:
"FICO-Platform-Validation-FileTooLarge"
desc: string

A description of this error for client information, not intended for display to the end user

Example:
"Attachment upload too large"
innerError:

More specific error information

message: string

A message providing further information which may be displayed to the end user

Example:
"Files larger than 300 MB cannot be uploaded as attachments."

OuterError: object

The top level error

Properties

code: string , one of { FICO-Platform-Http-400 , FICO-Platform-Http-404 , FICO-Platform-Http-406 , FICO-Platform-Http-409 , FICO-Platform-Http-413 , FICO-Platform-Http-422 , FICO-Platform-Http-423 , FICO-Platform-Http-429 , FICO-Platform-Http-500 , FICO-Platform-Http-502 , FICO-Platform-Http-503 }

The unique code for this error

Example:
"FICO-Platform-Http-409"
desc: string

A description of this error for client information, not intended for display to the end user

Example:
"Conflict"
details: object[]

Details about specific errors that led to this reported error

Array of ErrorDetail
innerError:

More specific error information

message: string

A message providing further information which may be displayed to the end user

Example:
"Conflict"
parentId: string

An OpenTracing parent-span ID

Example:
"0020000000000001"
spanId: string

An OpenTracing span ID

Example:
"b2fb4a1d1a96d312"
timestamp: string (date-time)

When the error was first detected

traceId: string

An OpenTracing trace ID

Example:
"463ac35c9f6413ad48485a3953bb6125"

Page: object

A page containing a subset of content which can be paginated through

Properties

content: object[]

The items in this page of results

Array of object
first: boolean

Whether this is the first page

Example:
false
last: boolean

Whether this is the last page

Example:
true
number: integer (int32)

The page number, starting at 0

Example:
4
numberOfElements: integer (int32)

The number of elements in this page of results

Example:
18
size: integer (int32)

The number of results per page

Example:
20
sort:

The sort order applied to the results

totalElements: integer (int32)

The total number of elements in all the pages

Example:
98
totalPages: integer (int32)

The total number of pages

Example:
5

ReferenceApp: object

The basic details of an app

Properties

id: string (uuid)

The ID of this app

Example:
"00007eff-83f9-05fe-ffff-81007c05fc01"
name: string (1 to 255 chars) , must match ^[^\p{Cntrl}]*$ & ^\S(?:[\s\S]*\S)?$

The name of this app

Example:
"My app"
objectType: string , one of { APP }
url: string (uri)

The URL of this app

Example:
"/api/apps/00007eff-83f9-05fe-ffff-81007c05fc01"

ReferenceScenario: object

The basic details of a scenario

Properties

id: string (uuid)

The ID of this scenario

Example:
"003584bb-9e7b-eb70-ffca-7b446118b100"
name: string (1 to 255 chars) , must match ^[^\p{Cntrl}]*$ & ^\S(?:[\s\S]*\S)?$

The name of this scenario

Example:
"My scenario"
objectType: string , one of { SCENARIO }
url: string (uri)

The URL of this scenario

Example:
"/api/scenarios/003584bb-9e7b-eb70-ffca-7b446118b100"

ReferenceUser: object

The basic details of a user

Properties

id: string (uuid)

The ID of this user

Example:
"0013ebae-4d4c-793c-ffec-1451b28ba2f9"
name: string (1 to 255 chars) , must match ^[^\p{Cntrl}]*$ & ^\S(?:[\s\S]*\S)?$

The name of this user

Example:
"My user"
objectType: string , one of { USER }
url: string (uri)

The URL of this user

Example:
"/api/admin/users/0013ebae-4d4c-793c-ffec-1451b28ba2f9"

Sort: object

Details of how paged results were sorted

Properties

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

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