description: >
    Implement to provide host interface support

methods:
    - name: Execute
      description: >
          Execute the requested command by the caller. This command will be
          processed in first in first out order. See the Command enum
          description below for details on all supported commands.
      parameters:
          - name: command
            type: enum[self.Command]
            description: Requested command to execute against the host
      errors:
          - self.Error.CommandNotSupported

signals:
    - name: CommandComplete
      description: >
          Signal indicating that a Command has completed
      properties:
          - name: command
            type: enum[self.Command]
            description: Executed command
          - name: result
            type: enum[self.Result]
            description: Result of the command execution

enumerations:
    - name: Command
      description: >
          The command to execute against the host
      values:
          - name: SoftOff
            description: >
                Host firmware should do a clean shutdown and request a chassis power
                off to the BMC when complete.  This command will return once the
                command has been sent to the host.
          - name: Heartbeat
            description: >
                Note: This is in the process of being deprecated in favor of the
                new xyz.openbmc_project.Condition.HostFirmware interface.
                Used to determine if the host is running and functional.  This
                command will return once the command has been sent to the host.
                The response to the attention and the reading of the command
                provides the needed functional information.

    - name: Result
      description: >
          The result of the command execution
      values:
          - name: Success
            description: Command execution was a success
          - name: Failure
            description: Command execution was a failure
