Skip to content

Instantly share code, notes, and snippets.

@kylelonghurst
Last active May 22, 2019 23:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kylelonghurst/55f6295c9a8660fd77a743e009c0992c to your computer and use it in GitHub Desktop.
Save kylelonghurst/55f6295c9a8660fd77a743e009c0992c to your computer and use it in GitHub Desktop.
Jackson objectMapper mixin to convert lambda InputStream to DynamodbEvent object. Values found on this issue were out of date/incomplete -> https://github.com/aws/aws-sdk-java/issues/1344
import com.fasterxml.jackson.annotation.JsonProperty;
import java.nio.ByteBuffer;
import java.util.Date;
import java.util.List;
import java.util.Map;
public abstract class DynamodbEventMixin {
@JsonProperty("Records") abstract List<?> getRecords();
@JsonProperty("Records") abstract void setRecords(List<?> records);
public abstract class DynamodbStreamRecordMixin {
@JsonProperty("EventID") abstract String getEventID();
@JsonProperty("EventID") abstract void setEventID(String var1);
@JsonProperty("EventName") abstract String getEventName();
@JsonProperty("EventName") abstract void setEventName(String eventName);
@JsonProperty("EventVersion") abstract String getEventVersion();
@JsonProperty("EventVersion") abstract void setEventVersion(String eventVersion);
@JsonProperty("EventSource") abstract String getEventSource();
@JsonProperty("EventSource") abstract void setEventSource(String eventSource);
@JsonProperty("AwsRegion") abstract String getAwsRegion();
@JsonProperty("AwsRegion") abstract void setAwsRegion(String awsRegion);
@JsonProperty("Dynamodb") abstract Object getDynamodb();
@JsonProperty("Dynamodb") abstract void setDynamodb(Object dynamodb);
@JsonProperty("EventSourceARN") abstract String getEventSourceArn();
@JsonProperty("EventSourceARN") abstract void setEventSourceArn(String eventSourceArn);
}
public abstract class StreamRecordMixin {
@JsonProperty("Keys") abstract Map<String, ?> getKeys();
@JsonProperty("Keys") abstract void setKeys(Map<String, ?> keys);
@JsonProperty("SizeBytes") abstract Long getSizeBytes();
@JsonProperty("SizeBytes") abstract void setSizeBytes(Long sizeBytes);
@JsonProperty("SequenceNumber") abstract String getSequenceNumber();
@JsonProperty("SequenceNumber") abstract void setSequenceNumber(String sequenceNumber);
@JsonProperty("StreamViewType") abstract String getStreamViewType();
@JsonProperty("StreamViewType") abstract void setStreamViewType(String streamViewType);
@JsonProperty("NewImage") abstract Map<String, ?> getNewImage();
@JsonProperty("NewImage") abstract void setNewImage(Map<String, ?> newImage);
@JsonProperty("OldImage") abstract Map<String, ?> getOldImage();
@JsonProperty("OldImage") abstract void setOldImage(Map<String, ?> oldImage);
@JsonProperty("ApproximateCreationDateTime") abstract Date getApproximateCreationDateTime();
@JsonProperty("ApproximateCreationDateTime") abstract void setApproximateCreationDateTime(Date approximateCreationDateTime);
}
public abstract class AttributeValueMixin {
@JsonProperty("S") abstract String getS();
@JsonProperty("S") abstract void setS(String s);
@JsonProperty("N") abstract String getN();
@JsonProperty("N") abstract void setN(String n);
@JsonProperty("B") abstract ByteBuffer getB();
@JsonProperty("B") abstract void setB(ByteBuffer b);
@JsonProperty("NULL") abstract Boolean isNULL();
@JsonProperty("NULL") abstract void setNULL(Boolean nU);
@JsonProperty("BOOL") abstract Boolean getBOOL();
@JsonProperty("BOOL") abstract void setBOOL(Boolean bO);
@JsonProperty("SS") abstract List<String> getSS();
@JsonProperty("SS") abstract void setSS(List<String> sS);
@JsonProperty("NS") abstract List<String> getNS();
@JsonProperty("NS") abstract void setNS(List<String> nS);
@JsonProperty("BS") abstract List<String> getBS();
@JsonProperty("BS") abstract void setBS(List<String> bS);
@JsonProperty("M") abstract Map<String, ?> getM();
@JsonProperty("M") abstract void setM(Map<String, ?> val);
@JsonProperty("L") abstract List<?> getL();
@JsonProperty("L") abstract void setL(List<?> val);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment