xref: /openbmc/bmcweb/features/redfish/schema/dmtf/json-schema/Battery.v1_4_0.json (revision c6d7a45d427f9a6d9e761afcf305761dca60d7cf)
1*c6d7a45dSGunnar Mills{
2*c6d7a45dSGunnar Mills    "$id": "http://redfish.dmtf.org/schemas/v1/Battery.v1_4_0.json",
3*c6d7a45dSGunnar Mills    "$ref": "#/definitions/Battery",
4*c6d7a45dSGunnar Mills    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
5*c6d7a45dSGunnar Mills    "copyright": "Copyright 2014-2025 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
6*c6d7a45dSGunnar Mills    "definitions": {
7*c6d7a45dSGunnar Mills        "Actions": {
8*c6d7a45dSGunnar Mills            "additionalProperties": false,
9*c6d7a45dSGunnar Mills            "description": "The available actions for this resource.",
10*c6d7a45dSGunnar Mills            "longDescription": "This type shall contain the available actions for this resource.",
11*c6d7a45dSGunnar Mills            "patternProperties": {
12*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
13*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
14*c6d7a45dSGunnar Mills                    "type": [
15*c6d7a45dSGunnar Mills                        "array",
16*c6d7a45dSGunnar Mills                        "boolean",
17*c6d7a45dSGunnar Mills                        "integer",
18*c6d7a45dSGunnar Mills                        "number",
19*c6d7a45dSGunnar Mills                        "null",
20*c6d7a45dSGunnar Mills                        "object",
21*c6d7a45dSGunnar Mills                        "string"
22*c6d7a45dSGunnar Mills                    ]
23*c6d7a45dSGunnar Mills                }
24*c6d7a45dSGunnar Mills            },
25*c6d7a45dSGunnar Mills            "properties": {
26*c6d7a45dSGunnar Mills                "#Battery.Calibrate": {
27*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/Calibrate"
28*c6d7a45dSGunnar Mills                },
29*c6d7a45dSGunnar Mills                "#Battery.Reset": {
30*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/Reset"
31*c6d7a45dSGunnar Mills                },
32*c6d7a45dSGunnar Mills                "#Battery.SelfTest": {
33*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/SelfTest"
34*c6d7a45dSGunnar Mills                },
35*c6d7a45dSGunnar Mills                "Oem": {
36*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/OemActions",
37*c6d7a45dSGunnar Mills                    "description": "The available OEM-specific actions for this resource.",
38*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
39*c6d7a45dSGunnar Mills                }
40*c6d7a45dSGunnar Mills            },
41*c6d7a45dSGunnar Mills            "type": "object"
42*c6d7a45dSGunnar Mills        },
43*c6d7a45dSGunnar Mills        "Battery": {
44*c6d7a45dSGunnar Mills            "additionalProperties": false,
45*c6d7a45dSGunnar Mills            "description": "The `Battery` schema describes a unit of energy storage, including batteries and supercapacitors, used to provide systems or components within a system with power during a power-loss event or to store energy for later use.  It also describes the location, such as a slot, socket, or bay, where a unit can be installed by populating a resource instance with an absent state if a unit is not present.",
46*c6d7a45dSGunnar Mills            "longDescription": "This resource shall represent an energy storage device for a Redfish implementation.  It may also represent a location, such as a slot, socket, or bay, where a unit may be installed if the `State` property within the `Status` property contains `Absent`.",
47*c6d7a45dSGunnar Mills            "patternProperties": {
48*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
49*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
50*c6d7a45dSGunnar Mills                    "type": [
51*c6d7a45dSGunnar Mills                        "array",
52*c6d7a45dSGunnar Mills                        "boolean",
53*c6d7a45dSGunnar Mills                        "integer",
54*c6d7a45dSGunnar Mills                        "number",
55*c6d7a45dSGunnar Mills                        "null",
56*c6d7a45dSGunnar Mills                        "object",
57*c6d7a45dSGunnar Mills                        "string"
58*c6d7a45dSGunnar Mills                    ]
59*c6d7a45dSGunnar Mills                }
60*c6d7a45dSGunnar Mills            },
61*c6d7a45dSGunnar Mills            "properties": {
62*c6d7a45dSGunnar Mills                "@odata.context": {
63*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
64*c6d7a45dSGunnar Mills                },
65*c6d7a45dSGunnar Mills                "@odata.etag": {
66*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
67*c6d7a45dSGunnar Mills                },
68*c6d7a45dSGunnar Mills                "@odata.id": {
69*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
70*c6d7a45dSGunnar Mills                },
71*c6d7a45dSGunnar Mills                "@odata.type": {
72*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
73*c6d7a45dSGunnar Mills                },
74*c6d7a45dSGunnar Mills                "Actions": {
75*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/Actions",
76*c6d7a45dSGunnar Mills                    "description": "The available actions for this resource.",
77*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the available actions for this resource."
78*c6d7a45dSGunnar Mills                },
79*c6d7a45dSGunnar Mills                "Assembly": {
80*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
81*c6d7a45dSGunnar Mills                    "description": "The link to the assembly associated with this battery.",
82*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `Assembly`.",
83*c6d7a45dSGunnar Mills                    "readonly": true
84*c6d7a45dSGunnar Mills                },
85*c6d7a45dSGunnar Mills                "BatteryChemistryType": {
86*c6d7a45dSGunnar Mills                    "anyOf": [
87*c6d7a45dSGunnar Mills                        {
88*c6d7a45dSGunnar Mills                            "$ref": "#/definitions/BatteryChemistryType"
89*c6d7a45dSGunnar Mills                        },
90*c6d7a45dSGunnar Mills                        {
91*c6d7a45dSGunnar Mills                            "type": "null"
92*c6d7a45dSGunnar Mills                        }
93*c6d7a45dSGunnar Mills                    ],
94*c6d7a45dSGunnar Mills                    "description": "The chemistry of the battery.",
95*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the chemistry of the battery.  This property shall only be present if the `EnergyStorageType` property contains `Battery`.",
96*c6d7a45dSGunnar Mills                    "readonly": true,
97*c6d7a45dSGunnar Mills                    "versionAdded": "v1_4_0"
98*c6d7a45dSGunnar Mills                },
99*c6d7a45dSGunnar Mills                "CapacityActualAmpHours": {
100*c6d7a45dSGunnar Mills                    "description": "The actual maximum capacity of this battery in amp-hour units.",
101*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the actual maximum capacity of this battery in amp-hour units.",
102*c6d7a45dSGunnar Mills                    "minimum": 0,
103*c6d7a45dSGunnar Mills                    "readonly": true,
104*c6d7a45dSGunnar Mills                    "type": [
105*c6d7a45dSGunnar Mills                        "number",
106*c6d7a45dSGunnar Mills                        "null"
107*c6d7a45dSGunnar Mills                    ],
108*c6d7a45dSGunnar Mills                    "units": "A.h"
109*c6d7a45dSGunnar Mills                },
110*c6d7a45dSGunnar Mills                "CapacityActualWattHours": {
111*c6d7a45dSGunnar Mills                    "description": "The actual maximum capacity of this battery in watt-hour units.",
112*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the actual maximum capacity of this battery in watt-hour units.",
113*c6d7a45dSGunnar Mills                    "minimum": 0,
114*c6d7a45dSGunnar Mills                    "readonly": true,
115*c6d7a45dSGunnar Mills                    "type": [
116*c6d7a45dSGunnar Mills                        "number",
117*c6d7a45dSGunnar Mills                        "null"
118*c6d7a45dSGunnar Mills                    ],
119*c6d7a45dSGunnar Mills                    "units": "W.h"
120*c6d7a45dSGunnar Mills                },
121*c6d7a45dSGunnar Mills                "CapacityRatedAmpHours": {
122*c6d7a45dSGunnar Mills                    "description": "The rated maximum capacity of this battery in amp-hour units.",
123*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the rated maximum capacity of this battery in amp-hour units.",
124*c6d7a45dSGunnar Mills                    "minimum": 0,
125*c6d7a45dSGunnar Mills                    "readonly": true,
126*c6d7a45dSGunnar Mills                    "type": [
127*c6d7a45dSGunnar Mills                        "number",
128*c6d7a45dSGunnar Mills                        "null"
129*c6d7a45dSGunnar Mills                    ],
130*c6d7a45dSGunnar Mills                    "units": "A.h"
131*c6d7a45dSGunnar Mills                },
132*c6d7a45dSGunnar Mills                "CapacityRatedWattHours": {
133*c6d7a45dSGunnar Mills                    "description": "The rated maximum capacity of this battery in watt-hour units.",
134*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the rated maximum capacity of this battery in watt-hour units.",
135*c6d7a45dSGunnar Mills                    "minimum": 0,
136*c6d7a45dSGunnar Mills                    "readonly": true,
137*c6d7a45dSGunnar Mills                    "type": [
138*c6d7a45dSGunnar Mills                        "number",
139*c6d7a45dSGunnar Mills                        "null"
140*c6d7a45dSGunnar Mills                    ],
141*c6d7a45dSGunnar Mills                    "units": "W.h"
142*c6d7a45dSGunnar Mills                },
143*c6d7a45dSGunnar Mills                "ChargeState": {
144*c6d7a45dSGunnar Mills                    "anyOf": [
145*c6d7a45dSGunnar Mills                        {
146*c6d7a45dSGunnar Mills                            "$ref": "#/definitions/ChargeState"
147*c6d7a45dSGunnar Mills                        },
148*c6d7a45dSGunnar Mills                        {
149*c6d7a45dSGunnar Mills                            "type": "null"
150*c6d7a45dSGunnar Mills                        }
151*c6d7a45dSGunnar Mills                    ],
152*c6d7a45dSGunnar Mills                    "description": "The charge state of this battery.",
153*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the charge state of this battery.",
154*c6d7a45dSGunnar Mills                    "readonly": true
155*c6d7a45dSGunnar Mills                },
156*c6d7a45dSGunnar Mills                "Description": {
157*c6d7a45dSGunnar Mills                    "anyOf": [
158*c6d7a45dSGunnar Mills                        {
159*c6d7a45dSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
160*c6d7a45dSGunnar Mills                        },
161*c6d7a45dSGunnar Mills                        {
162*c6d7a45dSGunnar Mills                            "type": "null"
163*c6d7a45dSGunnar Mills                        }
164*c6d7a45dSGunnar Mills                    ],
165*c6d7a45dSGunnar Mills                    "readonly": true
166*c6d7a45dSGunnar Mills                },
167*c6d7a45dSGunnar Mills                "EnergyStorageType": {
168*c6d7a45dSGunnar Mills                    "anyOf": [
169*c6d7a45dSGunnar Mills                        {
170*c6d7a45dSGunnar Mills                            "$ref": "#/definitions/EnergyStorageType"
171*c6d7a45dSGunnar Mills                        },
172*c6d7a45dSGunnar Mills                        {
173*c6d7a45dSGunnar Mills                            "type": "null"
174*c6d7a45dSGunnar Mills                        }
175*c6d7a45dSGunnar Mills                    ],
176*c6d7a45dSGunnar Mills                    "description": "The type of energy storage technology used in the battery.",
177*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the energy storage technology used in the battery.",
178*c6d7a45dSGunnar Mills                    "readonly": true,
179*c6d7a45dSGunnar Mills                    "versionAdded": "v1_4_0"
180*c6d7a45dSGunnar Mills                },
181*c6d7a45dSGunnar Mills                "FirmwareVersion": {
182*c6d7a45dSGunnar Mills                    "description": "The firmware version for this battery.",
183*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the firmware version as defined by the manufacturer for this battery.",
184*c6d7a45dSGunnar Mills                    "readonly": true,
185*c6d7a45dSGunnar Mills                    "type": [
186*c6d7a45dSGunnar Mills                        "string",
187*c6d7a45dSGunnar Mills                        "null"
188*c6d7a45dSGunnar Mills                    ]
189*c6d7a45dSGunnar Mills                },
190*c6d7a45dSGunnar Mills                "HotPluggable": {
191*c6d7a45dSGunnar Mills                    "description": "An indication of whether this device can be inserted or removed while the equipment is in operation.",
192*c6d7a45dSGunnar Mills                    "longDescription": "This property shall indicate whether the device can be inserted or removed while the underlying equipment otherwise remains in its current operational state.  Devices indicated as hot-pluggable shall allow the device to become operable without altering the operational state of the underlying equipment.  Devices that cannot be inserted or removed from equipment in operation, or devices that cannot become operable without affecting the operational state of that equipment, shall be indicated as not hot-pluggable.",
193*c6d7a45dSGunnar Mills                    "readonly": true,
194*c6d7a45dSGunnar Mills                    "type": [
195*c6d7a45dSGunnar Mills                        "boolean",
196*c6d7a45dSGunnar Mills                        "null"
197*c6d7a45dSGunnar Mills                    ]
198*c6d7a45dSGunnar Mills                },
199*c6d7a45dSGunnar Mills                "Id": {
200*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
201*c6d7a45dSGunnar Mills                    "readonly": true
202*c6d7a45dSGunnar Mills                },
203*c6d7a45dSGunnar Mills                "Links": {
204*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/Links",
205*c6d7a45dSGunnar Mills                    "description": "The links to other resources that are related to this resource.",
206*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource.",
207*c6d7a45dSGunnar Mills                    "versionAdded": "v1_1_0"
208*c6d7a45dSGunnar Mills                },
209*c6d7a45dSGunnar Mills                "Location": {
210*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location",
211*c6d7a45dSGunnar Mills                    "description": "The location of the battery.",
212*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the location information of this battery."
213*c6d7a45dSGunnar Mills                },
214*c6d7a45dSGunnar Mills                "LocationIndicatorActive": {
215*c6d7a45dSGunnar Mills                    "description": "An indicator allowing an operator to physically locate this resource.",
216*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the state of the indicator used to physically identify or locate this resource.",
217*c6d7a45dSGunnar Mills                    "readonly": false,
218*c6d7a45dSGunnar Mills                    "type": [
219*c6d7a45dSGunnar Mills                        "boolean",
220*c6d7a45dSGunnar Mills                        "null"
221*c6d7a45dSGunnar Mills                    ]
222*c6d7a45dSGunnar Mills                },
223*c6d7a45dSGunnar Mills                "Manufacturer": {
224*c6d7a45dSGunnar Mills                    "description": "The manufacturer of this battery.",
225*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the name of the organization responsible for producing the battery.  This organization may be the entity from whom the battery is purchased, but this is not necessarily true.",
226*c6d7a45dSGunnar Mills                    "readonly": true,
227*c6d7a45dSGunnar Mills                    "type": [
228*c6d7a45dSGunnar Mills                        "string",
229*c6d7a45dSGunnar Mills                        "null"
230*c6d7a45dSGunnar Mills                    ]
231*c6d7a45dSGunnar Mills                },
232*c6d7a45dSGunnar Mills                "MaxChargeRateAmps": {
233*c6d7a45dSGunnar Mills                    "description": "The maximum charge rate at the input of this battery in amp units.",
234*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the maximum charge rate at the input of this battery in amp units.",
235*c6d7a45dSGunnar Mills                    "minimum": 0,
236*c6d7a45dSGunnar Mills                    "readonly": true,
237*c6d7a45dSGunnar Mills                    "type": [
238*c6d7a45dSGunnar Mills                        "number",
239*c6d7a45dSGunnar Mills                        "null"
240*c6d7a45dSGunnar Mills                    ],
241*c6d7a45dSGunnar Mills                    "units": "A"
242*c6d7a45dSGunnar Mills                },
243*c6d7a45dSGunnar Mills                "MaxChargeVoltage": {
244*c6d7a45dSGunnar Mills                    "description": "The maximum charge voltage across the cell pack of this battery when it is fully charged.",
245*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the maximum charge voltage across the cell pack of this battery when it is fully charged.  This property should not be present if the battery contains an internal charger that regulates the voltage applied to the cell pack from the input of the battery.",
246*c6d7a45dSGunnar Mills                    "minimum": 0,
247*c6d7a45dSGunnar Mills                    "readonly": true,
248*c6d7a45dSGunnar Mills                    "type": [
249*c6d7a45dSGunnar Mills                        "number",
250*c6d7a45dSGunnar Mills                        "null"
251*c6d7a45dSGunnar Mills                    ],
252*c6d7a45dSGunnar Mills                    "units": "V"
253*c6d7a45dSGunnar Mills                },
254*c6d7a45dSGunnar Mills                "MaxDischargeRateAmps": {
255*c6d7a45dSGunnar Mills                    "description": "The maximum discharge rate at the output of this battery in amp units.",
256*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the maximum discharge rate at the output of this battery in amp units.",
257*c6d7a45dSGunnar Mills                    "minimum": 0,
258*c6d7a45dSGunnar Mills                    "readonly": true,
259*c6d7a45dSGunnar Mills                    "type": [
260*c6d7a45dSGunnar Mills                        "number",
261*c6d7a45dSGunnar Mills                        "null"
262*c6d7a45dSGunnar Mills                    ],
263*c6d7a45dSGunnar Mills                    "units": "A"
264*c6d7a45dSGunnar Mills                },
265*c6d7a45dSGunnar Mills                "Metrics": {
266*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/BatteryMetrics.json#/definitions/BatteryMetrics",
267*c6d7a45dSGunnar Mills                    "description": "The link to the battery metrics resource associated with this battery.",
268*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `BatteryMetrics`.",
269*c6d7a45dSGunnar Mills                    "readonly": true
270*c6d7a45dSGunnar Mills                },
271*c6d7a45dSGunnar Mills                "Model": {
272*c6d7a45dSGunnar Mills                    "description": "The model number for this battery.",
273*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the model information as defined by the manufacturer for this battery.",
274*c6d7a45dSGunnar Mills                    "readonly": true,
275*c6d7a45dSGunnar Mills                    "type": [
276*c6d7a45dSGunnar Mills                        "string",
277*c6d7a45dSGunnar Mills                        "null"
278*c6d7a45dSGunnar Mills                    ]
279*c6d7a45dSGunnar Mills                },
280*c6d7a45dSGunnar Mills                "Name": {
281*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
282*c6d7a45dSGunnar Mills                    "readonly": true
283*c6d7a45dSGunnar Mills                },
284*c6d7a45dSGunnar Mills                "NominalOutputVoltage": {
285*c6d7a45dSGunnar Mills                    "description": "The nominal output voltage of this battery.",
286*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the nominal output voltage of this battery.",
287*c6d7a45dSGunnar Mills                    "minimum": 0,
288*c6d7a45dSGunnar Mills                    "readonly": true,
289*c6d7a45dSGunnar Mills                    "type": [
290*c6d7a45dSGunnar Mills                        "number",
291*c6d7a45dSGunnar Mills                        "null"
292*c6d7a45dSGunnar Mills                    ],
293*c6d7a45dSGunnar Mills                    "units": "V",
294*c6d7a45dSGunnar Mills                    "versionAdded": "v1_3_0"
295*c6d7a45dSGunnar Mills                },
296*c6d7a45dSGunnar Mills                "Oem": {
297*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
298*c6d7a45dSGunnar Mills                    "description": "The OEM extension property.",
299*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
300*c6d7a45dSGunnar Mills                },
301*c6d7a45dSGunnar Mills                "PartNumber": {
302*c6d7a45dSGunnar Mills                    "description": "The part number for this battery.",
303*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the part number as defined by the manufacturer for this battery.",
304*c6d7a45dSGunnar Mills                    "readonly": true,
305*c6d7a45dSGunnar Mills                    "type": [
306*c6d7a45dSGunnar Mills                        "string",
307*c6d7a45dSGunnar Mills                        "null"
308*c6d7a45dSGunnar Mills                    ]
309*c6d7a45dSGunnar Mills                },
310*c6d7a45dSGunnar Mills                "ProductionDate": {
311*c6d7a45dSGunnar Mills                    "description": "The production or manufacturing date of this battery.",
312*c6d7a45dSGunnar Mills                    "format": "date-time",
313*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the date of production or manufacture for this battery.",
314*c6d7a45dSGunnar Mills                    "readonly": true,
315*c6d7a45dSGunnar Mills                    "type": [
316*c6d7a45dSGunnar Mills                        "string",
317*c6d7a45dSGunnar Mills                        "null"
318*c6d7a45dSGunnar Mills                    ]
319*c6d7a45dSGunnar Mills                },
320*c6d7a45dSGunnar Mills                "Replaceable": {
321*c6d7a45dSGunnar Mills                    "description": "An indication of whether this component can be independently replaced as allowed by the vendor's replacement policy.",
322*c6d7a45dSGunnar Mills                    "longDescription": "This property shall indicate whether this component can be independently replaced as allowed by the vendor's replacement policy.  A value of `false` indicates the component needs to be replaced by policy as part of another component.  If the `LocationType` property of this component contains `Embedded`, this property shall contain `false`.",
323*c6d7a45dSGunnar Mills                    "readonly": true,
324*c6d7a45dSGunnar Mills                    "type": [
325*c6d7a45dSGunnar Mills                        "boolean",
326*c6d7a45dSGunnar Mills                        "null"
327*c6d7a45dSGunnar Mills                    ],
328*c6d7a45dSGunnar Mills                    "versionAdded": "v1_2_0"
329*c6d7a45dSGunnar Mills                },
330*c6d7a45dSGunnar Mills                "SerialNumber": {
331*c6d7a45dSGunnar Mills                    "description": "The serial number for this battery.",
332*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the serial number as defined by the manufacturer for this battery.",
333*c6d7a45dSGunnar Mills                    "readonly": true,
334*c6d7a45dSGunnar Mills                    "type": [
335*c6d7a45dSGunnar Mills                        "string",
336*c6d7a45dSGunnar Mills                        "null"
337*c6d7a45dSGunnar Mills                    ]
338*c6d7a45dSGunnar Mills                },
339*c6d7a45dSGunnar Mills                "SparePartNumber": {
340*c6d7a45dSGunnar Mills                    "description": "The spare part number for this battery.",
341*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the spare or replacement part number as defined by the manufacturer for this battery.",
342*c6d7a45dSGunnar Mills                    "readonly": true,
343*c6d7a45dSGunnar Mills                    "type": [
344*c6d7a45dSGunnar Mills                        "string",
345*c6d7a45dSGunnar Mills                        "null"
346*c6d7a45dSGunnar Mills                    ]
347*c6d7a45dSGunnar Mills                },
348*c6d7a45dSGunnar Mills                "StateOfHealthPercent": {
349*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Sensor.json#/definitions/SensorExcerpt",
350*c6d7a45dSGunnar Mills                    "description": "The state of health (percent) of this battery.",
351*c6d7a45dSGunnar Mills                    "excerptCopy": "SensorExcerpt",
352*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the state of health, in percent units, of this battery.  The value of the `DataSourceUri` property, if present, shall reference a resource of type `Sensor` with the `ReadingType` property containing the value `Percent`."
353*c6d7a45dSGunnar Mills                },
354*c6d7a45dSGunnar Mills                "Status": {
355*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
356*c6d7a45dSGunnar Mills                    "description": "The status and health of the resource and its subordinate or dependent resources.",
357*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain any status or health properties of the resource."
358*c6d7a45dSGunnar Mills                },
359*c6d7a45dSGunnar Mills                "Version": {
360*c6d7a45dSGunnar Mills                    "description": "The hardware version of this battery.",
361*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the hardware version of this battery as determined by the vendor or supplier.",
362*c6d7a45dSGunnar Mills                    "readonly": true,
363*c6d7a45dSGunnar Mills                    "type": [
364*c6d7a45dSGunnar Mills                        "string",
365*c6d7a45dSGunnar Mills                        "null"
366*c6d7a45dSGunnar Mills                    ]
367*c6d7a45dSGunnar Mills                }
368*c6d7a45dSGunnar Mills            },
369*c6d7a45dSGunnar Mills            "required": [
370*c6d7a45dSGunnar Mills                "@odata.id",
371*c6d7a45dSGunnar Mills                "@odata.type",
372*c6d7a45dSGunnar Mills                "Id",
373*c6d7a45dSGunnar Mills                "Name"
374*c6d7a45dSGunnar Mills            ],
375*c6d7a45dSGunnar Mills            "type": "object"
376*c6d7a45dSGunnar Mills        },
377*c6d7a45dSGunnar Mills        "BatteryChemistryType": {
378*c6d7a45dSGunnar Mills            "enum": [
379*c6d7a45dSGunnar Mills                "LeadAcid",
380*c6d7a45dSGunnar Mills                "LithiumIon",
381*c6d7a45dSGunnar Mills                "NickelCadmium"
382*c6d7a45dSGunnar Mills            ],
383*c6d7a45dSGunnar Mills            "enumDescriptions": {
384*c6d7a45dSGunnar Mills                "LeadAcid": "Chemical energy stored through lead and acid electrochemical reactions.",
385*c6d7a45dSGunnar Mills                "LithiumIon": "Chemical energy stored through lithium ion intercalation reactions.",
386*c6d7a45dSGunnar Mills                "NickelCadmium": "Chemical energy stored through nickel and cadmium electrochemical reactions."
387*c6d7a45dSGunnar Mills            },
388*c6d7a45dSGunnar Mills            "enumLongDescriptions": {
389*c6d7a45dSGunnar Mills                "LeadAcid": "The value shall indicate that the battery stores chemical energy using lead and acid electrochemical reactions.",
390*c6d7a45dSGunnar Mills                "LithiumIon": "The value shall indicate that the battery stores chemical energy using lithium ion intercalation.",
391*c6d7a45dSGunnar Mills                "NickelCadmium": "The value shall indicate that the battery stores chemical energy using nickel and cadmium electrochemical reactions."
392*c6d7a45dSGunnar Mills            },
393*c6d7a45dSGunnar Mills            "type": "string"
394*c6d7a45dSGunnar Mills        },
395*c6d7a45dSGunnar Mills        "Calibrate": {
396*c6d7a45dSGunnar Mills            "additionalProperties": false,
397*c6d7a45dSGunnar Mills            "description": "This action performs a self-calibration, or learn cycle, of the battery.",
398*c6d7a45dSGunnar Mills            "longDescription": "This action shall perform a self-calibration, or learn cycle, of the battery.",
399*c6d7a45dSGunnar Mills            "parameters": {},
400*c6d7a45dSGunnar Mills            "patternProperties": {
401*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
402*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
403*c6d7a45dSGunnar Mills                    "type": [
404*c6d7a45dSGunnar Mills                        "array",
405*c6d7a45dSGunnar Mills                        "boolean",
406*c6d7a45dSGunnar Mills                        "integer",
407*c6d7a45dSGunnar Mills                        "number",
408*c6d7a45dSGunnar Mills                        "null",
409*c6d7a45dSGunnar Mills                        "object",
410*c6d7a45dSGunnar Mills                        "string"
411*c6d7a45dSGunnar Mills                    ]
412*c6d7a45dSGunnar Mills                }
413*c6d7a45dSGunnar Mills            },
414*c6d7a45dSGunnar Mills            "properties": {
415*c6d7a45dSGunnar Mills                "target": {
416*c6d7a45dSGunnar Mills                    "description": "Link to invoke action",
417*c6d7a45dSGunnar Mills                    "format": "uri-reference",
418*c6d7a45dSGunnar Mills                    "type": "string"
419*c6d7a45dSGunnar Mills                },
420*c6d7a45dSGunnar Mills                "title": {
421*c6d7a45dSGunnar Mills                    "description": "Friendly action name",
422*c6d7a45dSGunnar Mills                    "type": "string"
423*c6d7a45dSGunnar Mills                }
424*c6d7a45dSGunnar Mills            },
425*c6d7a45dSGunnar Mills            "type": "object"
426*c6d7a45dSGunnar Mills        },
427*c6d7a45dSGunnar Mills        "ChargeState": {
428*c6d7a45dSGunnar Mills            "enum": [
429*c6d7a45dSGunnar Mills                "Idle",
430*c6d7a45dSGunnar Mills                "Charging",
431*c6d7a45dSGunnar Mills                "Discharging"
432*c6d7a45dSGunnar Mills            ],
433*c6d7a45dSGunnar Mills            "enumDescriptions": {
434*c6d7a45dSGunnar Mills                "Charging": "The battery is charging.",
435*c6d7a45dSGunnar Mills                "Discharging": "The battery is discharging.",
436*c6d7a45dSGunnar Mills                "Idle": "The battery is idle."
437*c6d7a45dSGunnar Mills            },
438*c6d7a45dSGunnar Mills            "enumLongDescriptions": {
439*c6d7a45dSGunnar Mills                "Charging": "This value shall indicate the battery is charging and energy is entering the battery.",
440*c6d7a45dSGunnar Mills                "Discharging": "This value shall indicate the battery is discharging and energy is leaving the battery.",
441*c6d7a45dSGunnar Mills                "Idle": "This value shall indicate the battery is idle and energy is not entering or leaving the battery.  Small amounts of energy may enter or leave the battery while in this state if the battery is regulating itself."
442*c6d7a45dSGunnar Mills            },
443*c6d7a45dSGunnar Mills            "type": "string"
444*c6d7a45dSGunnar Mills        },
445*c6d7a45dSGunnar Mills        "EnergyStorageType": {
446*c6d7a45dSGunnar Mills            "enum": [
447*c6d7a45dSGunnar Mills                "Battery",
448*c6d7a45dSGunnar Mills                "Supercapacitor"
449*c6d7a45dSGunnar Mills            ],
450*c6d7a45dSGunnar Mills            "enumDescriptions": {
451*c6d7a45dSGunnar Mills                "Battery": "Energy stored through one or more electrochemical cells.",
452*c6d7a45dSGunnar Mills                "Supercapacitor": "Energy stored through electrostatic double-layer capacitors or electrodes with electrochemical pseudocapacitance."
453*c6d7a45dSGunnar Mills            },
454*c6d7a45dSGunnar Mills            "enumLongDescriptions": {
455*c6d7a45dSGunnar Mills                "Battery": "The value shall indicate that the battery stores energy using one or more electrochemical cells.",
456*c6d7a45dSGunnar Mills                "Supercapacitor": "The value shall indicate that the battery stores energy using electrostatic double-layer capacitors or electrodes with electrochemical pseudocapacitance."
457*c6d7a45dSGunnar Mills            },
458*c6d7a45dSGunnar Mills            "type": "string"
459*c6d7a45dSGunnar Mills        },
460*c6d7a45dSGunnar Mills        "Links": {
461*c6d7a45dSGunnar Mills            "additionalProperties": false,
462*c6d7a45dSGunnar Mills            "description": "The links to other resources that are related to this resource.",
463*c6d7a45dSGunnar Mills            "longDescription": "This Redfish Specification-described type shall contain links to resources that are related to but are not contained by, or subordinate to, this resource.",
464*c6d7a45dSGunnar Mills            "patternProperties": {
465*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
466*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
467*c6d7a45dSGunnar Mills                    "type": [
468*c6d7a45dSGunnar Mills                        "array",
469*c6d7a45dSGunnar Mills                        "boolean",
470*c6d7a45dSGunnar Mills                        "integer",
471*c6d7a45dSGunnar Mills                        "number",
472*c6d7a45dSGunnar Mills                        "null",
473*c6d7a45dSGunnar Mills                        "object",
474*c6d7a45dSGunnar Mills                        "string"
475*c6d7a45dSGunnar Mills                    ]
476*c6d7a45dSGunnar Mills                }
477*c6d7a45dSGunnar Mills            },
478*c6d7a45dSGunnar Mills            "properties": {
479*c6d7a45dSGunnar Mills                "Memory": {
480*c6d7a45dSGunnar Mills                    "description": "An array of links to the memory devices to which this battery provides power during a power-loss event.",
481*c6d7a45dSGunnar Mills                    "items": {
482*c6d7a45dSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Memory.json#/definitions/Memory"
483*c6d7a45dSGunnar Mills                    },
484*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Memory` that represent the memory devices to which this battery provides power during a power-loss event, such as battery-backed NVDIMMs.  This property shall not be present if the battery powers the containing chassis as a whole rather than individual components in a chassis.",
485*c6d7a45dSGunnar Mills                    "readonly": true,
486*c6d7a45dSGunnar Mills                    "type": "array",
487*c6d7a45dSGunnar Mills                    "versionAdded": "v1_1_0"
488*c6d7a45dSGunnar Mills                },
489*c6d7a45dSGunnar Mills                "Memory@odata.count": {
490*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
491*c6d7a45dSGunnar Mills                },
492*c6d7a45dSGunnar Mills                "Oem": {
493*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
494*c6d7a45dSGunnar Mills                    "description": "The OEM extension property.",
495*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
496*c6d7a45dSGunnar Mills                },
497*c6d7a45dSGunnar Mills                "StorageControllers": {
498*c6d7a45dSGunnar Mills                    "description": "An array of links to the storage controllers to which this battery provides power during a power-loss event.",
499*c6d7a45dSGunnar Mills                    "items": {
500*c6d7a45dSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/StorageController.json#/definitions/StorageController"
501*c6d7a45dSGunnar Mills                    },
502*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `StorageController` that represent the storage controllers to which this battery provides power during a power-loss event, such as battery-backed RAID controllers.  This property shall not be present if the battery powers the containing chassis as a whole rather than individual components in a chassis.",
503*c6d7a45dSGunnar Mills                    "readonly": true,
504*c6d7a45dSGunnar Mills                    "type": "array",
505*c6d7a45dSGunnar Mills                    "versionAdded": "v1_1_0"
506*c6d7a45dSGunnar Mills                },
507*c6d7a45dSGunnar Mills                "StorageControllers@odata.count": {
508*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
509*c6d7a45dSGunnar Mills                }
510*c6d7a45dSGunnar Mills            },
511*c6d7a45dSGunnar Mills            "type": "object"
512*c6d7a45dSGunnar Mills        },
513*c6d7a45dSGunnar Mills        "OemActions": {
514*c6d7a45dSGunnar Mills            "additionalProperties": true,
515*c6d7a45dSGunnar Mills            "description": "The available OEM-specific actions for this resource.",
516*c6d7a45dSGunnar Mills            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
517*c6d7a45dSGunnar Mills            "patternProperties": {
518*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
519*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
520*c6d7a45dSGunnar Mills                    "type": [
521*c6d7a45dSGunnar Mills                        "array",
522*c6d7a45dSGunnar Mills                        "boolean",
523*c6d7a45dSGunnar Mills                        "integer",
524*c6d7a45dSGunnar Mills                        "number",
525*c6d7a45dSGunnar Mills                        "null",
526*c6d7a45dSGunnar Mills                        "object",
527*c6d7a45dSGunnar Mills                        "string"
528*c6d7a45dSGunnar Mills                    ]
529*c6d7a45dSGunnar Mills                }
530*c6d7a45dSGunnar Mills            },
531*c6d7a45dSGunnar Mills            "properties": {},
532*c6d7a45dSGunnar Mills            "type": "object"
533*c6d7a45dSGunnar Mills        },
534*c6d7a45dSGunnar Mills        "Reset": {
535*c6d7a45dSGunnar Mills            "additionalProperties": false,
536*c6d7a45dSGunnar Mills            "description": "This action resets the battery.",
537*c6d7a45dSGunnar Mills            "longDescription": "This action shall reset the battery.",
538*c6d7a45dSGunnar Mills            "parameters": {
539*c6d7a45dSGunnar Mills                "ResetType": {
540*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
541*c6d7a45dSGunnar Mills                    "description": "The type of reset.",
542*c6d7a45dSGunnar Mills                    "longDescription": "This parameter shall contain the type of reset.  The service can accept a request without the parameter and shall perform a `GracefulRestart`."
543*c6d7a45dSGunnar Mills                }
544*c6d7a45dSGunnar Mills            },
545*c6d7a45dSGunnar Mills            "patternProperties": {
546*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
547*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
548*c6d7a45dSGunnar Mills                    "type": [
549*c6d7a45dSGunnar Mills                        "array",
550*c6d7a45dSGunnar Mills                        "boolean",
551*c6d7a45dSGunnar Mills                        "integer",
552*c6d7a45dSGunnar Mills                        "number",
553*c6d7a45dSGunnar Mills                        "null",
554*c6d7a45dSGunnar Mills                        "object",
555*c6d7a45dSGunnar Mills                        "string"
556*c6d7a45dSGunnar Mills                    ]
557*c6d7a45dSGunnar Mills                }
558*c6d7a45dSGunnar Mills            },
559*c6d7a45dSGunnar Mills            "properties": {
560*c6d7a45dSGunnar Mills                "target": {
561*c6d7a45dSGunnar Mills                    "description": "Link to invoke action",
562*c6d7a45dSGunnar Mills                    "format": "uri-reference",
563*c6d7a45dSGunnar Mills                    "type": "string"
564*c6d7a45dSGunnar Mills                },
565*c6d7a45dSGunnar Mills                "title": {
566*c6d7a45dSGunnar Mills                    "description": "Friendly action name",
567*c6d7a45dSGunnar Mills                    "type": "string"
568*c6d7a45dSGunnar Mills                }
569*c6d7a45dSGunnar Mills            },
570*c6d7a45dSGunnar Mills            "type": "object"
571*c6d7a45dSGunnar Mills        },
572*c6d7a45dSGunnar Mills        "SelfTest": {
573*c6d7a45dSGunnar Mills            "additionalProperties": false,
574*c6d7a45dSGunnar Mills            "description": "This action performs a self-test of the battery.",
575*c6d7a45dSGunnar Mills            "longDescription": "This action shall perform a self-test of the battery.",
576*c6d7a45dSGunnar Mills            "parameters": {},
577*c6d7a45dSGunnar Mills            "patternProperties": {
578*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
579*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
580*c6d7a45dSGunnar Mills                    "type": [
581*c6d7a45dSGunnar Mills                        "array",
582*c6d7a45dSGunnar Mills                        "boolean",
583*c6d7a45dSGunnar Mills                        "integer",
584*c6d7a45dSGunnar Mills                        "number",
585*c6d7a45dSGunnar Mills                        "null",
586*c6d7a45dSGunnar Mills                        "object",
587*c6d7a45dSGunnar Mills                        "string"
588*c6d7a45dSGunnar Mills                    ]
589*c6d7a45dSGunnar Mills                }
590*c6d7a45dSGunnar Mills            },
591*c6d7a45dSGunnar Mills            "properties": {
592*c6d7a45dSGunnar Mills                "target": {
593*c6d7a45dSGunnar Mills                    "description": "Link to invoke action",
594*c6d7a45dSGunnar Mills                    "format": "uri-reference",
595*c6d7a45dSGunnar Mills                    "type": "string"
596*c6d7a45dSGunnar Mills                },
597*c6d7a45dSGunnar Mills                "title": {
598*c6d7a45dSGunnar Mills                    "description": "Friendly action name",
599*c6d7a45dSGunnar Mills                    "type": "string"
600*c6d7a45dSGunnar Mills                }
601*c6d7a45dSGunnar Mills            },
602*c6d7a45dSGunnar Mills            "type": "object"
603*c6d7a45dSGunnar Mills        }
604*c6d7a45dSGunnar Mills    },
605*c6d7a45dSGunnar Mills    "language": "en",
606*c6d7a45dSGunnar Mills    "owningEntity": "DMTF",
607*c6d7a45dSGunnar Mills    "release": "2025.2",
608*c6d7a45dSGunnar Mills    "title": "#Battery.v1_4_0.Battery"
609*c6d7a45dSGunnar Mills}