{
    "apis": [
        {
            "url": "http://localhost:9999/jobs",
            "path": "/jobs",
            "description": "Run and manage jobs",
            "api_declaration": {
                "authorizations": [
                    "oauth2"
                ],
                "swaggerVersion": "1.2",
                "apis": [
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }

                                ],
                                "nickname": "list",
                                "notes": "All jobs both private and shared that are associated with a user.",
                                "is_websocket": false,
                                "summary": "Get a list of jobs the authenticated user had submitted.",
                                "type": "MultipleJobResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "defaultValue": "{\n\t\"name\":\"wc-demo\",\n\t\"appId\":\"wc-demo-1.00\",\n\t\"memoryPerNode\":1,\n\t\"notifications\":[\n\t\t{\n\t\t\t\"url\":\"nryan@mlb.com\",\n\t\t\t\"event\":\"FINISHED\"\n\t\t}\n\t],\n\t\"inputs\":{\n\t\t\"query1\":\"agave://demo.storage.example.com/apps/wc-1.00/picksumipsum.txt\"\n\t}\n}",
                                        "description": "The description of the job to submit. This can be either a file upload or json posted to the request body.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "JobRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "submit",
                                "notes": "This is the sole point of submission for new jobs. Users must have permissions both on the app, execution host, and storage host to submit a job. Job requests are processed immediatly, however the actualy submission and execution happen asynchronously, so users are highly encouraged to leverage the callbackUrl parameter to receive notification of updates rather than polling.",
                                "is_websocket": false,
                                "summary": "Submit a new job request.",
                                "type": "SingleJobResponse",
                                "method": "POST"
                            }
                        ],
                        "path": "/jobs/v2/",
                        "description": "Submit a new job request.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    }
                                ],
                                "nickname": "get",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Get details of the job with the specific job id.",
                                "type": "SingleJobResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"action\":\"stop\"\n}",
                                        "description": "The operation to perform.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "JobOperationRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "manage",
                                "notes": "Using this method, users can stop a job that is currently running or resumbit the job for re-execution. If resubmitted, a new job will be created with the exact same inputs.",
                                "is_websocket": false,
                                "summary": "Perform an action on a job.",
                                "type": "SingleJobResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    }
                                ],
                                "nickname": "delete",
                                "notes": "The job will be removed from the user's job history and will no longer show up in listing requests. Any archived data associated with this job will be unaffected. Once deleted, there is no way to recover the deleted job.",
                                "is_websocket": false,
                                "summary": "Deletes a job from the user's history.",
                                "type": "EmptyJobResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}",
                        "description": "Get specific job details",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "getHistory",
                                "notes": "Users must have read access to this job to view the history.",
                                "is_websocket": false,
                                "summary": "Get the history of this job.",
                                "type": "JobHistoryResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}/history",
                        "description": "Get detailed job history containing every event in its history.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listPermissions",
                                "notes": "Users must have read access to this job to view the permissions.",
                                "is_websocket": false,
                                "summary": "Get the permission ACL for this job.",
                                "type": "JobPermissionResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\":\"\",\n\t\"permission\": \"READ\"\n}",
                                        "description": "The permission add or update. ",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "JobPermissionRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updatePermissions",
                                "notes": "To delete a single user, set their permission to NONE or an empty string",
                                "is_websocket": false,
                                "summary": "Add or update a user's permission for an application.",
                                "type": "EmptyJobResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    }
                                ],
                                "nickname": "deletePermissions",
                                "notes": "This will reset the permissions such that only the user who submitted the job will be able to view it. Job owners cannot remove their own permissions.",
                                "is_websocket": false,
                                "summary": "Deletes all permissions on an job.",
                                "type": "EmptyJobResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}/pems",
                        "description": "Get job permission details",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "description": "The username of the api user associated with the permission.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listPermissionsForUser",
                                "notes": "Users must have read access to this job to view the permissions.",
                                "is_websocket": false,
                                "summary": "Get a specific user's permissions for a job.",
                                "type": "JobPermissionResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "description": "The username of the api user associated with the permission",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\":\"\",\n\t\"permission\": \"READ_EXECUTE\",\n\t\"recursive\": false\n}",
                                        "description": "The permission to update. ",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "JobPermissionRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updatePermissionsForUser",
                                "notes": "To delete a single user, use the DELETE operation or set their permission to NONE or an empty string",
                                "is_websocket": false,
                                "summary": "Add or update a user's permission for an job.",
                                "type": "EmptyJobResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the application. The application id is made up of the name and version separated by a dash.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uniqueName"
                                    },
                                    {
                                        "description": "The username of the api user associated with the permission",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    }
                                ],
                                "nickname": "deletePermissionsForUser",
                                "notes": "This will remove all permissions on an job for a user. Job owners cannot remote their own permissions.",
                                "is_websocket": false,
                                "summary": "Deletes all permissions for the given user on an job.",
                                "type": "EmptyApplicationResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}/pems/{username}",
                        "description": "Get job permission details for a specific user.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    }
                                ],
                                "nickname": "getStatus",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Get the status of the job.",
                                "type": "JobStatusResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}/status",
                        "description": "Return just the status of the job",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "description": "Path to an output file or folder relative to the job output directory. This resource will follow data around as it moves from the execution system to archival storage.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listOutputs",
                                "notes": "If issued against an un-archived job, inputs and intermediate files will also be visible and accesible.",
                                "is_websocket": false,
                                "summary": "List contents of a job's output directory.",
                                "type": "MultipleRemoteFileResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}/outputs/listings/{filePath}",
                        "description": "Return a listing of the output folder from the job.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "description": "Path to an output file relative to the job output directory.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    }
                                ],
                                "produces": [
                                    "application/octet-stream"
                                ],
                                "type": "JobOutputFileDownload",
                                "notes": "This service will follow data around as it moves from the execution system to archival storage. You can use this endpoint to keep a permanent handle of the output of a job. Directory download is not currently supported.",
                                "is_websocket": false,
                                "summary": "Download an output file from a specific job.",
                                "nickname": "downloadOutput",
                                "method": "GET"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}/outputs/media/{filePath}",
                        "description": "Download an output file.",
                        "has_websocket": false
                    }
                ],
                "models": {
                    "JobParameters": {
                        "properties": {
                            "parameter1": {
                                "required": false,
                                "type": "string",
                                "description": "One or more parameters identified in the description of the app you're running. ",
                                "name": "parameter1"
                            }
                        },
                        "id": "JobParameters",
                        "name": ""
                    },
                    "Notification": {
                        "properties": {
                            "url": {
                                "type": "integer",
                                "description": "The URI to notify when the import is complete. This can be an email address or URL. If a URL is given, a POST will be made to this address. URL templating is supported. Valid template values are: ${JOB_STATUS}, ${JOB_URL}, ${JOB_ID}, ${JOB_SYSTEM}, ${JOB_NAME}, ${JOB_START_TIME}, ${JOB_END_TIME}, ${JOB_SUBMIT_TIME}, ${JOB_ARCHIVE_PATH}, ${JOB_ARCHIVE_URL}, ${JOB_ERROR}",
                                "name": "url",
                                "format": "int32"
                            },
                            "event": {
                                "type": "string",
                                "description": "The event you wish to recieve a notification about. Specify * for all events.",
                                "name": "event"
                            },
                            "persistent": {
                                "type": "boolean",
                                "description": "Whether this event should remain active after it triggers the first time.",
                                "name": "persistent"
                            }
                        },
                        "id": "Notification",
                        "name": ""
                    },
                    "ACL": {
                        "properties": {
                            "read": {
                                "type": "boolean",
                                "description": "can read",
                                "name": "read"
                            },
                            "write": {
                                "type": "boolean",
                                "description": "can write",
                                "name": "write"
                            }
                        },
                        "id": "ACL",
                        "name": ""
                    },
                    "JobOperationRequest": {
                        "properties": {
                            "action": {
                                "required": true,
                                "type": "string",
                                "description": "Action to perform on the job.",
                                "enum": [
                                    "resubmit",
                                    "stop"
                                ],
                                "name": "action"
                            }
                        },
                        "id": "JobOperationRequest",
                        "name": ""
                    },
                    "JobHistory": {
                        "properties": {
                            "status": {
                                "type": "String",
                                "description": "The status of the job after this event.",
                                "name": "status"
                            },
                            "description": {
                                "type": "String",
                                "description": "A brief description of the event details.",
                                "name": "description"
                            },
                            "created": {
                                "type": "string",
                                "description": "The date of the event.",
                                "name": "created",
                                "format": "date-time"
                            }
                        },
                        "id": "JobHistory",
                        "name": ""
                    },
                    "Permission": {
                        "properties": {
                            "username": {
                                "type": "string",
                                "description": "Username associate with this permission",
                                "name": "username"
                            },
                            "permission": {
                                "type": "ACL",
                                "name": "permission"
                            }
                        },
                        "id": "Permission",
                        "name": ""
                    },
                    "MultipleRemoteFileResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "RemoteFile"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleRemoteFileResponse",
                        "name": ""
                    },
                    "MultipleJobResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "JobSummary"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleJobResponse",
                        "name": ""
                    },
                    "JobHistoryResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "JobHistory"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "JobHistoryResponse",
                        "name": ""
                    },
                    "Job": {
                        "properties": {
                            "localId": {
                                "type": "string",
                                "description": "The process or local job id of the job on the remote execution system.",
                                "name": "localId"
                            },
                            "memoryPerNode": {
                                "type": "string",
                                "description": "The requested memory for this application to run given in GB.",
                                "name": "memoryPerNode"
                            },
                            "archiveSystem": {
                                "type": "string",
                                "description": "The unique id of the storage system on which this job's output will be staged.",
                                "name": "archiveSystem"
                            },
                            "processorsPerNode": {
                                "type": "integer",
                                "description": "The number of processors this application should utilize while running. If the application is not of executionType PARALLEL, this should be 1.",
                                "name": "processorsPerNode",
                                "format": "int32"
                            },
                            "owner": {
                                "type": "string",
                                "description": "The job owner.",
                                "name": "owner"
                            },
                            "message": {
                                "type": "string",
                                "description": "The error message incurred when the job failed.",
                                "name": "message"
                            },
                            "id": {
                                "type": "string",
                                "description": "The unique id of the job.",
                                "name": "id"
                            },
                            "parameters": {
                                "type": "JobParameters",
                                "description": "The application specific parameters needed for this job. These vary from application to application and should be entered as multiple individual parameters in the form. The actual dataType will be determined by the application description.",
                                "name": "parameters"
                            },
                            "archivePath": {
                                "type": "string",
                                "description": "The path of the archive folder for this job on the user's default storage sytem.",
                                "name": "archivePath"
                            },
                            "archive": {
                                "type": "boolean",
                                "description": "Whether the output from this job should be archived. If true, all new files created by this application's execution will be archived to the archivePath in the user's default storage system.",
                                "name": "archive"
                            },
                            "outputPath": {
                                "type": "String",
                                "description": "Relative path of the job's output data.",
                                "name": "outputPath"
                            },
                            "maxRunTime": {
                                "type": "string",
                                "description": "The requested compute time needed for this application to complete given in HH:mm:ss format.",
                                "name": "maxRunTime"
                            },
                            "status": {
                                "type": "string",
                                "description": "The status of the job. Possible values are: PENDING, STAGING_INPUTS, CLEANING_UP, ARCHIVING, STAGING_JOB, FINISHED, KILLED, FAILED, STOPPED, RUNNING, PAUSED, QUEUED, SUBMITTING, STAGED, PROCESSING_INPUTS, ARCHIVING_FINISHED, ARCHIVING_FAILED",
                                "name": "status"
                            },
                            "inputs": {
                                "type": "JobInputs",
                                "description": "The application specific input files needed for this job. These vary from application to application and should be entered as multiple individual parameters in the form. Inputs may be given as relative paths in the user's default storage system or as URI. If a URI is given, the data will be staged in by the IO service and made avaialble to the application at run time.",
                                "name": "inputs"
                            },
                            "submitTime": {
                                "type": "string",
                                "description": "The date the job was submitted in ISO 8601 format.",
                                "name": "submitTime",
                                "format": "date-time"
                            },
                            "notifications": {
                                "items": {
                                    "$ref": "Notification"
                                },
                                "type": "array",
                                "description": "An array of notifications you wish to receive.",
                                "name": "notifications"
                            },
                            "executionSystem": {
                                "type": "string",
                                "description": "The system id of the execution system.",
                                "name": "executionSystem"
                            },
                            "startTime": {
                                "type": "string",
                                "description": "The date the job started in ISO 8601 format.",
                                "name": "startTime",
                                "format": "date-time"
                            },
                            "appId": {
                                "type": "string",
                                "description": "The unique name of the application being run by this job. This must be a valid application that the calling user has permission to run.",
                                "name": "appId"
                            },
                            "nodeCount": {
                                "type": "integer",
                                "description": "The number of processors this application should utilize while running. If the application is not of executionType PARALLEL, this should be 1.",
                                "name": "nodeCount",
                                "format": "int32"
                            },
                            "retries": {
                                "type": "integer",
                                "description": "The number of retires it took to submit this job.",
                                "name": "retries",
                                "format": "int32"
                            },
                            "workPath": {
                                "type": "string",
                                "description": "The directory on the remote execution system from which the job is running.",
                                "name": "workPath"
                            },
                            "name": {
                                "type": "string",
                                "description": "The name of the job.",
                                "name": "name"
                            },
                            "batchQueue": {
                                "type": "string",
                                "description": "The queue to which this job should be submitted. This is optional and only applies when the execution system has a batch scheduler.",
                                "name": "batchQueue"
                            },
                            "endTime": {
                                "type": "string",
                                "description": "The date the job stopped running due to termination, completion, or error in ISO 8601 format.",
                                "name": "endTime",
                                "format": "date-time"
                            }
                        },
                        "id": "Job",
                        "name": ""
                    },
                    "JobSummary": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "The status of the job. Possible values are: PENDING, STAGING_INPUTS, CLEANING_UP, ARCHIVING, STAGING_JOB, FINISHED, KILLED, FAILED, STOPPED, RUNNING, PAUSED, QUEUED, SUBMITTING, STAGED, PROCESSING_INPUTS, ARCHIVING_FINISHED, ARCHIVING_FAILED",
                                "name": "status"
                            },
                            "name": {
                                "type": "string",
                                "description": "The name of the job.",
                                "name": "name"
                            },
                            "executionSystem": {
                                "type": "string",
                                "description": "The system id of the execution system.",
                                "name": "executionSystem"
                            },
                            "startTime": {
                                "type": "string",
                                "description": "The date the job started in ISO 8601 format.",
                                "name": "startTime",
                                "format": "date-time"
                            },
                            "appId": {
                                "type": "string",
                                "description": "The unique name of the application being run by this job. This must be a valid application that the calling user has permission to run.",
                                "name": "appId"
                            },
                            "owner": {
                                "type": "string",
                                "description": "The job owner.",
                                "name": "owner"
                            },
                            "endTime": {
                                "type": "string",
                                "description": "The date the job ended in ISO 8601 format.",
                                "name": "endTime",
                                "format": "date-time"
                            },
                            "id": {
                                "type": "string",
                                "description": "The unique id of the job.",
                                "name": "id"
                            }
                        },
                        "id": "JobSummary",
                        "name": ""
                    },
                    "JobRequest": {
                        "properties": {
                            "inputs": {
                                "required": true,
                                "type": "JobInputs",
                                "description": "The application specific input files needed for this job. These vary from application to application and should be entered as multiple individual parameters in the form. Inputs may be given as relative paths in the user's default storage system or as URI. If a URI is given, the data will be staged in by the IO service and made avaialble to the application at run time.",
                                "name": "inputs"
                            },
                            "name": {
                                "required": true,
                                "type": "string",
                                "description": "The name of the job.",
                                "name": "name"
                            },
                            "parameters": {
                                "required": true,
                                "type": "JobParameters",
                                "description": "The application specific parameters needed for this job. These vary from application to application and should be entered as multiple individual parameters in the form. The actual dataType will be determined by the application description.",
                                "name": "parameters"
                            },
                            "batchQueue": {
                                "type": "string",
                                "description": "The queue to which this job should be submitted. This is optional and only applies when the execution system has a batch scheduler.",
                                "name": "batchQueue"
                            },
                            "archiveSystem": {
                                "type": "string",
                                "description": "The unique id of the storage system on which this job's output will be staged.",
                                "name": "archiveSystem"
                            },
                            "processorsPerNode": {
                                "minimum": 1,
                                "type": "integer",
                                "description": "The number of processors this application should utilize while running. If the application is not of executionType PARALLEL, this should be 1.",
                                "name": "processorsPerNode",
                                "format": "int32"
                            },
                            "memoryPerNode": {
                                "type": "string",
                                "description": "The requested memory for this application to run given in GB.",
                                "name": "memoryPerNode"
                            },
                            "archivePath": {
                                "type": "string",
                                "description": "The path of the archive folder for this job on the user's default storage sytem.",
                                "name": "archivePath"
                            },
                            "notifications": {
                                "items": {
                                    "$ref": "Notification"
                                },
                                "type": "array",
                                "description": "An array of notifications you wish to receive.",
                                "name": "notifications"
                            },
                            "appId": {
                                "required": true,
                                "type": "string",
                                "description": "The unique name of the application being run by this job. This must be a valid application that the calling user has permission to run.",
                                "name": "appId"
                            },
                            "nodeCount": {
                                "type": "integer",
                                "description": "The number of processors this application should utilize while running. If the application is not of executionType PARALLEL, this should be 1.",
                                "name": "nodeCount",
                                "format": "int32"
                            },
                            "archive": {
                                "required": true,
                                "type": "boolean",
                                "description": "Whether the output from this job should be archived. If true, all new files created by this application's execution will be archived to the archivePath in the user's default storage system.",
                                "name": "archive"
                            },
                            "maxRunTime": {
                                "type": "string",
                                "description": "The requested compute time needed for this application to complete given in HH:mm:ss format.",
                                "name": "maxRunTime"
                            }
                        },
                        "id": "JobRequest",
                        "name": ""
                    },
                    "JobPermissionResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "Permission"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }                        },
                        "id": "JobPermissionResponse",
                        "name": ""
                    },
                    "SingleJobResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "Job",
                                "name": "result"
                            }
                        },
                        "id": "SingleJobResponse",
                        "name": ""
                    },
                    "JobInputs": {
                        "properties": {
                            "parameter1": {
                                "required": false,
                                "type": "string",
                                "description": "One or more inputs identified in the description of the app you're running. ",
                                "name": "parameter1"
                            }
                        },
                        "id": "JobInputs",
                        "name": ""
                    },
                    "JobOutputFileDownload": {
                        "properties": {},
                        "id": "JobOutputFileDownload",
                        "name": ""
                    },
                    "JobStatus": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "The status of the job. Possible values are: PENDING, STAGING_INPUTS, CLEANING_UP, ARCHIVING, STAGING_JOB, FINISHED, KILLED, FAILED, STOPPED, RUNNING, PAUSED, QUEUED, SUBMITTING, STAGED, PROCESSING_INPUTS, ARCHIVING_FINISHED, ARCHIVING_FAILED",
                                "name": "status"
                            },
                            "id": {
                                "type": "string",
                                "description": "The unique id of the job.",
                                "name": "id"
                            }
                        },
                        "id": "JobStatus",
                        "name": ""
                    },
                    "PermissionListing": {
                        "properties": {
                            "owner": {
                                "type": "string",
                                "description": "Owner of the application.",
                                "name": "owner"
                            },
                            "name": {
                                "type": "string",
                                "description": "Unique name of the application to which this permissions apply.",
                                "name": "name"
                            },
                            "permissions": {
                                "items": {
                                    "$ref": "Permission"
                                },
                                "type": "array",
                                "description": "Permissions granted on this application.",
                                "name": "permissions"
                            }
                        },
                        "id": "PermissionListing",
                        "name": ""
                    },
                    "RemoteFile": {
                        "properties": {
                            "mimeType": {
                                "type": "string",
                                "description": "The mime type of the file/folder. If unknown, it defaults to application/binary.",
                                "name": "mimeType"
                            },
                            "name": {
                                "type": "string",
                                "description": "The name of the file/folder.",
                                "name": "name"
                            },
                            "format": {
                                "type": "string",
                                "description": "The file type of the file.",
                                "name": "format"
                            },
                            "lastModified": {
                                "type": "string",
                                "description": "The date this file was last modified in ISO 8601 format.",
                                "name": "lastModified",
                                "format": "date-time"
                            },
                            "system": {
                                "type": "string",
                                "description": "The systemId of the system where this file lives.",
                                "name": "system"
                            },
                            "length": {
                                "type": "integer",
                                "description": "The length of the file/folder.",
                                "name": "length",
                                "format": "int32"
                            },
                            "path": {
                                "type": "string",
                                "description": "The absolute path to the file/folder.",
                                "name": "path"
                            },
                            "type": {
                                "type": "string",
                                "description": "Whether it is a file or folder.",
                                "name": "type"
                            },
                            "permissions": {
                                "type": "string",
                                "description": "The system permission of the invoking user on the file/folder.",
                                "name": "permissions"
                            }
                        },
                        "id": "RemoteFile",
                        "name": ""
                    },
                    "JobStatusResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "JobStatus",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "JobStatusResponse",
                        "name": ""
                    },
                    "JobSubmission": {
                        "properties": {
                            "inputs": {
                                "type": "JobInputs",
                                "description": "The application specific input files needed for this job. These vary from application to application and should be entered as multiple individual parameters in the form. Inputs may be given as relative paths in the user's default storage system or as URI. If a URI is given, the data will be staged in by the IO service and made avaialble to the application at run time.",
                                "name": "inputs"
                            },
                            "name": {
                                "type": "string",
                                "description": "The name of the job.",
                                "name": "name"
                            },
                            "parameters": {
                                "type": "JobParameters",
                                "description": "The application specific parameters needed for this job. These vary from application to application and should be entered as multiple individual parameters in the form. The actual dataType will be determined by the application description.",
                                "name": "parameters"
                            },
                            "batchQueue": {
                                "type": "string",
                                "description": "The queue to which this job should be submitted. This is optional and only applies when the execution system has a batch scheduler.",
                                "name": "batchQueue"
                            },
                            "archiveSystem": {
                                "type": "string",
                                "description": "The system on which the job data will be archived",
                                "name": "archiveSystem"
                            },
                            "processorsPerNode": {
                                "minimum": 1,
                                "type": "integer",
                                "description": "The number of processors this application should utilize while running.",
                                "name": "processorsPerNode",
                                "format": "int32"
                            },
                            "maxMemory": {
                                "type": "string",
                                "description": "The maximum amount of memory needed for this application to run given in GB.",
                                "name": "maxMemory"
                            },
                            "archivePath": {
                                "type": "string",
                                "description": "The path of the archive folder for this job on the archiveSystem. Defaults to the user's default storage system.",
                                "name": "archivePath"
                            },
                            "notifications": {
                                "items": {
                                    "$ref": "Notification"
                                },
                                "type": "array",
                                "description": "An array of notifications you wish to receive.",
                                "name": "notifications"
                            },
                            "appId": {
                                "type": "string",
                                "description": "The unique name of the application being run by this job. This must be a valid application that the calling user has permission to run.",
                                "name": "appId"
                            },
                            "nodeCount": {
                                "minimum": 1,
                                "type": "integer",
                                "description": "The number of nodes this application should utilize while running. If the application is not of executionType PARALLEL, this should be 1.",
                                "name": "nodeCount",
                                "format": "int32"
                            },
                            "archive": {
                                "type": "boolean",
                                "description": "Whether the output from this job should be archived. If true, all new files created by this application's execution will be archived to the archivePath in the user's default storage system.",
                                "name": "archive"
                            },
                            "maxRunTime": {
                                "type": "string",
                                "description": "The estimated compute time needed for this application to complete given in hh:mm:ss format.",
                                "name": "maxRunTime"
                            }
                        },
                        "id": "JobSubmission",
                        "name": ""
                    },
                    "JobPermissionRequest": {
                        "properties": {
                            "username": {
                                "required": true,
                                "type": "string",
                                "description": "The username of the api user whose permission is to be set.",
                                "name": "username"
                            },
                            "permission": {
                                "required": true,
                                "type": "string",
                                "description": "The permission to set",
                                "enum": [
                                    "READ",
                                    "WRITE",
                                    "EXECUTE",
                                    "READ_WRITE",
                                    "READ_EXECUTE",
                                    "WRITE_EXECUTE",
                                    "ALL",
                                    "NONE"
                                ],
                                "name": "permission"
                            }
                        },
                        "id": "JobPermissionRequest",
                        "name": ""
                    },
                    "EmptyJobResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "string",
                                "description": "empty result",
                                "name": "result"
                            }
                        },
                        "id": "EmptyJobResponse",
                        "name": ""
                    }
                },
                "basePath": "https://{{ api_server_base }}",
                "resourcePath": "/jobs/v2",
                "apiVersion": "2.2.14"
            },
            "name": "jobs"
        }    
    ]
}