{
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_1_0.json",
    "title": "#VirtualMedia.v1_0_0.VirtualMedia",
    "$ref": "#/definitions/VirtualMedia",
    "definitions": {
        "ConnectedVia": {
            "type": "string",
            "enum": [
                "NotConnected",
                "URI",
                "Applet",
                "Oem"
            ],
            "enumDescriptions": {
                "NotConnected": "No current connection",
                "URI": "Connected to a URI location",
                "Applet": "Connected to a client application",
                "Oem": "Connected via an OEM-defined method"
            }
        },
        "MediaType": {
            "type": "string",
            "enum": [
                "CD",
                "Floppy",
                "USBStick",
                "DVD"
            ],
            "enumDescriptions": {
                "CD": "A CD-ROM format (ISO) image",
                "Floppy": "A floppy disk image",
                "USBStick": "An emulation of a USB storage device",
                "DVD": "A DVD-ROM format image"
            }
        },
        "VirtualMedia": {
            "type": "object",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "type": [
                        "array",
                        "boolean",
                        "number",
                        "null",
                        "object",
                        "string"
                    ],
                    "description": "This property shall specify a valid odata or Redfish property."
                }
            },
            "additionalProperties": false,
            "properties": {
                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id"
                },
                "Description": {
                    "anyOf": [
                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
                        {"type": "null"}
                    ]
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name"
                },
                "ImageName": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "description": "The current image name",
                    "longDescription": "The value of this property shall be the name of the image. "
                },
                "Image": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "format": "uri",
                    "readonly": true,
                    "description": "A URI providing the location of the selected image",
                    "longDescription": "The value of this string shall be an URI.  A null value indicated no image connection."
                },
                "MediaTypes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/MediaType"
                    },
                    "readonly": true,
                    "description": "This is the media types supported as virtual media.",
                    "longDescription": "The values of this array shall be the supported media types for this connection."
                },
                "ConnectedVia": {
                    "anyOf": [
                        {"$ref": "#/definitions/ConnectedVia"},
                        {"type": "null"}
                    ],
                    "readonly": true,
                    "description": "Current virtual media connection methods",
                    "longDescription": "The value of this property shall indicate the current connection method from a client to the virtual media represented by this resource.  A value of NotConnected shall indicate no connection is present.  A value of URI shall indicate that a remote connection via a URI reference type is being used. "
                },
                "Inserted": {
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "readonly": true,
                    "description": "Indicates if virtual media is inserted in the virtual device.",
                    "longDescription": "The value of this property shall be used to indicate if media is present in the virtual media device.  This is usually only applicable to remoting of devices and not for image virtual media usage. "
                },
                "WriteProtected": {
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "readonly": true,
                    "description": "Indicates the media is write protected.",
                    "longDescription": "The value of this property shall be used to indicate if the remote device media prevents writing to that media. "
                }
            },
            "required": [
                "Id",
                "Name"
            ],
            "description": "This resource allows monitoring and control of an instance of virtual media (e.g. a remote CD, DVD, or USB device) functionality provided by a Manager for a system or device.",
            "longDescription": "This resource shall be used to represent a virtual media service for a Redfish implementation."
        }
    },
    "copyright": "Copyright 2014-2016 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
}
