Account Options

  1. Sign in
The old Google Groups will be going away soon.
Switch to the new Google Groups.
Google Groups Home
« Groups Home
r343 committed - changes for latest EC2 API including cluster compute support
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  1 message - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
typ...@googlecode.com  
View profile  
 More options Jul 14 2010, 1:16 pm
From: typ...@googlecode.com
Date: Wed, 14 Jul 2010 17:16:25 +0000
Local: Wed, Jul 14 2010 1:16 pm
Subject: [typica] r343 committed - changes for latest EC2 API including cluster compute support
Revision: 343
Author: dkavanagh
Date: Wed Jul 14 10:15:41 2010
Log: changes for latest EC2 API including cluster compute support

http://code.google.com/p/typica/source/detail?r=343

Added:
  /trunk/java/com/xerox/amazonws/ec2/PlacementGroupInfo.java
Modified:
  /trunk/java/com/xerox/amazonws/ec2/ImageDescription.java
  /trunk/java/com/xerox/amazonws/ec2/InstanceType.java
  /trunk/java/com/xerox/amazonws/ec2/Jec2.java
  /trunk/java/com/xerox/amazonws/ec2/LaunchConfiguration.java
  /trunk/java/com/xerox/amazonws/ec2/ReservationDescription.java
  /trunk/xsd/ec2.xsd

=======================================
--- /dev/null
+++ /trunk/java/com/xerox/amazonws/ec2/PlacementGroupInfo.java  Wed Jul 14  
10:15:41 2010
@@ -0,0 +1,56 @@
+//
+// typica - A client library for Amazon Web Services
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+package com.xerox.amazonws.ec2;
+
+/**
+ * An instance of this class represents an EC2 placemenet group.
+ */
+public class PlacementGroupInfo {
+       private String requestId;
+       private String groupName;
+       private String strategy;
+       private String state;
+
+       public PlacementGroupInfo(String requestId, String groupName,
+                                                       String strategy, String state) {
+               this.requestId = requestId;
+               this.groupName = groupName;
+               this.strategy = strategy;
+               this.state = state;
+       }
+
+       public String getRequestId() {
+               return requestId;
+       }
+
+       public String getGroupName() {
+               return groupName;
+       }
+
+       public String getStrategy() {
+               return strategy;
+       }
+
+       public String getState() {
+               return state;
+       }
+
+       public String toString() {
+               return "PlacementGroupInfo[groupName="+this.groupName+",  
strategy="+this.strategy
+                               +", state="+this.state+"]";
+       }
+}
=======================================
--- /trunk/java/com/xerox/amazonws/ec2/ImageDescription.java    Mon Mar 22  
07:40:01 2010
+++ /trunk/java/com/xerox/amazonws/ec2/ImageDescription.java    Wed Jul 14  
10:15:41 2010
@@ -45,13 +45,14 @@
        private String rootDeviceType;
        private String rootDeviceName;
        private List<BlockDeviceMapping> blockDeviceMapping;
+       private String virtualizationType;

        public ImageDescription(String id, String loc, String owner,
                        String state, Boolean isPublic, List<String> productCodes,
                        String architecture, String imageType, String kernelId, String  
ramdiskId,
                        String platform, String reason, String imageOwnerAlias, String name,
                        String description, String rootDeviceType, String rootDeviceName,
-                       List<BlockDeviceMapping> blockDeviceMapping) {
+                       List<BlockDeviceMapping> blockDeviceMapping, String virtualizationType)  
{
                this.imageId = id;
                this.imageLocation = loc;
                this.imageOwnerId = owner;
@@ -70,6 +71,7 @@
                this.rootDeviceType = rootDeviceType;
                this.rootDeviceName = rootDeviceName;
                this.blockDeviceMapping = blockDeviceMapping;
+               this.virtualizationType = virtualizationType;
        }

        public String getImageId() {
@@ -143,6 +145,10 @@
        public List<BlockDeviceMapping> getBlockDeviceMapping() {
                return blockDeviceMapping;
        }
+
+       public String getVirtualizationType() {
+               return virtualizationType;
+       }

        public String toString() {
                return "Image[ID=" + imageId + ", Loc=" + imageLocation + ", own="
=======================================
--- /trunk/java/com/xerox/amazonws/ec2/InstanceType.java        Tue Feb 23  
04:22:14 2010
+++ /trunk/java/com/xerox/amazonws/ec2/InstanceType.java        Wed Jul 14  
10:15:41 2010
@@ -28,7 +28,8 @@
        XLARGE_HCPU ("c1.xlarge"),
        XLARGE_HMEM ("m2.xlarge"),
        XLARGE_DOUBLE_HMEM ("m2.2xlarge"),
-       XLARGE_QUAD_HMEM ("m2.4xlarge");
+       XLARGE_QUAD_HMEM ("m2.4xlarge"),
+       XLARGE_CLUSTER_COMPUTE ("cc1.4xlarge");

        private final String typeId;

=======================================
--- /trunk/java/com/xerox/amazonws/ec2/Jec2.java        Fri Jul  9 12:55:14 2010
+++ /trunk/java/com/xerox/amazonws/ec2/Jec2.java        Wed Jul 14 10:15:41 2010
@@ -56,6 +56,7 @@
  import com.xerox.amazonws.typica.jaxb.CancelBundleTaskResponse;
  import com.xerox.amazonws.typica.jaxb.CancelSpotInstanceRequestsResponse;
  import  
com.xerox.amazonws.typica.jaxb.CancelSpotInstanceRequestsResponseSetItemTyp e;
+import com.xerox.amazonws.typica.jaxb.CreatePlacementGroupResponse;
  import com.xerox.amazonws.typica.jaxb.CreateImageResponse;
  import com.xerox.amazonws.typica.jaxb.CreateKeyPairResponse;
  import com.xerox.amazonws.typica.jaxb.CreateSnapshotResponse;
@@ -64,6 +65,7 @@
  import com.xerox.amazonws.typica.jaxb.CreateVolumePermissionItemType;
  import com.xerox.amazonws.typica.jaxb.ConfirmProductInstanceResponse;
  import com.xerox.amazonws.typica.jaxb.CreateSecurityGroupResponse;
+import com.xerox.amazonws.typica.jaxb.DeletePlacementGroupResponse;
  import com.xerox.amazonws.typica.jaxb.DeleteKeyPairResponse;
  import com.xerox.amazonws.typica.jaxb.DeleteSecurityGroupResponse;
  import com.xerox.amazonws.typica.jaxb.DeleteSnapshotResponse;
@@ -81,6 +83,7 @@
  import com.xerox.amazonws.typica.jaxb.DescribeImagesResponseItemType;
  import com.xerox.amazonws.typica.jaxb.DescribeInstancesResponse;
  import com.xerox.amazonws.typica.jaxb.DescribeInstanceAttributeResponse;
+import com.xerox.amazonws.typica.jaxb.DescribePlacementGroupsResponse;
  import com.xerox.amazonws.typica.jaxb.DescribeReservedInstancesResponse;
  import  
com.xerox.amazonws.typica.jaxb.DescribeReservedInstancesResponseSetItemType ;
  import  
com.xerox.amazonws.typica.jaxb.DescribeReservedInstancesOfferingsResponse;
@@ -118,10 +121,11 @@
  import com.xerox.amazonws.typica.jaxb.ModifyImageAttributeResponse;
  import com.xerox.amazonws.typica.jaxb.ModifyInstanceAttributeResponse;
  import com.xerox.amazonws.typica.jaxb.ModifySnapshotAttributeResponse;
-import com.xerox.amazonws.typica.jaxb.MonitorInstancesResponse;
+import com.xerox.amazonws.typica.jaxb.MonitorInstancesResponseType;
  import com.xerox.amazonws.typica.jaxb.MonitorInstancesResponseSetItemType;
  import com.xerox.amazonws.typica.jaxb.NullableAttributeValueType;
  import com.xerox.amazonws.typica.jaxb.ObjectFactory;
+import com.xerox.amazonws.typica.jaxb.PlacementGroupInfoType;
  import com.xerox.amazonws.typica.jaxb.ProductCodeListType;
  import com.xerox.amazonws.typica.jaxb.ProductCodeItemType;
  import com.xerox.amazonws.typica.jaxb.ProductCodesSetType;
@@ -149,7 +153,6 @@
  import com.xerox.amazonws.typica.jaxb.StartInstancesResponse;
  import com.xerox.amazonws.typica.jaxb.StopInstancesResponse;
  import com.xerox.amazonws.typica.jaxb.TerminateInstancesResponse;
-import com.xerox.amazonws.typica.jaxb.UnmonitorInstancesResponse;
  import com.xerox.amazonws.typica.jaxb.UserIdGroupPairType;
  import com.xerox.amazonws.typica.jaxb.UserIdGroupPairSetType;

@@ -210,7 +213,7 @@
      {
                super(awsAccessId, awsSecretKey, isSecure, server, port);
                ArrayList<String> vals = new ArrayList<String>();
-               vals.add("2009-11-30");
+               vals.add("2010-06-15");
                super.headers.put("Version", vals);
      }

@@ -469,7 +472,7 @@
                                        item.getKernelId(), item.getRamdiskId(), item.getPlatform(),
                                        reason, item.getImageOwnerAlias(),
                                        item.getName(), item.getDescription(), item.getRootDeviceType(),
-                                       item.getRootDeviceName(), bdm));
+                                       item.getRootDeviceName(), bdm, item.getVirtualizationType()));
                }
                return result;
        }
@@ -2109,8 +2112,8 @@
                        params.put("InstanceId."+(i+1), instanceIds.get(i));
                }
                HttpGet method = new HttpGet();
-               MonitorInstancesResponse response =
-                               makeRequestInt(method, "MonitorInstances", params,  
MonitorInstancesResponse.class);
+               MonitorInstancesResponseType response =
+                               makeRequestInt(method, "MonitorInstances", params,  
MonitorInstancesResponseType.class);
                List<MonitoredInstanceInfo> ret = new ArrayList<MonitoredInstanceInfo>();
                for (MonitorInstancesResponseSetItemType item :  
response.getInstancesSet().getItems()) {
                        ret.add(new MonitoredInstanceInfo(item.getInstanceId(),
@@ -2132,8 +2135,8 @@
                        params.put("InstanceId."+(i+1), instanceIds.get(i));
                }
                HttpGet method = new HttpGet();
-               UnmonitorInstancesResponse response =
-                               makeRequestInt(method, "UnmonitorInstances", params,  
UnmonitorInstancesResponse.class);
+               MonitorInstancesResponseType response =
+                               makeRequestInt(method, "UnmonitorInstances", params,  
MonitorInstancesResponseType.class);
                List<MonitoredInstanceInfo> ret = new ArrayList<MonitoredInstanceInfo>();
                for (MonitorInstancesResponseSetItemType item :  
response.getInstancesSet().getItems()) {
                        ret.add(new MonitoredInstanceInfo(item.getInstanceId(),
@@ -2284,6 +2287,69 @@
                        throw new EC2Exception("Could not delete subscription. No reason  
given.");
                }
        }
+
+       /**
+        * Creates a placement group to launch cluster compute instances into.
+        *
+        * @param groupName the name of the group you're creating
+        * @param strategy placement strategy ("cluster")
+        * @throws EC2Exception wraps checked exceptions
+        */
+       public void createPlacementGroup(String groupName, String strategy)  
throws EC2Exception {
+               Map<String, String> params = new HashMap<String, String>();
+               params.put("GropuName", groupName);
+               params.put("Stategy", strategy);
+               HttpGet method = new HttpGet();
+               CreatePlacementGroupResponse response =
+                               makeRequestInt(method, "CreatePlacementGroup", params,  
CreatePlacementGroupResponse.class);
+               if (!response.isReturn()) {
+                       throw new EC2Exception("Could not create placement group. No reason  
given.");
+               }
+       }
+
+       /**
+        * Deletes a placement group.
+        *
+        * @param groupName the name of the group you're creating
+        * @throws EC2Exception wraps checked exceptions
+        */
+       public void deletePlacementGroup(String groupName) throws EC2Exception {
+               Map<String, String> params = new HashMap<String, String>();
+               params.put("GropuName", groupName);
+               HttpGet method = new HttpGet();
+               DeletePlacementGroupResponse response =
+                               makeRequestInt(method, "DeletePlacementGroup", params,  
DeletePlacementGroupResponse.class);
+               if (!response.isReturn()) {
+                       throw new EC2Exception("Could not delete placement group. No reason  
given.");
+               }
+       }
+
+       /**
+        * This method describes the placement groups.
+        *
+        * @param groupNames names of 1 or more groups to get information about,  
null for all groups
+        * @return information about the groups
+        * @throws EC2Exception wraps checked exceptions
+        */
+       public List<PlacementGroupInfo> describePlacementGroups(List<String>  
groupNames) throws EC2Exception {
+               Map<String, String> params = new HashMap<String, String>();
+               for (int i=0 ; i<groupNames.size(); i++) {
+                       params.put("GroupName."+(i+1), groupNames.get(i));
+               }
+               HttpGet method = new HttpGet();
+        DescribePlacementGroupsResponse response =
+                               makeRequestInt(method, "DescribePlacementGroups", params,  
DescribePlacementGroupsResponse.class);
+
+               List<PlacementGroupInfo> ret = new ArrayList<PlacementGroupInfo>();
+               List<PlacementGroupInfoType> items =  
response.getPlacementGroupSet().getItems();
+               if (items != null) {
+                       for (PlacementGroupInfoType item : items) {
+                               ret.add(new PlacementGroupInfo(response.getRequestId(),  
item.getGroupName(),
+                                                                       item.getStrategy(), item.getState()));
+                       }
+               }
+               return ret;
+       }

        protected <T> T makeRequestInt(HttpRequestBase method, String action,  
Map<String, String> params, Class<T> respType)
                throws EC2Exception {
=======================================
--- /trunk/java/com/xerox/amazonws/ec2/LaunchConfiguration.java Fri Jul  9  
12:55:34 2010
+++ /trunk/java/com/xerox/amazonws/ec2/LaunchConfiguration.java Wed Jul 14  
10:15:41 2010
@@ -73,6 +73,12 @@
        /** The subnet to be used with Amazon VPC */
        private String subnetId;

+       /** The private IP to be used with Amazon VPC */
+       private String privateIpAddress;
+
+       /** placement group for cluster compute instances */
+       private String groupName;
+
        /**
         * Launches the given AMI one time. The min and max values are '1'.
         *
@@ -326,6 +332,34 @@
        public void setSubnetId(String subnetId) {
                this.subnetId = subnetId;
        }
+
+       /**
+        * @return the privateIpAddress
+        */
+       public String getPrivateIpAddress() {
+               return this.privateIpAddress;
+       }
+
+       /**
+        * @param privateIpAddress the privateIpAddress to set
+        */
+       public void setPrivateIpAddress(String privateIpAddress) {
+               this.privateIpAddress = privateIpAddress;
+       }
+
+       /**
+        * @return the groupName used with cluster compute instances
+        */
+       public String getGroupName() {
+               return this.groupName;
+       }
+
+       /**
+        * @param groupName the groupName to set
+        */
+       public void setGroupName(String groupName) {
+               this.groupName = groupName;
+       }

        /**
         * For some eucaluptus clusters, need to set this false (=private)
@@ -401,5 +435,13 @@
          if (subnetId != null && !subnetId.trim().equals("")) {
              params.put(prefix + "SubnetId", subnetId);
          }
+        String privateIpAddress = getPrivateIpAddress();
+        if (privateIpAddress != null  
&& !privateIpAddress.trim().equals("")) {
+            params.put(prefix + "PrivateIpAddress", privateIpAddress);
+        }
+        String groupName = getGroupName();
+        if (groupName != null && !groupName.trim().equals("")) {
+            params.put(prefix + "GroupName", groupName);
+        }
      }
  }
=======================================
--- /trunk/java/com/xerox/amazonws/ec2/ReservationDescription.java      Fri Jul  
9 12:55:34 2010
+++ /trunk/java/com/xerox/amazonws/ec2/ReservationDescription.java      Wed Jul  
14 10:15:41 2010
@@ -96,7 +96,7 @@
                        boolean monitoring, String subnetId, String privateIpAddress, String  
ipAddress,
                        String architecture, String rootDeviceType, String rootDeviceName,
                        List<InstanceBlockDeviceMapping> blockDeviceMapping, String  
instanceLifecycle,
-                       String spotInstanceRequestId, String vpcId) {
+                       String spotInstanceRequestId, String vpcId, String virtualizationType) {
                Instance instance = new Instance(imageId, instanceId, privateDnsName,
                                dnsName, state.getName(), ""+state.getCode(), reason,
                                keyName, launchIndex, productCodes,
@@ -104,7 +104,7 @@
                                availabilityZone, kernelId, ramdiskId, platform,
                                monitoring, subnetId, privateIpAddress, ipAddress,
                                architecture, rootDeviceType, rootDeviceName,
-                               blockDeviceMapping, instanceLifecycle, spotInstanceRequestId, vpcId);
+                               blockDeviceMapping, instanceLifecycle, spotInstanceRequestId, vpcId,  
virtualizationType);
                instances.add(instance);
                return instance;
        }
@@ -167,6 +167,7 @@
                private List<InstanceBlockDeviceMapping> blockDeviceMapping;
                private String instanceLifecycle;
                private String spotInstanceRequestId;
+               private String virtualizationType;

                public Instance(String imageId, String instanceId, String privateDnsName,
                                String dnsName, String stateName, String stateCode, String reason,
@@ -176,7 +177,7 @@
                                boolean monitoring, String subnetId, String privateIpAddress, String  
ipAddress,
                                String architecture, String rootDeviceType, String rootDeviceName,
                                List<InstanceBlockDeviceMapping> blockDeviceMapping, String  
instanceLifecycle,
-                               String spotInstanceRequestId, String vpcId) {
+                               String spotInstanceRequestId, String vpcId, String virtualizationType)  
{
                        this.imageId = imageId;
                        this.instanceId = instanceId;
                        this.privateDnsName = privateDnsName;
@@ -204,6 +205,7 @@
                        this.blockDeviceMapping = blockDeviceMapping;
                        this.instanceLifecycle = instanceLifecycle;
                        this.spotInstanceRequestId = spotInstanceRequestId;
+                       this.virtualizationType = virtualizationType;
                }

                Instance(RunningInstancesItemType rsp_item) {
@@ -255,6 +257,7 @@
                        }
                        this.instanceLifecycle = rsp_item.getInstanceLifecycle();
                        this.spotInstanceRequestId = rsp_item.getSpotInstanceRequestId();
+                       this.virtualizationType = rsp_item.getVirtualizationType();
                }

                public String getImageId() {
@@ -380,6 +383,10 @@
                public String getSpotInstanceRequestId() {
                        return spotInstanceRequestId;
                }
+
+               public String getVirtualizationType() {
+                       return virtualizationType;
+               }

                public String toString() {
                        return "[img=" + this.imageId + ", instance=" + this.instanceId
=======================================
--- /trunk/xsd/ec2.xsd  Tue Mar 23 08:41:51 2010
+++ /trunk/xsd/ec2.xsd  Wed Jul 14 10:15:41 2010
@@ -1,7 +1,7 @@
  <?xml version="1.0" encoding="UTF-8"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-                  xmlns:tns="http://ec2.amazonaws.com/doc/2009-11-30/"
-                  targetNamespace="http://ec2.amazonaws.com/doc/2009-11-30/"
+                  xmlns:tns="http://ec2.amazonaws.com/doc/2010-06-15/"
+                  targetNamespace="http://ec2.amazonaws.com/doc/2010-06-15/"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
                   xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
@@ -18,100 +18,73 @@
        </jaxb:globalBindings>
      </xs:appinfo>
    </xs:annotation>
-
-  <!-- CreateImage -->
-
-  <xs:element name='CreateImage' type='tns:CreateImageType' />
-
-  <xs:complexType name='CreateImageType'>
+
+  <xs:element name="CreateImage" type="tns:CreateImageType"/>
+  <xs:complexType name="CreateImageType">
        <xs:sequence>
-         <xs:element name='instanceId' type='xs:string' />
-         <xs:element name='name' type='xs:string' />
-         <xs:element name='description' type='xs:string' minOccurs='0' />
-         <xs:element name='noReboot' type='xs:boolean' minOccurs='0' />
+         <xs:element name="instanceId" type="xs:string"/>
+         <xs:element name="name" type="xs:string"/>
+         <xs:element name="description" type="xs:string" minOccurs="0"/>
+         <xs:element name="noReboot" type="xs:boolean" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
-
-  <xs:element name='CreateImageResponse'  
type='tns:CreateImageResponseType' />
-
-  <xs:complexType name='CreateImageResponseType'>
+  <xs:element name="CreateImageResponse"  
type="tns:CreateImageResponseType"/>
+  <xs:complexType name="CreateImageResponseType">
        <xs:sequence>
-         <xs:element name='requestId' type='xs:string' />
-         <xs:element name='imageId' type='xs:string' />
+         <xs:element name="requestId" type="xs:string"/>
+         <xs:element name="imageId" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-
-  <!-- RegisterImage -->
-
-  <xs:complexType name='ProductCodeType'>
+  <xs:complexType name="ProductCodeType">
        <xs:sequence>
-         <xs:element name='productCode' type='xs:string' />
+         <xs:element name="productCode" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-  <xs:complexType name='ProductCodeSetType'>
+  <xs:complexType name="ProductCodeSetType">
        <xs:sequence>
-         <xs:element name='item' type='tns:ProductCodeType' minOccurs='0'  
maxOccurs='unbounded' />
+         <xs:element name="item" type="tns:ProductCodeType" minOccurs="0"  
maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
-
-  <xs:element name='RegisterImage' type='tns:RegisterImageType' />
-  <xs:element name='RegisterImageResponse'  
type='tns:RegisterImageResponseType' />
-  <xs:complexType name='RegisterImageType'>
+  <xs:element name="RegisterImage" type="tns:RegisterImageType"/>
+  <xs:element name="RegisterImageResponse"  
type="tns:RegisterImageResponseType"/>
+  <xs:complexType name="RegisterImageType">
        <xs:sequence>
-         <xs:element name='imageLocation' type='xs:string' minOccurs='0' />
-         <xs:element name='name' type='xs:string' />
-         <xs:element name='description' type='xs:string' minOccurs='0' />
-         <xs:element name='architecture' type='xs:string' minOccurs='0' />
-         <xs:element name='kernelId' type='xs:string' minOccurs='0' />
-         <xs:element name='ramdiskId' type='xs:string' minOccurs='0' />
-         <xs:element name='rootDeviceName' type='xs:string' minOccurs='0' />
-         <xs:element name='blockDeviceMapping' type='tns:BlockDeviceMappingType'  
minOccurs='0' />
+         <xs:element name="imageLocation" type="xs:string" minOccurs="0"/>
+         <xs:element name="name" type="xs:string"/>
+         <xs:element name="description" type="xs:string" minOccurs="0"/>
+         <xs:element name="architecture" type="xs:string" minOccurs="0"/>
+         <xs:element name="kernelId" type="xs:string" minOccurs="0"/>
+         <xs:element name="ramdiskId" type="xs:string" minOccurs="0"/>
+         <xs:element name="rootDeviceName" type="xs:string" minOccurs="0"/>
+         <xs:element name="blockDeviceMapping" type="tns:BlockDeviceMappingType"  
minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
-  <xs:complexType name='RegisterImageResponseType'>
+  <xs:complexType name="RegisterImageResponseType">
        <xs:sequence>
-         <xs:element name='requestId' type='xs:string' />
-         <xs:element name='imageId' type='xs:string' />
+         <xs:element name="requestId" type="xs:string"/>
+         <xs:element name="imageId" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DeregisterImage request definitions -->
-
    <xs:element name="DeregisterImage" type="tns:DeregisterImageType"/>
-
    <xs:complexType name="DeregisterImageType">
        <xs:sequence>
          <xs:element name="imageId" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DeregisterImage response definitions -->
-
    <xs:element name="DeregisterImageResponse"  
type="tns:DeregisterImageResponseType"/>
-
    <xs:complexType name="DeregisterImageResponseType">
        <xs:sequence>
          <xs:element name="requestId" type="xs:string"/>
          <xs:element name="return" type="xs:boolean"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- CreateKeyPair request definitions -->
-
    <xs:element name="CreateKeyPair" type="tns:CreateKeyPairType"/>
-
    <xs:complexType name="CreateKeyPairType">
        <xs:sequence>
          <xs:element name="keyName" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- CreateKeyPair response definitions -->
-
    <xs:element name="CreateKeyPairResponse"  
type="tns:CreateKeyPairResponseType"/>
-
    <xs:complexType name="CreateKeyPairResponseType">
        <xs:sequence>
          <xs:element name="requestId" type="xs:string"/>
@@ -120,112 +93,87 @@
          <xs:element name="keyMaterial" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DeleteKeyPair request definitions -->
-
-  <xs:element name="DeleteKeyPair" type="tns:DeleteKeyPairType" />
-
+  <xs:element name="DeleteKeyPair" type="tns:DeleteKeyPairType"/>
    <xs:complexType name="DeleteKeyPairType">
        <xs:sequence>
          <xs:element name="keyName" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DeleteKeyPair response definitions -->
-
    <xs:element name="DeleteKeyPairResponse"  
type="tns:DeleteKeyPairResponseType"/>
-
    <xs:complexType name="DeleteKeyPairResponseType">
        <xs:sequence>
          <xs:element name="requestId" type="xs:string"/>
          <xs:element name="return" type="xs:boolean"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DescribeKeyPairs Request definitions -->
-
    <xs:element name="DescribeKeyPairs" type="tns:DescribeKeyPairsType"/>
-
    <xs:complexType name="DescribeKeyPairsType">
        <xs:sequence>
          <xs:element name="keySet" type="tns:DescribeKeyPairsInfoType"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeKeyPairsInfoType">
        <xs:sequence>
          <xs:element name="item" type="tns:DescribeKeyPairsItemType"  
minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeKeyPairsItemType">
        <xs:sequence>
          <xs:element name="keyName" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DescribeKeyPairs Response definitions -->
-
    <xs:element name="DescribeKeyPairsResponse"  
type="tns:DescribeKeyPairsResponseType"/>
-
    <xs:complexType name="DescribeKeyPairsResponseType">
        <xs:sequence>
          <xs:element name="requestId" type="xs:string"/>
          <xs:element name="keySet" type="tns:DescribeKeyPairsResponseInfoType"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeKeyPairsResponseInfoType">
        <xs:sequence>
          <xs:element name="item" type="tns:DescribeKeyPairsResponseItemType"  
minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeKeyPairsResponseItemType">
        <xs:sequence>
-         <xs:element name="keyName" type="xs:string" />
-         <xs:element name="keyFingerprint" type="xs:string" />
+         <xs:element name="keyName" type="xs:string"/>
+         <xs:element name="keyFingerprint" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- RunInstances request definitions -->
-
    <xs:element name="RunInstances" type="tns:RunInstancesType"/>
-
    <xs:complexType name="RunInstancesType">
        <xs:sequence>
          <xs:element name="imageId" type="xs:string"/>
          <xs:element name="minCount" type="xs:int"/>
          <xs:element name="maxCount" type="xs:int"/>
-         <xs:element name="keyName" type="xs:string" minOccurs="0" />
+         <xs:element name="keyName" type="xs:string" minOccurs="0"/>
          <xs:element name="groupSet" type="tns:GroupSetType"/>
          <xs:element name="additionalInfo" type="xs:string" minOccurs="0"/>
          <xs:element name="userData" type="tns:UserDataType" minOccurs="0"  
maxOccurs="1"/>
          <xs:element name="addressingType" type="xs:string" minOccurs="0"  
maxOccurs="1"/>
-         <xs:element name="instanceType" type="xs:string" />
-         <xs:element name="placement" type="tns:PlacementRequestType"  
minOccurs="0" maxOccurs="1" />
+         <xs:element name="instanceType" type="xs:string"/>
+         <xs:element name="placement" type="tns:PlacementRequestType"  
minOccurs="0" maxOccurs="1"/>
          <xs:element name="kernelId" type="xs:string" minOccurs="0"  
maxOccurs="1"/>
          <xs:element name="ramdiskId" type="xs:string" minOccurs="0"  
maxOccurs="1"/>
-         <xs:element name="blockDeviceMapping" type="tns:BlockDeviceMappingType"  
minOccurs="0" maxOccurs="1" />
-         <xs:element name="monitoring" type="tns:MonitoringInstanceType"  
minOccurs="0" maxOccurs="1" />
-         <xs:element name="subnetId" type="xs:string" minOccurs="0"  
maxOccurs="1" />
-         <xs:element name="disableApiTermination" type="xs:boolean"  
minOccurs="0" maxOccurs="1" />
-         <xs:element name="instanceInitiatedShutdownBehavior" type="xs:string"  
minOccurs="0" maxOccurs="1" />
+         <xs:element name="blockDeviceMapping" type="tns:BlockDeviceMappingType"  
minOccurs="0" maxOccurs="1"/>
+         <xs:element name="monitoring" type="tns:MonitoringInstanceType"  
minOccurs="0" maxOccurs="1"/>
+         <xs:element name="subnetId" type="xs:string" minOccurs="0"  
maxOccurs="1"/>
+         <xs:element name="disableApiTermination" type="xs:boolean"  
minOccurs="0" maxOccurs="1"/>
+         <xs:element name="instanceInitiatedShutdownBehavior" type="xs:string"  
minOccurs="0" maxOccurs="1"/>
+         <xs:element name="license" type="tns:InstanceLicenseRequestType"  
minOccurs="0" maxOccurs="1"/>
+         <xs:element name="privateIpAddress" type="xs:string" minOccurs="0"  
maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="GroupSetType">
        <xs:sequence>
          <xs:element name="item" type="tns:GroupItemType" minOccurs="0"  
maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="GroupItemType">
        <xs:sequence>
          <xs:element name="groupId" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="UserDataType" mixed="true">
        <xs:sequence>
          <xs:element name="data" type="xs:string" minOccurs="0"/>
@@ -233,24 +181,21 @@
        <xs:attribute name="version" type="xs:string" use="required" fixed="1.0"/>
        <xs:attribute name="encoding" type="xs:string" use="required"  
fixed="base64"/>
    </xs:complexType>
-
-  <xs:complexType name="BlockDeviceMappingType">
-       <xs:sequence>
-         <xs:element name="item" type="tns:BlockDeviceMappingItemType"  
minOccurs="0" maxOccurs="unbounded" />
-       </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="BlockDeviceMappingItemType">
-       <xs:sequence>
-         <xs:element name="deviceName" type="xs:string"/>
+  <xs:complexType name="BlockDeviceMappingType">
+       <xs:sequence>
+         <xs:element name="item" type="tns:BlockDeviceMappingItemType"  
minOccurs="0" maxOccurs="unbounded"/>
+       </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="BlockDeviceMappingItemType">
+       <xs:sequence>
+         <xs:element name="deviceName" type="xs:string"/>
          <xs:choice>
-               <xs:element name="virtualName" type="xs:string"/>
+               <xs:element name="virtualName" type="xs:string"/>
                <xs:element name="ebs" type="tns:EbsBlockDeviceType"/>
                <xs:element name="noDevice" type="tns:EmptyElementType"/>
          </xs:choice>
        </xs:sequence>
-  </xs:complexType>
-
+  </xs:complexType>
    <xs:complexType name="EbsBlockDeviceType">
        <xs:sequence>
          <xs:element name="snapshotId" type="xs:string" minOccurs="0"/>
@@ -258,23 +203,23 @@
          <xs:element name="deleteOnTermination" type="xs:boolean" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
-
-  <xs:complexType name="PlacementRequestType">
-       <xs:sequence>
-         <xs:element name="availabilityZone" type="xs:string" minOccurs="0"  
maxOccurs="1" />
-       </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="MonitoringInstanceType">
-       <xs:sequence>
+  <xs:complexType name="PlacementRequestType">
+       <xs:sequence>
+         <xs:element name="availabilityZone" type="xs:string" minOccurs="0"  
maxOccurs="1"/>
+         <xs:element name="groupName" type="xs:string" minOccurs="0"  
maxOccurs="1"/>
+       </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="MonitoringInstanceType">
+       <xs:sequence>
          <xs:element name="enabled" type="xs:boolean" minOccurs="0"  
maxOccurs="1"/>
-       </xs:sequence>
+       </xs:sequence>
    </xs:complexType>
-
-  <!-- RunInstances response definitions -->
-
+  <xs:complexType name="InstanceLicenseRequestType">
+       <xs:sequence>
+         <xs:element name="pool" type="xs:string" minOccurs="1" maxOccurs="1"/>
+       </xs:sequence>
+  </xs:complexType>
    <xs:element name="RunInstancesResponse"  
type="tns:RunInstancesResponseType"/>
-
    <xs:complexType name="RunInstancesResponseType">
        <xs:sequence>
          <xs:element name="requestId" type="xs:string"/>
@@ -285,7 +230,6 @@
          <xs:element name="requesterId" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="ReservationInfoType">
        <xs:sequence>
          <xs:element name="reservationId" type="xs:string"/>
@@ -295,299 +239,247 @@
          <xs:element name="requesterId" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="RunningInstancesSetType">
        <xs:sequence>
          <xs:element name="item" type="tns:RunningInstancesItemType"  
minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="RunningInstancesItemType">
        <xs:sequence>
          <xs:element name="instanceId" type="xs:string"/>
-         <xs:element name="imageId" type="xs:string" minOccurs="0" />
+         <xs:element name="imageId" type="xs:string" minOccurs="0"/>
          <xs:element name="instanceState" type="tns:InstanceStateType"/>
          <xs:element name="privateDnsName" type="xs:string"/>
-         <xs:element name="dnsName" type="xs:string" minOccurs="0" />
+         <xs:element name="dnsName" type="xs:string" minOccurs="0"/>
          <xs:element name="reason" type="xs:string" minOccurs="0"/>
          <xs:element name="keyName" type="xs:string" minOccurs="0"/>
          <xs:element name="amiLaunchIndex" type="xs:string" minOccurs="0"  
maxOccurs="1"/>
-         <xs:element name="productCodes" type="tns:ProductCodesSetType"  
minOccurs="0" maxOccurs="1" />
+         <xs:element name="productCodes" type="tns:ProductCodesSetType"  
minOccurs="0" maxOccurs="1"/>
          <xs:element name="instanceType" type="xs:string"/>
-         <xs:element name="launchTime" type="xs:dateTime" />
+         <xs:element name="launchTime" type="xs:dateTime"/>
          <xs:element name="placement" type="tns:PlacementResponseType"  
minOccurs="0"/>
          <xs:element name="kernelId" type="xs:string" minOccurs="0"/>
          <xs:element name="ramdiskId" type="xs:string" minOccurs="0"/>
          <xs:element name="platform" type="xs:string" minOccurs="0"/>
-         <xs:element name="monitoring" type="tns:InstanceMonitoringStateType"  
minOccurs="0" maxOccurs="1" />
-         <xs:element name="subnetId" type="xs:string" minOccurs="0" />
-         <xs:element name="vpcId" type="xs:string" minOccurs="0" />
-         <xs:element name="privateIpAddress" type="xs:string" minOccurs="0"  
maxOccurs="1" />
-         <xs:element name="ipAddress" type="xs:string" minOccurs="0"  
maxOccurs="1" />
-         <xs:element name='stateReason' type='tns:StateReasonType' minOccurs="0"  
/>
-         <xs:element name='architecture' type='xs:string' minOccurs='0' />
-         <xs:element name='rootDeviceType' type='xs:string' minOccurs='0' />
-         <xs:element name='rootDeviceName' type='xs:string' minOccurs='0' />
-         <xs:element name='blockDeviceMapping'  
type='tns:InstanceBlockDeviceMappingResponseType' minOccurs='0' />
-         <xs:element name="instanceLifecycle" type="xs:string" minOccurs="0" />
-         <xs:element name="spotInstanceRequestId" type="xs:string" minOccurs="0"  
/>
+         <xs:element name="monitoring" type="tns:InstanceMonitoringStateType"  
minOccurs="0" maxOccurs="1"/>
+         <xs:element name="subnetId" type="xs:string" minOccurs="0"/>
+         <xs:element name="vpcId" type="xs:string" minOccurs="0"/>
+         <xs:element name="privateIpAddress" type="xs:string" minOccurs="0"  
maxOccurs="1"/>
+         <xs:element name="ipAddress" type="xs:string" minOccurs="0"  
maxOccurs="1"/>
+         <xs:element name="stateReason" type="tns:StateReasonType"  
minOccurs="0"/>
+         <xs:element name="architecture" type="xs:string" minOccurs="0"/>
+         <xs:element name="rootDeviceType" type="xs:string" minOccurs="0"/>
+         <xs:element name="rootDeviceName" type="xs:string" minOccurs="0"/>
+         <xs:element name="blockDeviceMapping"  
type="tns:InstanceBlockDeviceMappingResponseType" minOccurs="0"/>
+         <xs:element name="instanceLifecycle" type="xs:string" minOccurs="0"/>
+         <xs:element name="spotInstanceRequestId" type="xs:string"  
minOccurs="0"/>
+         <xs:element name="license" type="tns:InstanceLicenseResponseType"  
minOccurs="0" maxOccurs="1"/>
+         <xs:element name="virtualizationType" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="PlacementResponseType">
-       <xs:sequence>
-         <xs:element name="availabilityZone" type="xs:string" />
-       </xs:sequence>
-  </xs:complexType>
-
+       <xs:sequence>
+         <xs:element name="availabilityZone" type="xs:string"/>
+         <xs:element name="groupName" type="xs:string" minOccurs="0"  
maxOccurs="1"/>
+       </xs:sequence>
+  </xs:complexType>
    <xs:complexType name="StateReasonType">
        <xs:sequence>
          <xs:element name="code" type="xs:string"/>
          <xs:element name="message" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <xs:complexType name='InstanceBlockDeviceMappingResponseType'>
+  <xs:complexType name="InstanceBlockDeviceMappingResponseType">
        <xs:sequence>
-         <xs:element name='item'  
type='tns:InstanceBlockDeviceMappingResponseItemType' minOccurs='0'  
maxOccurs='unbounded' />
+         <xs:element name="item"  
type="tns:InstanceBlockDeviceMappingResponseItemType" minOccurs="0"  
maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
-  <xs:complexType name='InstanceBlockDeviceMappingResponseItemType'>
+  <xs:complexType name="InstanceBlockDeviceMappingResponseItemType">
        <xs:sequence>
-         <xs:element name='deviceName' type='xs:string' />
+         <xs:element name="deviceName" type="xs:string"/>
          <xs:choice>
-               <xs:element name='ebs'  
type='tns:EbsInstanceBlockDeviceMappingResponseType' />
+               <xs:element name="ebs"  
type="tns:EbsInstanceBlockDeviceMappingResponseType"/>
          </xs:choice>
        </xs:sequence>
    </xs:complexType>
-
-  <xs:complexType name='EbsInstanceBlockDeviceMappingResponseType'>
+  <xs:complexType name="EbsInstanceBlockDeviceMappingResponseType">
        <xs:sequence>
-         <xs:element name='volumeId' type='xs:string' />
-         <xs:element name='status' type='xs:string' />
-         <xs:element name='attachTime' type='xs:dateTime' />
-         <xs:element name='deleteOnTermination' type='xs:boolean' minOccurs='0'  
/>
+         <xs:element name="volumeId" type="xs:string"/>
+         <xs:element name="status" type="xs:string"/>
+         <xs:element name="attachTime" type="xs:dateTime"/>
+         <xs:element name="deleteOnTermination" type="xs:boolean" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- GetConsoleOutput request definitions -->
-
+  <xs:complexType name="InstanceLicenseResponseType">
+       <xs:sequence>
+         <xs:element name="pool" type="xs:string" minOccurs="1" maxOccurs="1"/>
+       </xs:sequence>
+  </xs:complexType>
    <xs:element name="GetConsoleOutput" type="tns:GetConsoleOutputType"/>
-
    <xs:complexType name="GetConsoleOutputType">
        <xs:sequence>
          <xs:element name="instanceId" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- GetConsoleOutput response definitions -->
-
    <xs:element name="GetConsoleOutputResponse"  
type="tns:GetConsoleOutputResponseType"/>
-
    <xs:complexType name="GetConsoleOutputResponseType">
        <xs:sequence>
          <xs:element name="requestId" type="xs:string"/>
-         <xs:element name="instanceId" type="xs:string" />
-         <xs:element name="timestamp" type="xs:dateTime" />
-         <xs:element name="output" type="xs:string" />
+         <xs:element name="instanceId" type="xs:string"/>
+         <xs:element name="timestamp" type="xs:dateTime"/>
+         <xs:element name="output" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- GetPasswordData request definitions -->
-
    <xs:element name="GetPasswordData" type="tns:GetPasswordDataType"/>
-
    <xs:complexType name="GetPasswordDataType">
        <xs:sequence>
          <xs:element name="instanceId" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- GetPasswordData response definitions -->
-
    <xs:element name="GetPasswordDataResponse"  
type="tns:GetPasswordDataResponseType"/>
-
    <xs:complexType name="GetPasswordDataResponseType">
        <xs:sequence>
          <xs:element name="requestId" type="xs:string"/>
-         <xs:element name="instanceId" type="xs:string" />
-         <xs:element name="timestamp" type="xs:dateTime" />
-         <xs:element name="passwordData" type="xs:string" />
+         <xs:element name="instanceId" type="xs:string"/>
+         <xs:element name="timestamp" type="xs:dateTime"/>
+         <xs:element name="passwordData" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- TerminateInstances -->
-
-  <xs:complexType name='InstanceIdType'>
+  <xs:complexType name="InstanceIdType">
        <xs:sequence>
-         <xs:element name='instanceId' type='xs:string' />
+         <xs:element name="instanceId" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-  <xs:complexType name='InstanceIdSetType'>
+  <xs:complexType name="InstanceIdSetType">
        <xs:sequence>
-         <xs:element name='item' type='tns:InstanceIdType' minOccurs='0'  
maxOccurs='unbounded' />
+         <xs:element name="item" type="tns:InstanceIdType" minOccurs="0"  
maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-  <xs:complexType name='InstanceStateChangeType'>
+  <xs:complexType name="InstanceStateChangeType">
        <xs:sequence>
-         <xs:element name='instanceId' type='xs:string' />
-         <xs:element name='currentState' type='tns:InstanceStateType' />
-         <xs:element name='previousState' type='tns:InstanceStateType' />
+         <xs:element name="instanceId" type="xs:string"/>
+         <xs:element name="currentState" type="tns:InstanceStateType"/>
+         <xs:element name="previousState" type="tns:InstanceStateType"/>
        </xs:sequence>
    </xs:complexType>
-  <xs:complexType name='InstanceStateChangeSetType'>
+  <xs:complexType name="InstanceStateChangeSetType">
        <xs:sequence>
-         <xs:element name='item' type='tns:InstanceStateChangeType'  
minOccurs='0' maxOccurs='unbounded' />
+         <xs:element name="item" type="tns:InstanceStateChangeType"  
minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
-  <xs:element name='TerminateInstances' type='tns:TerminateInstancesType'  
/>
-  <xs:element name='TerminateInstancesResponse'  
type='tns:TerminateInstancesResponseType' />
-  <xs:complexType name='TerminateInstancesType'>
+  <xs:element name="TerminateInstances" type="tns:TerminateInstancesType"/>
+  <xs:element name="TerminateInstancesResponse"  
type="tns:TerminateInstancesResponseType"/>
+  <xs:complexType name="TerminateInstancesType">
        <xs:sequence>
-         <xs:element name='instancesSet' type='tns:InstanceIdSetType' />
+         <xs:element name="instancesSet" type="tns:InstanceIdSetType"/>
        </xs:sequence>
    </xs:complexType>
-  <xs:complexType name='TerminateInstancesResponseType'>
+  <xs:complexType name="TerminateInstancesResponseType">
        <xs:sequence>
-         <xs:element name='requestId' type='xs:string' />
-         <xs:element name='instancesSet' type='tns:InstanceStateChangeSetType' />
+         <xs:element name="requestId" type="xs:string"/>
+         <xs:element name="instancesSet" type="tns:InstanceStateChangeSetType"/>
        </xs:sequence>
    </xs:complexType>
-
-
-  <xs:complexType name='InstanceBlockDeviceMappingType'>
+  <xs:complexType name="InstanceBlockDeviceMappingType">
        <xs:sequence>
-         <xs:element name='item' type='tns:InstanceBlockDeviceMappingItemType'  
minOccurs='0' maxOccurs='unbounded' />
+         <xs:element name="item" type="tns:InstanceBlockDeviceMappingItemType"  
minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
-  <xs:complexType name='InstanceBlockDeviceMappingItemType'>
+  <xs:complexType name="InstanceBlockDeviceMappingItemType">
        <xs:sequence>
-         <xs:element name='deviceName' type='xs:string' />
+         <xs:element name="deviceName" type="xs:string"/>
          <xs:choice>
-               <xs:element name='virtualName' type='xs:string' />
-               <xs:element name='ebs' type='tns:InstanceEbsBlockDeviceType' />
-               <xs:element name='noDevice' type='tns:EmptyElementType' />
+               <xs:element name="virtualName" type="xs:string"/>
+               <xs:element name="ebs" type="tns:InstanceEbsBlockDeviceType"/>
+               <xs:element name="noDevice" type="tns:EmptyElementType"/>
          </xs:choice>
        </xs:sequence>
    </xs:complexType>
-
-  <xs:complexType name='InstanceEbsBlockDeviceType'>
+  <xs:complexType name="InstanceEbsBlockDeviceType">
        <xs:sequence>
-         <xs:element name='volumeId' type='xs:string' />
-         <xs:element name='deleteOnTermination' type='xs:boolean' minOccurs='0'  
/>
+         <xs:element name="volumeId" type="xs:string"/>
+         <xs:element name="deleteOnTermination" type="xs:boolean" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- Stop instances -->
-
-  <xs:element name='StopInstances' type='tns:StopInstancesType' />
-  <xs:element name='StopInstancesResponse'  
type='tns:StopInstancesResponseType' />
-  <xs:complexType name='StopInstancesType'>
+  <xs:element name="StopInstances" type="tns:StopInstancesType"/>
+  <xs:element name="StopInstancesResponse"  
type="tns:StopInstancesResponseType"/>
+  <xs:complexType name="StopInstancesType">
        <xs:sequence>
-         <xs:element name='instancesSet' type='tns:InstanceIdSetType' />
-         <xs:element name='force' type='xs:boolean' minOccurs='0' />
+         <xs:element name="instancesSet" type="tns:InstanceIdSetType"/>
+         <xs:element name="force" type="xs:boolean" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
-  <xs:complexType name='StopInstancesResponseType'>
+  <xs:complexType name="StopInstancesResponseType">
        <xs:sequence>
-         <xs:element name='requestId' type='xs:string' />
-         <xs:element name='instancesSet' type='tns:InstanceStateChangeSetType' />
+         <xs:element name="requestId" type="xs:string"/>
+         <xs:element name="instancesSet" type="tns:InstanceStateChangeSetType"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!--  Start instances -->
-  <xs:element name='StartInstances' type='tns:StartInstancesType' />
-  <xs:element name='StartInstancesResponse'  
type='tns:StartInstancesResponseType' />
-   <xs:complexType name='StartInstancesType'>
+  <xs:element name="StartInstances" type="tns:StartInstancesType"/>
+  <xs:element name="StartInstancesResponse"  
type="tns:StartInstancesResponseType"/>
+  <xs:complexType name="StartInstancesType">
        <xs:sequence>
-         <xs:element name='instancesSet' type='tns:InstanceIdSetType' />
+         <xs:element name="instancesSet" type="tns:InstanceIdSetType"/>
        </xs:sequence>
    </xs:complexType>
-  <xs:complexType name='StartInstancesResponseType'>
+  <xs:complexType name="StartInstancesResponseType">
        <xs:sequence>
-         <xs:element name='requestId' type='xs:string' />
-         <xs:element name='instancesSet' type='tns:InstanceStateChangeSetType' />
+         <xs:element name="requestId" type="xs:string"/>
+         <xs:element name="instancesSet" type="tns:InstanceStateChangeSetType"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- RebootInstances request definitions -->
    <xs:element name="RebootInstances" type="tns:RebootInstancesType"/>
-
    <xs:complexType name="RebootInstancesType">
        <xs:sequence>
          <xs:element name="instancesSet" type="tns:RebootInstancesInfoType"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="RebootInstancesInfoType">
        <xs:sequence>
          <xs:element name="item" type="tns:RebootInstancesItemType"  
minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="RebootInstancesItemType">
        <xs:sequence>
          <xs:element name="instanceId" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- RebootInstances response definitions -->
-
    <xs:element name="RebootInstancesResponse"  
type="tns:RebootInstancesResponseType"/>
-
    <xs:complexType name="RebootInstancesResponseType">
        <xs:sequence>
          <xs:element name="requestId" type="xs:string"/>
          <xs:element name="return" type="xs:boolean"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DescribeInstances Request definitions -->
-
    <xs:element name="DescribeInstances" type="tns:DescribeInstancesType"/>
-
    <xs:complexType name="DescribeInstancesType">
        <xs:sequence>
          <xs:element name="instancesSet" type="tns:DescribeInstancesInfoType"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeInstancesInfoType">
        <xs:sequence>
          <xs:element name="item" type="tns:DescribeInstancesItemType"  
minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeInstancesItemType">
        <xs:sequence>
-         <xs:element name="instanceId" type="xs:string" />
+         <xs:element name="instanceId" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DescribeInstances Response definitions -->
-
    <xs:element name="DescribeInstancesResponse"  
type="tns:DescribeInstancesResponseType"/>
-
    <xs:complexType name="DescribeInstancesResponseType">
        <xs:sequence>
          <xs:element name="requestId" type="xs:string"/>
          <xs:element name="reservationSet" type="tns:ReservationSetType"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="ReservationSetType">
        <xs:sequence>
          <xs:element name="item" type="tns:ReservationInfoType" minOccurs="0"  
maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DescribeImages Request definitions -->
-
    <xs:element name="DescribeImages" type="tns:DescribeImagesType"/>
-
    <xs:complexType name="DescribeImagesType">
        <xs:sequence>
          <xs:element name="executableBySet"  
type="tns:DescribeImagesExecutableBySetType" minOccurs="0"/>
@@ -595,173 +487,126 @@
          <xs:element name="ownersSet" type="tns:DescribeImagesOwnersType"  
minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeImagesInfoType">
        <xs:sequence>
          <xs:element name="item" type="tns:DescribeImagesItemType" minOccurs="0"  
maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeImagesItemType">
        <xs:sequence>
          <xs:element name="imageId" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeImagesOwnersType">
        <xs:sequence>
          <xs:element name="item" type="tns:DescribeImagesOwnerType"  
minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeImagesOwnerType">
        <xs:sequence>
          <xs:element name="owner" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <xs:complexType name="DescribeImagesExecutableBySetType" >
+  <xs:complexType name="DescribeImagesExecutableBySetType">
        <xs:sequence>
          <xs:element name="item" type="tns:DescribeImagesExecutableByType"  
minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
-  <xs:complexType name="DescribeImagesExecutableByType" >
+  <xs:complexType name="DescribeImagesExecutableByType">
        <xs:sequence>
-         <xs:element name="user" type="xs:string" />
+         <xs:element name="user" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DescribeImages Response definitions -->
-
    <xs:element name="DescribeImagesResponse"  
type="tns:DescribeImagesResponseType"/>
-
    <xs:complexType name="DescribeImagesResponseType">
        <xs:sequence>
          <xs:element name="requestId" type="xs:string"/>
          <xs:element name="imagesSet" type="tns:DescribeImagesResponseInfoType"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeImagesResponseInfoType">
        <xs:sequence>
          <xs:element name="item" type="tns:DescribeImagesResponseItemType"  
minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeImagesResponseItemType">
        <xs:sequence>
-         <xs:element name="imageId" type="xs:string" />
-         <xs:element name="imageLocation" type="xs:string" minOccurs="0" />
-         <xs:element name="imageState" type="xs:string" />
-         <xs:element name="imageOwnerId" type="xs:string" />
-         <xs:element name="isPublic" type="xs:boolean" />
-         <xs:element name="productCodes" type="tns:ProductCodesSetType"  
minOccurs="0" />
-         <xs:element name="architecture" type="xs:string"  minOccurs="0"/>
-         <xs:element name="imageType" type="xs:string"  minOccurs="0"/>
-         <xs:element name="kernelId" type="xs:string"  minOccurs="0"/>
-         <xs:element name="ramdiskId" type="xs:string"  minOccurs="0"/>
-         <xs:element name="platform" type="xs:string"  minOccurs="0"/>
+         <xs:element name="imageId" type="xs:string"/>
+         <xs:element name="imageLocation" type="xs:string" minOccurs="0"/>
+         <xs:element name="imageState" type="xs:string"/>
+         <xs:element name="imageOwnerId" type="xs:string"/>
+         <xs:element name="isPublic" type="xs:boolean"/>
+         <xs:element name="productCodes" type="tns:ProductCodesSetType"  
minOccurs="0"/>
+         <xs:element name="architecture" type="xs:string" minOccurs="0"/>
+         <xs:element name="imageType" type="xs:string" minOccurs="0"/>
+         <xs:element name="kernelId" type="xs:string" minOccurs="0"/>
+         <xs:element name="ramdiskId" type="xs:string" minOccurs="0"/>
+         <xs:element name="platform" type="xs:string" minOccurs="0"/>
          <xs:element name="stateReason" type="tns:StateReasonType"  
minOccurs="0"/>
          <xs:element name="imageOwnerAlias" type="xs:string" minOccurs="0"/>
-         <xs:element name="name" type="xs:string" minOccurs="0" />
-         <xs:element name="description" type="xs:string"  minOccurs="0"/>
-         <xs:element name='rootDeviceType' type='xs:string' minOccurs='0' />
-         <xs:element name="rootDeviceName" type="xs:string" minOccurs="0" />
-         <xs:element name="blockDeviceMapping" type="tns:BlockDeviceMappingType"  
minOccurs="0" />
+         <xs:element name="name" type="xs:string" minOccurs="0"/>
+         <xs:element name="description" type="xs:string" minOccurs="0"/>
+         <xs:element name="rootDeviceType" type="xs:string" minOccurs="0"/>
+         <xs:element name="rootDeviceName" type="xs:string" minOccurs="0"/>
+         <xs:element name="blockDeviceMapping" type="tns:BlockDeviceMappingType"  
minOccurs="0"/>
+         <xs:element name="virtualizationType" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- CreateSecurityGroup Request definitions -->
-
-  <xs:element name="CreateSecurityGroup"
-                         type="tns:CreateSecurityGroupType"/>
-
+  <xs:element name="CreateSecurityGroup"  
type="tns:CreateSecurityGroupType"/>
    <xs:complexType name="CreateSecurityGroupType">
        <xs:sequence>
          <xs:element name="groupName" type="xs:string"/>
          <xs:element name="groupDescription" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- CreateSecurityGroup Response definitions -->
-
-  <xs:element name="CreateSecurityGroupResponse"
-                         type="tns:CreateSecurityGroupResponseType"/>
-
+  <xs:element name="CreateSecurityGroupResponse"  
type="tns:CreateSecurityGroupResponseType"/>
    <xs:complexType name="CreateSecurityGroupResponseType">
        <xs:sequence>
          <xs:element name="requestId" type="xs:string"/>
          <xs:element name="return" type="xs:boolean"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DeleteSecurityGroup Request definitions -->
-
-  <xs:element name="DeleteSecurityGroup"
-                         type="tns:DeleteSecurityGroupType"/>
-
+  <xs:element name="DeleteSecurityGroup"  
type="tns:DeleteSecurityGroupType"/>
    <xs:complexType name="DeleteSecurityGroupType">
        <xs:sequence>
          <xs:element name="groupName" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DeleteSecurityGroup Response definitions -->
-
-  <xs:element name="DeleteSecurityGroupResponse"
-                         type="tns:DeleteSecurityGroupResponseType"/>
-
+  <xs:element name="DeleteSecurityGroupResponse"  
type="tns:DeleteSecurityGroupResponseType"/>
    <xs:complexType name="DeleteSecurityGroupResponseType">
        <xs:sequence>
          <xs:element name="requestId" type="xs:string"/>
          <xs:element name="return" type="xs:boolean"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DescribeSecurityGroups Request definitions -->
-
-  <xs:element name="DescribeSecurityGroups"
-                         type="tns:DescribeSecurityGroupsType"/>
-
+  <xs:element name="DescribeSecurityGroups"  
type="tns:DescribeSecurityGroupsType"/>
    <xs:complexType name="DescribeSecurityGroupsType">
        <xs:sequence>
          <xs:element name="securityGroupSet"  
type="tns:DescribeSecurityGroupsSetType"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeSecurityGroupsSetType">
        <xs:sequence>
-         <xs:element name="item" type="tns:DescribeSecurityGroupsSetItemType"
-                                 minOccurs="0" maxOccurs="unbounded"/>
+         <xs:element name="item" type="tns:DescribeSecurityGroupsSetItemType"  
minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="DescribeSecurityGroupsSetItemType">
        <xs:sequence>
          <xs:element name="groupName" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- DescribeSecurityGroups Response definitions -->
-
-  <xs:element name="DescribeSecurityGroupsResponse"
-                         type="tns:DescribeSecurityGroupsResponseType"/>
-
+  <xs:element name="DescribeSecurityGroupsResponse"  
type="tns:DescribeSecurityGroupsResponseType"/>
    <xs:complexType name="DescribeSecurityGroupsResponseType">
        <xs:sequence>
          <xs:element name="requestId" type="xs:string"/>
          <xs:element name="securityGroupInfo" type="tns:SecurityGroupSetType"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="IpPermissionSetType">
        <xs:sequence>
-         <xs:element name="item" type="tns:IpPermissionType"
-                                 minOccurs="0" maxOccurs="unbounded"/>
+         <xs:element name="item" type="tns:IpPermissionType" minOccurs="0"  
maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="IpPermissionType">
        <xs:sequence>
          <xs:element name="ipProtocol" type="xs:string"/>
@@ -771,56 +616,41 @@
          <xs:element name="ipRanges" type="tns:IpRangeSetType"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="IpRangeSetType">
        <xs:sequence>
-         <xs:element name="item" type="tns:IpRangeItemType"
-                                 minOccurs="0" maxOccurs="unbounded"/>
+         <xs:element name="item" type="tns:IpRangeItemType" minOccurs="0"  
maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="IpRangeItemType">
        <xs:sequence>
          <xs:element name="cidrIp" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="UserIdGroupPairSetType">
        <xs:sequence>
-         <xs:element name="item" type="tns:UserIdGroupPairType"
-                                 minOccurs="0" maxOccurs="unbounded"/>
+         <xs:element name="item" type="tns:UserIdGroupPairType" minOccurs="0"  
maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="UserIdGroupPairType">
        <xs:sequence>
          <xs:element name="userId" type="xs:string"/>
          <xs:element name="groupName" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="SecurityGroupSetType">
        <xs:sequence>
-         <xs:element name="item" type="tns:SecurityGroupItemType"
-                                 minOccurs="0" maxOccurs="unbounded"/>
+         <xs:element name="item" type="tns:SecurityGroupItemType" minOccurs="0"  
maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
-
    <xs:complexType name="SecurityGroupItemType">
        <xs:sequence>
          <xs:element name="ownerId" type="xs:string"/>
          <xs:element name="groupName" type="xs:string"/>
-         <xs:element name="groupDescription" type="xs:string"/>
+         <xs:element name="groupDescription" type="xs:string"/>
          <xs:element name="ipPermissions" type="tns:IpPermissionSetType"/>
        </xs:sequence>
    </xs:complexType>
-
-  <!-- AuthorizeSecurityGroupIngress Request definitions -->
-
-
-  <xs:element name="AuthorizeSecurityGroupIngress"
-                         type="tns:AuthorizeSecurityGroupIngressType"/>
-
+  <xs:element name="AuthorizeSecurityGroupIngress"  
type="tns:AuthorizeSecurityGroupIngressType"/>
    <xs:complexType name="AuthorizeSecurityGroupIngressType">
        <xs:sequence>
          <xs:element name="userId" type="xs:string"/>
@@ -828,25 +658,14 @@
***The diff for this file has been truncated for email.***


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »