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

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

  <xs:complexType name="modeledInstanceActivateNow">
    <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 name="platform" 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 minOccurs="0" name="template" type="gen_deploy-instance-base-morest-template"/>
      <xs:element minOccurs="0" name="device-image" type="gen_deploy-instance-base-morest-device-image"/>
      <xs:element name="activation-parameters" type="gen_deploy-instance-base-morest-active-now-details"/>
      <xs:element minOccurs="0" name="devices" type="gen_deploy-instance-base-morest-device-units">
            <xs:annotation>
               <xs:appinfo>
                  <space-appinfo>
                     <collection/>
                  </space-appinfo>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      <xs:element name="snmp-setting" type="gen_modeled-instance-snmp-setting"/>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
  </xs:complexType>
  
    <xs:complexType name="gen_deploy-instance-base-morest-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_deploy-instance-base-morest-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_deploy-instance-base-morest-active-now-details">
    <xs:sequence>
      <xs:element name="user-name" type="xs:string"/>
      <xs:element default="false" minOccurs="0" name="key-based" type="xs:boolean"/>
      <xs:element minOccurs="0" name="password" type="xs:string"/>
      <xs:element default="false" minOccurs="0" name="serial-number-validation" type="xs:boolean"/>
      <xs:element default="false" minOccurs="0" name="host-name-validation" type="xs:boolean"/>
      <xs:element name="connection-profile" type="gen_deploy-instance-base-morest-active-now-details-connection-profile"/>
      <xs:element default="AUTOMATIC" minOccurs="0" name="configuration-update-type" type="configurationUpdateType"/>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="gen_deploy-instance-base-morest-active-now-details-connection-profile">
    <xs:sequence>
      <xs:element minOccurs="0" name="id" type="xs:int">
        <xs:annotation>
          <xs:appinfo>
            <space-appinfo>
              <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/device-management/modeled-device-management/connection-profiles/{id}</link>
          </space-appinfo>
        </xs:appinfo>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>


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

  <xs:complexType name="gen_deploy-instance-base-morest-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:element minOccurs="0" name="os-version" type="xs:string"/>
      <xs:element minOccurs="0" name="serial-number" type="xs:string"/>
      <xs:element minOccurs="0" name="static-ip" type="xs:string"/>
      <xs:element minOccurs="0" name="gateway" 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="configurationUpdateType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="AUTOMATIC"/>
      <xs:enumeration value="MANUAL"/>
      <xs:enumeration value="NOT_APPICABLE"/>
    </xs:restriction>
  </xs:simpleType>

  <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>
