diff --git a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/DynamodbTimeWindowEvent.java b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/DynamodbTimeWindowEvent.java index 9ced57bb..64ed9fb2 100644 --- a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/DynamodbTimeWindowEvent.java +++ b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/DynamodbTimeWindowEvent.java @@ -23,6 +23,9 @@ import java.util.List; import java.util.Map; +/** + * Represents an Amazon Dynamodb event when using time windows. + */ @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = true) @@ -30,11 +33,34 @@ public class DynamodbTimeWindowEvent extends DynamodbEvent implements Serializab private static final long serialVersionUID = -5449871161108629510L; + /** + * Time window for the records in the event. + */ private TimeWindow window; + + /** + * State being built up to this invoke in the time window. + */ private Map state; + + /** + * Shard id of the records + */ private String shardId; + + /** + * Dynamodb stream arn. + */ private String eventSourceArn; + + /** + * Set to true for the last invoke of the time window. Subsequent invoke will start a new time window along with a fresh state. + */ private Boolean isFinalInvokeForWindow; + + /** + * Set to true if window is terminated prematurely. Subsequent invoke will continue the same window with a fresh state. + */ private Boolean isWindowTerminatedEarly; @Builder(setterPrefix = "with") diff --git a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/KinesisTimeWindowEvent.java b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/KinesisTimeWindowEvent.java index 0b047cad..f5e982a1 100644 --- a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/KinesisTimeWindowEvent.java +++ b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/KinesisTimeWindowEvent.java @@ -23,6 +23,9 @@ import java.util.List; import java.util.Map; +/** + * Represents an Amazon Kinesis event when using time windows. + */ @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = true) @@ -30,11 +33,34 @@ public class KinesisTimeWindowEvent extends KinesisEvent implements Serializable private static final long serialVersionUID = 8926430039233062266L; + /** + * Time window for the records in the event. + */ private TimeWindow window; + + /** + * State being built up to this invoke in the time window. + */ private Map state; + + /** + * Shard id of the records + */ private String shardId; + + /** + * Kinesis stream or consumer arn. + */ private String eventSourceArn; + + /** + * Set to true for the last invoke of the time window. Subsequent invoke will start a new time window along with a fresh state. + */ private Boolean isFinalInvokeForWindow; + + /** + * Set to true if window is terminated prematurely. Subsequent invoke will continue the same window with a fresh state. + */ private Boolean isWindowTerminatedEarly; @Builder(setterPrefix = "with") diff --git a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/StreamsEventResponse.java b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/StreamsEventResponse.java index a1c87e1a..9d2990f9 100644 --- a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/StreamsEventResponse.java +++ b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/StreamsEventResponse.java @@ -21,6 +21,10 @@ import java.io.Serializable; import java.util.List; +/** + * Function response type to report batch item failures for {@link KinesisEvent} and {@link DynamodbEvent}. + * https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-batchfailurereporting + */ @Data @NoArgsConstructor @AllArgsConstructor @@ -28,6 +32,9 @@ public class StreamsEventResponse implements Serializable { private static final long serialVersionUID = 3232053116472095907L; + /** + * A list of records which failed processing. Returning the first record which failed would retry all remaining records from the batch. + */ private List batchItemFailures; @Data @@ -37,6 +44,9 @@ public class StreamsEventResponse implements Serializable { public static class BatchItemFailure implements Serializable { private static final long serialVersionUID = 1473983466096085881L; + /** + * Sequence number of the record which failed processing. + */ String itemIdentifier; } } diff --git a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/TimeWindowEventResponse.java b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/TimeWindowEventResponse.java index c4f162d1..8d144075 100644 --- a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/TimeWindowEventResponse.java +++ b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/TimeWindowEventResponse.java @@ -22,6 +22,10 @@ import java.util.List; import java.util.Map; +/** + * Response type to return a new state for the time window and to report batch item failures. This should be used along with {@link KinesisTimeWindowEvent} or {@link DynamodbTimeWindowEvent}. + * https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows + */ @Data @NoArgsConstructor @AllArgsConstructor @@ -29,7 +33,14 @@ public class TimeWindowEventResponse implements Serializable { private static final long serialVersionUID = 2259096191791166028L; + /** + * New state after processing a batch of records. + */ private Map state; + + /** + * A list of records which failed processing. Returning the first record which failed would retry all remaining records from the batch. + */ private List batchItemFailures; @Data @@ -39,6 +50,9 @@ public class TimeWindowEventResponse implements Serializable { public static class BatchItemFailure implements Serializable { private static final long serialVersionUID = 5224634072234167773L; + /** + * Sequence number of the record which failed processing. + */ String itemIdentifier; } } diff --git a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/models/TimeWindow.java b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/models/TimeWindow.java index e0d2036e..77d0452f 100644 --- a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/models/TimeWindow.java +++ b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/models/TimeWindow.java @@ -18,11 +18,22 @@ import lombok.Data; import lombok.NoArgsConstructor; +/** + * Represents a time window. + */ @Data @Builder(setterPrefix = "with") @NoArgsConstructor @AllArgsConstructor public class TimeWindow { + + /** + * Window start instant represented as ISO-8601 string. + */ private String start; + + /** + * Window end instant represented as ISO-8601 string. + */ private String end; }