Apply Options interface for Software

Apply Options interface is used to pass the settings related to
firmware image activation such as ClearConfig.
ClearConfig property is used to denote whether to clear firmware
configurations along with firmware image activation or not.

Example case:
BIOS usually requires its NVRAM configuration to be updated or
erased for certain BIOS firmware updates. Current implementation
doesn't support to take this option and provide interface to do
the necessary actions.

Signed-off-by: Vikram Bodireddy <vikram.bodireddy@linux.intel.com>
Change-Id: Ic504fe0183890ebc564736052271507911ce20ae
diff --git a/xyz/openbmc_project/Software/ApplyOptions.interface.yaml b/xyz/openbmc_project/Software/ApplyOptions.interface.yaml
new file mode 100644
index 0000000..96fe78f
--- /dev/null
+++ b/xyz/openbmc_project/Software/ApplyOptions.interface.yaml
@@ -0,0 +1,17 @@
+description: >
+    To implement the Activation apply options for a newly uploaded firmware
+    image. The apply options property is specific to each firmware update
+    and is used during firmware activation. ApplyOptions usage during
+    firmware activation is implementation specific, not all firmware
+    targets need ApplyOptions. This property is removed after activation
+    of the firmware is done and when the firmware goes to Active state.
+    The default value of this property is false.
+properties:
+    - name: ClearConfig
+      type: boolean
+      default: false
+      description: >
+        This property indicates whether to clear the software configurations
+        when the firmware image update is getting applied. A value of true
+        indicates the firmware configurations should be cleared along with
+        firmware image activation.