Add interface yaml file for user password update feature

Change-Id: I9b23ebcae15e1feee0eb32c42b184c8a429e0977
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
diff --git a/xyz/openbmc_project/Common.errors.yaml b/xyz/openbmc_project/Common.errors.yaml
index 2066005..f6b2734 100644
--- a/xyz/openbmc_project/Common.errors.yaml
+++ b/xyz/openbmc_project/Common.errors.yaml
@@ -4,3 +4,5 @@
   description: The operation failed internally.
 - name: InvalidArgument
   description: Invalid argument was given.
+- name: InsufficientPermission
+  description: Insufficient permission to perform operation
diff --git a/xyz/openbmc_project/Common.metadata.yaml b/xyz/openbmc_project/Common.metadata.yaml
index 669a9b0..e2b76cc 100644
--- a/xyz/openbmc_project/Common.metadata.yaml
+++ b/xyz/openbmc_project/Common.metadata.yaml
@@ -10,3 +10,5 @@
       type: string
 - name: InternalFailure
   level: ERR
+- name: InsufficientPermission
+  level: INFO
diff --git a/xyz/openbmc_project/User/Password.interface.yaml b/xyz/openbmc_project/User/Password.interface.yaml
new file mode 100644
index 0000000..24697a3
--- /dev/null
+++ b/xyz/openbmc_project/User/Password.interface.yaml
@@ -0,0 +1,27 @@
+description: >
+    Implement to provide user password set functionality. Since this
+    needs an authenticated session, there is no need of old password.
+    User ID is part of the dbus object.
+methods:
+    - name: SetPassword
+      description: >
+          Set the user password. If the user already had a password, it will
+          be updated, else sets the password.
+
+          InsufficientPermission error doing so would mean that, the caller
+          does not have required permission to update the password.
+
+          InternalFailure error would mean that, caller had required
+          permissions, but, there was a software error.
+          Errorlog metadata would need to be looked into when this happens.
+          Re-try once on this error and if that fails, do not try anymore.
+      parameters:
+        - name: NewPassword
+          type: string
+          description: >
+              new password string
+      errors:
+        - xyz.openbmc_project.Common.Error.InternalFailure
+        - xyz.openbmc_project.Common.Error.InsufficientPermission
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4