Automation Requests
Automation requests are made available via the following entrypoint:
/api/automation_requests
Creating Requests
Either by specifying a create action or by posting the automation request directly to /api/automation_requests.
As an example:
{
"uri_parts" : {
"namespace" : "System",
"class" : "Request",
"instance" : "InspectME",
"message" : "create"
},
"parameters" : {
"var1" : "value 1",
"var2" : "value 2",
"minimum_memory" : 2048
},
"requester" : {
"auto_approve" : true
}
}
Editing Requests
Updating requests can be performed by posting an edit action as follows:
POST /api/automation_requests/11
{
"action" : "edit",
"resource" : {
"options" : {
"attrs" : {
"var1" : "updated value1",
"var2" : "updated value2",
"minimum_memory" : 4096
}
}
}
}
Response:
{
"href": "http://localhost:3000/api/automation_requests/11",
"id": "11",
"options": {
"message": "create",
"namespace": "System",
"class_name": "Request",
"instance_name": "InspectME",
"user_id": "1",
"attrs": {
"var1" : "updated value1",
"var2" : "updated value2",
"minimum_memory" : 4096
}
},
"tenant_id": "1",
"approval_state": "approved",
"status": "Ok",
"request_type": "automation",
"description": "Automation Task",
"type": "AutomationRequest",
"created_on": "2018-01-08T13:48:00Z",
"updated_on": "2018-01-08T13:56:15Z",
"requester_id": "1",
"requester_name": "Administrator",
"request_state": "pending",
"message": "Automation Request - Request Created",
"userid": "admin",
"process": true
}
Approving or Denying Requests
If an automation request is not auto approved, it can be approved or denied via the actions approve and deny on the automation request resource.
Monitoring Requests
Once an automation request is created, the response will be the queryable automation request itself, i.e. /api/automation_request/:id
Response:
{
"results": [
{
"id": "10",
"description": "Automation Task",
"approval_state": "approved",
"type": "AutomationRequest",
"created_on": "2015-04-14T18:12:12Z",
"updated_on": "2015-04-14T18:12:12Z",
"requester_id": "1",
"requester_name": "Administrator",
"request_type": "automation",
"request_state": "pending",
"status": "Ok",
"options": {
"message": "create",
"namespace": "System",
"class_name": "Request",
"instance_name": "InspectME",
"user_id": "1",
"attrs": {
"var1": "value 1",
"var2": "value 2",
"minimum_memory": 2048,
"userid": "admin"
}
},
"userid": "admin"
}
]
}
In the above example, the request could be queried periodically until the request_state reaches the finished state.
The request tasks of an automation request can also be queried by expanding the request_tasks subcollection as follows: |
GET /api/automation_requests/:id?expand=request_tasks
or by fetching them directly as follows:
GET /api/automation_requests/:id/request_tasks?expand=resources