<?xml version="1.0" encoding="UTF-8"?>
<!---->
<!--################################################################################       -->
<!--# Redfish Schema:  VirtualMedia  v1.3.0-->
<!--#                                                                                      -->
<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
<!--# available at http://www.dmtf.org/standards/redfish                                   -->
<!--# Copyright 2014-2018 DMTF.                                                            -->
<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
<!--################################################################################       -->
<!---->
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">

  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
    <edmx:Include Namespace="Resource.v1_0_0"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
  </edmx:Reference>

  <edmx:DataServices>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>

      <EntityType Name="VirtualMedia" BaseType="Resource.v1_0_0.Resource" Abstract="true">
        <Annotation Term="OData.Description" String="The VirtualMedia schema contains properties related to monitoring and control of an instance of virtual media such as a remote CD, DVD, or USB device. Virtual media functionality is provided by a Manager for a system or device."/>
        <Annotation Term="OData.LongDescription" String="This resource shall be used to represent a virtual media service for a Redfish implementation."/>
        <Annotation Term="Capabilities.InsertRestrictions">
          <Record>
            <PropertyValue Property="Insertable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.UpdateRestrictions">
          <Record>
            <PropertyValue Property="Updatable" Bool="true"/>
            <Annotation Term="OData.Description" String="A VirtualMedia instance can be updated to change properties such as Image, Inserted, and WriteProtected."/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.DeleteRestrictions">
          <Record>
            <PropertyValue Property="Deletable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Redfish.Uris">
          <Collection>
            <String>/redfish/v1/Managers/{ManagerId}/VirtualMedia/{VirtualMediaId}</String>
          </Collection>
        </Annotation>
      </EntityType>

      <Action Name="InsertMedia" IsBound="true">
        <Annotation Term="OData.Description" String="This action is used to attach remote media to virtual media."/>
        <Annotation Term="OData.LongDescription" String="This action shall attach remote media to virtual media."/>
        <Annotation Term="Redfish.Revisions">
          <Collection>
            <Record>
              <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
              <PropertyValue Property="Version" String="v1_2_0"/>
            </Record>
          </Collection>
        </Annotation>
        <Parameter Name="VirtualMedia" Type="VirtualMedia.v1_1_0.Actions"/>
        <Parameter Name="Image" Type="Edm.String" Nullable="false">
          <Annotation Term="OData.Description" String="The URI of the remote media to attach to the virtual media."/>
          <Annotation Term="OData.LongDescription" String="This value shall specify the URI of the remote media to be attached to the virtual media."/>
        </Parameter>
        <Parameter Name="Inserted" Type="Edm.Boolean">
          <Annotation Term="OData.Description" String="Indicates if the image is to be treated as inserted upon completion of the action."/>
          <Annotation Term="OData.LongDescription" String="This value shall specify if the image is to be treated as inserted upon completion of the action.  If this parameter is not provided by the client, the service shall default this value to be true."/>
        </Parameter>
        <Parameter Name="WriteProtected" Type="Edm.Boolean">
          <Annotation Term="OData.Description" String="Indicates if the remote media is supposed to be treated as write protected."/>
          <Annotation Term="OData.LongDescription" String="This value shall specify if the remote media is supposed to be treated as write protected.  If this parameter is not provided by the client, the service shall default this value to be true."/>
        </Parameter>
        <Parameter Name="UserName" Type="Edm.String">
          <Annotation Term="OData.Description" String="The username to be used when accessing the URI specified by the Image parameter."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall contain a string representing the username to be used when accessing the URI specified by the Image parameter."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
                <PropertyValue Property="Version" String="v1_3_0"/>
              </Record>
            </Collection>
          </Annotation>
        </Parameter>
        <Parameter Name="Password" Type="Edm.String">
          <Annotation Term="OData.Description" String="The password to be used when accessing the URI specified by the Image parameter."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall contain a string representing the password to be used when accessing the URI specified by the Image parameter."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
                <PropertyValue Property="Version" String="v1_3_0"/>
              </Record>
            </Collection>
          </Annotation>
        </Parameter>
        <Parameter Name="TransferProtocolType" Type="VirtualMedia.v1_3_0.TransferProtocolType">
          <Annotation Term="OData.Description" String="Network protocol to use with the image."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall contain a value representing the network protocol to use with the specified image URI."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
                <PropertyValue Property="Version" String="v1_3_0"/>
              </Record>
            </Collection>
          </Annotation>
        </Parameter>
        <Parameter Name="TransferMethod" Type="VirtualMedia.v1_3_0.TransferMethod">
          <Annotation Term="OData.Description" String="Transfer method to use with the given Image."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall contain a value describing how the image transfer is done."/>
          <Annotation Term="Redfish.Revisions">
            <Collection>
              <Record>
                <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
                <PropertyValue Property="Version" String="v1_3_0"/>
              </Record>
            </Collection>
          </Annotation>
        </Parameter>
      </Action>

      <Action Name="EjectMedia" IsBound="true">
        <Annotation Term="OData.Description" String="This action is used to detach remote media from virtual media."/>
        <Annotation Term="OData.LongDescription" String="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."/>
        <Annotation Term="Redfish.Revisions">
          <Collection>
            <Record>
              <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
              <PropertyValue Property="Version" String="v1_2_0"/>
            </Record>
          </Collection>
        </Annotation>
        <Parameter Name="VirtualMedia" Type="VirtualMedia.v1_1_0.Actions"/>
      </Action>

    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia.v1_0_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="1.0"/>

      <EntityType Name="VirtualMedia" BaseType="VirtualMedia.VirtualMedia">
        <Property Name="ImageName" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="The current image name."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be the name of the image."/>
        </Property>
        <Property Name="Image" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="A URI providing the location of the selected image."/>
          <Annotation Term="OData.LongDescription" String="The value of this string shall be an URI.  A null value indicated no image connection."/>
          <Annotation Term="OData.IsURL"/>
        </Property>
        <Property Name="MediaTypes" Type="Collection(VirtualMedia.v1_0_0.MediaType)" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="This is the media types supported as virtual media."/>
          <Annotation Term="OData.LongDescription" String="The values of this array shall be the supported media types for this connection."/>
        </Property>
        <Property Name="ConnectedVia" Type="VirtualMedia.v1_0_0.ConnectedVia">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="Current virtual media connection methods."/>
          <Annotation Term="OData.LongDescription" String="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."/>
        </Property>
        <Property Name="Inserted" Type="Edm.Boolean">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="Indicates if virtual media is inserted in the virtual device."/>
          <Annotation Term="OData.LongDescription" String="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."/>
        </Property>
        <Property Name="WriteProtected" Type="Edm.Boolean">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="Indicates the media is write protected."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be used to indicate if the remote device media prevents writing to that media."/>
        </Property>
      </EntityType>

      <EnumType Name="MediaType">
        <Member Name="CD">
          <Annotation Term="OData.Description" String="A CD-ROM format (ISO) image."/>
        </Member>
        <Member Name="Floppy">
          <Annotation Term="OData.Description" String="A floppy disk image."/>
        </Member>
        <Member Name="USBStick">
          <Annotation Term="OData.Description" String="An emulation of a USB storage device."/>
        </Member>
        <Member Name="DVD">
          <Annotation Term="OData.Description" String="A DVD-ROM format image."/>
        </Member>
      </EnumType>

      <EnumType Name="ConnectedVia">
        <Member Name="NotConnected">
          <Annotation Term="OData.Description" String="No current connection."/>
        </Member>
        <Member Name="URI">
          <Annotation Term="OData.Description" String="Connected to a URI location."/>
        </Member>
        <Member Name="Applet">
          <Annotation Term="OData.Description" String="Connected to a client application."/>
        </Member>
        <Member Name="Oem">
          <Annotation Term="OData.Description" String="Connected via an OEM-defined method."/>
        </Member>
      </EnumType>

    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia.v1_0_2">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
      <EntityType Name="VirtualMedia" BaseType="VirtualMedia.v1_0_0.VirtualMedia"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia.v1_0_3">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
      <EntityType Name="VirtualMedia" BaseType="VirtualMedia.v1_0_2.VirtualMedia"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia.v1_0_4">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that OData properties are marked as required, and integer properties are marked as integer rather than number."/>
      <EntityType Name="VirtualMedia" BaseType="VirtualMedia.v1_0_3.VirtualMedia"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia.v1_0_5">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to make use of the new Revisions annotation."/>
      <EntityType Name="VirtualMedia" BaseType="VirtualMedia.v1_0_4.VirtualMedia"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia.v1_1_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2017.1"/>
      <EntityType Name="VirtualMedia" BaseType="VirtualMedia.v1_0_3.VirtualMedia">
        <Property Name="Actions" Type="VirtualMedia.v1_1_0.Actions" Nullable="false">
          <Annotation Term="OData.Description" String="The available actions for this resource."/>
          <Annotation Term="OData.LongDescription" String="The Actions property shall contain the available actions for this resource."/>
        </Property>
      </EntityType>

      <ComplexType Name="Actions">
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="OData.Description" String="The available actions for this resource."/>
        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>
        <Property Name="Oem" Type="VirtualMedia.v1_1_0.OemActions" Nullable="false">
          <Annotation Term="OData.Description" String="This property contains the available OEM specific actions for this resource."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain any additional OEM actions for this resource."/>
        </Property>
      </ComplexType>

      <ComplexType Name="OemActions">
        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
        <Annotation Term="OData.Description" String="The available OEM specific actions for this resource."/>
        <Annotation Term="OData.LongDescription" String="This type shall contain any additional OEM actions for this resource."/>
      </ComplexType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia.v1_1_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to perform editoral updates of descriptions defined in this schema."/>
      <EntityType Name="VirtualMedia" BaseType="VirtualMedia.v1_1_0.VirtualMedia"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia.v1_1_2">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that OData properties are marked as required, and integer properties are marked as integer rather than number."/>
      <EntityType Name="VirtualMedia" BaseType="VirtualMedia.v1_1_1.VirtualMedia"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia.v1_1_3">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to make use of the new Revisions annotation."/>
      <EntityType Name="VirtualMedia" BaseType="VirtualMedia.v1_1_2.VirtualMedia"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia.v1_2_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2017.3"/>
      <Annotation Term="OData.Description" String="This version was created to change the permissions of Image, Inserted, and WriteProtected and to add the InsertMedia and InjectMedia actions."/>
      <EntityType Name="VirtualMedia" BaseType="VirtualMedia.v1_1_1.VirtualMedia"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia.v1_2_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that OData properties are marked as required, and integer properties are marked as integer rather than number."/>
      <EntityType Name="VirtualMedia" BaseType="VirtualMedia.v1_2_0.VirtualMedia"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia.v1_2_2">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to make use of the new Revisions annotation."/>
      <EntityType Name="VirtualMedia" BaseType="VirtualMedia.v1_2_1.VirtualMedia"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="VirtualMedia.v1_3_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2018.3"/>
      <Annotation Term="OData.Description" String="This version was created to add new parameters for the InsertMedia action. It was also created to add new properties to define the image transfer protocol configuration."/>

      <EntityType Name="VirtualMedia" BaseType="VirtualMedia.v1_2_2.VirtualMedia">
        <Property Name="UserName" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="The username to be used when accessing the URI specified by the Image parameter."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall contain a string representing the username to be used when accessing the URI specified by the Image parameter."/>
        </Property>
        <Property Name="Password" Type="Edm.String">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="The password to be used when accessing the URI specified by the Image parameter. This property is null on a GET."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall contain a string representing the password to be used when accessing the URI specified by the Image parameter. The value shall be null for GET requests."/>        
        </Property>
        <Property Name="TransferProtocolType" Type="VirtualMedia.v1_3_0.TransferProtocolType">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="Network protocol to use with the image."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall contain a value representing the network protocol to use with the specified image URI."/>
        </Property>
        <Property Name="TransferMethod" Type="VirtualMedia.v1_3_0.TransferMethod">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="Transfer method to use with the given Image."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall contain a value describing how the image transfer is done."/>
        </Property>
      </EntityType>

      <EnumType Name="TransferProtocolType">
        <Member Name="CIFS">
          <Annotation Term="OData.Description" String="Common Internet File System protocol."/>
        </Member>
        <Member Name="FTP">
          <Annotation Term="OData.Description" String="File Transfer Protocol."/>
        </Member>
        <Member Name="SFTP">
          <Annotation Term="OData.Description" String="Secure File Transfer Protocol."/>
        </Member>
        <Member Name="HTTP">
          <Annotation Term="OData.Description" String="Hypertext Transfer Protocol."/>
        </Member>
        <Member Name="HTTPS">
          <Annotation Term="OData.Description" String="HTTP Secure protocol."/>
        </Member>
        <Member Name="NFS">
          <Annotation Term="OData.Description" String="Network File System protocol."/>
        </Member>
        <Member Name="SCP">
          <Annotation Term="OData.Description" String="Secure File Copy protocol."/>
        </Member>
        <Member Name="TFTP">
          <Annotation Term="OData.Description" String="Trivial File Transfer Protocol."/>
        </Member>
        <Member Name="OEM">
          <Annotation Term="OData.Description" String="A protocol defined by the manufacturer."/>
        </Member>
      </EnumType>

      <EnumType Name="TransferMethod">
        <Member Name="Stream">
          <Annotation Term="OData.Description" String="Stream image file data from the source URI."/>
        </Member>
        <Member Name="Upload">
          <Annotation Term="OData.Description" String="Upload the entire image file from the source URI to the service."/>
        </Member>
      </EnumType>
    </Schema>

  </edmx:DataServices>
</edmx:Edmx>
