description: >
    Implement to provide drive attributes.

properties:
    - name: Capacity
      default: 0
      type: uint64
      description: >
          The size in bytes of the Drive. `0` if cannot be determined.
    - name: Protocol
      default: Unknown
      type: enum[self.DriveProtocol]
      description: >
          The communication protocol used by the Drive.
    - name: Type
      default: Unknown
      type: enum[self.DriveType]
      description: >
          The type of physical form factor of the Drive.
    - name: EncryptionStatus
      default: Unknown
      type: enum[self.DriveEncryptionState]
      description: >
          The current state of encryption on the drive.
    - name: LockedStatus
      default: Unknown
      type: enum[self.DriveLockState]
      description: >
          Indicates if the data on the drive is accessible. This does not
          correspond to write locked
    - name: PredictedMediaLifeLeftPercent
      default: maxint
      type: byte
      description: >
          How much of the drives life is remaining in a percentage from 0-100 .
          If the reading the value is not supported returns the max value for
          the type (255).
    - name: Resettable
      default: false
      type: boolean
      flags:
          - readonly
      description: >
          This property shall indicate whether the Drive is resettable.

enumerations:
    - name: DriveProtocol
      description: >
          Possible communication protocol types
      values:
          - name: SAS
            description: >
                Serial Attached SCSI.
          - name: SATA
            description: >
                Serial AT Attachment.
          - name: NVMe
            description: >
                Non-Volatile Memory Express.
          - name: FC
            description: >
                Fibre Channel.
          - name: eMMC
            description: >
                Embedded MultiMediaCard
          - name: Unknown
            description: >
                The Drive protocol is unknown.
    - name: DriveType
      description: >
          Possible Drive type
      values:
          - name: HDD
            description: >
                A hard disk drive is an electro-mechanical data storage device
                that stores and retrieves digital data using magnetic storage.
          - name: SSD
            description: >
                A solid-state drive is a solid-state storage device that uses
                integrated circuit assemblies to store data persistently.
          - name: Unknown
            description: >
                The Drive type is unknown.
    - name: DriveEncryptionState
      description: >
          Possible encryption states drives could have
      values:
          - name: Encrypted
            description: >
                The drive is in an encrypted state.
          - name: Unencrypted
            description: >
                The drive in in an unencrypted state.
          - name: Unknown
            description: >
                The encryption state of the drive is not known.
    - name: DriveLockState
      description: >
          Possible lock states drives could have
      values:
          - name: Locked
            description: >
                The drive is in a locked state.
          - name: Unlocked
            description: >
                The drive in in unlocked state.
          - name: Unknown
            description: >
                The locked state of the drive is not known.
