diff --git a/aws-lambda-java-events/README.md b/aws-lambda-java-events/README.md
index f7c7db8b..ce3f4a05 100644
--- a/aws-lambda-java-events/README.md
+++ b/aws-lambda-java-events/README.md
@@ -5,6 +5,8 @@
* `APIGatewayProxyResponseEvent`
* `APIGatewayV2ProxyRequestEvent`
* `APIGatewayV2ProxyResponseEvent`
+* `ApplicationLoadBalancerRequestEvent`
+* `ApplicationLoadBalancerResponseEvent`
* `CloudFrontEvent`
* `CloudWatchLogsEvent`
* `CodeCommitEvent`
diff --git a/aws-lambda-java-events/pom.xml b/aws-lambda-java-events/pom.xml
index e5c4cd79..98d03e32 100644
--- a/aws-lambda-java-events/pom.xml
+++ b/aws-lambda-java-events/pom.xml
@@ -56,6 +56,12 @@
5.5.2
test
+
+ org.projectlombok
+ lombok
+ 1.18.12
+ provided
+
diff --git a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/ApplicationLoadBalancerRequestEvent.java b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/ApplicationLoadBalancerRequestEvent.java
new file mode 100644
index 00000000..29d01f78
--- /dev/null
+++ b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/ApplicationLoadBalancerRequestEvent.java
@@ -0,0 +1,47 @@
+package com.amazonaws.services.lambda.runtime.events;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Class to represent the request event from Application Load Balancer.
+ *
+ * @see Using AWS Lambda with an Application Load Balancer
+ *
+ * @author msailes
+ */
+
+@NoArgsConstructor
+@Data
+public class ApplicationLoadBalancerRequestEvent implements Serializable, Cloneable {
+
+ @NoArgsConstructor
+ @Data
+ public static class Elb implements Serializable, Cloneable {
+
+ private String targetGroupArn;
+
+ }
+
+ @NoArgsConstructor
+ @Data
+ public static class RequestContext implements Serializable, Cloneable {
+
+ private Elb elb;
+
+ }
+
+ private RequestContext requestContext;
+ private String httpMethod;
+ private String path;
+ private Map queryStringParameters;
+ private Map headers;
+ private Map> multiValueHeaders;
+ private String body;
+ private boolean isBase64Encoded;
+
+}
diff --git a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/ApplicationLoadBalancerResponseEvent.java b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/ApplicationLoadBalancerResponseEvent.java
new file mode 100644
index 00000000..135de143
--- /dev/null
+++ b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/ApplicationLoadBalancerResponseEvent.java
@@ -0,0 +1,29 @@
+package com.amazonaws.services.lambda.runtime.events;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Class to represent the response event to Application Load Balancer.
+ *
+ * @see Using AWS Lambda with an Application Load Balancer
+ *
+ * @author msailes
+ */
+
+@NoArgsConstructor
+@Data
+public class ApplicationLoadBalancerResponseEvent implements Serializable, Cloneable {
+
+ private int statusCode;
+ private String statusDescription;
+ private boolean isBase64Encoded;
+ private Map headers;
+ private Map> multiValueHeaders;
+ private String body;
+
+}