<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
  targetNamespace="http://opennebula.org/XMLSchema" xmlns="http://opennebula.org/XMLSchema">
  <xs:element name="USER">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ID" type="xs:integer"/>
        <xs:element name="GID" type="xs:integer"/>
        <xs:element name="GROUPS">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="ID" type="xs:integer" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="GNAME" type="xs:string"/>
        <xs:element name="NAME" type="xs:string"/>
        <xs:element name="PASSWORD" type="xs:string"/>
        <xs:element name="AUTH_DRIVER" type="xs:string"/>
        <xs:element name="ENABLED" type="xs:integer"/>
        <xs:element name="LOGIN_TOKEN" type="xs:string"/>
        <xs:element name="TEMPLATE" type="xs:anyType"/>
        <xs:element name="DATASTORE_QUOTA" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="DATASTORE" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="ID" type="xs:string"/>
                  <xs:element name="IMAGES" type="xs:string"/>
                  <xs:element name="IMAGES_USED" type="xs:string"/>
                  <xs:element name="SIZE" type="xs:string"/>
                  <xs:element name="SIZE_USED" type="xs:string"/>
                </xs:sequence>
              </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="NETWORK_QUOTA" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="NETWORK" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="ID" type="xs:string"/>
                  <xs:element name="LEASES" type="xs:string"/>
                  <xs:element name="LEASES_USED" type="xs:string"/>
                </xs:sequence>
              </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="VM_QUOTA" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="VM" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="CPU" type="xs:string"/>
                    <xs:element name="CPU_USED" type="xs:string"/>
                    <xs:element name="MEMORY" type="xs:string"/>
                    <xs:element name="MEMORY_USED" type="xs:string"/>
                    <xs:element name="VMS" type="xs:string"/>
                    <xs:element name="VMS_USED" type="xs:string"/>
                    <xs:element name="VOLATILE_SIZE" type="xs:string"/>
                    <xs:element name="VOLATILE_SIZE_USED" type="xs:string"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="IMAGE_QUOTA" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="IMAGE" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="ID" type="xs:string"/>
                    <xs:element name="RVMS" type="xs:string"/>
                    <xs:element name="RVMS_USED" type="xs:string"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="DEFAULT_USER_QUOTAS">
          <xs:complexType>
            <xs:sequence>
                <xs:element name="DATASTORE_QUOTA" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="DATASTORE" minOccurs="0" maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="ID" type="xs:string"/>
                          <xs:element name="IMAGES" type="xs:string"/>
                          <xs:element name="IMAGES_USED" type="xs:string"/>
                          <xs:element name="SIZE" type="xs:string"/>
                          <xs:element name="SIZE_USED" type="xs:string"/>
                        </xs:sequence>
                      </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
                <xs:element name="NETWORK_QUOTA" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="NETWORK" minOccurs="0" maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="ID" type="xs:string"/>
                          <xs:element name="LEASES" type="xs:string"/>
                          <xs:element name="LEASES_USED" type="xs:string"/>
                        </xs:sequence>
                      </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
                <xs:element name="VM_QUOTA" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="VM" minOccurs="0" maxOccurs="1">
                        <xs:complexType>
                          <xs:sequence>
                            <xs:element name="CPU" type="xs:string"/>
                            <xs:element name="CPU_USED" type="xs:string"/>               
                            <xs:element name="MEMORY" type="xs:string"/>
                            <xs:element name="MEMORY_USED" type="xs:string"/>
                            <xs:element name="VMS" type="xs:string"/>
                            <xs:element name="VMS_USED" type="xs:string"/>
                          </xs:sequence>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
                <xs:element name="IMAGE_QUOTA" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="IMAGE" minOccurs="0" maxOccurs="unbounded">
                        <xs:complexType>
                          <xs:sequence>
                            <xs:element name="ID" type="xs:string"/>
                            <xs:element name="RVMS" type="xs:string"/>
                            <xs:element name="RVMS_USED" type="xs:string"/>
                          </xs:sequence>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
