1description: >
2    Implement to provide drive attributes.
3
4properties:
5    - name: Capacity
6      default: 0
7      type: uint64
8      description: >
9          The size in bytes of the Drive. `0` if cannot be determined.
10    - name: Protocol
11      default: Unknown
12      type: enum[self.DriveProtocol]
13      description: >
14          The communication protocol used by the Drive.
15    - name: Type
16      default: Unknown
17      type: enum[self.DriveType]
18      description: >
19          The type of physical form factor of the Drive.
20    - name: EncryptionStatus
21      default: Unknown
22      type: enum[self.DriveEncryptionState]
23      description: >
24          The current state of encryption on the drive.
25    - name: LockedStatus
26      default: Unknown
27      type: enum[self.DriveLockState]
28      description: >
29          Indicates if the data on the drive is accessible. This does not
30          correspond to write locked
31    - name: PredictedMediaLifeLeftPercent
32      default: maxint
33      type: byte
34      description: >
35          How much of the drives life is remaining in a percentage from 0-100 .
36          If the reading the value is not supported returns the max value for
37          the type (255).
38    - name: Resettable
39      default: false
40      type: boolean
41      flags:
42          - readonly
43      description: >
44          This property shall indicate whether the Drive is resettable.
45
46enumerations:
47    - name: DriveProtocol
48      description: >
49          Possible communication protocol types
50      values:
51          - name: SAS
52            description: >
53                Serial Attached SCSI.
54          - name: SATA
55            description: >
56                Serial AT Attachment.
57          - name: NVMe
58            description: >
59                Non-Volatile Memory Express.
60          - name: FC
61            description: >
62                Fibre Channel.
63          - name: eMMC
64            description: >
65                Embedded MultiMediaCard
66          - name: Unknown
67            description: >
68                The Drive protocol is unknown.
69    - name: DriveType
70      description: >
71          Possible Drive type
72      values:
73          - name: HDD
74            description: >
75                A hard disk drive is an electro-mechanical data storage device
76                that stores and retrieves digital data using magnetic storage.
77          - name: SSD
78            description: >
79                A solid-state drive is a solid-state storage device that uses
80                integrated circuit assemblies to store data persistently.
81          - name: Unknown
82            description: >
83                The Drive type is unknown.
84    - name: DriveEncryptionState
85      description: >
86          Possible encryption states drives could have
87      values:
88          - name: Encrypted
89            description: >
90                The drive is in an encrypted state.
91          - name: Unencrypted
92            description: >
93                The drive in in an unencrypted state.
94          - name: Unknown
95            description: >
96                The encryption state of the drive is not known.
97    - name: DriveLockState
98      description: >
99          Possible lock states drives could have
100      values:
101          - name: Locked
102            description: >
103                The drive is in a locked state.
104          - name: Unlocked
105            description: >
106                The drive in in unlocked state.
107          - name: Unknown
108            description: >
109                The locked state of the drive is not known.
110