When a user requests an asynchronous operation from an extension service, the service can create a task object and add it to an organization's tasks list.
Every vCloud Director organization has a tasks list and accepts requests to add a task to the list. When a client requests an asynchronous operation from a service, the service starts to process the request and also POSTs a Task element to the organization's tasksList URL. vCloud Director adds information such as an id and startTime to the Task, places it on the organization's TasksList, creates an event in the organization's event stream, and returns the Task to the service. The service can then send the Task, as an AMQP message, to vCloud Director, which sends it as a response to the client that made the original request.
Because of the diversity of sources from which an extension service can draw references to the User, Owner, and Organization elements of a Task, it may not always be possible for every client to resolve such references. For example, if a service creates an object in an organization of which you are not a member, you will not be able to resolve the reference to the object in the Owner element of the Task.
The server creates a task object and adds it to the organization's tasks list, and returns the representation of the object to the service. To return the XML representation of the task object to the client that made the original request, the service must create a JSON representation of the Task and return it to vCloud Director AMQP service.
POST https://vcloud.example.com/api/tasksList/26 Content-Type: application/vnd.vmware.vcloud.task+xml ... <?xml version="1.0" encoding="UTF-8"?> <Task xmlns="http://www.vmware.com/vcloud/v1.5" status="running" serviceNamespace="org.example.vcd.backup" type="application/vnd.vmware.vcloud.task+xml" operation="Backup in progress for virtual machine with id 7b91b053-2b..." operationName="backupInProgress" name="task"> <Owner type="application/vnd.vmware.vcloud.org+xml" name="Finance" href="https://vcloud.example.com/api/org/26" id="26" /> <User type="application/vnd.vmware.admin.user+xml" name="bob" href="https://vcloud.example.com/api/admin/user/39" /> <Progress>10</Progress> </Task>
200 OK Content-Type: application/vnd.vmware.vcloud.task+xml ... <Task href="https://vcloud.example.com/api/task/604" ... operationName="backupInProgress" ... > ... </Task>