Add a new interface "OriginatedBy"

This interface can be implemented by the dbus objects
of any application/service that has a requirement to store
the identity of the "originator" that has caused the activity.
This unique id is stored in the "OriginatorId" property and
"OriginatorType" helps identify the type of originator.

Signed-off-by: Asmitha Karunanithi <asmitk01@in.ibm.com>
Change-Id: Ia96592bbe4a7b0057fe66f8e1f09d73837978c30
diff --git a/gen/xyz/openbmc_project/Common/OriginatedBy/meson.build b/gen/xyz/openbmc_project/Common/OriginatedBy/meson.build
new file mode 100644
index 0000000..5a66feb
--- /dev/null
+++ b/gen/xyz/openbmc_project/Common/OriginatedBy/meson.build
@@ -0,0 +1,14 @@
+# Generated file; do not modify.
+generated_sources += custom_target(
+    'xyz/openbmc_project/Common/OriginatedBy__cpp'.underscorify(),
+    input: [ '../../../../../yaml/xyz/openbmc_project/Common/OriginatedBy.interface.yaml',  ],
+    output: [ 'server.cpp', 'server.hpp', 'client.hpp',  ],
+    command: [
+        sdbuspp_gen_meson_prog, '--command', 'cpp',
+        '--output', meson.current_build_dir(),
+        '--tool', sdbusplusplus_prog,
+        '--directory', meson.current_source_dir() / '../../../../../yaml',
+        'xyz/openbmc_project/Common/OriginatedBy',
+    ],
+)
+
diff --git a/gen/xyz/openbmc_project/Common/meson.build b/gen/xyz/openbmc_project/Common/meson.build
index 39344cf..303f5ff 100644
--- a/gen/xyz/openbmc_project/Common/meson.build
+++ b/gen/xyz/openbmc_project/Common/meson.build
@@ -96,6 +96,20 @@
     ],
 )
 
+subdir('OriginatedBy')
+generated_others += custom_target(
+    'xyz/openbmc_project/Common/OriginatedBy__markdown'.underscorify(),
+    input: [ '../../../../yaml/xyz/openbmc_project/Common/OriginatedBy.interface.yaml',  ],
+    output: [ 'OriginatedBy.md' ],
+    command: [
+        sdbuspp_gen_meson_prog, '--command', 'markdown',
+        '--output', meson.current_build_dir(),
+        '--tool', sdbusplusplus_prog,
+        '--directory', meson.current_source_dir() / '../../../../yaml',
+        'xyz/openbmc_project/Common/OriginatedBy',
+    ],
+)
+
 subdir('Progress')
 generated_others += custom_target(
     'xyz/openbmc_project/Common/Progress__markdown'.underscorify(),
diff --git a/yaml/xyz/openbmc_project/Common/OriginatedBy.interface.yaml b/yaml/xyz/openbmc_project/Common/OriginatedBy.interface.yaml
new file mode 100644
index 0000000..10cf61a
--- /dev/null
+++ b/yaml/xyz/openbmc_project/Common/OriginatedBy.interface.yaml
@@ -0,0 +1,34 @@
+description: >
+    Implement to provide unique identifier of originator of the activity
+
+properties:
+    - name: OriginatorId
+      type: string
+      description: >
+          Unique Id of the originator that initiated the respective
+          operation. This is an implementation-defined string described
+          by a value of type OriginatorType. The originator id can be
+          shown in user interfaces but this field should not be used for
+          any programmatic interrogation of an object.
+
+    - name: OriginatorType
+      type: enum[self.OriginatorTypes]
+      description: >
+          Type of the originator that initiated the respective
+          operation.
+
+enumerations:
+    - name: OriginatorTypes
+      description: >
+          Indicates the type of the originator that initiated the operation.
+      values:
+          - name: Client
+            description: >
+                Client of the service that initiated the operation.
+          - name: Internal
+            description: >
+                A process running on the service initiated the operation.
+          - name: SupportingService
+            description: >
+                A process not running on the service but running on a supporting service
+                initiated the operation.