{
    "$id": "http://redfish.dmtf.org/schemas/v1/VirtualMedia.v1_2_5.json",
    "$ref": "#/definitions/VirtualMedia",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2021 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
    "definitions": {
        "Actions": {
            "additionalProperties": false,
            "description": "The available actions for this resource.",
            "longDescription": "This type shall contain the available actions for this resource.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "#VirtualMedia.EjectMedia": {
                    "$ref": "#/definitions/EjectMedia"
                },
                "#VirtualMedia.InsertMedia": {
                    "$ref": "#/definitions/InsertMedia"
                },
                "Oem": {
                    "$ref": "#/definitions/OemActions",
                    "description": "The available OEM-specific actions for this resource.",
                    "longDescription": "This property shall contain the available OEM-specific actions for this resource.",
                    "versionAdded": "v1_1_0"
                }
            },
            "type": "object"
        },
        "ConnectedVia": {
            "enum": [
                "NotConnected",
                "URI",
                "Applet",
                "Oem"
            ],
            "enumDescriptions": {
                "Applet": "Connected to a client application.",
                "NotConnected": "No current connection.",
                "Oem": "Connected through an OEM-defined method.",
                "URI": "Connected to a URI location."
            },
            "type": "string"
        },
        "EjectMedia": {
            "additionalProperties": false,
            "description": "This action detaches remote media from virtual media.",
            "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.",
            "parameters": {},
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "target": {
                    "description": "Link to invoke action",
                    "format": "uri-reference",
                    "type": "string"
                },
                "title": {
                    "description": "Friendly action name",
                    "type": "string"
                }
            },
            "type": "object",
            "versionAdded": "v1_2_0"
        },
        "InsertMedia": {
            "additionalProperties": false,
            "description": "This action attaches remote media to virtual media.",
            "longDescription": "This action shall attach remote media to virtual media.",
            "parameters": {
                "Image": {
                    "description": "The URI of the media to attach to the virtual media.",
                    "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.",
                    "requiredParameter": true,
                    "type": "string"
                },
                "Inserted": {
                    "description": "An indication of whether the image is treated as inserted upon completion of the action.  The default is `true`.",
                    "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`.",
                    "type": "boolean"
                },
                "WriteProtected": {
                    "description": "An indication of whether the remote media is treated as write-protected.  The default is `true`.",
                    "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`.",
                    "type": "boolean"
                }
            },
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "target": {
                    "description": "Link to invoke action",
                    "format": "uri-reference",
                    "type": "string"
                },
                "title": {
                    "description": "Friendly action name",
                    "type": "string"
                }
            },
            "type": "object",
            "versionAdded": "v1_2_0"
        },
        "MediaType": {
            "enum": [
                "CD",
                "Floppy",
                "USBStick",
                "DVD"
            ],
            "enumDescriptions": {
                "CD": "A CD-ROM format (ISO) image.",
                "DVD": "A DVD-ROM format image.",
                "Floppy": "A floppy disk image.",
                "USBStick": "An emulation of a USB storage device."
            },
            "type": "string"
        },
        "OemActions": {
            "additionalProperties": true,
            "description": "The available OEM-specific actions for this resource.",
            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {},
            "type": "object"
        },
        "VirtualMedia": {
            "additionalProperties": false,
            "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.",
            "longDescription": "This resource shall represent a virtual media service for a Redfish implementation.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
                },
                "@odata.etag": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
                },
                "Actions": {
                    "$ref": "#/definitions/Actions",
                    "description": "The available actions for this resource.",
                    "longDescription": "This property shall contain the available actions for this resource.",
                    "versionAdded": "v1_1_0"
                },
                "ConnectedVia": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/ConnectedVia"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The current virtual media connection method.",
                    "longDescription": "This property shall contain the current connection method from a client to the virtual media that this resource represents.",
                    "readonly": true
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "Image": {
                    "description": "The URI of the location of the selected image.",
                    "format": "uri-reference",
                    "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 indicates no image connection.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "ImageName": {
                    "description": "The current image name.",
                    "longDescription": "This property shall contain the name of the image.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Inserted": {
                    "description": "An indication of whether virtual media is inserted into the virtual device.",
                    "longDescription": "This property shall indicate whether media is present in the virtual media device.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "MediaTypes": {
                    "description": "The media types supported as virtual media.",
                    "items": {
                        "$ref": "#/definitions/MediaType"
                    },
                    "longDescription": "This property shall contain an array of the supported media types for this connection.",
                    "readonly": true,
                    "type": "array"
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
                },
                "WriteProtected": {
                    "description": "An indication of whether the media is write-protected.",
                    "longDescription": "This property shall indicate whether the remote device media prevents writing to that media.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ]
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ],
            "type": "object"
        }
    },
    "owningEntity": "DMTF",
    "release": "2017.3",
    "title": "#VirtualMedia.v1_2_5.VirtualMedia"
}