Virtual Guest Package schema


<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <xsd:annotation>
  <xsd:documentation xml:lang="en">Virtual guest package input file schema</xsd:documentation>
 </xsd:annotation>
 <xsd:element name="VirtualGuestPackageConfiguration">  
  <xsd:complexType>
   <xsd:sequence>
    <!-- GeneralInfo contains information about package and name of the virtual guest  -->
    <xsd:element name="GeneralInfo" type="GeneralInfoType"/>
    <!-- Currently there is no support for RBACInfo through BL CLI  -->
    <xsd:element name="RBACInfo" type="RBACInfoType" minOccurs="0"/>
    <!-- PlatformInfo contains information about specific information about the platform guest  -->
    <xsd:element name="PlatformInfo" type="PlatformInfoType"/>
    <!-- LocalProperties - can add local properties by using this section  -->
    <xsd:element name="LocalProperties" type="LocalPropertiesType" minOccurs="0"/>
   </xsd:sequence>
  </xsd:complexType>
 </xsd:element>
 <xsd:complexType name="GeneralInfoType">
  <xsd:sequence>
   <xsd:element name="PackageName" type="xsd:string"/>
   <xsd:element name="PackageDescription" type="xsd:string"  minOccurs="0"/>
   <!-- TODO need to update cli info -->
   <xsd:element name="DepotGroupId" type="nonNegativeInt"/>
   <!-- Possible values for VirtualGuestPackageType are:
    VirtualGuestPackageType  - Description
    1-VMWare create Bare metal VM package Type
    2-VMWare create VM from template/existing VM package type.
    3-IBM create lpar package type
    4-IBM create VIOS package type
    7-Solaris create non global zone package type
    10-Citrix Xenserver create virtual machine from build-in template/custom template/existing VM package type.
    11-RHEL KVM create domain package type.
    12-RHEV create VM from template.
    13-RHEL create Bare Metal VM.
    -->
   <xsd:element name="VirtualGuestPackageType" type="nonNegativeInt"/>
   <!-- VirtualGuestName - Name of the virtual guest you want to create -->
   <xsd:element name="VirtualGuestName" type="xsd:string"  minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
 <!-- Currently there is no support for RBACInfo through BL CLI  -->
 <xsd:complexType name="RBACInfoType">
  <xsd:sequence>
   <xsd:element name="RBACEntry" type="RBACEntryType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="RBACEntryType">
  <xsd:sequence>
   <xsd:element name="Role" type="xsd:string"/>
   <xsd:element name="Authorization" type="xsd:string"/>
   <xsd:element name="Type" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="PlatformInfoType">
  <xsd:sequence>
   <xsd:choice>
    <xsd:element name="VMwareInfo" type="VMwareInfoType"/>
    <xsd:element name="PartitionInfo" type="PartitionInfoType"/>
    <xsd:element name="ZoneInfo" type="ZoneInfoType"/>
    <xsd:element name="RHELKVMInfo" type="RHELKVMInfoType"/>
    <xsd:element name="CitrixXenInfo" type="CitrixXenInfoType"/>
    <!-- VirtualGuestInfo is generic tag will be helpful to represent virtual guest information for all newly
    added platforms -->
    <xsd:element name="VirtualGuestInfo" type="VirtualGuestInfoType"/>
   </xsd:choice>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="VMwareInfoType">
  <xsd:sequence>
   <!-- VMOrTemplateId is applicable only for VMWare creating package by using existing template or VM(templatePackages)
-->
   <xsd:element name="VMOrTemplateId" type="xsd:string" minOccurs="0"/>
   <xsd:element name="ClonedDiskFormat" type="ClonedDiskFormatEnum" minOccurs="0"/>
   <xsd:element name="IsCustomConfig" type="booleanString" minOccurs="0" default="false"/>
   <xsd:element name="VMXDatastore" type="xsd:string" minOccurs="0"/>
   <!-- GuestOSId,  GuestOSVersionId can be fetched from CLI  Virtualization::listVirtualEntitiesByEntityManagerServerIdAndEntityType.
   Use input entity type for this cli is - VMwareGuestOSMapping
   Note: 1) For create VGP - GuestOSId,  GuestOSVersionId can be applicable for VGP type VMwareBareMetal only. For VGP Type Tempalte/VM clone, these values will be fetched from given template/vm.
      2) For update VGP/create VGJ - GuestOSId,  GuestOSVersionIdvalues can't be modified for  template/VM clone type packages.
   -->
   <xsd:element name="GuestOSId" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="GuestOSVersionId" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="NumOfProcessors" type="nonNegativeInt"  minOccurs="0"/>
   <xsd:element name="MemoryInMB" type="nonNegativeInt"  minOccurs="0"/>  
   <xsd:element name="VMwareDiskSettings" type="VMwareDiskSettingsType" minOccurs="0"/>
   <xsd:element name="VMwareNetworkSettings" type="VMwareNetworkSettingsType" minOccurs="0"/>
   <!-- OSCustomizationInfo is applicable only for VMWare template/VM clone type packages and Guest OS for the package should be either windows or linux.
-->
   <xsd:element name="OSCustomizationInfo" type="OSCustomizationInfoType" minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:simpleType name="ClonedDiskFormatEnum">
  <xsd:restriction base="xsd:string">
   <xsd:enumeration value="sameAsSource"/>
   <xsd:enumeration value="thinProvision"/>
   <xsd:enumeration value="thickProvision"/>
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:complexType name="OSCustomizationInfoType">
  <xsd:sequence>
   <xsd:choice>
    <xsd:element name="WindowsCustomizationInfo" type="WindowsCustomizationInfoType"/>
    <xsd:element name="LinuxCustomizationInfo" type="LinuxCustomizationInfoType"/>
   </xsd:choice>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="VMwareDiskSettingsType">  
  <xsd:sequence>
   <xsd:element name="SCSIAdapterType" minOccurs="0">
    <xsd:simpleType>
           <xsd:restriction base="xsd:string">
           <xsd:enumeration value="LSILogic"/>
           <xsd:enumeration value="BusLogic"/>
        </xsd:restriction>
    </xsd:simpleType>
   </xsd:element>
   <xsd:element name="DiskInfo" type="DiskInfoType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="DiskInfoType">
  <xsd:sequence>  
   <xsd:element name="DiskSize" type="nonNegativeInt"/>
   <xsd:element name="DiskSizeUnit" type="xsd:string"/>
   <xsd:element name="Datastore" type="xsd:string"/>
   <xsd:element name="ThinProvisioning" type="booleanString" minOccurs="0" default="false"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="VMwareNetworkSettingsType">
  <xsd:sequence>
   <xsd:element name="NetworkConnection" type="NetworkConnectionType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="NetworkConnectionType">
  <xsd:sequence>  
   <xsd:element name="Network" type="xsd:string"/>
   <xsd:element name="Adapter">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
               <xsd:enumeration value="VMXNET"/>
               <xsd:enumeration value="VMXNET 2 (Enhanced)"/>
               <xsd:enumeration value="VMXNET 3"/>
               <xsd:enumeration value="E1000"/>
               <xsd:enumeration value="Flexible (default)"/>
             </xsd:restriction>
            </xsd:simpleType>
           </xsd:element>
   <xsd:element name="ConnectAtPowerOn" type="booleanString"  minOccurs="0" default="false"/>
   <!-- GuestNetworkConfiguration settings will be applied if OSCustomizationInfo section mentioned in the package and Guest OS should be either windows or linux.
-->
   <xsd:element name="GuestNetworkConfiguration" type="GuestNetworkConfigurationType" minOccurs="0"/>   
  </xsd:sequence>
 </xsd:complexType>
 \\
 <xsd:complexType name="WindowsCustomizationInfoType">
  <xsd:sequence>
   <!-- If computerName is not provided, it will be auto generated -->  
   <xsd:element name="ComputerName" type="xsd:string" minOccurs="0"/>
   <xsd:element name="AdminPassword" type="xsd:string"/>
   <xsd:choice>
    <xsd:element name="Workgroup" type="xsd:string"/>   
    <xsd:group ref="WindowsDomainGroup"/>   
   </xsd:choice>
   <xsd:element name="UserName" type="xsd:string"/>   
   <xsd:element name="Organization" type="xsd:string"/>   
   <xsd:element name="LicenseKey" type="xsd:string" minOccurs="0"/>
   <!-- LicenseType:: default value taking for license type is: perServer. User can override this by giving value perSeat.-->
   <xsd:element name="LicenseType" default="perServer">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
               <xsd:enumeration value="perServer"/>
               <xsd:enumeration value="perSeat"/>
             </xsd:restriction>
            </xsd:simpleType>
           </xsd:element>
           <!-- NumOfConnections:: default value taking for number of connections, if license type is perServer:5.
             User can override this by giving value.-->
   <xsd:element name="NumOfConnections" type="nonNegativeInt"  minOccurs="0" default="5"/>
   <!--TimezoneId values are:
    1::(GMT-12:00) International Dateline
    2::(GMT-11:00) Midway Island, Samoa
    3::(GMT-10:00) Hawaii
    4::(GMT-09:00) Alaska
    5::(GMT-08:00) Pacific Time (US, Canada, Tijuana
    6::(GMT-07:00) Mountain Time (US, Canada)
    7::(GMT-07:00) Arizona
    8::(GMT-06:00) Central Time (US, Canada)
    9::(GMT-06:00) Saskatchewan
    10::(GMT-06:00) Mexico City
    11::(GMT-06:00) Central America
    12::(GMT-05:00) Eastern Time (US, Canada)
    13::(GMT-05:00) Indiana (East)
    14::(GMT-05:00) S.A. Pacific
    15::(GMT-04:00) Atlantic Time (Canada)
    16::(GMT-04:00) S.A. Western
    17::(GMT-04:00) Pacific S.A.
    18::(GMT-03:30) Newfoundland
    19::(GMT-03:00) E. South Americe
    20::(GMT-03:00) S.A Eastern
    21::(GMT-03:00) Greenland
    22::(GMT-02:00) Mid-Atlantic
    23::(GMT-01:00) Azores
    24::(GMT-01:00) Cape Verde Is.
    25::(GMT) GMT (Greenwich Mean Time)
    26::(GMT) GMT Greenwich
    27::(GMT+01:00) Central Europe
    28::(GMT+01:00) Central European
    29::(GMT+01:00) Romance
    30::(GMT+01:00) W. Europe
    31::(GMT+01:00) W. Central Africa
    32::(GMT+02:00) E. Europe
    33::(GMT+02:00) Cairo
    34::(GMT+02:00) EET (Helsinki, Riga, Tallinn)
    35::(GMT+02:00) EET (Athens, Istanbul, Minsk)
    36::(GMT+02:00) Jerusalem
    37::(GMT+03:00) S. Africa: Harare, Pretoria
    38::(GMT+03:00) Russian
    39::(GMT+03:00) Arab
    40::(GMT+03:00) E. Africa
    41::(GMT+03:30) Iran
    42::(GMT+04:00) Arabian
    43::(GMT+04:00) Caucasus Pacific (US, Canada)
    44::(GMT+04:30) Afghanistan
    45::(GMT+05:00) Russia Yekaterinburg
    46::(GMT+05:00) W. Asia
    47::(GMT+05:30) India
    48::(GMT+05:45) Nepal
    49::(GMT+06:00) Central Asia
    50::(GMT+06:00) Sri Lanka
    51::(GMT+06:00) N. Central Asia
    52::(GMT+06:30) Rangoon
    53::(GMT+07:00) S.E. Asia
    54::(GMT+07:00) N. Asia
    55::(GMT+08:00) China
    56::(GMT+08:00) Singapore
    57::(GMT+08:00) Taipei
    58::(GMT+08:00) W. Australia
    59::(GMT+08:00) N. Asia East
    60::(GMT+09:00) Seoul
    61::(GMT+09:00) Tokyo
    62::(GMT+09:00) Yakutsk
    63::(GMT+09:30) Darwin
    64::(GMT+09:30) Central Australia
    65::(GMT+10:00) A.U.S. Eastern
    66::(GMT+10:00) E. Australia
    67::(GMT+10:00) Tasmania
    68::(GMT+10:00) Vladivostok
    69::(GMT+10:00) W. Pacific
    70::(GMT+11:00) Central Pacific
    71::(GMT+12:00) Fiji, Kamchatka, Marshall Is.
    72::(GMT+12:00) New Zealand
    73::(GMT+13:00) Tonga
    -->
   <xsd:element name="TimezoneId" type="nonNegativeInt"   minOccurs="0" default="1"/>
   <!--LocaleId values are:
    1::English United States
    2::French Standard
    3::Japanese
    4::German Standard
    -->
   <xsd:element name="LocaleId" type="nonNegativeInt"   minOccurs="0" default="1"/>
   <!--DnsSuffix is global for a operating system, this will take comma separated DNS suffixes -->
   <xsd:element name="DnsSuffix" type="stringWithMaxLength" minOccurs="0" />
   <!--RunOnceCommands will contain commands for execution in sequence -->
   <xsd:element name="RunOnceCommands" type="RunOnceCommandsType" minOccurs="0" />
   \\
  </xsd:sequence>
 </xsd:complexType>
 \\
 <xsd:complexType name="LinuxCustomizationInfoType">
  <xsd:sequence>
   <!-- If computerName is not provided, it will be auto generated -->   
   <xsd:element name="HostName" type="xsd:string" minOccurs="0"/>
   <xsd:element name="Domain" type="xsd:string" minOccurs="0"/>
   <!--DnsSuffix is global for a operating system, this will take comma separated DNS suffixes -->
   <xsd:element name="DnsSuffix" type="stringWithMaxLength" minOccurs="0" />
  </xsd:sequence>
 </xsd:complexType>
 \\
 <xsd:group name="WindowsDomainGroup">
  <xsd:sequence>
   <xsd:element name="WindowsDomain" type="xsd:string"/>
   <xsd:element name="DomainAdminUser" type="xsd:string"/>
   <xsd:element name="DomainAdminPassword" type="xsd:string"/>
  </xsd:sequence>
 </xsd:group>
 <xsd:complexType name="GuestNetworkConfigurationType">
  <xsd:sequence>
   <xsd:choice>
    <xsd:element name="AutoIPAddress" type="booleanString"/>
    <xsd:group ref="IPAddressGroup"/>   
   </xsd:choice>
   <xsd:choice>
    <xsd:element name="AutoDNS" type="booleanString"/>
    <xsd:group ref="DNSGroup"/>  
   </xsd:choice>
   <!-- DnsSuffixForConnection will be applicable for Windows Guest OS only -->
   <xsd:element name="DnsSuffixForConnection" type="xsd:string" minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:group name="IPAddressGroup">
  <xsd:sequence>
   <xsd:element name="IPAddress" type="xsd:string"/>
   <xsd:element name="SubnetMask" type="xsd:string"/>
   <xsd:element name="PrefixLength" type="xsd:string"/>
   <xsd:element name="DefaultGateway" type="xsd:string"/>
  </xsd:sequence>
 </xsd:group>
 <xsd:group name="DNSGroup">
  <xsd:sequence>
   <xsd:element name="PrimaryDNS" type="xsd:string"/>
   <xsd:element name="SecondaryDNS" type="xsd:string" minOccurs="0"/>
   <!-- TertiaryDNS will be applicable for Linux Guest OS only -->
   <xsd:element name="TertiaryDNS" type="xsd:string" minOccurs="0"/>
   <!-- PrimaryDnsSuffix will be applicable for Linux Guest OS only keeping this for backward compatibility-->
            <xsd:element name="PrimaryDnsSuffix" type="xsd:string" minOccurs="0"/>      
  </xsd:sequence>
 </xsd:group>
 \\
 <xsd:complexType name="RunOnceCommandsType">
  <xsd:sequence>
   <xsd:element name="Command" type="stringWithMaxLength" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="PartitionInfoType">
  <xsd:sequence>
   <xsd:element name="PartitionGeneralSettings" type="PartitionGeneralSettingsType"/>
   <xsd:element name="ProcessorSettings" type="ProcessorSettingsType"/>
   <xsd:element name="MemorySettings" type="MemorySettingsType"/>
   <!-- Storage details are applicable for client LPARs only -->
   <xsd:element name="Storage" type="PartitionStorageType"  minOccurs="0"/>
   <xsd:element name="PhysicalIOs" type="PhysicalIOsType" minOccurs="0"/>
   <xsd:element name="VirtualAdapters" type="VirtualAdaptersType" minOccurs="0"/>
   <xsd:element name="LHEAs" type="LHEAsType" minOccurs="0"/>   
  </xsd:sequence>
 </xsd:complexType>
 \\
 <xsd:complexType name="PartitionStorageType">
  <xsd:choice>
   <xsd:sequence>
    <xsd:element name="VirtualDisks" type="PartitionVirtualDisksType"  minOccurs="0"/>
    <xsd:element name="PhysicalVolumes" type="PartitionPhysicalVolumesType" minOccurs="0"/>
    <xsd:element name="FiberChannelPorts" type="PartitionFiberChannelPortsType" minOccurs="0"/>
   </xsd:sequence>
  </xsd:choice>
 </xsd:complexType>
 \\
 <xsd:complexType name="PartitionVirtualDisksType">
  <xsd:sequence>
   <xsd:element name="VirtualDisk" type="PartitionVirtualDiskType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 \\
 <xsd:complexType name="PartitionPhysicalVolumesType">
  <xsd:sequence>
   <xsd:element name="PhysicalVolume" type="PartitionPVOrFCVolumeType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 \\
 <xsd:complexType name="PartitionFiberChannelPortsType">
  <xsd:sequence>
   <xsd:element name="FiberChannelPort" type="PartitionPVOrFCVolumeType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 \\
 <xsd:complexType name="PartitionVirtualDiskType">
  <xsd:sequence>
   <!-- If disk name is not provided, it will be auto generated by system as LV_PARTITIONID_SVSA_CVSA-->
   <xsd:element name="Name" type="xsd:string" minOccurs="0"/>
   <xsd:element name="SizeInGB" type="nonNegativeDouble"/>
   <xsd:element name="Location" type="xsd:string"/>   
  </xsd:sequence>
 </xsd:complexType>
 \\
 <xsd:complexType name="PartitionPVOrFCVolumeType">
  <xsd:sequence>
   <xsd:element name="Location" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>
 \\
 <xsd:complexType name="PartitionGeneralSettingsType">
  <xsd:sequence>
   <!-- If PartitionId is not provided, it will be auto generated by hypervisor-->  
   <xsd:element name="PartitionId" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="ProfileName" type="xsd:string" minOccurs="0"/>
   <!-- defaulting to false value for UseAllResources -->
   <xsd:element name="UseAllResources" type="booleanString"  minOccurs="0" default="false"/>   
   <xsd:element name="OptionalSettings" type="OptionalSettingsType" minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="OptionalSettingsType">
  <xsd:sequence>
   <xsd:element name="ConnectionMonitoring" type="booleanString"/>
   <xsd:element name="AutoStartManagedSystem" type="booleanString"/>
   <xsd:element name="RedundantErrorPathReporting" type="booleanString"/>
   <!-- boot_mode(can applicable for AIX, Linux, and virtual I/O server only)
                 Valid values are:
                        norm - normal
                        dd   - diagnostic with default boot list
                        ds   - diagnostic with stored boot list
                        of   - Open Firmware OK prompt
                        sms  - System Management Services
    -->
   <xsd:element name="BootMode">
    <xsd:simpleType>
           <xsd:restriction base="xsd:string">
           <xsd:enumeration value="Normal"/>
           <xsd:enumeration value="dd"/>
           <xsd:enumeration value="ds"/>
           <xsd:enumeration value="of"/>
           <xsd:enumeration value="sms"/>
        </xsd:restriction>
    </xsd:simpleType>
   </xsd:element>
   <xsd:element name="WorkloadGroupId" type="xsd:string"/>
   <!-- MoverServicePartition is applicable for package type IBM VIOS only-->  
   <xsd:element name="MoverServicePartition" type="booleanString" minOccurs="0"/>  
  </xsd:sequence>
 </xsd:complexType>  
 <xsd:complexType name="ProcessorSettingsType">
  <xsd:sequence>
   <!-- defaulting to shared mode -->
   <xsd:element name="ProcessorMode" minOccurs="0" default="shared">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
           <xsd:enumeration value="shared"/>
           <xsd:enumeration value="ded"/>
        </xsd:restriction>
    </xsd:simpleType>
   </xsd:element>
   <!--  processor sharing_mode  (From Bladelogic UI, ProcessorSharingMode set as 'share_idle_procs' always incase of dedicated processors)
                        Valid values for partitions using  dedicated processors are:
                        keep_idle_procs  - never share
                                 processors
                        share_idle_procs - share processors only
                                 when partition is inactive
                        share_idle_procs_active - share
                                 processors only when partition
                                 is active (POWER6 servers only)
                        share_idle_procs_always - always share
                                 processors (POWER6 servers only)
                           \\
                        Valid values for partitions using shared  processors are:
                        cap   - capped
                        uncap - uncapped
    -->
   <!-- default to cap in case of shared mode. default to share_idle_proc in case of dedicated mode. -->
   <xsd:element name="ProcessorSharingMode" minOccurs="0" default="cap">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
           <xsd:enumeration value="keep_idle_procs"/>
           <xsd:enumeration value="share_idle_procs"/>
         <xsd:enumeration value="share_idle_procs_active"/>
           <xsd:enumeration value="share_idle_procs_always"/>
      <xsd:enumeration value="cap"/>
           <xsd:enumeration value="uncap"/>
        </xsd:restriction>
    </xsd:simpleType>
   </xsd:element>
   <xsd:element name="MinimumProcessingUnits" type="xsd:double" minOccurs="0" default="0.1"/>
   <!-- defaulting to 0.1 for DesiredProcessingUnits -->
   <xsd:element name="DesiredProcessingUnits" type="xsd:double" minOccurs="0" default="0.1"/>
   <xsd:element name="MaximumProcessingUnits" type="xsd:double" minOccurs="0" default="0.1"/>
   <xsd:element name="SharedPool" type="xsd:string"  minOccurs="0"/>
   <!-- MinimumProcessors value will default to the DesiredProcessors value if not provided as VGP input. -->
   <xsd:element name="MinimumProcessors" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="DesiredProcessors" type="nonNegativeInt"/>
   <!-- MaximumProcessors value will default to the DesiredProcessors value if not provided as VGP input. -->
   <xsd:element name="MaximumProcessors" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="UncappedWeight" type="nonNegativeInt" minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="MemorySettingsType">
  <xsd:sequence>
   <!-- Memory mode by default taking as dedicated. 'shared' memory mode is applicable only for client partitions. -->
   <xsd:element name="MemoryMode"  minOccurs="0" default="ded">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
           <xsd:enumeration value="shared"/>
           <xsd:enumeration value="ded"/>
        </xsd:restriction>
    </xsd:simpleType>
   </xsd:element>   
   <xsd:element name="MinimumMemory" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="DesiredMemory" type="nonNegativeInt"/>
   <xsd:element name="MaximumMemory" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="AMEFactor" type="xsd:double"  minOccurs="0"/>
   <xsd:element name="PrimaryPagingVIOS" type="xsd:string" minOccurs="0"/>
   <xsd:element name="SecondaryPagingVIOS" type="xsd:string" minOccurs="0"/>
   <xsd:element name="MemoryWeight" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="CustomEntitledMemory" type="nonNegativeInt" minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="HugePagesSettingsType">
  <xsd:sequence>
   <xsd:element name="MinimumNumOfHugePages" type="nonNegativeInt"/>
   <xsd:element name="DesiredNumOfHugePages" type="nonNegativeInt"/>
   <xsd:element name="MaximumNumOfHugePages" type="nonNegativeInt"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="PhysicalIOsType">
  <xsd:sequence>
   <xsd:element name="PhysicalIO" type="PhysicalIOType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="PhysicalIOType">
  <xsd:sequence>
   <xsd:element name="SlotDRCIndex" type="nonNegativeInt"/>
   <xsd:element name="SlotIOPoolId" type="xsd:string" minOccurs="0"/>
   <xsd:element name="Required" type="booleanString" minOccurs="0" default="false"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="VirtualAdaptersType">
  <xsd:sequence>
   <!-- for client the default value for MaxVirtualAdapters is 10. for VIOS server, the default is 20. -->
   <xsd:element name="MaxVirtualAdapters" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="EthernetAdapters" type="EthernetAdaptersType" minOccurs="0"/>
   <xsd:element name="FiberChannelAdapters" type="FiberChannelAdaptersType" minOccurs="0"/>
   <xsd:element name="SCSIAdapters" type="SCSIAdaptersType" minOccurs="0"/>
   <xsd:element name="SerialAdapters" type="SerialAdaptersType" minOccurs="0"/>   
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="EthernetAdaptersType">
  <xsd:sequence>
   <xsd:element name="EthernetAdapter" type="EthernetAdapterType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="EthernetAdapterType">
  <xsd:sequence>
   <!-- AdapterId value will be auto-generated if not provided as a part of VGP input. -->
   <xsd:element name="AdapterId" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="VirtualSwitch" type="xsd:string" minOccurs="0"/>
   <xsd:element name="VLANId" type="nonNegativeInt"/>
   <xsd:element name="Required" type="booleanString" minOccurs="0" default="false"/>
   <xsd:element name="AccessExternalNetwork" type="booleanString" minOccurs="0" default="false"/>
   <xsd:element name="TrunkPriority" type="nonNegativeInt" minOccurs="0"/>   
   <xsd:element name="AdditionalVLANs" type="AdditionalVLANsType" minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:simpleType name="AdditionalVLANsType">
  <xsd:restriction base="xsd:string">
   <xsd:pattern value="\[Nn\]one|\[Aa\]ll|\[\d\]+(,\[\d\]+)*"/>
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:complexType name="FiberChannelAdaptersType">
  <xsd:sequence>
   <xsd:element name="FiberChannelAdapter" type="FiberChannelAdapterType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="FiberChannelAdapterType">
  <xsd:sequence>
   <xsd:element name="AdapterId" type="nonNegativeInt"/>
   <xsd:element name="AdapterType">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
           <xsd:enumeration value="client"/>
           <xsd:enumeration value="server"/>
        </xsd:restriction>
    </xsd:simpleType>
   </xsd:element>
   <xsd:element name="Required" type="booleanString"/>
   <!-- Supporting only remote partition Name  -->
   <!--
   <xsd:choice>
    <xsd:element name="RemotePartitionId" type="xsd:string"/>
    <xsd:element name="RemotePartitionName" type="xsd:string"/>
   </xsd:choice>
   -->
   <xsd:element name="RemotePartitionName" type="xsd:string"/>   
   <xsd:element name="RemoteAdapterId" type="xsd:string"/>
   <!-- If wwpns not mentioned, will be auto generated by system -->
   <xsd:element name="WWPNs" type="WWPNsType" minOccurs="0"/>   
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="WWPNsType">
  <xsd:sequence>
   <xsd:element name="WWPN" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="SCSIAdaptersType">
  <xsd:sequence>
   <xsd:element name="SCSIAdapter" type="SCSIAdapterType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="SCSIAdapterType">
  <xsd:sequence>
   <xsd:element name="AdapterId" type="nonNegativeInt"/>
   <xsd:element name="AdapterType">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
           <xsd:enumeration value="client"/>
           <xsd:enumeration value="server"/>
        </xsd:restriction>
    </xsd:simpleType>
   </xsd:element>
   <xsd:element name="Required" type="booleanString"/>
   <!-- Supporting only remote partition Name  -->
   <!--
   <xsd:choice>
    <xsd:element name="RemotePartitionId" type="xsd:string"/>
    <xsd:element name="RemotePartitionName" type="xsd:string"/>
   </xsd:choice>
   -->
   <xsd:element name="RemotePartitionName" type="xsd:string" minOccurs="0"/>
   <xsd:element name="RemoteAdapterId" type="xsd:string" minOccurs="0"/>   
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="SerialAdaptersType">
  <xsd:sequence>
   <xsd:element name="SerialAdapter" type="SerialAdapterType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="SerialAdapterType">
  <xsd:sequence>
   <xsd:element name="AdapterId" type="nonNegativeInt"/>
   <xsd:element name="AdapterType">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
           <xsd:enumeration value="client"/>
           <xsd:enumeration value="server"/>
        </xsd:restriction>
    </xsd:simpleType>
   </xsd:element>
   <xsd:element name="Required" type="booleanString"/>
   <xsd:element name="SupportsHMC" type="booleanString" minOccurs="0"/>
   <xsd:element name="ConnectingRemotePartition" type="ConnectingRemotePartitionType" minOccurs="0"/>   
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ConnectingRemotePartitionType">
  <xsd:sequence>
   <!-- Supporting only remote partition Name  -->
   <!--
   <xsd:choice>
    <xsd:element name="RemotePartitionId" type="xsd:string"/>
    <xsd:element name="RemotePartitionName" type="xsd:string"/>
   </xsd:choice>
   -->
   <xsd:element name="RemotePartitionName" type="xsd:string" minOccurs="0"/>
   <xsd:element name="RemoteAdapterId" type="xsd:string" minOccurs="0"/>   
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="LHEAsType">
  <xsd:sequence>
   <xsd:element name="LHEA" type="LHEAType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="LHEAType">
  <xsd:sequence>
   <!-- Most of the frames allowes  AdapterId as - 23000000 -->
   <xsd:element name="AdapterId" type="nonNegativeInt"/>
   <xsd:element name="PortGroup" type="nonNegativeInt"/>
   <xsd:element name="PhysicalPortId" type="nonNegativeInt"/>
   <xsd:element name="LogicalPortId" type="nonNegativeInt"/>
   <xsd:element name="AllowAllVLANIDs" type="booleanString"/>
   <xsd:element name="AllowedVLANs" type="AllowedVLANIDsType" minOccurs="0"/>  
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="LocalPropertiesType">
  <xsd:sequence>
   <xsd:element name="LocalProperty" type="LocalPropertyType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="LocalPropertyType">
  <xsd:sequence>
   <xsd:element name="PropertyName" type="xsd:string"/>
   <xsd:element name="PropertyValue" type="xsd:string"/>
   <xsd:element name="PropertyType" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:simpleType name="AllowedVLANIDsType">
  <xsd:restriction base="xsd:string">
   <xsd:pattern value="\[Nn\]one|\[Aa\]ll|\[\d\]+(,\[\d\]+)*"/>
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:complexType name="ZoneInfoType">
  <xsd:sequence>
   <xsd:element name="ZonePath" type="xsd:string"/>
   <xsd:element name="AutoBoot" type="booleanString" minOccurs="0"/>
   <xsd:element name="BootZoneAfterCreation" type="booleanString"  minOccurs="0" default="false"/>
   <xsd:element name="ResourcePool" type="xsd:string" minOccurs="0"/>
   <xsd:element name="BootArgs" type="xsd:string" minOccurs="0"/>
   <xsd:element name="LimitPrivileges" type="xsd:string" minOccurs="0"/>
   <!-- SchedulingClass values help:
      FSS-Fair Share sheduler
      FX-Fixed Priority
      IA-Inter Active
      RT-Real Time
      SYS-System
      TS-Time Shared
    -->
   <xsd:element name="SchedulingClass" minOccurs="0">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
           <xsd:enumeration value=""/>
           <xsd:enumeration value="FSS"/>
           <xsd:enumeration value="FX"/>
           <xsd:enumeration value="IA"/>
           <xsd:enumeration value="RT"/>
           <xsd:enumeration value="SYS"/>
           <xsd:enumeration value="TS"/>
        </xsd:restriction>
    </xsd:simpleType>   
   </xsd:element>
   <xsd:element name="ProcessorType" minOccurs="0">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
           <xsd:enumeration value="Capped"/>
           <xsd:enumeration value="Dedicated"/>
        </xsd:restriction>
    </xsd:simpleType>
   </xsd:element>
   <xsd:element name="NumCPUsORRange" type="xsd:string" minOccurs="0"/>
   <xsd:element name="Importance" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="PhysicalMemory" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="MaximumSwap" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="LockedMemory" type="nonNegativeInt" minOccurs="0"/>
   <xsd:element name="IPType" minOccurs="0">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
           <xsd:enumeration value="shared"/>
           <xsd:enumeration value="exclusive"/>
        </xsd:restriction>
    </xsd:simpleType>
   </xsd:element>   
   <xsd:element name="ZoneNetworkAddresses" type="ZoneNetworkAddressesType" minOccurs="0"/>
   <xsd:element name="ZoneFileSystems" type="ZoneFileSystemsType" minOccurs="0"/>
   <xsd:element name="ZoneDataSets" type="ZoneDataSetsType" minOccurs="0"/>
   <xsd:element name="ZoneDevices" type="ZoneDevicesType" minOccurs="0"/>
   <xsd:element name="ZoneInheritedPkgDirs" type="ZoneInheritedPkgDirsType" minOccurs="0"/>
   <xsd:element name="ZoneResourceControls" type="ZoneResourceControlsType" minOccurs="0"/>
   <xsd:element name="ZoneAttributes" type="ZoneAttributesType" minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneNetworkAddressesType">
  <xsd:sequence>
   <xsd:element name="ZoneNetworkAddress" type="ZoneNetworkAddressType" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneNetworkAddressType">
  <xsd:sequence>
   <!-- Physical can be allowed in both cases of if IPType is shared/exclusive
-->
   <xsd:element name="Physical" type="xsd:string"/>
   <!-- Address can be allowed if IPType is shared -->
   <xsd:element name="Address" type="xsd:string" minOccurs="0"/>
   <!-- DefaultRouter can be allowed if IPType is shared -->
   <xsd:element name="DefaultRouter" type="xsd:string" minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneFileSystemsType">
  <xsd:sequence>
   <xsd:element name="ZoneFileSystem" type="ZoneFileSystemType" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneFileSystemType">
  <xsd:sequence>
   <xsd:element name="FileSystemDir" type="xsd:string"/>
   <xsd:element name="FileSystemSpecial" type="xsd:string"/>
   <xsd:element name="FileSystemRaw" type="xsd:string"/>
   <xsd:element name="FileSystemType" type="xsd:string"/>
   <xsd:element name="FileSystemOptions" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneDataSetsType">
  <xsd:sequence>
   <xsd:element name="ZoneDataSet" type="ZoneDataSetType" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneDataSetType">
  <xsd:sequence>
   <xsd:element name="DataSetName" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneDevicesType">
  <xsd:sequence>
   <xsd:element name="ZoneDevice" type="ZoneDeviceType" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneDeviceType">
  <xsd:sequence>
   <xsd:element name="DeviceMatch" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneInheritedPkgDirsType">
  <xsd:sequence>
   <xsd:element name="ZoneInheritedPkgDir" type="ZoneInheritedPkgDirType" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneInheritedPkgDirType">
  <xsd:sequence>
   <xsd:element name="PackagePath" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneResourceControlsType">
  <xsd:sequence>
   <xsd:element name="ZoneResourceControl" type="ZoneResourceControlType" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneResourceControlType">
  <xsd:sequence>
   <xsd:element name="ResourceControlName" type="xsd:string"/>
   <xsd:element name="ResourceControlValue" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneAttributesType">
  <xsd:sequence>
   <xsd:element name="ZoneAttribute" type="ZoneAttributeType" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="ZoneAttributeType">
  <xsd:sequence>
   <xsd:element name="AttributeName" type="xsd:string"/>
   <xsd:element name="AttributeType">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
           <xsd:enumeration value="boolean"/>
           <xsd:enumeration value="int"/>
           <xsd:enumeration value="uint"/>
           <xsd:enumeration value="string"/>
        </xsd:restriction>
    </xsd:simpleType>
   </xsd:element>
   <xsd:element name="AttributeValue" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>
<!-- RHEL KVM Starts -->
 <xsd:complexType name="RHELKVMInfoType">
  <xsd:sequence>
   <xsd:element name="NumVCPU" type="nonNegativeInt"/>
   <xsd:element name="MaxMemory" type="nonNegativeInt"/>
   <xsd:element name="StartUpMemory" type="nonNegativeInt"/>
   <xsd:element name="AutoBoot" type="booleanString" minOccurs="0" maxOccurs="1"/>
   <xsd:element name="CPUArchitecture">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
                 <xsd:enumeration value="x86_64"/>
      <xsd:enumeration value="i686"/>
        </xsd:restriction>
    </xsd:simpleType>   
   </xsd:element>
   <xsd:element name="RHELKVMStorages" type="RHELKVMStoragesType" minOccurs="0" maxOccurs="1"/>
   <xsd:element name="RHELKVMNetworks" type="RHELKVMNetworksType" minOccurs="0" maxOccurs="1"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="RHELKVMStoragesType">
  <xsd:sequence>
   <xsd:element name="RHELKVMStorage" type="RHELKVMStorageType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="RHELKVMStorageType">
  <xsd:sequence>
    <xsd:choice>
   <xsd:element name="RHELKVMBlockPartitionStorage" type="RHELKVMBlockPartitionStorageType"/>
   <xsd:element name="RHELKVMFileImageStorage" type="RHELKVMFileImageStorageType"/>
   </xsd:choice>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="RHELKVMBlockPartitionStorageType">
  <xsd:sequence>
      <xsd:element name="TargetDeviceType" type="RHELKVMStorageTargetDeviceType"/>
        <xsd:element name="TargetDeviceBus"  type="RHELKVMStorageTargetDeviceBus"/>
     <xsd:element name="Location" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="RHELKVMFileImageStorageType">
  <xsd:sequence>
      <xsd:element name="TargetDeviceType" type="RHELKVMStorageTargetDeviceType"/>
         <xsd:element name="TargetDeviceBus"  type="RHELKVMStorageTargetDeviceBus"/>
   <xsd:choice minOccurs="1">
    <xsd:element name="PoolName" type="xsd:string"/>
    <xsd:element name="Location" type="xsd:string"/>
   </xsd:choice>
      <xsd:element name="FileName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="StorageSize" type="nonNegativeInt"/>
   <xsd:element name="AllocateNow" type="booleanString" minOccurs="0" maxOccurs="1"/>
   </xsd:sequence>
 </xsd:complexType>
  <xsd:complexType name="RHELKVMNetworksType">
  <xsd:sequence>
   <xsd:element name="RHELKVMNetwork" type="RHELKVMNetworkType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="RHELKVMNetworkType">
  <xsd:sequence>
   <xsd:element name="Name" type="xsd:string"/>
   <xsd:element name="Type">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
           <xsd:enumeration value="Virtual Network"/>
          <xsd:enumeration value="Bridge"/>
        </xsd:restriction>
    </xsd:simpleType>   
   </xsd:element>
   <xsd:element name="MacAddress" type="xsd:string"/>
   <xsd:element name="DeviceModel">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
             <xsd:enumeration value="Hypervisor default"/>
            <xsd:enumeration value="e1000"/>
            <xsd:enumeration value="ne2k_pci"/>
            <xsd:enumeration value="pcnet"/>
            <xsd:enumeration value="rtl8139"/>
            <xsd:enumeration value="virtio"/>
        </xsd:restriction>
    </xsd:simpleType>   
   </xsd:element>
  </xsd:sequence>
 </xsd:complexType>
<!-- RHEL KVM Ends -->
 \\
 <!-- Citrix Xen schema info -->
 <xsd:complexType name="CitrixXenInfoType">
 <xsd:sequence>
  <xsd:element name="VGDescription" type="xsd:string"  minOccurs="0" />
  <xsd:element name="VMOrTemplateName" type="xsd:string"  minOccurs="0"/>
  <xsd:element name="NumberOfvCPUs" type="nonNegativeInt" minOccurs="0"/>
  <xsd:element name="MemoryInMB" type="nonNegativeInt" minOccurs="0" />
  <xsd:element name="AutoBoot" type="booleanString"  minOccurs="0" />
  <xsd:element name="BootParams" type="xsd:string"  minOccurs="0" />
  <xsd:element name="CitrixXenDisks" type="CitrixXenDisksType" minOccurs="0" />
  <xsd:element name="CitrixXenNetworkInterfaces" type="CitrixXenNetworksType" minOccurs="0"  />
  <xsd:element name="OSCustomizationInfo" type="OSCustomizationInfoType" minOccurs="0"/>
 </xsd:sequence>
 </xsd:complexType>
  \\
 <xsd:complexType name="CitrixXenDisksType">
  <xsd:sequence>
   <xsd:element name="CitrixXenDisk" type="CitrixXenDiskType" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 \\
 <xsd:complexType name="CitrixXenNetworksType">
  <xsd:sequence>
   <xsd:element name="CitrixXenNetworkInterface" type="CitrixXenNetworkType" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
  \\
 <xsd:complexType name="CitrixXenDiskType">
  <xsd:sequence>
   <xsd:element name="DiskName" type="xsd:string" />
   <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
   <xsd:element name="SizeInMB" type="nonNegativeInt"  />
   <xsd:element name="StorageRepository" type="xsd:string" minOccurs="1"/>
  </xsd:sequence>
 </xsd:complexType>
 \\
 <xsd:complexType name="CitrixXenNetworkType">
  <xsd:sequence>
   <xsd:element name="Network" type="xsd:string"/>
   <!-- If the macAddress is present in input xml, it will be applied to network, otherwise setting  AutoGenerateMAC as true
   (Citrix Xenserver will generate mac address automatically)-->
   <xsd:choice>
    <xsd:element name="AutoGenerateMAC" type="booleanString" />
    <xsd:element name="MACAddress" type="xsd:string"/>
   </xsd:choice>
   <xsd:element name="GuestNetworkConfiguration" type="GuestNetworkConfigurationType" minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
 \\
 <xsd:complexType name="VirtualGuestInfoType">
  <xsd:sequence>
   <!-- VMOrTemplateId is applicable only for template or VM clone type packages-->
   <xsd:element name="Description" type="xsd:string"  minOccurs="0" />
   <xsd:element name="SourceTemplateId" type="xsd:string"  minOccurs="0"/>
   <xsd:element name="GuestOS" type="xsd:string" minOccurs="0"/>
   <xsd:element name="VirtualGuestStorage" type="xsd:string" minOccurs="0"/>
   <xsd:element name="CoresPerSocket" type="nonNegativeInt" default="1" minOccurs="0"/>
   <xsd:element name="NumOfSockets" type="nonNegativeInt" default="1" minOccurs="0"/>
   <xsd:element name="MemoryInMB" type="nonNegativeInt" default="512" minOccurs="0" />
   <xsd:element name="PowerOnVMAfterCreation" type="booleanString"  minOccurs="0" default="true"/>
   <xsd:element name="AutoBoot" type="booleanString"  minOccurs="0" default="false"/>
   <xsd:element name="VirtualDisks" type="VirtualDisksType" minOccurs="0"/>
   <xsd:element name="VirtualNetworks" type="VirtualNetworksType" minOccurs="0"/>
   <xsd:element name="PlatformSpecificProperties" type="PlatformSpecificPropertiesType" minOccurs="0"/>
   <!-- OSCustomizationInfo is applicable only for template/VM clone type packages and Guest OS for the package should be either windows or linux.-->
   <xsd:element name="OSCustomizationInfo" type="OSCustomizationInfoType" minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
\\
 <xsd:complexType name="VirtualDisksType">
  <xsd:sequence>
   <xsd:element name="VirtualDisk" type="VirtualDiskType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="VirtualDiskType">
  <xsd:sequence>
   <xsd:element name="DiskSizeInGB" type="xsd:double"/>
   <xsd:element name="Storage" type="xsd:string" minOccurs="0"/>
   <xsd:element name="ThinProvisioning" type="xsd:boolean" minOccurs="0" default="false"/>
   <!-- List of extended properties to specify platform specific properties required for VM Disk -->
   <xsd:element name="DiskExtendedProperties" type="PlatformSpecificPropertiesType" minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
\\
 <xsd:complexType name="VirtualNetworksType">
  <xsd:sequence>
   <xsd:element name="VirtualNetwork" type="VirtualNetworkType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="VirtualNetworkType">
  <xsd:sequence>
   <xsd:element name="NetworkName" type="xsd:string"/>
   <!-- MACAddress, if not mentioned it will be auto generated by hypervisor-->
   <xsd:element name="MACAddress" type="xsd:string" minOccurs="0"/>
   <xsd:element name="ConnectAtPowerOn" type="booleanString"  minOccurs="0" default="false"/>
   <!-- List of extended properties to specify platform specific properties required for VM Network -->
   <xsd:element name="NetworkExtendedProperties" type="PlatformSpecificPropertiesType" minOccurs="0"/>
   <!-- GuestNetworkConfiguration settings will be applied if OSCustomizationInfo section mentioned in the package
   and Guest OS should be either windows or linux.-->
   <xsd:element name="GuestNetworkConfiguration" type="GuestNetworkConfigurationType" minOccurs="0"/>
  </xsd:sequence>
 </xsd:complexType>
\\
 <xsd:complexType name="PlatformSpecificPropertiesType">
  <xsd:sequence>
   <xsd:element name="PlatformSpecificProperty" type="PlatformSpecificPropertyType" minOccurs="1" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
\\
 <!-- PlatformSpecific properties for RHEV platform are as follows:
  PropetyNamePossibleValues
  _______________________________________________________________
  HAPriorityNo_HA, Low, Medium, High
  diskInterfaceTypeide, virtio, scsi
  networkAdapterTypee1000, virtio, rtl8139, rtl8139_virtio
  -->
 <xsd:complexType name="PlatformSpecificPropertyType">
  <xsd:sequence>
   <xsd:element name="PropertyName" type="xsd:string"/>
   <xsd:element name="PropertyValue" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>
\\
 <xsd:simpleType name="nonNegativeInt">
  <xsd:restriction base="xsd:int">
   <xsd:minInclusive value="0"/>
  </xsd:restriction>
 </xsd:simpleType>
 \\
 <xsd:simpleType name="nonNegativeDouble">
  <xsd:restriction base="xsd:double">
   <xsd:minInclusive value="0.0"/>
  </xsd:restriction>
 </xsd:simpleType>
 \\
 <xsd:simpleType name="booleanString">
  <xsd:restriction base="xsd:boolean">
   <xsd:pattern value="true|false"/>
  </xsd:restriction>
 </xsd:simpleType>
    <xsd:simpleType name="RHELKVMStorageTargetDeviceType">
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="Disk"/>
            <xsd:enumeration value="CDROM"/>
            <xsd:enumeration value="Floppy"/>
          </xsd:restriction>
        </xsd:simpleType>
 <xsd:simpleType name="RHELKVMStorageTargetDeviceBus">
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="IDE"/>
            <!--xsd:enumeration value="SCSI"/-->
            <xsd:enumeration value="USB"/>
            <xsd:enumeration value="VIRTIO"/>
          </xsd:restriction>
        </xsd:simpleType>
  <xsd:simpleType name="stringWithMaxLength">
   <xsd:restriction base="xsd:string">
   <xsd:maxLength value="255"/>
   </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

TrueSight Server Automation 23.2