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
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. 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.
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
- Content-Type application/vnd.com.fico.xpress.insight.v2+octet-stream
-
Empty response body
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"
}
}
DELETE /api/compute-jobs/{id}
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 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"
}
}
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
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
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
Configuration for a Mosel compute job
Properties
- parameters: object
-
A map of Mosel model parameters
string
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 }
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
An error response containing fault or error information
Properties
- error:
-
The top level error
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."
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"
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
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"
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"
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"
© 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.