| 200 |
Each transfer can have a compact or detailed response. It depends on the parameter compact.
- The compact view has the following fields
- surveyDate
- id
- historyId
- controllerId
- profile
- state
- _operation
- workflowPath
- orderId
- job
- jobPosition
- numOfFiles
- start
- end
- error
- The detailed view has the following fields in addition to the compact view
- source
- account
- host
- port
- protocol
- target
- account
- host
- port
- protocol
- jump
|
|
application/json
model |
example
{
"title": "save and response configuration",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "com.sos.joc.model.yade.Transfer",
"type": "object",
"description": "compact=true -> required fields + possibly numOfFiles, end, error",
"required": [
"id",
"surveyDate",
"historyId",
"controllerId",
"profile",
"state",
"_operation",
"workflowPath",
"orderId",
"job",
"jobPosition",
"start"
],
"properties": {
"surveyDate": {
"description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
"type": "string",
"format": "date-time"
},
"id": {
"type": "number",
"format": "utc-millisec",
"minimum": 0
},
"profile": {
"type": "string"
},
"state": {
"javaType": "com.sos.joc.model.yade.TransferState",
"type": "object",
"required": [
"severity",
"_text"
],
"properties": {
"severity": {
"description": "0=SUCCESSFUL, 1=INCOMPLETE, 2=FAILED",
"type": "integer"
},
"_text": {
"javaType": "com.sos.joc.model.yade.TransferStateText",
"type": "string",
"enum": [
"SUCCESSFUL",
"FAILED",
"INCOMPLETE"
]
}
}
},
"_operation": {
"description": "must have the same entries as com.sos.yade.commons.Yade.TransferOperation",
"javaType": "com.sos.joc.model.yade.Operation",
"type": "string",
"enum": [
"UNKNOWN",
"COPY",
"MOVE",
"GETLIST",
"RENAME",
"COPYTOINTERNET",
"COPYFROMINTERNET",
"REMOVE"
]
},
"start": {
"description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
"type": "string",
"format": "date-time"
},
"end": {
"description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
"type": "string",
"format": "date-time"
},
"error": {
"javaType": "com.sos.joc.model.common.Err",
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
},
"source": {
"javaType": "com.sos.joc.model.yade.ProtocolFragment",
"type": "object",
"properties": {
"host": {
"type": "string",
"pattern": "^[^<>]*$",
"maxLength": 255,
"minLength": 1
},
"protocol": {
"javaType": "com.sos.joc.model.yade.Protocol",
"type": "string",
"enum": [
"UNKNOWN",
"AZURE_BLOB_STORAGE",
"FTP",
"FTPS",
"HTTP",
"HTTPS",
"LOCAL",
"SFTP",
"SMB",
"WEBDAV",
"WEBDAVS"
]
},
"port": {
"type": "integer",
"minimum": 0,
"maximum": 65535
},
"account": {
"type": "string",
"maxLength": 255
}
}
},
"target": {
"javaType": "com.sos.joc.model.yade.ProtocolFragment",
"type": "object",
"properties": {
"host": {
"type": "string",
"pattern": "^[^<>]*$",
"maxLength": 255,
"minLength": 1
},
"protocol": {
"javaType": "com.sos.joc.model.yade.Protocol",
"type": "string",
"enum": [
"UNKNOWN",
"AZURE_BLOB_STORAGE",
"FTP",
"FTPS",
"HTTP",
"HTTPS",
"LOCAL",
"SFTP",
"SMB",
"WEBDAV",
"WEBDAVS"
]
},
"port": {
"type": "integer",
"minimum": 0,
"maximum": 65535
},
"account": {
"type": "string",
"maxLength": 255
}
}
},
"jump": {
"javaType": "com.sos.joc.model.yade.ProtocolFragment",
"type": "object",
"properties": {
"host": {
"type": "string",
"pattern": "^[^<>]*$",
"maxLength": 255,
"minLength": 1
},
"protocol": {
"javaType": "com.sos.joc.model.yade.Protocol",
"type": "string",
"enum": [
"UNKNOWN",
"AZURE_BLOB_STORAGE",
"FTP",
"FTPS",
"HTTP",
"HTTPS",
"LOCAL",
"SFTP",
"SMB",
"WEBDAV",
"WEBDAVS"
]
},
"port": {
"type": "integer",
"minimum": 0,
"maximum": 65535
},
"account": {
"type": "string",
"maxLength": 255
}
}
},
"numOfFiles": {
"type": "number",
"format": "utc-millisec",
"minimum": 0
},
"controllerId": {
"type": "string",
"pattern": "^[^/\\<>?:\"|*]*$",
"maxLength": 100
},
"workflowPath": {
"description": "absolute path of an object.",
"type": "string",
"pattern": "^(/|(/[^/\\\\<>?:\"|*]+)+)$",
"maxLength": 255,
"minLength": 1
},
"orderId": {
"type": "string",
"pattern": "^[^<>]*$",
"maxLength": 255
},
"job": {
"type": "string",
"pattern": "^[^<>]*$",
"maxLength": 255
},
"jobPosition": {
"type": "string",
"pattern": "^[^<>]*$",
"maxLength": 255
},
"historyId": {
"type": "number",
"format": "utc-millisec",
"minimum": 0
}
}
}
|
| 401 |
Unauthorized! |
|
application/json
model |
example
{
"title": "authentication",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": [
"isAuthenticated"
],
"properties": {
"accessToken": {
"type": "string"
},
"account": {
"type": "string"
},
"callerHostName": {
"type": "string"
},
"callerIpAddress": {
"type": "string"
},
"enableTouch": {
"type": "boolean",
"default": true
},
"forcePasswordChange": {
"type": "boolean",
"default": false
},
"hasRole": {
"type": "boolean",
"default": false
},
"identityService": {
"type": "string"
},
"isApprovalRequestor": {
"type": "boolean",
"default": false
},
"isApprover": {
"type": "boolean",
"default": false
},
"isAuthenticated": {
"type": "boolean"
},
"isPermitted": {
"type": "boolean",
"default": false
},
"message": {
"type": "string"
},
"role": {
"type": "string"
},
"sessionTimeout": {
"type": "integer",
"default": 1800
}
}
}
{ "account": "root", "callerHostName": "127.0.0.1", "callerIpAddress": "127.0.0.1", "enableTouch": true, "forcePasswordChange": false, "hasRole": false, "isApprovalRequestor": false, "isApprover": false, "isAuthenticated": false, "isPermitted": false, "message": "Access denied" }
{
"account": "root",
"callerHostName": "127.0.0.1",
"callerIpAddress": "127.0.0.1",
"enableTouch": true,
"forcePasswordChange": false,
"hasRole": false,
"isApprovalRequestor": false,
"isApprover": false,
"isAuthenticated": false,
"isPermitted": false,
"message": "Access denied"
}
|
| 403 |
Forbidden! The user doesn't have sufficient permissions for 'transfer' |
|
application/json
model |
example
{
"title": "authentication",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": [
"isAuthenticated"
],
"properties": {
"accessToken": {
"type": "string"
},
"account": {
"type": "string"
},
"callerHostName": {
"type": "string"
},
"callerIpAddress": {
"type": "string"
},
"enableTouch": {
"type": "boolean",
"default": true
},
"forcePasswordChange": {
"type": "boolean",
"default": false
},
"hasRole": {
"type": "boolean",
"default": false
},
"identityService": {
"type": "string"
},
"isApprovalRequestor": {
"type": "boolean",
"default": false
},
"isApprover": {
"type": "boolean",
"default": false
},
"isAuthenticated": {
"type": "boolean"
},
"isPermitted": {
"type": "boolean",
"default": false
},
"message": {
"type": "string"
},
"role": {
"type": "string"
},
"sessionTimeout": {
"type": "integer",
"default": 1800
}
}
}
{ "accessToken": "550e8400-e29b-11d4-a716-446655440000", "account": "root", "apiCall": "./lock", "enableTouch": true, "forcePasswordChange": false, "hasRole": true, "isApprovalRequestor": false, "isApprover": false, "isAuthenticated": true, "isPermitted": false, "message": "Access denied", "role": "no_lock" }
{
"accessToken": "550e8400-e29b-11d4-a716-446655440000",
"account": "root",
"apiCall": "./lock",
"enableTouch": true,
"forcePasswordChange": false,
"hasRole": true,
"isApprovalRequestor": false,
"isApprover": false,
"isAuthenticated": true,
"isPermitted": false,
"message": "Access denied",
"role": "no_lock"
}
|
| 420 |
'transfer' failed! |
|
application/json
model |
example
{
"title": "error object with delivery date",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "com.sos.joc.model.common.Err420",
"type": "object",
"required": [
"deliveryDate",
"error"
],
"properties": {
"deliveryDate": {
"description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
"type": "string",
"format": "date-time"
},
"surveyDate": {
"description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
"type": "string",
"format": "date-time"
},
"error": {
"javaType": "com.sos.joc.model.common.Err",
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}
{ "deliveryDate": "2016-05-05T21:13:35Z", "surveyDate": "2016-05-05T21:13:33Z", "error": { "code": "JOC-420", "message": "transfer failed!" } }
{
"deliveryDate": "2016-05-05T21:13:35Z",
"surveyDate": "2016-05-05T21:13:33Z",
"error": {
"code": "JOC-420",
"message": "transfer failed!"
}
}
|
| 433 |
4-eyes principle: Forbidden! The user needs approval process for 'transfer' |
|
application/json
model |
example
{
"title": "FourEyesResponse",
"$schema": "http://json-schema.org/draft-04/schema#",
"javaType": "com.sos.joc.model.security.foureyes.FourEyesResponse",
"type": "object",
"extends": {
"javaType": "com.sos.joc.model.security.foureyes.ApprovalBase",
"type": "object",
"properties": {
"requestor": {
"type": "string",
"pattern": "^[^<>]*$",
"maxLength": 255,
"minLength": 1
},
"requestUrl": {
"type": "string",
"pattern": "^[^<>]*$",
"maxLength": 255,
"minLength": 1
},
"requestBody": {
"type": "object",
"javaType": "com.sos.joc.model.security.foureyes.RequestBody",
"additionalProperties": true
},
"category": {
"javaType": "com.sos.joc.model.audit.CategoryType",
"type": "string",
"enum": [
"INVENTORY",
"CONTROLLER",
"DAILYPLAN",
"OTHERS",
"DEPLOYMENT",
"DOCUMENTATIONS",
"CERTIFICATES",
"IDENTITY",
"SETTINGS",
"MONITORING",
"UNKNOWN"
]
}
},
"additionalProperties": false
},
"properties": {
"deliveryDate": {
"description": "Value is UTC timestamp in ISO 8601 YYYY-MM-DDThh:mm:ss.sZ or empty",
"type": "string",
"format": "date-time"
},
"message": {
"type": "string",
"pattern": "^[^<>]*$",
"maxLength": 255,
"minLength": 1
},
"approvers": {
"type": "array",
"items": {
"javaType": "com.sos.joc.model.security.foureyes.Approver",
"type": "object",
"required": [
"accountName",
"firstName",
"lastName"
],
"properties": {
"accountName": {
"type": "string",
"pattern": "^[^<>]*$",
"maxLength": 255,
"minLength": 1
},
"firstName": {
"type": "string",
"pattern": "^[^<>]*$",
"maxLength": 30,
"minLength": 1
},
"lastName": {
"type": "string",
"pattern": "^[^<>]*$",
"maxLength": 30,
"minLength": 1
},
"email": {
"type": "string",
"pattern": "^[^<>]*$",
"maxLength": 255
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
{ "deliveryDate": "2025-05-12T21:13:35Z", "accountName": "user1", "request": "./orders/add", "requestBody": { "controllerId": "standalone", "orders": [{ "workflowPath": "myWorkflow", "scheduledFor": "now" }] }, "category": "CONTROLLER", "objectType": "WORKFLOW" "objectName": "myWorkflow", "numOfObjects": 1, "action": "add orders" }
{
"deliveryDate": "2025-05-12T21:13:35Z",
"accountName": "user1",
"request": "./orders/add",
"requestBody": {
"controllerId": "standalone",
"orders": [{
"workflowPath": "myWorkflow",
"scheduledFor": "now"
}]
},
"category": "CONTROLLER",
"objectType": "WORKFLOW"
"objectName": "myWorkflow",
"numOfObjects": 1,
"action": "add orders"
}
|
| 440 |
Login Timeout! The client's session has expired and must log in again. |
|
application/json
model |
example
{
"title": "authentication",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": [
"isAuthenticated"
],
"properties": {
"accessToken": {
"type": "string"
},
"account": {
"type": "string"
},
"callerHostName": {
"type": "string"
},
"callerIpAddress": {
"type": "string"
},
"enableTouch": {
"type": "boolean",
"default": true
},
"forcePasswordChange": {
"type": "boolean",
"default": false
},
"hasRole": {
"type": "boolean",
"default": false
},
"identityService": {
"type": "string"
},
"isApprovalRequestor": {
"type": "boolean",
"default": false
},
"isApprover": {
"type": "boolean",
"default": false
},
"isAuthenticated": {
"type": "boolean"
},
"isPermitted": {
"type": "boolean",
"default": false
},
"message": {
"type": "string"
},
"role": {
"type": "string"
},
"sessionTimeout": {
"type": "integer",
"default": 1800
}
}
}
{ "enableTouch": true, "forcePasswordChange": false, "hasRole": false, "isApprovalRequestor": false, "isApprover": false, "isAuthenticated": false, "isPermitted": false, "message": "SessionNotExistException: Session is broken and no longer valid. New login is neccessary" }
{
"enableTouch": true,
"forcePasswordChange": false,
"hasRole": false,
"isApprovalRequestor": false,
"isApprover": false,
"isAuthenticated": false,
"isPermitted": false,
"message": "SessionNotExistException: Session is broken and no longer valid. New login is neccessary"
}
|