Add interface to enable an object

The interface consists of a boolean property called 'Enabled'. Setting
that to true or false helps determine whether an object implementing
this interface is usable or not.

This will help users to select an object from a collection of similar
objects. For instance, given these objects : setting/permanent/boot and
setting/one-time/boot, one or both of these objects could implement the
Enable interface to allow a user to state how the boot setting should be
applied - the next boot versus all subsequent boots.

Change-Id: I35df5384d459ba7d6cd9afab630f145b5a5c9948
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/xyz/openbmc_project/Object/Enable.interface.yaml b/xyz/openbmc_project/Object/Enable.interface.yaml
new file mode 100644
index 0000000..cf31849
--- /dev/null
+++ b/xyz/openbmc_project/Object/Enable.interface.yaml
@@ -0,0 +1,22 @@
+description: >
+    Implement to enable an object.
+
+    A d-bus object under certain circumstances may have the need to be denoted
+    as "disabled". So the object exists, but it's current state (described by
+    the object properties) can't be relied upon, until the object is "enabled"
+    again. What causes the object to be enabled or disabled - whether it's via
+    an external interface or internal logic - depends on a specific
+    implementation and use-case.
+
+    An example could be a d-bus object that denotes boot settings. However let's
+    say there's a permanent settings object versus a one-time (the next boot)
+    settings object. In this case, one of these objects, typically the one which
+    is not supposed to be used as a default, can implement the Enable interface
+    so that a user can indicate whether this setting object is to be used or
+    not, by setting the Enabled property.
+properties:
+    - name: Enabled
+      type: boolean
+      description: >
+        Whether the object is enabled or not.
+      default: false