diff --git a/aws-lambda-java-events/pom.xml b/aws-lambda-java-events/pom.xml
index 8799966b..925273e9 100644
--- a/aws-lambda-java-events/pom.xml
+++ b/aws-lambda-java-events/pom.xml
@@ -5,7 +5,7 @@
com.amazonaws
aws-lambda-java-events
- 3.16.0
+ 3.16.1
jar
AWS Lambda Java Events Library
diff --git a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/ConnectEvent.java b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/ConnectEvent.java
index 38547ac2..54a69bd8 100644
--- a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/ConnectEvent.java
+++ b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/ConnectEvent.java
@@ -59,7 +59,7 @@ public static class ContactData implements Serializable, Cloneable {
private String initiationMethod;
private String instanceArn;
private String previousContactId;
- private String queue;
+ private Queue queue;
private SystemEndpoint systemEndpoint;
}
@@ -72,6 +72,15 @@ public static class CustomerEndpoint implements Serializable, Cloneable {
private String type;
}
+ @Data
+ @Builder(setterPrefix = "with")
+ @NoArgsConstructor
+ @AllArgsConstructor
+ public static class Queue implements Serializable, Cloneable {
+ private String name;
+ private String ARN;
+ }
+
@Data
@Builder(setterPrefix = "with")
@NoArgsConstructor
diff --git a/aws-lambda-java-serialization/pom.xml b/aws-lambda-java-serialization/pom.xml
index 07ccecc8..2f8e7613 100644
--- a/aws-lambda-java-serialization/pom.xml
+++ b/aws-lambda-java-serialization/pom.xml
@@ -4,7 +4,7 @@
com.amazonaws
aws-lambda-java-serialization
- 1.1.5
+ 1.1.6
jar
AWS Lambda Java Runtime Serialization
diff --git a/aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/LambdaEventSerializers.java b/aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/LambdaEventSerializers.java
index 4173211e..9c569a4e 100644
--- a/aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/LambdaEventSerializers.java
+++ b/aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/LambdaEventSerializers.java
@@ -120,6 +120,8 @@ public class LambdaEventSerializers {
ConnectEventMixin.CustomerEndpointMixin.class),
new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$SystemEndpoint",
ConnectEventMixin.SystemEndpointMixin.class),
+ new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$Queue",
+ ConnectEventMixin.QueueMixin.class),
new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbEvent",
DynamodbEventMixin.class),
new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbEvent$DynamodbStreamRecord",
@@ -170,6 +172,7 @@ public class LambdaEventSerializers {
new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$Details"),
new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$ContactData"),
new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$CustomerEndpoint"),
+ new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$Queue"),
new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$SystemEndpoint"))),
new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbEvent",
Arrays.asList(
diff --git a/aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/mixins/ConnectEventMixin.java b/aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/mixins/ConnectEventMixin.java
index 529a33b3..12fe97b7 100644
--- a/aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/mixins/ConnectEventMixin.java
+++ b/aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/mixins/ConnectEventMixin.java
@@ -65,8 +65,8 @@ public abstract class ContactDataMixin {
@JsonProperty("PreviousContactId") abstract void setPreviousContactId(String previousContactId);
// needed because Jackson expects "queue" instead of "Queue"
- @JsonProperty("Queue") abstract String getQueue();
- @JsonProperty("Queue") abstract void setQueue(String queue);
+ @JsonProperty("Queue") abstract Map getQueue();
+ @JsonProperty("Queue") abstract void setQueue(Map queue);
// needed because Jackson expects "systemEndpoint" instead of "SystemEndpoint"
@JsonProperty("SystemEndpoint") abstract Map getSystemEndpoint();
@@ -95,4 +95,12 @@ public abstract class SystemEndpointMixin {
@JsonProperty("Type") abstract String getType();
@JsonProperty("Type") abstract void setType(String type);
}
+
+ public abstract class QueueMixin {
+ @JsonProperty("Name") abstract String getName();
+ @JsonProperty("Name") abstract void setName(String name);
+
+ @JsonProperty("ARN") abstract String getARN();
+ @JsonProperty("ARN") abstract void setARN(String arn);
+ }
}
diff --git a/aws-lambda-java-tests/pom.xml b/aws-lambda-java-tests/pom.xml
index 0ab074cc..df8ec54e 100644
--- a/aws-lambda-java-tests/pom.xml
+++ b/aws-lambda-java-tests/pom.xml
@@ -45,7 +45,7 @@
com.amazonaws
aws-lambda-java-events
- 3.16.0
+ 3.16.1
org.junit.jupiter
diff --git a/aws-lambda-java-tests/src/test/java/com/amazonaws/services/lambda/runtime/tests/EventLoaderTest.java b/aws-lambda-java-tests/src/test/java/com/amazonaws/services/lambda/runtime/tests/EventLoaderTest.java
index 86ad7322..e3ca5095 100644
--- a/aws-lambda-java-tests/src/test/java/com/amazonaws/services/lambda/runtime/tests/EventLoaderTest.java
+++ b/aws-lambda-java-tests/src/test/java/com/amazonaws/services/lambda/runtime/tests/EventLoaderTest.java
@@ -315,7 +315,8 @@ public void testLoadScheduledEvent() {
@Test
public void testLoadConnectEvent() {
ConnectEvent event = EventLoader.loadConnectEvent("connect_event.json");
- assertThat(event).isNotNull();
+ assertThat(event).isNotNull()
+ .returns("ContactFlowEvent", from(ConnectEvent::getName));
ConnectEvent.ContactData contactData = event.getDetails().getContactData();
assertThat(contactData)
@@ -333,6 +334,11 @@ public void testLoadConnectEvent() {
assertThat(contactData.getSystemEndpoint())
.returns("+21234567890",from(ConnectEvent.SystemEndpoint::getAddress))
.returns("TELEPHONE_NUMBER",from(ConnectEvent.SystemEndpoint::getType));
+
+ assertThat(contactData.getQueue())
+ .isNotNull()
+ .returns("arn:aws:connect:eu-central-1:123456789012:instance/9308c2a1-9bc6-4cea-8290-6c0b4a6d38fa/queue/941464de-39b7-4cae-82e9-a44f070ef59e", from(ConnectEvent.Queue::getARN))
+ .returns("ExampleQueue",from(ConnectEvent.Queue::getName));
}
@Test
diff --git a/aws-lambda-java-tests/src/test/resources/connect_event.json b/aws-lambda-java-tests/src/test/resources/connect_event.json
index a9e04f7f..9994dd5c 100644
--- a/aws-lambda-java-tests/src/test/resources/connect_event.json
+++ b/aws-lambda-java-tests/src/test/resources/connect_event.json
@@ -22,7 +22,10 @@
}
},
"PreviousContactId": "4ca32fbd-8f92-46af-92a5-6b0f970f0efe",
- "Queue": null,
+ "Queue": {
+ "ARN": "arn:aws:connect:eu-central-1:123456789012:instance/9308c2a1-9bc6-4cea-8290-6c0b4a6d38fa/queue/941464de-39b7-4cae-82e9-a44f070ef59e",
+ "Name": "ExampleQueue"
+ },
"SystemEndpoint": {
"Address": "+21234567890",
"Type": "TELEPHONE_NUMBER"