fw-update: Provide details on ApplyTime design

Adding support for user to be able to dictate when the image
is updated

Change-Id: I6602aa70424f412871b3c4c6436041e864ea42f5
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/designs/firmware-update-over-redfish.md b/designs/firmware-update-over-redfish.md
index fc6d502..1785a11 100644
--- a/designs/firmware-update-over-redfish.md
+++ b/designs/firmware-update-over-redfish.md
@@ -80,12 +80,14 @@
 - Support firmware update for other targets (power supplies, voltage regulators,
   ...)
 - Support to update multiple targets with the same firmware image at once
-- Support scheduling of when update occurs
+- Support scheduling of when update occurs (Maintenance windows)
 - Support remaining TransferProtocolTypes in UpdateService (CIFS, FTP, SFTP,
   HTTP, HTTPS, NSF, SCP, NFS)
   - TODO: Any update mechanism that doesn't have transport security on its own,
     like FTP, needs a secondary verification mechanism. Update mechanisms that
     have transport security need a way to adjust the trusted root certificates.
+- Support the Task schema to provide progress to user during upload and
+  activation phases
 
 ## Proposed Design
 
@@ -95,14 +97,24 @@
 ```
 Discover UpdateService location
 HttpPushUri = GET https://${bmc}/redfish/v1/UpdateService
-POST <image> https://${bmc}/${HttpPushUri} ApplyTime=Immediate
+POST ApplyTime property in
+  UpdateService/HttpPushUriOptions->HttpPushUriApplyTime object
+  (Immediate or OnReset)
+POST <image> https://${bmc}/${HttpPushUri}
 ```
 This will cause the following on the back-end:
 - Receive the image
 - Copy it internally to the required location in the filesystem (/tmp/images)
 - Wait for the InterfacesAdded signal from /xyz/openbmc_project/software
-- Activate the new image (which may involve a reboot of the BMC)
+- Activate the new image
+- If ApplyTime is Immediate, reboot the BMC or Host
+- If ApplyTime is OnReset, do nothing (user will need to initiate host or bmc
+    reboot to apply image)
 
+Note that the ApplyTime property will be processed by the software management
+stack at the end of the activation.
+Note that the ApplyTime property is global to all firmware update packages and
+will be used for all subsequent firmware update packages.
 
 ### Change the Priority of an Image