Check the Progress of a Request
/sites/management/api/v1/requests/{id}/job
Read the background job status for request-related processing. When a request is approved, any processing required by the request will be initiated, for example a request for a new site would start the site creation processing. The progress of this processing can be monitored by accessing this job status resource.
The job status is always available for a request, if the request has not been approved then the status will indicate that the request is blocked
- blocked waiting for approval. A completed request will also have a job status that is succeeded
and the completed
field will be true
.
Authorization
To access this relationship requires read access to the parent resource.
- For more information, see Get a Request
Approve or Reject a Blocked Request
If a request job status indicates that the request is blocked it means that the request is not approved or has been rejected. Requests are approved or rejected by adding a review.
For more information, see Reject or Approve a Request.
Retrying a Failed Request
If a request job status indicates that the request has failed the request processing can be retried. Depending on the type of failure a retry can complete the processing of the request.
For more information, see Retry a Failed Request.
Successful Response Examples
This operation responds with the following success (2xx) responses. For a full list of response HTTP status codes and example bodies, consult the Response section of this operation.
200OK - Request Requires Approval
The request job will be blocked when it is awaiting approval, or has been rejected.
Request
GET https://api.example.com/sites/management/api/v1/requests/{id}/job?links=none
Response Body
{ "progress": "blocked", "completed": false }
200OK - Request Job Running
Request has been approved and the job is running. The startTime
is when the job starting running. The intervalToPoll
value gives a hint as to how often to poll for progress (in milliseconds).
Request
GET https://api.example.com/sites/management/api/v1/requests/{id}/job?links=none
Response Body
{ "context": "F49F1047E72E2FBBA7AD1754F7253CA453FCE1E1171C1541416472868", "startTime": "2019-05-31T09:14:29.000Z", "progress": "processing", "completed": false, "completedPercentage": 38, "intervalToPoll": 5000 }
200OK - Request Succeeded
The request has completed successfully.
Request
GET https://api.example.com/sites/management/api/v1/requests/{id}/job?links=none
Response Body
{ "context": "F49F1047E72E2FBBA7AD1754F7253CA453FCE1E1171C1541416472868", "startTime": "2019-05-31T09:14:27.000Z", "endTime": "2019-05-31T09:14:34.000Z", "progress": "succeeded", "completed": true, "completedPercentage": 100 }
200OK - Request Failed
The request had been approved, but the job has failed. The error
property will give the reason for the failure. The request can be retried if the reason for failure is addressed. For example, the clashing site might be renamed. Or the request itself may be changed if that resolves the issue, for example by providing a new name for the site being requested. If the request details are changed, the request will need to go through the approval process again.
Request
GET https://api.example.com/sites/management/api/v1/requests/{id}/job?links=none
Response Body
{ "context": "F49F1047E72E2FBBA7AD1754F7253CA453FCE1E1171C1541416472868", "startTime": "2019-05-31T09:14:25.000Z", "progress": "failed", "completed": false, "error": { "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1", "title": "Site Already Exists", "status": 409, "detail": "Site with name 'AcmeProductLaunch' already exists.", "o:errorCode": "OCE-SITEMGMT-009004", "o:errorDetails": [ ] } }
Client Error Response Examples
This operation responds with following client error (4xx) responses with exception details in the response body. For a full list of response HTTP status codes and example bodies, consult the Response section of this operation.
404Not Found - Request Not Found
The request does not exist or has been deleted, or the authenticated user or client application does not have access to the request.
Error Code
OCE-SITEMGMT-009001
Resolution - Check Identifier
Check that the request identifier is valid.
Resolution - Check Authorization
Check that the authenticated user can review the request or that the authenticated user is the user that created the request.
Exception Detail Fields
This error type includes the following fields/values in the response:
Field Name | Description |
request | Request that does not exist or is not visible to the authenticated user. |
For detailed information about this exception detail type, consult the RequestNotFoundExceptionDetail schema in the definitions section of the swagger document.
Example Response Body
{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1", "title": "Request Not Found", "status": "404", "detail": "Request does not exist or has been deleted, or the authenticated user or client application does not have access to the request.", "o:errorCode": "OCE-SITEMGMT-009001", "request": { "id": "e77229e8-1f44-4c27-bacb-9a99b7c77af7" } }
404Not Found - Relationship Not Found
An attempt to read a relationship has failed because the relationship does not exist. Reading a relationship can fail if the relationship no longer exists or the authenticated identity is not authorized to read the relationship details.
Error Code
PAAS-005027
Example Response Body
{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1", "title": "Relationship Not Found", "status": "404", "detail": "Relationship resource not found. There is a relationship to a resource, but the resource at the end of the relationship does not exist, or the authenticated identity cannot see the resource.", "o:errorCode": "PAAS-005027" }
This resource represents the relationship between a Request and Request Job Status resource. If the Request Job Status has been deleted or the authenticated user is not authorized to read the resource then the response status code will be 404 Not Found and a Relationship Not Found error will be returned in the response body.
Request
-
id: string
Globally unique immutable identifier for a request.
-
excludeFields(optional): string
Comma-delimited string of field names that should not be included in the response.
-
excludeLinks(optional): string
Comma-separated list of link relation names to exclude from the response.
-
fields(optional): string
Comma-delimited string of field names to include in the response. Nested fields can be identified using a dot to separate the field names. Field names are case-sensitive. Field names are ignored if the field does not exist.
-
includeDeleted(optional): boolean
Resources that have been marked for deletion can be read, modified, and support extended operations as long this query parameter is set to
true
. When theincludeDeleted
query parameter is not sent then the response to read, modification, and extended operations will be identical to that which would be returned if the resource was permanently deleted. -
links(optional): string
Comma-separated list of link relation names to include in the response. By default, all links are returned.
The following links are provided by this resource:
Link Relationship Description parent
Describes where the parent resource can be read. Equivalent to an up
link, this link provides the link to the parent resource, such as the collection resource that contains a singular resource.self
Describes the current returned representation of the resource. Used for links that represent the resource itself. For example, if a resource is returned as part of a collection, the self link will provide the URL path for the individual resource. canonical
Describes the preferred representation of the requested resource. Used for links that represent the canonical form of the resource. For example, if a resource is returned as part of a collection, the canonical link will provide the URL path for the canonical form of the individual resource. describedBy
Describes the schema resource providing metadata information about the resource. Used on collection, singular and relation resources to indicate where the schema resource is that describes the resource. request
Request links are returned in responses to provide access to the related request. The main usage of a request link is to provide a way of discovering the request that is associated with an extended operation that has been accepted and directed towards a status resource. The status resource can provide a request link that represents the request for the operation. -
return(optional): string
Specify the resource representation that should be used to control the response fields and links. If no representation is specified, the client-defined representation is returned, based on the values of the
fields
,excludeFields
,links
,excludeLinks
andexpand
query parameters.The following representations are supported with the
return
query parameter:Representation Description representation
Full resource representation includes all properties and links and expands most relationships. default
Default resource representation includes most properties and links. basic
Basic resource representation includes some properties and some links. minimal
Minimal resource representation, includes essential properties and no links.
Response
- application/json
- application/vnd.oracle.resource+json;type=singular
200 Response
-
Cache-Control: string
Directives for caching mechanisms.
-
Content-Length: string
Size of the response body.
-
Content-Type: string
Content type of the response.
-
ETag: string
Opaque identifier assigned by the origin server to a specific version of a resource.
object
-
completed:
boolean
Whether the asynchronous job is completed or not.
-
completedPercentage(optional):
integer(int32)
A number between 0 and 100, capturing how much of the process has been completed. If the asynchronous job has not started the percentage complete will not be provided. Not all background asynchronous jobs support granular process, so the percentage complete may jump from zero to one hundred without any steps.
-
context(optional):
string
Job context identifier value that can be used to correlate the response to the original asynchronous job. Depending on how the asynchronous job was initiated will determine whether there is a context value and what the context value is.
-
endTime(optional):
string(date-time)
Time when the asynchronous job finished running, or when the asynchronous job failed. If the asynchronous job has not finished or failed (or not started) this property will not be present. Certain background jobs may not record a stop time, so if if the job has completed there may not be a stop time. Date and time values are in ISO 8601
yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
format using a UTC timezone. -
error(optional):
object error
Error details for the asynchronous job response when the job fails. This is only available if the asynchronous job has run but failed.
-
intervalToPoll(optional):
integer(int64)
A number in milliseconds, as a hint to the client on how long the client should wait before checking the status again. Absence of this value means there is no suggested polling interval and the client can poll as required.
-
links(optional):
array links
HATEOS link to related resources and actions or actions on this resource. Must include at least a 'self' link that contains a link to the canonical representation of the resource.
-
message(optional):
string
Human-readable message about the current processing status. This message can be used to communicate progress to the end user. Asynchronous requests or jobs may not provide a human-readable status message.
-
progress:
string
The current progress of the asynchronous job. These values indicate that the asynchronous job has ended:
succeeded
,failed
,aborted
. The valueblocked
means that the asynchronous job requires action, such as waiting for a human to approve something. The values that indicate the asynchronous job is in process are:pending
,processing
,paused
.Valid values are:
-
pending
- Request is waiting to run -
processing
- Request is running -
succeeded
- Request has completed successfully -
failed
- Request has failed
-
aborted
- Request was aborted
-
paused
- Request was running, but is now paused -
blocked
- Request is blocked
-
-
requestStatus(optional):
integer(int32)
HTTP status code of the asynchronous asynchronous job request. This status is not the status obtaining when querying the asynchronous job status, but the status response of the asynchronous job when it is completed. This value is only available after the asynchronous job has ended.
-
result(optional):
result
It may be desirable to include the final result in the status resource so that the client can get the result when it polls the service for the status. The result is captured in this optional property. This property should only be used when the HTTP response can be efficiently returned inside the status resource. If this property is present, then the
requestStatus
property will be omitted to avoid duplication. The body of the response is a JSON object comprised of response-specific properties. Non-JSON response data may be supported either by Base64 encoding the non-JSON data as a byte string inside the body property or providing a link to the non-JSON resource in the 'links' property of the status resource. -
startTime(optional):
string(date-time)
Time when the asynchronous job started running. If the asynchronous job has not started this property will not be present. Certain background jobs may not record a start time, so if if the job has started there may not be a start time. Date and time values are in ISO 8601
yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
format using a UTC timezone.
object
Error details for the asynchronous job response when the job fails. This is only available if the asynchronous job has run but failed.
array
HATEOS link to related resources and actions or actions on this resource. Must include at least a 'self' link that contains a link to the canonical representation of the resource.
It may be desirable to include the final result in the status resource so that the client can get the result when it polls the service for the status. The result is captured in this optional property. This property should only be used when the HTTP response can be efficiently returned inside the status resource. If this property is present, then the requestStatus
property will be omitted to avoid duplication. The body of the response is a JSON object comprised of response-specific properties. Non-JSON response data may be supported either by Base64 encoding the non-JSON data as a byte string inside the body property or providing a link to the non-JSON resource in the 'links' property of the status resource.
-
object
HttpResponse
Captures a HTTP response so that it can be returned as structured data, for example capturing a HTTP response for an asynchronous request.
object
REST HATEOAS link and related metadata. If responses provide links (for example, a self
link to the resource itself) the links provided will include one or more of the properties defined on this link structure.
-
href(optional):
string
The target resource URI. URI RFC3986 or URI Template RFC6570. If the value is set to URI Template, then the
templated
property must be set totrue
. -
mediaType(optional):
string
Media type, as defined by RFC 2046, describing the link target.
-
method(optional):
string
HTTP method for requesting the target of the link.
Valid values are:
-
OPTIONS
- HTTP OPTIONS -
HEAD
- HTTP HEAD -
GET
- HTTP GET -
POST
- HTTP POST -
PUT
- HTTP PUT -
PATCH
- HTTP PATCH -
DELETE
- HTTP DELETE
-
-
profile(optional):
string(uri)
Link to the metadata of the resource, such as JSON-schema, that describes the resource expected when dereferencing the target resource.
-
rel(optional):
string
Name of the link relation that, in addition to the type property, can be used to retrieve link details.
-
templated(optional):
boolean
Boolean flag that specifies the
href
property is a URI or URI Template. The property can be assumed to befalse
if the property is not present.
object
Captures a HTTP response so that it can be returned as structured data, for example capturing a HTTP response for an asynchronous request.
-
headers(optional):
array headers
HTTP response headers.
-
status(optional):
object status
HTTP status code response value and reason.
object
HTTP status code response value and reason.
-
code:
integer(int32)
The corresponding HTTP status code for the exception. For exception that includes a resource does not exist would have a HTTP status of
404
. -
reason:
string
Short, human-readable summary of the status code.
object
-
name:
string
Header name.
-
value(optional):
string
Header value.
{
"progress":"blocked",
"completed":false
}
400 Response
401 Response
403 Response
404 Response
-
Cache-Control: string
Directives for caching mechanisms.
-
Content-Length: string
Size of the response body.
-
Content-Type: string
Content type of the response.
-
object
ExceptionDetail
In addition to HTTP error code and error messages, it is often desirable to provide additional information to the client when a request fails. In such cases, the additional information will be included in the response body.
-
object
RequestNotFoundExceptionDetail-allOf[1]
object
In addition to HTTP error code and error messages, it is often desirable to provide additional information to the client when a request fails. In such cases, the additional information will be included in the response body.
-
detail(optional):
string
Description specific to this occurrence of the problem. The human-readable, potentially multi-line details describing the problem in more details.
-
instance(optional):
string(uri)
URI to the link that provides more detail about the error.
-
o:errorCode(optional):
string
Application error code, which is different from HTTP error code. This code should be used to check for specific errors, rather than comparing fields such as the
title
ordetail
. -
o:errorDetails(optional):
array o:errorDetails
Multiple errors can be organized in a hierarchical structure.
-
o:errorPath(optional):
string
XPath or JSON path to indicate where the error occurs.
-
status(optional):
integer(int32)
Corresponding HTTP status code for the error.
-
title(optional):
string
Short, human-readable summary of the problem. It is not advisable to use the title as a way of checking for specific errors, use the
o:errorCode
for this purpose. -
type(optional):
string(uri)
Absolute URI that identifies the problem type. When this URI dereferenced, it should provide a human-readable summary of the problem, for example, as a HTML page.
object
-
request(optional):
string
Request that does not exist or is not visible to the authenticated user.
array
Multiple errors can be organized in a hierarchical structure.
-
object
ExceptionDetail
In addition to HTTP error code and error messages, it is often desirable to provide additional information to the client when a request fails. In such cases, the additional information will be included in the response body.
{
"type":"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1",
"title":"Request Not Found",
"status":"404",
"detail":"Request does not exist or has been deleted, or the authenticated user or client application does not have access to the request.",
"o:errorCode":"OCE-SITEMGMT-009001",
"request":{
"id":"e77229e8-1f44-4c27-bacb-9a99b7c77af7"
}
}
{
"type":"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1",
"title":"Relationship Not Found",
"status":"404",
"detail":"Relationship resource not found. There is a relationship to a resource, but the resource at the end of the relationship does not exist, or the authenticated identity cannot see the resource.",
"o:errorCode":"PAAS-005027"
}