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

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

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

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

        if (context.testExpression("securityGroupInfo", targetDepth)) {
          describeSecurityGroupsResult.withSecurityGroups(new ArrayList<SecurityGroup>());
          continue;
        }

        if (context.testExpression("securityGroupInfo/item", targetDepth)) {
          describeSecurityGroupsResult.withSecurityGroups(
              SecurityGroupStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

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

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

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

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

        if (context.testExpression("conversionTask", targetDepth)) {
          importVolumeResult.setConversionTask(
              ConversionTaskStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return importVolumeResult;
        }
      }
    }
  }
  public DescribeLoadBalancerPoliciesResult unmarshall(StaxUnmarshallerContext context)
      throws Exception {
    DescribeLoadBalancerPoliciesResult describeLoadBalancerPoliciesResult =
        new DescribeLoadBalancerPoliciesResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("PolicyDescriptions/member", targetDepth)) {
          describeLoadBalancerPoliciesResult
              .getPolicyDescriptions()
              .add(PolicyDescriptionStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return describeLoadBalancerPoliciesResult;
        }
      }
    }
  }
  public TagDescription unmarshall(StaxUnmarshallerContext context) throws Exception {
    TagDescription tagDescription = new TagDescription();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("resourceId", targetDepth)) {
          tagDescription.setResourceId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("resourceType", targetDepth)) {
          tagDescription.setResourceType(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("key", targetDepth)) {
          tagDescription.setKey(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("value", targetDepth)) {
          tagDescription.setValue(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return tagDescription;
        }
      }
    }
  }
  public DescribeMetricCollectionTypesResult unmarshall(StaxUnmarshallerContext context)
      throws Exception {
    DescribeMetricCollectionTypesResult describeMetricCollectionTypesResult =
        new DescribeMetricCollectionTypesResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("Metrics/member", targetDepth)) {
          describeMetricCollectionTypesResult
              .getMetrics()
              .add(MetricCollectionTypeStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("Granularities/member", targetDepth)) {
          describeMetricCollectionTypesResult
              .getGranularities()
              .add(MetricGranularityTypeStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return describeMetricCollectionTypesResult;
        }
      }
    }
  }
  public ListDeadLetterSourceQueuesResult unmarshall(StaxUnmarshallerContext context)
      throws Exception {
    ListDeadLetterSourceQueuesResult listDeadLetterSourceQueuesResult =
        new ListDeadLetterSourceQueuesResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

    while (true) {
      int xmlEvent = context.nextEvent();
      if (xmlEvent == XmlPullParser.END_DOCUMENT) return listDeadLetterSourceQueuesResult;

      if (xmlEvent == XmlPullParser.START_TAG) {
        if (context.testExpression("QueueUrl", targetDepth)) {
          listDeadLetterSourceQueuesResult
              .getQueueUrls()
              .add(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent == XmlPullParser.END_TAG) {
        if (context.getCurrentDepth() < originalDepth) {
          return listDeadLetterSourceQueuesResult;
        }
      }
    }
  }
  public EnableVpcClassicLinkDnsSupportResult unmarshall(StaxUnmarshallerContext context)
      throws Exception {
    EnableVpcClassicLinkDnsSupportResult enableVpcClassicLinkDnsSupportResult =
        new EnableVpcClassicLinkDnsSupportResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

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

        if (context.testExpression("return", targetDepth)) {
          enableVpcClassicLinkDnsSupportResult.setReturn(
              BooleanStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return enableVpcClassicLinkDnsSupportResult;
        }
      }
    }
  }
  public CharacterSet unmarshall(StaxUnmarshallerContext context) throws Exception {
    CharacterSet characterSet = new CharacterSet();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

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

        if (context.testExpression("CharacterSetName", targetDepth)) {
          characterSet.setCharacterSetName(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("CharacterSetDescription", targetDepth)) {
          characterSet.setCharacterSetDescription(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return characterSet;
        }
      }
    }
  }
  public GetPlatformApplicationAttributesResult unmarshall(StaxUnmarshallerContext context)
      throws Exception {
    GetPlatformApplicationAttributesResult getPlatformApplicationAttributesResult =
        new GetPlatformApplicationAttributesResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("Attributes/entry", targetDepth)) {
          Entry<String, String> entry =
              AttributesMapEntryUnmarshaller.getInstance().unmarshall(context);
          getPlatformApplicationAttributesResult
              .getAttributes()
              .put(entry.getKey(), entry.getValue());
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return getPlatformApplicationAttributesResult;
        }
      }
    }
  }
  public GetDistributionConfigResult unmarshall(StaxUnmarshallerContext context) throws Exception {
    GetDistributionConfigResult getDistributionConfigResult = new GetDistributionConfigResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

    if (context.isStartOfDocument()) {
      getDistributionConfigResult.setETag(context.getHeader("ETag"));
    }

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

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("DistributionConfig", targetDepth)) {
          getDistributionConfigResult.setDistributionConfig(
              DistributionConfigStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return getDistributionConfigResult;
        }
      }
    }
  }
  public PolicyAttributeDescription unmarshall(StaxUnmarshallerContext context) throws Exception {
    PolicyAttributeDescription policyAttributeDescription = new PolicyAttributeDescription();

    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

    while (true) {
      int xmlEvent = context.nextEvent();
      if (xmlEvent == XmlPullParser.END_DOCUMENT) break;

      if (xmlEvent == XmlPullParser.START_TAG) {
        if (context.testExpression("AttributeName", targetDepth)) {
          policyAttributeDescription.setAttributeName(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("AttributeValue", targetDepth)) {
          policyAttributeDescription.setAttributeValue(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent == XmlPullParser.END_TAG) {
        if (context.getCurrentDepth() < originalDepth) {
          break;
        }
      }
    }
    return policyAttributeDescription;
  }
  public ValidationMessage unmarshall(StaxUnmarshallerContext context) throws Exception {
    ValidationMessage validationMessage = new ValidationMessage();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("Message", targetDepth)) {
          validationMessage.setMessage(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("Severity", targetDepth)) {
          validationMessage.setSeverity(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("Namespace", targetDepth)) {
          validationMessage.setNamespace(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("OptionName", targetDepth)) {
          validationMessage.setOptionName(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return validationMessage;
        }
      }
    }
  }
  public ListUsersResult unmarshall(StaxUnmarshallerContext context) throws Exception {
    ListUsersResult listUsersResult = new ListUsersResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

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

        if (context.testExpression("Users/member", targetDepth)) {
          listUsersResult.getUsers().add(UserStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("IsTruncated", targetDepth)) {
          listUsersResult.setIsTruncated(BooleanStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Marker", targetDepth)) {
          listUsersResult.setMarker(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return listUsersResult;
        }
      }
    }
  }
  public Item unmarshall(StaxUnmarshallerContext context) throws Exception {
    Item item = new Item();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("Name", targetDepth)) {
          item.setName(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("Name/@encoding", targetDepth)) {
          item.setAlternateNameEncoding(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("Attribute", targetDepth)) {
          item.getAttributes().add(AttributeStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return item;
        }
      }
    }
  }
  public AvailableCapacity unmarshall(StaxUnmarshallerContext context) throws Exception {
    AvailableCapacity availableCapacity = new AvailableCapacity();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

    while (true) {
      int xmlEvent = context.nextEvent();
      if (xmlEvent == XmlPullParser.END_DOCUMENT) return availableCapacity;

      if (xmlEvent == XmlPullParser.START_TAG) {
        if (context.testExpression("availableInstanceCapacity/item", targetDepth)) {
          availableCapacity
              .getAvailableInstanceCapacity()
              .add(InstanceCapacityStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("availableVCpus", targetDepth)) {
          availableCapacity.setAvailableVCpus(
              IntegerStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent == XmlPullParser.END_TAG) {
        if (context.getCurrentDepth() < originalDepth) {
          return availableCapacity;
        }
      }
    }
  }
  public GetHealthCheckStatusResult unmarshall(StaxUnmarshallerContext context) throws Exception {
    GetHealthCheckStatusResult getHealthCheckStatusResult = new GetHealthCheckStatusResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

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

        if (context.testExpression("HealthCheckObservations/HealthCheckObservation", targetDepth)) {
          getHealthCheckStatusResult.withHealthCheckObservations(
              HealthCheckObservationStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

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

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

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

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("HsmClientCertificateIdentifier", targetDepth)) {
          hsmStatus.setHsmClientCertificateIdentifier(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("HsmConfigurationIdentifier", targetDepth)) {
          hsmStatus.setHsmConfigurationIdentifier(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("Status", targetDepth)) {
          hsmStatus.setStatus(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return hsmStatus;
        }
      }
    }
  }
  public MessageDsn unmarshall(StaxUnmarshallerContext context) throws Exception {
    MessageDsn messageDsn = new MessageDsn();

    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

    while (true) {
      int xmlEvent = context.nextEvent();
      if (xmlEvent == XmlPullParser.END_DOCUMENT) break;

      if (xmlEvent == XmlPullParser.START_TAG) {
        if (context.testExpression("ReportingMta", targetDepth)) {
          messageDsn.setReportingMta(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("ArrivalDate", targetDepth)) {
          messageDsn.setArrivalDate(DateStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("ExtensionFields/member", targetDepth)) {
          messageDsn.withExtensionFields(
              ExtensionFieldStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent == XmlPullParser.END_TAG) {
        if (context.getCurrentDepth() < originalDepth) {
          break;
        }
      }
    }
    return messageDsn;
  }
  public MovingAddressStatus unmarshall(StaxUnmarshallerContext context) throws Exception {
    MovingAddressStatus movingAddressStatus = new MovingAddressStatus();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

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

        if (context.testExpression("publicIp", targetDepth)) {
          movingAddressStatus.setPublicIp(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("moveStatus", targetDepth)) {
          movingAddressStatus.setMoveStatus(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return movingAddressStatus;
        }
      }
    }
  }
  public GetEndpointAttributesResult unmarshall(StaxUnmarshallerContext context) throws Exception {
    GetEndpointAttributesResult getEndpointAttributesResult = new GetEndpointAttributesResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

    while (true) {
      int xmlEvent = context.nextEvent();
      if (xmlEvent == XmlPullParser.END_DOCUMENT) return getEndpointAttributesResult;

      if (xmlEvent == XmlPullParser.START_TAG) {
        if (context.testExpression("Attributes/entry", targetDepth)) {
          Entry<String, String> entry =
              AttributesMapEntryUnmarshaller.getInstance().unmarshall(context);
          getEndpointAttributesResult.getAttributes().put(entry.getKey(), entry.getValue());
          continue;
        }
      } else if (xmlEvent == XmlPullParser.END_TAG) {
        if (context.getCurrentDepth() < originalDepth) {
          return getEndpointAttributesResult;
        }
      }
    }
  }
  public VerifyDomainDkimResult unmarshall(StaxUnmarshallerContext context) throws Exception {
    VerifyDomainDkimResult verifyDomainDkimResult = new VerifyDomainDkimResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

    while (true) {
      int xmlEvent = context.nextEvent();
      if (xmlEvent == XmlPullParser.END_DOCUMENT) return verifyDomainDkimResult;

      if (xmlEvent == XmlPullParser.START_TAG) {
        if (context.testExpression("DkimTokens/member", targetDepth)) {
          verifyDomainDkimResult
              .getDkimTokens()
              .add(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent == XmlPullParser.END_TAG) {
        if (context.getCurrentDepth() < originalDepth) {
          return verifyDomainDkimResult;
        }
      }
    }
  }
  public DescribeEventsResult unmarshall(StaxUnmarshallerContext context) throws Exception {
    DescribeEventsResult describeEventsResult = new DescribeEventsResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

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

        if (context.testExpression("Marker", targetDepth)) {
          describeEventsResult.setMarker(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Events/Event", targetDepth)) {
          describeEventsResult.withEvents(EventStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

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

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

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

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

        if (context.testExpression("QueueUrl", targetDepth)) {
          listDeadLetterSourceQueuesResult.withQueueUrls(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

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

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

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

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

        if (context.testExpression("LoadBalancerName", targetDepth)) {
          loadBalancerState.setLoadBalancerName(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("State", targetDepth)) {
          loadBalancerState.setState(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return loadBalancerState;
        }
      }
    }
  }
  public ListenerDescription unmarshall(StaxUnmarshallerContext context) throws Exception {
    ListenerDescription listenerDescription = new ListenerDescription();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("Listener", targetDepth)) {
          listenerDescription.setListener(
              ListenerStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("PolicyNames/member", targetDepth)) {
          listenerDescription
              .getPolicyNames()
              .add(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return listenerDescription;
        }
      }
    }
  }
  public GetTrafficPolicyResult unmarshall(StaxUnmarshallerContext context) throws Exception {
    GetTrafficPolicyResult getTrafficPolicyResult = new GetTrafficPolicyResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

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

        if (context.testExpression("TrafficPolicy", targetDepth)) {
          getTrafficPolicyResult.setTrafficPolicy(
              TrafficPolicyStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return getTrafficPolicyResult;
        }
      }
    }
  }
  public CreateCloudFrontOriginAccessIdentityResult unmarshall(StaxUnmarshallerContext context)
      throws Exception {
    CreateCloudFrontOriginAccessIdentityResult createCloudFrontOriginAccessIdentityResult =
        new CreateCloudFrontOriginAccessIdentityResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

    if (context.isStartOfDocument()) {
      createCloudFrontOriginAccessIdentityResult.setLocation(context.getHeader("Location"));
      createCloudFrontOriginAccessIdentityResult.setETag(context.getHeader("ETag"));
    }

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

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("CloudFrontOriginAccessIdentity", targetDepth)) {
          createCloudFrontOriginAccessIdentityResult.setCloudFrontOriginAccessIdentity(
              CloudFrontOriginAccessIdentityStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return createCloudFrontOriginAccessIdentityResult;
        }
      }
    }
  }
  public ListAvailableSolutionStacksResult unmarshall(StaxUnmarshallerContext context)
      throws Exception {
    ListAvailableSolutionStacksResult listAvailableSolutionStacksResult =
        new ListAvailableSolutionStacksResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("SolutionStacks/member", targetDepth)) {
          listAvailableSolutionStacksResult
              .getSolutionStacks()
              .add(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("SolutionStackDetails/member", targetDepth)) {
          listAvailableSolutionStacksResult
              .getSolutionStackDetails()
              .add(SolutionStackDescriptionStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return listAvailableSolutionStacksResult;
        }
      }
    }
  }
  public DescribeVolumesResult unmarshall(StaxUnmarshallerContext context) throws Exception {
    DescribeVolumesResult describeVolumesResult = new DescribeVolumesResult();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("volumeSet/item", targetDepth)) {
          describeVolumesResult
              .getVolumes()
              .add(VolumeStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return describeVolumesResult;
        }
      }
    }
  }
  public InstanceStatusDetails unmarshall(StaxUnmarshallerContext context) throws Exception {
    InstanceStatusDetails instanceStatusDetails = new InstanceStatusDetails();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

    while (true) {
      int xmlEvent = context.nextEvent();
      if (xmlEvent == XmlPullParser.END_DOCUMENT) return instanceStatusDetails;

      if (xmlEvent == XmlPullParser.START_TAG) {
        if (context.testExpression("name", targetDepth)) {
          instanceStatusDetails.setName(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("status", targetDepth)) {
          instanceStatusDetails.setStatus(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("impairedSince", targetDepth)) {
          instanceStatusDetails.setImpairedSince(
              DateStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent == XmlPullParser.END_TAG) {
        if (context.getCurrentDepth() < originalDepth) {
          return instanceStatusDetails;
        }
      }
    }
  }