<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">

  <xs:element name="modeled-instance" type="modeledInstance"/>

  <xs:complexType name="modeledInstance">
    <xs:sequence>
      <xs:element minOccurs="0" name="id" type="xs:int"/>
      <xs:element name="name" type="xs:string">
         <xs:annotation>
            <xs:appinfo>
               <space-appinfo>
                  <filterable/>
                  <sortable/>
               </space-appinfo>
            </xs:appinfo>
         </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="description" type="xs:string"/>
      <xs:element minOccurs="0" name="device-family" type="xs:string"/>
      <xs:element minOccurs="0" name="connection-profile-type" type="connectionProfileType"/>
      <xs:element name="platform" type="xs:string"/>
      <xs:element default="1" minOccurs="0" name="device-count" type="xs:int">
         <xs:annotation>
            <xs:appinfo>
               <space-appinfo>
                  <filterable/>
                  <sortable/>
               </space-appinfo>
            </xs:appinfo>
         </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="devices" type="hateoasMethodObject">
        <xs:annotation>
          <xs:appinfo>
            <space-appinfo>
              <read-only/>
              <method/>
            </space-appinfo>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="configlets" type="hateoasMethodObject">
        <xs:annotation>
          <xs:appinfo>
            <space-appinfo>
              <read-only/>
              <method/>
            </space-appinfo>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="add-more-devices" type="hateoasMethodObject">
        <xs:annotation>
          <xs:appinfo>
            <space-appinfo>
              <read-only/>
              <method/>
            </space-appinfo>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="href" type="xs:string">
      <xs:annotation>
        <xs:appinfo>
          <space-appinfo>
            <link>/api/space/device-management/modeled-device-management/modeled-instances/{id}</link>
          </space-appinfo>
        </xs:appinfo>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="uri" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="hateoasMethodObject">
    <xs:sequence/>
    <xs:attribute name="href" type="xs:string"/>
  </xs:complexType>

  <xs:simpleType name="connectionProfileType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Static"/>
      <xs:enumeration value="DHCP"/>
      <xs:enumeration value="PPPoA"/>
      <xs:enumeration value="PPPoE"/>
      <xs:enumeration value="NONE"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
