description: Implement to provide the chassis power management

properties:
    - name: RequestedPowerTransition
      type: enum[self.Transition]
      default: "Off"
      description: >
          The desired power transition to start on this chassis. This will be
          preserved across AC power cycles of the BMC.
      errors:
          - xyz.openbmc_project.State.Chassis.Error.BMCNotReady

    - name: CurrentPowerState
      type: enum[self.PowerState]
      description: >
          A read-only property describing the current chassis power state. A
          user can determine if a chassis is in transition by comparing the
          CurrentPowerState and RequestedPowerTransition properties.

    - name: CurrentPowerStatus
      type: enum[self.PowerStatus]
      description: >
          A read-only property describing the current chassis power status. This
          property aggregates all available information about the status of the
          power coming into the chassis. Note that this is different then the
          CurrentPowerState in that it provides status of the power coming into
          the chassis, not the actual state of the chassis power.

    - name: LastStateChangeTime
      type: uint64
      description: >
          The last time at which the chassis power changed state, as tracked by
          the CurrentPowerState property, in epoch time, in milliseconds.  This
          can be used to tell when the chassis was last powered on or off.

enumerations:
    - name: Transition
      description: >
          The desired power transition for the chassis
      values:
          - name: "Off"
            description: >
                Chassis power should be off
          - name: "On"
            description: >
                Chassis power should be on
          - name: "PowerCycle"
            description: >
                Chassis power should be cycled from off to on. There will be a 5
                second delay between the off and the on.

    - name: PowerState
      description: >
          The current state of the chassis power
      values:
          - name: "Off"
            description: >
                Chassis power is off
          - name: "TransitioningToOff"
            description: >
                Firmware is transitioning the chassis to an Off state
          - name: "On"
            description: >
                Chassis power is on
          - name: "TransitioningToOn"
            description: >
                Firmware is transitioning the chassis to an On state

    - name: PowerStatus
      description: >
          The current status of the chassis power
      values:
          - name: "Undefined"
            description: >
                Chassis power status is unknown
          - name: "BrownOut"
            description: >
                Chassis power status is in a brownout condition.
          - name: "UninterruptiblePowerSupply"
            description: >
                Chassis power is being provided via an uninterruptible power
                supply. Note that some systems may choose to continue to use
                this status, even once power has returned to the system, to
                indicate the uninterruptible power supply is charging or is
                below a certain threshold of charged. This provides system
                owners the flexibility on whether their system requires a
                certain level of charged uninterruptible power supply to be in a
                'Good' state or not.
          - name: "Good"
            description: >
                Chassis power status is in a good condition

paths:
    - namespace: /xyz/openbmc_project/state
      segments:
          - name: Chassis
            value: chassis
