<?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="GROUP_POOL">
    <xs:complexType>
      <xs:sequence maxOccurs="1" minOccurs="1">
        <xs:choice maxOccurs="unbounded" minOccurs="0">
          <xs:element name="GROUP" maxOccurs="unbounded" minOccurs="0">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="ID" type="xs:integer"/>
                <xs:element name="NAME" type="xs:string"/>
                <xs:element name="TEMPLATE" type="xs:anyType"/>
                <xs:element name="USERS">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="ID" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
                <xs:element name="ADMINS">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="ID" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="QUOTAS" maxOccurs="unbounded" minOccurs="0">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="ID" type="xs:integer"/>
                <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:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
        <xs:element name="DEFAULT_GROUP_QUOTAS" minOccurs="1" maxOccurs="1">
          <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>