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; + +}