Create Report and ReportManager interfaces

Both interfaces are created based on Telemetry design described in
openbmc/docs/designs/telemetry.md. Both will be implemented in
Telemetry service in openbmc/telemetry repository.
Ref:
  https://github.com/openbmc/docs/blob/master/designs/telemetry.md

Tested:
  - Successful build and verified changes in server.hpp and
    server.cpp.

Change-Id: Id6578ce1d349ee07b8a07b2d597471ba7433a6c0
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com>
diff --git a/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml b/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
new file mode 100644
index 0000000..05a6464
--- /dev/null
+++ b/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
@@ -0,0 +1,65 @@
+description: >
+    Implement to provide reports management. Contain information about report
+    limitations and allows to add report.
+
+methods:
+  - name: AddReport
+    description: >
+        Create new object that represent Report with
+        xyz.openbmc_project.Telemetry.Report interface stored in path
+        /xyz/openbmc_project/Telemetry/Reports/{Domain}/{Name} where
+        Domain and Name are parameters of this method.
+    parameters:
+      - name: name
+        type: string
+        description: >
+            Defines the name of report to be exposed over D-Bus. Service allows
+            to use separator '/' in name to group reports in directory.
+      - name: reportingType
+        type: enum[xyz.openbmc_project.Telemetry.Report.ReportingType]
+        description: Defines report type
+      - name: emitsReadingsUpdate
+        type: boolean
+        description: >
+            Defines presence of PropertiesChanged signal for
+            xyz.openbmc_project.Telmetry.Report.Readings property.
+      - name: logToMetricReportsCollection
+        type: boolean
+        description: >
+            Defines presence of Report in Metric Report Collection in Redfish
+            Telemetry Service.
+      - name: interval
+        type: uint64
+        description: >
+            Defines period of time in milliseconds when Report is updated with
+            new readings. Minimal interval is defined in MinInterval property.
+      - name: metricParams
+        type: array[struct[array[object_path],enum[xyz.openbmc_project.Telemetry.Report.OperationType],string,string]]
+        description: >
+            Array of metric parameters where first parameter is an array of
+            sensors DBus paths. Second parameter specifies operation type of
+            metric. Third parameter is a metric Id and fourth parameter is a
+            metadata, both are used to store user details.
+    returns:
+      - name: reportPath
+        type: object_path
+        description: >
+            Path to new report -> /xyz/openbmc_project/Telemetry/Reports/{name}.
+
+properties:
+  - name: MaxReports
+    type: size
+    description: >
+        Contains the max number of metric reports supported by the Telemetry.
+        This property is added to be compliant with the Redfish Telemetry
+        Service schema, that contains MaxReports property.
+    flags:
+    - const
+  - name: MinInterval
+    type: uint64
+    description: >
+        Minimal allowed time between readings property updates. It limits
+        Interval property in xyz.openbmc_project.Telemetry.Report and
+        interval parameter in AddReport method.
+    flags:
+    - const