- Consumer prepares to execute a series of similar Requests to execute the same Plan repeatedly, each with different input parameter values
- GETs desired service provider and looks up/saves
- Automation Request creation factory
- GETs all Automation Plans (could also get a specific plan, if known)
- Select the Automation Plan to be executed (might also be an external input)
- GET the parameters expected when a Job is created for this plan (intentionally left vague, see discussion below)
- For each request the consumer needs to make
- Consumer creates the Automation Request
- Build an Automation Request RDF document
- Indicates that it is a “smart” client in the RDF, i.e. capable of processing 200 (OK) responses
- POST the Automation Request to the provider
- If the provider is able to complete the request quickly
- Build response consisting of the Request and the Result
- Else the provider executes the request asynchronously
- Build response consisting of the Request
- Consumer tests the POST response status code
- If 200 (OK)
- POST Response payload contains its Result
- Consumer processes the Result (synch or asynch, implementation specific)
- Else If 201 (Created) or 204 (No Content)
- Save Request URL from response Location header
- Else Request not successful, handle
- Poll (if necessary) until all requests have completed