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

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

  <xs:complexType name="modeledInstanceActivateLater">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element minOccurs="0" name="description" type="xs:string"/>
      <xs:element minOccurs="0" name="tag-name" type="xs:string"/>
      <xs:element default="1" minOccurs="0" name="number-of-devices">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:maxInclusive value="200"/>
            <xs:minInclusive value="1"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="platform" type="xs:string"/>
      <xs:element minOccurs="0" name="template" type="gen_modeled-instance-template"/>
      <xs:element minOccurs="0" name="device-image" type="gen_modeled-instance-device-image"/>
	  <xs:element minOccurs="0" name="devices" type="gen_modeled-instance-device-units">
        <xs:annotation>
          <xs:appinfo>
            <space-appinfo>
              <collection/>
            </space-appinfo>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="snmp-setting" type="gen_modeled-instance-snmp-setting"/>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="gen_modeled-instance-template">
    <xs:sequence>
      <xs:element minOccurs="0" name="id" type="xs:int">
        <xs:annotation>
          <xs:appinfo>
            <space-appinfo>
              <sortable/>
              <filterable/>
              <read-only/>
            </space-appinfo>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <space-appinfo>
              <sortable/>
              <filterable/>
              <read-only/>
            </space-appinfo>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
    <xs:attribute name="href" type="xs:string" use="required">
      <xs:annotation>
        <xs:appinfo>
          <space-appinfo>
            <link>/api/space/config-template-management/config-templates/{id}</link>
          </space-appinfo>
        </xs:appinfo>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="gen_modeled-instance-device-image">
    <xs:sequence>
      <xs:element minOccurs="0" name="id" type="xs:int">
        <xs:annotation>
          <xs:appinfo>
            <space-appinfo>
              <sortable/>
              <filterable/>
              <read-only/>
            </space-appinfo>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <space-appinfo>
              <read-only/>
            </space-appinfo>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
    <xs:attribute name="href" type="xs:string" use="required">
      <xs:annotation>
        <xs:appinfo>
          <space-appinfo>
            <link>/api/space/software-management/packages/{id}</link>
          </space-appinfo>
        </xs:appinfo>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="gen_modeled-instance-device-units">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="device" type="gen_modeled-instance-device-units-device-units"/>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="gen_modeled-instance-device-units-device-units">
    <xs:sequence>
      <xs:element minOccurs="0" name="device-name" type="xs:string"/>
      <xs:element minOccurs="0" name="platform" type="xs:string"/>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="gen_modeled-instance-snmp-setting">
    <xs:sequence>
         <xs:choice>
				<xs:element name="snmp-v1-setting" type="gen_modeled-instance-snmp-setting-snmp-v1-setting"/>
      			<xs:element name="snmp-v2c-setting" type="gen_modeled-instance-snmp-setting-snmp-v2-c-setting"/>
      			<xs:element name="snmp-v3-setting" type="gen_modeled-instance-snmp-setting-snmp-v3-setting"/>
         </xs:choice>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="gen_modeled-instance-snmp-setting-snmp-v1-setting">
    <xs:sequence>
      <xs:element default="public" minOccurs="0" name="community-name" type="xs:string"/>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="gen_modeled-instance-snmp-setting-snmp-v2-c-setting">
    <xs:sequence>
      <xs:element default="public" minOccurs="0" name="community-name" type="xs:string"/>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="gen_modeled-instance-snmp-setting-snmp-v3-setting">
    <xs:sequence>
      <xs:element name="user-name" type="xs:string"/>
      <xs:element default="MD5" minOccurs="0" name="authentication-type" type="snmpUSMAuthenticationTypeEnum"/>
      <xs:element minOccurs="0" name="authentication-password" type="xs:string"/>
      <xs:element default="DES" minOccurs="0" name="privacy-type" type="snmpUSMPrivacyTypeEnum"/>
      <xs:element minOccurs="0" name="privacy-password" type="xs:string"/>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
  </xs:complexType>

  <xs:simpleType name="snmpUSMAuthenticationTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="MD5"/>
      <xs:enumeration value="SHA1"/>
      <xs:enumeration value="NONE"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="snmpUSMPrivacyTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="AES128"/>
      <xs:enumeration value="DES"/>
      <xs:enumeration value="NONE"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
