public DistributionSummary unmarshall(StaxUnmarshallerContext context) throws Exception {
    DistributionSummary distributionSummary = new DistributionSummary();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;
    if (context.isStartOfDocument()) targetDepth += 1;

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

      if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
        if (context.testExpression("Id", targetDepth)) {
          distributionSummary.setId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("Status", targetDepth)) {
          distributionSummary.setStatus(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("LastModifiedTime", targetDepth)) {
          distributionSummary.setLastModifiedTime(
              DateStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("DomainName", targetDepth)) {
          distributionSummary.setDomainName(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("Aliases", targetDepth)) {
          distributionSummary.setAliases(AliasesStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("Origins", targetDepth)) {
          distributionSummary.setOrigins(OriginsStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("DefaultCacheBehavior", targetDepth)) {
          distributionSummary.setDefaultCacheBehavior(
              DefaultCacheBehaviorStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("CacheBehaviors", targetDepth)) {
          distributionSummary.setCacheBehaviors(
              CacheBehaviorsStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("CustomErrorResponses", targetDepth)) {
          distributionSummary.setCustomErrorResponses(
              CustomErrorResponsesStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("Comment", targetDepth)) {
          distributionSummary.setComment(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("PriceClass", targetDepth)) {
          distributionSummary.setPriceClass(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("Enabled", targetDepth)) {
          distributionSummary.setEnabled(BooleanStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("ViewerCertificate", targetDepth)) {
          distributionSummary.setViewerCertificate(
              ViewerCertificateStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("Restrictions", targetDepth)) {
          distributionSummary.setRestrictions(
              RestrictionsStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
        if (context.testExpression("WebACLId", targetDepth)) {
          distributionSummary.setWebACLId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return distributionSummary;
        }
      }
    }
  }
  public DistributionConfig unmarshall(StaxUnmarshallerContext context) throws Exception {
    DistributionConfig distributionConfig = new DistributionConfig();
    int originalDepth = context.getCurrentDepth();
    int targetDepth = originalDepth + 1;

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

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

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

        if (context.testExpression("CallerReference", targetDepth)) {
          distributionConfig.setCallerReference(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Aliases", targetDepth)) {
          distributionConfig.setAliases(AliasesStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("DefaultRootObject", targetDepth)) {
          distributionConfig.setDefaultRootObject(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Origins", targetDepth)) {
          distributionConfig.setOrigins(OriginsStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("DefaultCacheBehavior", targetDepth)) {
          distributionConfig.setDefaultCacheBehavior(
              DefaultCacheBehaviorStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("CacheBehaviors", targetDepth)) {
          distributionConfig.setCacheBehaviors(
              CacheBehaviorsStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("CustomErrorResponses", targetDepth)) {
          distributionConfig.setCustomErrorResponses(
              CustomErrorResponsesStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Comment", targetDepth)) {
          distributionConfig.setComment(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Logging", targetDepth)) {
          distributionConfig.setLogging(
              LoggingConfigStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("PriceClass", targetDepth)) {
          distributionConfig.setPriceClass(
              StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Enabled", targetDepth)) {
          distributionConfig.setEnabled(BooleanStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("ViewerCertificate", targetDepth)) {
          distributionConfig.setViewerCertificate(
              ViewerCertificateStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("Restrictions", targetDepth)) {
          distributionConfig.setRestrictions(
              RestrictionsStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }

        if (context.testExpression("WebACLId", targetDepth)) {
          distributionConfig.setWebACLId(StringStaxUnmarshaller.getInstance().unmarshall(context));
          continue;
        }
      } else if (xmlEvent.isEndElement()) {
        if (context.getCurrentDepth() < originalDepth) {
          return distributionConfig;
        }
      }
    }
  }