description: >
    Implement to provide the progress on user requested activity.
    Objects which implements this interface should implement
    xyz.openbmc_project.Object.Delete to delete individual entries.
    The service hosting this interface should clear the entries after
    some time or reaching some number of entries in stable states like
    completed, failed or aborted.

properties:
    - name: Status
      type: enum[self.OperationStatus]
      default: InProgress
      description: >
          Indicate the state of the operation, whether in progress, completed
          aborted or failed. The default should be InProgress during the
          implementation if no input is provided.
    - name: StartTime
      type: uint64
      description: >
          Indicates when the request is created since the Epoch
          (1 Jan 1970 00:00:00 UTC), in microseconds.
    - name: CompletedTime
      type: uint64
      description: >
          Indicates when the state is completed since the Epoch
          (1 Jan 1970 00:00:00 UTC), in microseconds.

enumerations:
    - name: OperationStatus
      description: >
        Status of the activity
      values:
        - name: InProgress
          description: >
           Requested operation is in progress.
        - name: Completed
          description: >
           The operation is completed.
        - name: Failed
          description: >
           The operation encountered a failure.
        - name: Aborted
          description: >
           The operation is aborted.
