public IPRange unmarshall(StaxUnmarshallerContext context) throws Exception {
    IPRange iPRange = new IPRange();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

    if (context.isStartOfDocument()) targetDepth += 1;

    while (true) {
      XMLEvent xmlEvent = context.nextEvent();
      if (xmlEvent.isEndDocument()) return iPRange;

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {

        if (context.testExpression("Status", targetDepth)) {
          iPRange.setStatus(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("CIDRIP", targetDepth)) {
          iPRange.setCIDRIP(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Tags/Tag", targetDepth)) {
          iPRange.withTags(TagStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return iPRange;
        }
      }
    }
  }
  public ClusterSubnetGroup unmarshall(StaxUnmarshallerContext context) throws Exception {
    ClusterSubnetGroup clusterSubnetGroup = new ClusterSubnetGroup();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

    if (context.isStartOfDocument()) targetDepth += 3;

    while (true) {
      XMLEvent xmlEvent = context.nextEvent();
      if (xmlEvent.isEndDocument()) return clusterSubnetGroup;

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {

        if (context.testExpression("ClusterSubnetGroupName", targetDepth)) {
          clusterSubnetGroup.setClusterSubnetGroupName(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Description", targetDepth)) {
          clusterSubnetGroup.setDescription(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("VpcId", targetDepth)) {
          clusterSubnetGroup.setVpcId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("SubnetGroupStatus", targetDepth)) {
          clusterSubnetGroup.setSubnetGroupStatus(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Subnets/Subnet", targetDepth)) {
          clusterSubnetGroup.withSubnets(SubnetStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Tags/Tag", targetDepth)) {
          clusterSubnetGroup.withTags(TagStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return clusterSubnetGroup;
        }
      }
    }
  }
  public RouteTable unmarshall(StaxUnmarshallerContext context) throws Exception {
    RouteTable routeTable = new RouteTable();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

    if (context.isStartOfDocument()) targetDepth += 1;

    while (true) {
      XMLEvent xmlEvent = context.nextEvent();
      if (xmlEvent.isEndDocument()) return routeTable;

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("routeTableId", targetDepth)) {
          routeTable.setRouteTableId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("vpcId", targetDepth)) {
          routeTable.setVpcId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("routeSet/item", targetDepth)) {
          routeTable.getRoutes().add(RouteStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("associationSet/item", targetDepth)) {
          routeTable
              .getAssociations()
              .add(RouteTableAssociationStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("tagSet/item", targetDepth)) {
          routeTable.getTags().add(TagStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("propagatingVgwSet/item", targetDepth)) {
          routeTable
              .getPropagatingVgws()
              .add(PropagatingVgwStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("propagatedRouteSet/item", targetDepth)) {
          routeTable
              .getPropagatedRoutes()
              .add(PropagatedRouteStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return routeTable;
        }
      }
    }
  }
  public DescribeChangeSetResult unmarshall(StaxUnmarshallerContext context) throws Exception {
    DescribeChangeSetResult describeChangeSetResult = new DescribeChangeSetResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

    if (context.isStartOfDocument()) targetDepth += 2;

    while (true) {
      XMLEvent xmlEvent = context.nextEvent();
      if (xmlEvent.isEndDocument()) return describeChangeSetResult;

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {

        if (context.testExpression("ChangeSetName", targetDepth)) {
          describeChangeSetResult.setChangeSetName(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("ChangeSetId", targetDepth)) {
          describeChangeSetResult.setChangeSetId(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("StackId", targetDepth)) {
          describeChangeSetResult.setStackId(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("StackName", targetDepth)) {
          describeChangeSetResult.setStackName(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Description", targetDepth)) {
          describeChangeSetResult.setDescription(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Parameters/member", targetDepth)) {
          describeChangeSetResult.withParameters(
              ParameterStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("CreationTime", targetDepth)) {
          describeChangeSetResult.setCreationTime(
              DateStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("ExecutionStatus", targetDepth)) {
          describeChangeSetResult.setExecutionStatus(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Status", targetDepth)) {
          describeChangeSetResult.setStatus(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("StatusReason", targetDepth)) {
          describeChangeSetResult.setStatusReason(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("NotificationARNs/member", targetDepth)) {
          describeChangeSetResult.withNotificationARNs(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Capabilities/member", targetDepth)) {
          describeChangeSetResult.withCapabilities(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Tags/member", targetDepth)) {
          describeChangeSetResult.withTags(TagStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Changes/member", targetDepth)) {
          describeChangeSetResult.withChanges(
              ChangeStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("NextToken", targetDepth)) {
          describeChangeSetResult.setNextToken(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return describeChangeSetResult;
        }
      }
    }
  }
  public Subnet unmarshall(StaxUnmarshallerContext context) throws Exception {
    Subnet subnet = new Subnet();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

    if (context.isStartOfDocument()) targetDepth += 1;

    while (true) {
      XMLEvent xmlEvent = context.nextEvent();
      if (xmlEvent.isEndDocument()) return subnet;

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {

        if (context.testExpression("subnetId", targetDepth)) {
          subnet.setSubnetId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("state", targetDepth)) {
          subnet.setState(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("vpcId", targetDepth)) {
          subnet.setVpcId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("cidrBlock", targetDepth)) {
          subnet.setCidrBlock(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("ipv6CidrBlockAssociationSet", targetDepth)) {
          subnet.withIpv6CidrBlockAssociationSet(new ArrayList<SubnetIpv6CidrBlockAssociation>());
          continue;
        }

        if (context.testExpression("ipv6CidrBlockAssociationSet/item", targetDepth)) {
          subnet.withIpv6CidrBlockAssociationSet(
              SubnetIpv6CidrBlockAssociationStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("assignIpv6AddressOnCreation", targetDepth)) {
          subnet.setAssignIpv6AddressOnCreation(
              BooleanStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("availableIpAddressCount", targetDepth)) {
          subnet.setAvailableIpAddressCount(
              IntegerStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("availabilityZone", targetDepth)) {
          subnet.setAvailabilityZone(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("defaultForAz", targetDepth)) {
          subnet.setDefaultForAz(BooleanStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("mapPublicIpOnLaunch", targetDepth)) {
          subnet.setMapPublicIpOnLaunch(BooleanStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("tagSet", targetDepth)) {
          subnet.withTags(new ArrayList<Tag>());
          continue;
        }

        if (context.testExpression("tagSet/item", targetDepth)) {
          subnet.withTags(TagStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return subnet;
        }
      }
    }
  }
  public Instance unmarshall(StaxUnmarshallerContext context) throws Exception {
    Instance instance = new Instance();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

    if (context.isStartOfDocument()) targetDepth += 1;

    while (true) {
      XMLEvent xmlEvent = context.nextEvent();
      if (xmlEvent.isEndDocument()) return instance;

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {

        if (context.testExpression("instanceId", targetDepth)) {
          instance.setInstanceId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("imageId", targetDepth)) {
          instance.setImageId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("instanceState", targetDepth)) {
          instance.setState(InstanceStateStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("privateDnsName", targetDepth)) {
          instance.setPrivateDnsName(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("dnsName", targetDepth)) {
          instance.setPublicDnsName(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("reason", targetDepth)) {
          instance.setStateTransitionReason(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("keyName", targetDepth)) {
          instance.setKeyName(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("amiLaunchIndex", targetDepth)) {
          instance.setAmiLaunchIndex(IntegerStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("productCodes/item", targetDepth)) {
          instance.withProductCodes(ProductCodeStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("instanceType", targetDepth)) {
          instance.setInstanceType(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("launchTime", targetDepth)) {
          instance.setLaunchTime(DateStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("placement", targetDepth)) {
          instance.setPlacement(PlacementStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("kernelId", targetDepth)) {
          instance.setKernelId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("ramdiskId", targetDepth)) {
          instance.setRamdiskId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("platform", targetDepth)) {
          instance.setPlatform(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("monitoring", targetDepth)) {
          instance.setMonitoring(MonitoringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("subnetId", targetDepth)) {
          instance.setSubnetId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("vpcId", targetDepth)) {
          instance.setVpcId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("privateIpAddress", targetDepth)) {
          instance.setPrivateIpAddress(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("ipAddress", targetDepth)) {
          instance.setPublicIpAddress(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("stateReason", targetDepth)) {
          instance.setStateReason(StateReasonStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("architecture", targetDepth)) {
          instance.setArchitecture(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("rootDeviceType", targetDepth)) {
          instance.setRootDeviceType(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("rootDeviceName", targetDepth)) {
          instance.setRootDeviceName(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("blockDeviceMapping/item", targetDepth)) {
          instance.withBlockDeviceMappings(
              InstanceBlockDeviceMappingStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("virtualizationType", targetDepth)) {
          instance.setVirtualizationType(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("instanceLifecycle", targetDepth)) {
          instance.setInstanceLifecycle(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("spotInstanceRequestId", targetDepth)) {
          instance.setSpotInstanceRequestId(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("clientToken", targetDepth)) {
          instance.setClientToken(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("tagSet/item", targetDepth)) {
          instance.withTags(TagStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("groupSet/item", targetDepth)) {
          instance.withSecurityGroups(
              GroupIdentifierStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("sourceDestCheck", targetDepth)) {
          instance.setSourceDestCheck(BooleanStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("hypervisor", targetDepth)) {
          instance.setHypervisor(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("networkInterfaceSet/item", targetDepth)) {
          instance.withNetworkInterfaces(
              InstanceNetworkInterfaceStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("iamInstanceProfile", targetDepth)) {
          instance.setIamInstanceProfile(
              IamInstanceProfileStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("ebsOptimized", targetDepth)) {
          instance.setEbsOptimized(BooleanStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("sriovNetSupport", targetDepth)) {
          instance.setSriovNetSupport(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return instance;
        }
      }
    }
  }
  public NetworkInterface unmarshall(StaxUnmarshallerContext context) throws Exception {
    NetworkInterface networkInterface = new NetworkInterface();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

    if (context.isStartOfDocument()) targetDepth += 1;

    while (true) {
      XMLEvent xmlEvent = context.nextEvent();
      if (xmlEvent.isEndDocument()) return networkInterface;

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("networkInterfaceId", targetDepth)) {
          networkInterface.setNetworkInterfaceId(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("subnetId", targetDepth)) {
          networkInterface.setSubnetId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("vpcId", targetDepth)) {
          networkInterface.setVpcId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("availabilityZone", targetDepth)) {
          networkInterface.setAvailabilityZone(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("description", targetDepth)) {
          networkInterface.setDescription(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("ownerId", targetDepth)) {
          networkInterface.setOwnerId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("requesterId", targetDepth)) {
          networkInterface.setRequesterId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("requesterManaged", targetDepth)) {
          networkInterface.setRequesterManaged(
              BooleanStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("status", targetDepth)) {
          networkInterface.setStatus(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("macAddress", targetDepth)) {
          networkInterface.setMacAddress(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("privateIpAddress", targetDepth)) {
          networkInterface.setPrivateIpAddress(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("privateDnsName", targetDepth)) {
          networkInterface.setPrivateDnsName(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("sourceDestCheck", targetDepth)) {
          networkInterface.setSourceDestCheck(
              BooleanStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("groupSet/item", targetDepth)) {
          networkInterface
              .getGroups()
              .add(GroupIdentifierStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("attachment", targetDepth)) {
          networkInterface.setAttachment(
              NetworkInterfaceAttachmentStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("association", targetDepth)) {
          networkInterface.setAssociation(
              NetworkInterfaceAssociationStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("tagSet/item", targetDepth)) {
          networkInterface.getTagSet().add(TagStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("privateIpAddressesSet/item", targetDepth)) {
          networkInterface
              .getPrivateIpAddresses()
              .add(
                  NetworkInterfacePrivateIpAddressStaxUnmarshaller.getInstance()
                      .unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return networkInterface;
        }
      }
    }
  }