description: >
    Monitor Post code coming and buffer all of them based on boot cycle
    into file system.

properties:
    - name: CurrentBootCycleCount
      type: uint16
      description: >
          It is used to indicate number of boot cycles that have
          post codes archived. It starts from 1 and is limited to
          MaxBootCycleNum.
    - name: MaxBootCycleNum
      type: uint16
      description: >
          The max cached boot cycles for post code.
          It is used to indicate end user what's the max boot number,
          and make sure get command parameter less than it.
methods:
    - name: GetPostCodesWithTimeStamp
      description: >
          Method to get the cached post codes of the indicated boot cycle with timestamp.
      parameters:
        - name: Index
          type: uint16
          description: >
              Index indicates which boot cycle of post codes is requested.
              1 is for the most recent boot cycle. CurrentBootCycleCount is for the
              oldest boot cycle.
      returns:
        - name: Codes
          type: dict[uint64, struct[uint64,array[byte]]]
          description: >
            An array of post codes and timestamp in microseconds since epoch
    - name: GetPostCodes
      description: >
          Method to get the cached post codes of the indicated boot cycle.
      parameters:
        - name: Index
          type: uint16
          description: >
              Index indicates which boot cycle of post codes is requested.
              1 is for the most recent boot cycle. CurrentBootCycleCount is for the
              oldest boot cycle.
      returns:
        - name: Codes
          type: array[struct[uint64,array[byte]]]
          description: >
            An array of post codes of one boot cycle.
