1{
2    "$id": "http://redfish.dmtf.org/schemas/v1/VirtualMedia.v1_6_4.json",
3    "$ref": "#/definitions/VirtualMedia",
4    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
5    "copyright": "Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
6    "definitions": {
7        "Actions": {
8            "additionalProperties": false,
9            "description": "The available actions for this resource.",
10            "longDescription": "This type shall contain the available actions for this resource.",
11            "patternProperties": {
12                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
13                    "description": "This property shall specify a valid odata or Redfish property.",
14                    "type": [
15                        "array",
16                        "boolean",
17                        "integer",
18                        "number",
19                        "null",
20                        "object",
21                        "string"
22                    ]
23                }
24            },
25            "properties": {
26                "#VirtualMedia.EjectMedia": {
27                    "$ref": "#/definitions/EjectMedia"
28                },
29                "#VirtualMedia.InsertMedia": {
30                    "$ref": "#/definitions/InsertMedia"
31                },
32                "Oem": {
33                    "$ref": "#/definitions/OemActions",
34                    "description": "The available OEM-specific actions for this resource.",
35                    "longDescription": "This property shall contain the available OEM-specific actions for this resource.",
36                    "versionAdded": "v1_1_0"
37                }
38            },
39            "type": "object"
40        },
41        "ConnectedVia": {
42            "enum": [
43                "NotConnected",
44                "URI",
45                "Applet",
46                "Oem"
47            ],
48            "enumDescriptions": {
49                "Applet": "Connected to a client application.",
50                "NotConnected": "No current connection.",
51                "Oem": "Connected through an OEM-defined method.",
52                "URI": "Connected to a URI location."
53            },
54            "type": "string"
55        },
56        "EjectMedia": {
57            "additionalProperties": false,
58            "description": "This action detaches remote media from virtual media.",
59            "longDescription": "This action shall detach the remote media from the virtual media.  At the completion of the operation, inserted shall be set to `false` and the image name shall be cleared.",
60            "parameters": {},
61            "patternProperties": {
62                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
63                    "description": "This property shall specify a valid odata or Redfish property.",
64                    "type": [
65                        "array",
66                        "boolean",
67                        "integer",
68                        "number",
69                        "null",
70                        "object",
71                        "string"
72                    ]
73                }
74            },
75            "properties": {
76                "target": {
77                    "description": "Link to invoke action",
78                    "format": "uri-reference",
79                    "type": "string"
80                },
81                "title": {
82                    "description": "Friendly action name",
83                    "type": "string"
84                }
85            },
86            "type": "object",
87            "versionAdded": "v1_2_0"
88        },
89        "EjectPolicy": {
90            "enum": [
91                "OnPowerOff",
92                "Session",
93                "Timed",
94                "AfterUse",
95                "Persistent"
96            ],
97            "enumDescriptions": {
98                "AfterUse": "The virtual media ejection occurs after the media is used.",
99                "OnPowerOff": "The virtual media ejection occurs during a system power or reset event.",
100                "Persistent": "The virtual media mount information persists indefinitely.",
101                "Session": "The virtual media ejection occurs when a session is terminated.  The session might be outside the Redfish service.",
102                "Timed": "The virtual media ejection occurs when a timer configured by the `EjectTimeout` property expires."
103            },
104            "type": "string"
105        },
106        "InsertMedia": {
107            "additionalProperties": false,
108            "description": "This action attaches remote media to virtual media.",
109            "longDescription": "This action shall attach remote media to virtual media.",
110            "parameters": {
111                "Image": {
112                    "description": "The URI of the media to attach to the virtual media.",
113                    "longDescription": "This parameter shall contain the URI of the media to be attached to the virtual media.  This parameter may specify an absolute URI to remote media or a relative URI to media local to the implementation.  A service may allow a relative URI to reference a `SoftwareInventory` resource.",
114                    "requiredParameter": true,
115                    "type": "string"
116                },
117                "Inserted": {
118                    "description": "An indication of whether the image is treated as inserted upon completion of the action.  The default is `true`.",
119                    "longDescription": "This parameter shall contain whether the image is treated as inserted upon completion of the action.  If the client does not provide this parameter, the service shall default this value to `true`.",
120                    "type": "boolean"
121                },
122                "Password": {
123                    "description": "The password to access the URI specified by the `Image` parameter.",
124                    "longDescription": "This parameter shall contain the password to access the URI specified by the `Image` parameter.",
125                    "type": "string",
126                    "versionAdded": "v1_3_0"
127                },
128                "TransferMethod": {
129                    "$ref": "#/definitions/TransferMethod",
130                    "description": "The transfer method to use with the image.",
131                    "longDescription": "This parameter shall contain the transfer method to use with the specified image URI.",
132                    "versionAdded": "v1_3_0"
133                },
134                "TransferProtocolType": {
135                    "$ref": "#/definitions/TransferProtocolType",
136                    "description": "The network protocol to use with the URI specified by the `Image` parameter.",
137                    "longDescription": "This parameter shall contain the network protocol to use with the URI specified by the `Image` parameter.",
138                    "versionAdded": "v1_3_0"
139                },
140                "UserName": {
141                    "description": "The username to access the URI specified by the `Image` parameter.",
142                    "longDescription": "This parameter shall contain the username to access the URI specified by the `Image` parameter.",
143                    "type": "string",
144                    "versionAdded": "v1_3_0"
145                },
146                "WriteProtected": {
147                    "description": "An indication of whether the remote media is treated as write-protected.  The default is `true`.",
148                    "longDescription": "This parameter shall contain whether the remote media is treated as write-protected.  If the client does not provide this parameter, the service shall default this value to `true`.",
149                    "type": "boolean"
150                }
151            },
152            "patternProperties": {
153                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
154                    "description": "This property shall specify a valid odata or Redfish property.",
155                    "type": [
156                        "array",
157                        "boolean",
158                        "integer",
159                        "number",
160                        "null",
161                        "object",
162                        "string"
163                    ]
164                }
165            },
166            "properties": {
167                "target": {
168                    "description": "Link to invoke action",
169                    "format": "uri-reference",
170                    "type": "string"
171                },
172                "title": {
173                    "description": "Friendly action name",
174                    "type": "string"
175                }
176            },
177            "type": "object",
178            "versionAdded": "v1_2_0"
179        },
180        "MediaType": {
181            "enum": [
182                "CD",
183                "Floppy",
184                "USBStick",
185                "DVD"
186            ],
187            "enumDescriptions": {
188                "CD": "A CD-ROM format (ISO) image.",
189                "DVD": "A DVD-ROM format image.",
190                "Floppy": "A floppy disk image.",
191                "USBStick": "An emulation of a USB storage device."
192            },
193            "type": "string"
194        },
195        "OemActions": {
196            "additionalProperties": true,
197            "description": "The available OEM-specific actions for this resource.",
198            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
199            "patternProperties": {
200                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
201                    "description": "This property shall specify a valid odata or Redfish property.",
202                    "type": [
203                        "array",
204                        "boolean",
205                        "integer",
206                        "number",
207                        "null",
208                        "object",
209                        "string"
210                    ]
211                }
212            },
213            "properties": {},
214            "type": "object"
215        },
216        "TransferMethod": {
217            "enum": [
218                "Stream",
219                "Upload"
220            ],
221            "enumDescriptions": {
222                "Stream": "Stream image file data from the source URI.",
223                "Upload": "Upload the entire image file from the source URI to the service."
224            },
225            "type": "string"
226        },
227        "TransferProtocolType": {
228            "enum": [
229                "CIFS",
230                "FTP",
231                "SFTP",
232                "HTTP",
233                "HTTPS",
234                "NFS",
235                "SCP",
236                "TFTP",
237                "OEM"
238            ],
239            "enumDescriptions": {
240                "CIFS": "Common Internet File System (CIFS).",
241                "FTP": "File Transfer Protocol (FTP).",
242                "HTTP": "Hypertext Transfer Protocol (HTTP).",
243                "HTTPS": "Hypertext Transfer Protocol Secure (HTTPS).",
244                "NFS": "Network File System (NFS).",
245                "OEM": "A manufacturer-defined protocol.",
246                "SCP": "Secure Copy Protocol (SCP).",
247                "SFTP": "SSH File Transfer Protocol (SFTP).",
248                "TFTP": "Trivial File Transfer Protocol (TFTP)."
249            },
250            "type": "string"
251        },
252        "VirtualMedia": {
253            "additionalProperties": false,
254            "description": "The `VirtualMedia` schema contains properties related to the monitor and control of an instance of virtual media, such as a remote CD, DVD, or USB device.  A manager for a system or device provides virtual media functionality.",
255            "longDescription": "This resource shall represent a virtual media service for a Redfish implementation.",
256            "patternProperties": {
257                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
258                    "description": "This property shall specify a valid odata or Redfish property.",
259                    "type": [
260                        "array",
261                        "boolean",
262                        "integer",
263                        "number",
264                        "null",
265                        "object",
266                        "string"
267                    ]
268                }
269            },
270            "properties": {
271                "@odata.context": {
272                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
273                },
274                "@odata.etag": {
275                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
276                },
277                "@odata.id": {
278                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
279                },
280                "@odata.type": {
281                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
282                },
283                "Actions": {
284                    "$ref": "#/definitions/Actions",
285                    "description": "The available actions for this resource.",
286                    "longDescription": "This property shall contain the available actions for this resource.",
287                    "versionAdded": "v1_1_0"
288                },
289                "Certificates": {
290                    "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection",
291                    "description": "The link to a collection of server certificates for the server referenced by the `Image` property.",
292                    "longDescription": "This property shall contain a link to a resource collection of type `CertificateCollection` that represents the server certificates for the server referenced by the `Image` property.  If `VerifyCertificate` is `true`, services shall compare the certificates in this collection with the certificate obtained during handshaking with the image server in order to verify the identity of the image server prior to completing the remote media connection.  If the server cannot be verified, the service shall not complete the remote media connection.  If `VerifyCertificate` is `false`, the service shall not perform certificate verification with certificates in this collection.  Regardless of the contents of this collection, services may perform additional verification based on other factors, such as the configuration of the `SecurityPolicy` resource.",
293                    "readonly": true,
294                    "versionAdded": "v1_4_0"
295                },
296                "ClientCertificates": {
297                    "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection",
298                    "description": "The link to a collection of client identity certificates provided to the server referenced by the `Image` property.",
299                    "longDescription": "This property shall contain a link to a resource collection of type `CertificateCollection` that represents the client identity certificates that are provided to the server referenced by the `Image` property as part of TLS handshaking.",
300                    "readonly": true,
301                    "versionAdded": "v1_5_0"
302                },
303                "ConnectedVia": {
304                    "anyOf": [
305                        {
306                            "$ref": "#/definitions/ConnectedVia"
307                        },
308                        {
309                            "type": "null"
310                        }
311                    ],
312                    "description": "The current virtual media connection method.",
313                    "longDescription": "This property shall contain the current connection method from a client to the virtual media that this resource represents.",
314                    "readonly": true
315                },
316                "Description": {
317                    "anyOf": [
318                        {
319                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
320                        },
321                        {
322                            "type": "null"
323                        }
324                    ],
325                    "readonly": true
326                },
327                "EjectPolicy": {
328                    "anyOf": [
329                        {
330                            "$ref": "#/definitions/EjectPolicy"
331                        },
332                        {
333                            "type": "null"
334                        }
335                    ],
336                    "description": "The ejection policy for the virtual media.",
337                    "longDescription": "This property shall contain the ejection policy for the virtual media.",
338                    "readonly": false,
339                    "versionAdded": "v1_6_0"
340                },
341                "EjectTimeout": {
342                    "description": "Timeout value before the virtual media is automatically ejected.",
343                    "longDescription": "This property shall indicate the amount of time before virtual media is automatically ejected when `EjectPolicy` contains `Timed`.",
344                    "pattern": "^P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?$",
345                    "readonly": false,
346                    "type": [
347                        "string",
348                        "null"
349                    ],
350                    "versionAdded": "v1_6_0"
351                },
352                "Id": {
353                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
354                    "readonly": true
355                },
356                "Image": {
357                    "description": "The URI of the location of the selected image.",
358                    "format": "uri-reference",
359                    "longDescription": "This property shall contain the URI of the media attached to the virtual media.  This value may specify an absolute URI to remote media or a relative URI to media local to the implementation.  A service may allow a relative URI to reference a SoftwareInventory resource.  The value `null` shall indicate no image connection.",
360                    "readonly": false,
361                    "type": [
362                        "string",
363                        "null"
364                    ]
365                },
366                "ImageName": {
367                    "description": "The current image name.",
368                    "longDescription": "This property shall contain the name of the image.",
369                    "readonly": true,
370                    "type": [
371                        "string",
372                        "null"
373                    ]
374                },
375                "Inserted": {
376                    "description": "An indication of whether virtual media is inserted into the virtual device.",
377                    "longDescription": "This property shall indicate whether media is present in the virtual media device.",
378                    "readonly": false,
379                    "type": [
380                        "boolean",
381                        "null"
382                    ]
383                },
384                "MediaTypes": {
385                    "description": "The media types supported as virtual media.",
386                    "items": {
387                        "$ref": "#/definitions/MediaType"
388                    },
389                    "longDescription": "This property shall contain an array of the supported media types for this connection.",
390                    "readonly": true,
391                    "type": "array"
392                },
393                "Name": {
394                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
395                    "readonly": true
396                },
397                "Oem": {
398                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
399                    "description": "The OEM extension property.",
400                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
401                },
402                "Password": {
403                    "description": "The password to access the URI specified by the `Image` property.  The value is `null` in responses.",
404                    "longDescription": "This property shall contain the password to access the URI specified by the `Image` property.  The value shall be `null` in responses.",
405                    "readonly": false,
406                    "type": [
407                        "string",
408                        "null"
409                    ],
410                    "versionAdded": "v1_3_0"
411                },
412                "Status": {
413                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
414                    "description": "The status and health of the resource and its subordinate or dependent resources.",
415                    "longDescription": "This property shall contain any status or health properties of the resource.",
416                    "versionAdded": "v1_4_0"
417                },
418                "TransferMethod": {
419                    "anyOf": [
420                        {
421                            "$ref": "#/definitions/TransferMethod"
422                        },
423                        {
424                            "type": "null"
425                        }
426                    ],
427                    "description": "The transfer method to use with the image.",
428                    "longDescription": "This property shall describe how the image transfer occurs.",
429                    "readonly": false,
430                    "versionAdded": "v1_3_0"
431                },
432                "TransferProtocolType": {
433                    "anyOf": [
434                        {
435                            "$ref": "#/definitions/TransferProtocolType"
436                        },
437                        {
438                            "type": "null"
439                        }
440                    ],
441                    "description": "The network protocol to use with the URI specified by the `Image` property.",
442                    "longDescription": "This property shall contain network protocol to use with the URI specified by the `Image` property.",
443                    "readonly": false,
444                    "versionAdded": "v1_3_0"
445                },
446                "UserName": {
447                    "description": "The username to access the URI specified by the `Image` property.",
448                    "longDescription": "This property shall contain the username to access the URI specified by the `Image` property.",
449                    "readonly": false,
450                    "type": [
451                        "string",
452                        "null"
453                    ],
454                    "versionAdded": "v1_3_0"
455                },
456                "VerifyCertificate": {
457                    "description": "An indication of whether the service will verify the certificate of the server referenced by the `Image` property prior to completing the remote media connection.",
458                    "longDescription": "This property shall indicate whether the service will verify the certificate of the server referenced by the `Image` property prior to completing the remote media connection with the certificates found in the collection referenced by the `Certificates` property.  If this property is not supported by the service, it shall be assumed to be `false`.  This property should default to `false` in order to maintain compatibility with older clients.  Regardless of the value of this property, services may perform additional verification based on other factors, such as the configuration of the SecurityPolicy resource.",
459                    "readonly": false,
460                    "type": [
461                        "boolean",
462                        "null"
463                    ],
464                    "versionAdded": "v1_4_0"
465                },
466                "WriteProtected": {
467                    "description": "An indication of whether the media is write-protected.",
468                    "longDescription": "This property shall indicate whether the remote device media prevents writing to that media.",
469                    "readonly": false,
470                    "type": [
471                        "boolean",
472                        "null"
473                    ]
474                }
475            },
476            "required": [
477                "@odata.id",
478                "@odata.type",
479                "Id",
480                "Name"
481            ],
482            "type": "object"
483        }
484    },
485    "language": "en",
486    "owningEntity": "DMTF",
487    "release": "2022.3",
488    "title": "#VirtualMedia.v1_6_4.VirtualMedia"
489}