description: >
    An interface to set whether the power supplies are redundant.
properties:
    - name: PowerSupplyRedundancyEnabled
      type: boolean
      flags:
          - const
      description: >
          When true, the power supplies are redundant.
    - name: RotationEnabled
      type: boolean
      description: >
          Cold redundancy rotation enabled or not.
    - name: RotationAlgorithm
      type: enum[self.Algo]
      description: >
          Rotation algorithm use for cold redundancy. 0 is BMC Specific, 1 is User
          Specific.
    - name: RotationRankOrder
      type: array[byte]
      description: >
          The rank order for each PSU, 0 means will not go into cold standby
          state.
    - name: PeriodOfRotation
      type: uint32
      description: >
          Rotation Period for cold redundancy. If rotation algorithm is BMC
          Specific, and rotation is enabled, BMC will change PSU rank order after
          this time. The unit of this PeriodOfRotation is in seconds.
    - name: ColdRedundancyStatus
      type: enum[self.Status]
      description: >
          Cold redundancy setting status, set in progress or set completed.
    - name: PSUNumber
      type: byte
      description: >
          Number of PSUs are currently on system.
    - name: RedundantCount
      type: byte
      description: >
          The min number of PSUs in the system required to obtain redundancy
      default: 2

enumerations:
    - name: Algo
      description: >
          Rotation algorithm use for cold redundancy.
      values:
          - name: bmcSpecific
            description: >
                With BMC Specific algorithm, when rotation happen, BMC will add 1 to
                the rank order in each PSU and change the last rank order to the
                first rank order.
          - name: userSpecific
            description: >
                With User Specific algorithm, user need to set the RotationRankOrder
                every time before rotation happen, then BMC will update the rank
                order to PSU.
    - name: Status
      description: >
          Cold redundancy setting status.
      values:
          - name: inProgress
            description: >
                This status is only use for multi-node system, after any of the
                property setting on one node, before all the nodes sync to same
                value, the status will show in progress.
          - name: completed
            description: >
                For single ndoe system, the status always keep show completed. For
                multi-node system, only after all the nodes sync to same value of
                the properties, the status will be completed.
