public ListEventSourceMappingsResult unmarshall(JsonUnmarshallerContext context)
      throws Exception {
    ListEventSourceMappingsResult listEventSourceMappingsResult =
        new ListEventSourceMappingsResult();

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

    JsonToken token = context.getCurrentToken();
    if (token == null) token = context.nextToken();
    if (token == VALUE_NULL) return null;

    while (true) {
      if (token == null) break;

      if (token == FIELD_NAME || token == START_OBJECT) {
        if (context.testExpression("NextMarker", targetDepth)) {
          context.nextToken();
          listEventSourceMappingsResult.setNextMarker(
              context.getUnmarshaller(String.class).unmarshall(context));
        }
        if (context.testExpression("EventSourceMappings", targetDepth)) {
          context.nextToken();
          listEventSourceMappingsResult.setEventSourceMappings(
              new ListUnmarshaller<EventSourceMappingConfiguration>(
                      EventSourceMappingConfigurationJsonUnmarshaller.getInstance())
                  .unmarshall(context));
        }
      } else if (token == END_ARRAY || token == END_OBJECT) {
        if (context.getLastParsedParentElement() == null
            || context.getLastParsedParentElement().equals(currentParentElement)) {
          if (context.getCurrentDepth() <= originalDepth) break;
        }
      }
      token = context.nextToken();
    }

    return listEventSourceMappingsResult;
  }
  public CreateAliasResult unmarshall(JsonUnmarshallerContext context) throws Exception {
    CreateAliasResult createAliasResult = new CreateAliasResult();

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

    JsonToken token = context.getCurrentToken();
    if (token == null) token = context.nextToken();
    if (token == VALUE_NULL) return null;

    while (true) {
      if (token == null) break;

      if (token == FIELD_NAME || token == START_OBJECT) {
        if (context.testExpression("AliasArn", targetDepth)) {
          context.nextToken();
          createAliasResult.setAliasArn(context.getUnmarshaller(String.class).unmarshall(context));
        }
        if (context.testExpression("Name", targetDepth)) {
          context.nextToken();
          createAliasResult.setName(context.getUnmarshaller(String.class).unmarshall(context));
        }
        if (context.testExpression("FunctionVersion", targetDepth)) {
          context.nextToken();
          createAliasResult.setFunctionVersion(
              context.getUnmarshaller(String.class).unmarshall(context));
        }
        if (context.testExpression("Description", targetDepth)) {
          context.nextToken();
          createAliasResult.setDescription(
              context.getUnmarshaller(String.class).unmarshall(context));
        }
      } else if (token == END_ARRAY || token == END_OBJECT) {
        if (context.getLastParsedParentElement() == null
            || context.getLastParsedParentElement().equals(currentParentElement)) {
          if (context.getCurrentDepth() <= originalDepth) break;
        }
      }
      token = context.nextToken();
    }

    return createAliasResult;
  }
  public GetEventSourceMappingResult unmarshall(JsonUnmarshallerContext context) throws Exception {
    GetEventSourceMappingResult getEventSourceMappingResult = new GetEventSourceMappingResult();

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

    JsonToken token = context.getCurrentToken();
    if (token == null) token = context.nextToken();
    if (token == VALUE_NULL) return null;

    while (true) {
      if (token == null) break;

      if (token == FIELD_NAME || token == START_OBJECT) {
        if (context.testExpression("UUID", targetDepth)) {
          context.nextToken();
          getEventSourceMappingResult.setUUID(
              context.getUnmarshaller(String.class).unmarshall(context));
        }
        if (context.testExpression("BatchSize", targetDepth)) {
          context.nextToken();
          getEventSourceMappingResult.setBatchSize(
              context.getUnmarshaller(Integer.class).unmarshall(context));
        }
        if (context.testExpression("EventSourceArn", targetDepth)) {
          context.nextToken();
          getEventSourceMappingResult.setEventSourceArn(
              context.getUnmarshaller(String.class).unmarshall(context));
        }
        if (context.testExpression("FunctionArn", targetDepth)) {
          context.nextToken();
          getEventSourceMappingResult.setFunctionArn(
              context.getUnmarshaller(String.class).unmarshall(context));
        }
        if (context.testExpression("LastModified", targetDepth)) {
          context.nextToken();
          getEventSourceMappingResult.setLastModified(
              context.getUnmarshaller(java.util.Date.class).unmarshall(context));
        }
        if (context.testExpression("LastProcessingResult", targetDepth)) {
          context.nextToken();
          getEventSourceMappingResult.setLastProcessingResult(
              context.getUnmarshaller(String.class).unmarshall(context));
        }
        if (context.testExpression("State", targetDepth)) {
          context.nextToken();
          getEventSourceMappingResult.setState(
              context.getUnmarshaller(String.class).unmarshall(context));
        }
        if (context.testExpression("StateTransitionReason", targetDepth)) {
          context.nextToken();
          getEventSourceMappingResult.setStateTransitionReason(
              context.getUnmarshaller(String.class).unmarshall(context));
        }
      } else if (token == END_ARRAY || token == END_OBJECT) {
        if (context.getLastParsedParentElement() == null
            || context.getLastParsedParentElement().equals(currentParentElement)) {
          if (context.getCurrentDepth() <= originalDepth) break;
        }
      }
      token = context.nextToken();
    }

    return getEventSourceMappingResult;
  }