Update Telemetry Report and ReportManager

For Report interface:
- Added 'Enabled' property. It may be set by user to enable or disable
  readings updates, or can be set by service when certain conditions are
  met.
- Added 'CollectionTimescope' enum, used by ReadingParameters property
  and used by AddReport method in ReportManager.
- Updated 'ReportUpdates' enum with 1 new value:
  -- NewReport. A new report is created, whose name is the current
     metric report name concatenated with the timestamp.
- Updated description of 'Overwrite' ReportUpdate value, to clarify its
  interaction (or lack of it) with AppendLimit.
- Updated 'AppendLimit' description to match redfish description.
- Updated 'ReadingParameters' to include multiple sensors, collection
  timescope and collection duration.
- Fixed typos in some descriptions.

For ReportManger interface:
- Updated 'appendLimit' description in AddReport method to match redfish
  description.
- Updated 'metricParams' in AddReport method to include multiple sensor
  paths, collection timescope and collection duration.

Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>
Change-Id: Icfd8c4f37863ce0663535e9ec492f465709425cc
diff --git a/yaml/xyz/openbmc_project/Telemetry/Report.interface.yaml b/yaml/xyz/openbmc_project/Telemetry/Report.interface.yaml
index 54ceb8c..6d992fc 100644
--- a/yaml/xyz/openbmc_project/Telemetry/Report.interface.yaml
+++ b/yaml/xyz/openbmc_project/Telemetry/Report.interface.yaml
@@ -17,12 +17,13 @@
         Defines if the report configuration is stored in non volatile memory.
         Configuration contains all Report properties excluding Readings.
   - name: ReadingParameters
-    type: array[struct[object_path,enum[self.OperationType],string,string]]
+    type: array[struct[array[object_path],enum[self.OperationType],string,string,enum[self.CollectionTimescope],uint64]]
     description: >
-        Array of structures that contains sensor path that is monitored by
-        Telemetry service, operation type, metric Id and metadata. Metric Id and
-        metadata are used to store user details, e.g. metadata can be used to
-        map sensor name to DBus path.
+        Array of structures that contains array of sensor paths that are
+        monitored by Telemetry service, operation type, metric Id, metadata,
+        collection timescope and collection duration. Metric Id and metadata are
+        used to store user details, e.g. metadata can be used to map sensor name
+        to DBus path.
   - name: Readings
     type: struct[uint64,array[struct[string,string,double,uint64]]]
     description: >
@@ -55,15 +56,23 @@
     description: Defines how Readings array is filled.
   - name: AppendLimit
     type: size
-    description: Defines a limit of readings per sensor.
+    description: Defines the maximum number of entries in 'Readings' property.
+    flags:
+    - readonly
   - name: Interval
     type: uint64
     description: >
         Defines period of time in milliseconds when readings are updated.
+  - name: Enabled
+    type: boolean
+    description: >
+        Indicates if readings in report will be updated. This may be set to
+        false by the service if ReportUpdates property is 'AppendStopsWhenFull'
+        and readings limit specified by AppendLimit is reached.
 
 enumerations:
    - name: OperationType
-     descritpion: Type of action that is executed on readings.
+     description: Type of action that is executed on readings.
      values:
        - name: Single
          description: Store the latest reading.
@@ -72,9 +81,9 @@
        - name: Min
          description: Store minimal reading during defined time period.
        - name: Avg
-         description: Calulate average of readings during defined time period.
+         description: Calculate average of readings during defined time period.
        - name: Sum
-         description: Calulate sum of readings over defined time period.
+         description: Calculate sum of readings over defined time period.
    - name: ReportingType
      description: >
        The type that defines when Readings are updated.
@@ -87,7 +96,7 @@
            On Update method call.
        - name: Periodic
          description: >
-           After period of time defined by ScanPeriod property.
+           After period of time defined by Interval property.
    - name: ReportUpdates
      description: >
        The type that defines how Readings are updated.
@@ -95,7 +104,8 @@
        - name: Overwrite
          description: >
            Last sensor reading is written to Readings overwriting the previous
-           value.
+           value. AppendLimit set by user is ignored. Readings size is equal to
+           count of all sensors across all metrics.
        - name: AppendWrapsWhenFull
          description: >
            Append sensor reading to Readings up to limit specify in AppendLimit
@@ -104,3 +114,27 @@
          description: >
            Append sensor reading to Readings up to limit specify in AppendLimit
            then stop till report update.
+       - name: NewReport
+         description: >
+           A new report is created, whose name is the current metric report name
+           concatenated with the timestamp.
+   - name: CollectionTimescope
+     description: >
+       The time scope of the related metric values.
+     values:
+       - name: Point
+         description: >
+           The corresponding metric apply to a point in time. The reading
+           timestamp in Readings property specifies point in time.
+       - name: Interval
+         description: >
+           The corresponding metric apply to a time interval. The reading
+           timestamp in Readings property specifies the end of the time interval
+           and the collection duration of ReadingParameters specify its duration.
+       - name: StartupInterval
+         description: >
+           The corresponding metric apply to a time interval that began on
+           report creation. The reading timestamp in Readings property specifies
+           the end of the time interval. Collection duration of
+           ReadingParameters specifies the duration between the startup of
+           resource and timestamp.
diff --git a/yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml b/yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
index 16f0efb..baefb9a 100644
--- a/yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
+++ b/yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
@@ -23,7 +23,8 @@
         description: Defines report update type
       - name: appendLimit
         type: size
-        description: Defines a limit of readings per sensor
+        description: >
+            Defines the maximum number of entries in 'Readings' property.
       - name: emitsReadingsUpdate
         type: boolean
         description: >
@@ -40,11 +41,13 @@
             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[object_path,enum[xyz.openbmc_project.Telemetry.Report.OperationType],string,string]]
+        type: array[struct[array[object_path],enum[xyz.openbmc_project.Telemetry.Report.OperationType],string,string,enum[xyz.openbmc_project.Telemetry.Report.CollectionTimescope],uint64]]
         description: >
-            Array of metric parameters where first parameter is a DBus sensor
-            path. Second parameter specifies operation type. Third is a metric
-            Id and fourth is a metadata, both are used to store user details.
+            Array of metric parameters where first parameter is an array of DBus
+            sensor paths. Second parameter specifies operation type. Third is a
+            metric Id and fourth is a metadata, both are used to store user
+            details. Fifth and sixth are used for collection timescope and
+            collection duration.
     returns:
       - name: reportPath
         type: object_path