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.
30          This does not 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: Unknown
64            description: >
65                The Drive protocol is unknown.
66    - name: DriveType
67      description: >
68          Possible Drive type
69      values:
70          - name: HDD
71            description: >
72                A hard disk drive is an electro-mechanical data storage device
73                that stores and retrieves digital data using magnetic storage.
74          - name: SSD
75            description: >
76                A solid-state drive is a solid-state storage device that uses
77                integrated circuit assemblies to store data persistently.
78          - name: Unknown
79            description: >
80                The Drive type is unknown.
81    - name: DriveEncryptionState
82      description: >
83          Possible encryption states drives could have
84      values:
85          - name: Encrypted
86            description: >
87                The drive is in an encrypted state.
88          - name: Unencrypted
89            description: >
90                The drive in in an unencrypted state.
91          - name: Unknown
92            description: >
93                The encryption state of the drive is not known.
94    - name: DriveLockState
95      description: >
96          Possible lock states drives could have
97      values:
98          - name: Locked
99            description: >
100                The drive is in a locked state.
101          - name: Unlocked
102            description: >
103                The drive in in unlocked state.
104          - name: Unknown
105            description: >
106                The locked state of the drive is not known.
107