Skip to content

Commit 81ec680

Browse files
committed
Separated the events to two different Java classes
Moved the tests to the test module
1 parent 4469cd8 commit 81ec680

File tree

9 files changed

+265
-107
lines changed

9 files changed

+265
-107
lines changed

aws-lambda-java-events/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
* `AppSyncLambdaAuthorizerResponse`
1717
* `CloudFormationCustomResourceEvent`
1818
* `CloudFrontEvent`
19+
* `CloudWatchCompositeAlarmEvent`
1920
* `CloudWatchLogsEvent`
21+
* `CloudWatchMetricAlarmEvent`
2022
* `CodeCommitEvent`
2123
* `CognitoEvent`
2224
* `CognitoUserPoolCreateAuthChallengeEvent`

aws-lambda-java-events/pom.xml

-12
Original file line numberDiff line numberDiff line change
@@ -71,18 +71,6 @@
7171
<version>2.36.1</version>
7272
<scope>test</scope>
7373
</dependency>
74-
<dependency>
75-
<groupId>org.skyscreamer</groupId>
76-
<artifactId>jsonassert</artifactId>
77-
<version>1.5.0</version>
78-
<scope>test</scope>
79-
</dependency>
80-
<dependency>
81-
<groupId>com.amazonaws</groupId>
82-
<artifactId>aws-lambda-java-serialization</artifactId>
83-
<version>1.1.5</version>
84-
<scope>test</scope>
85-
</dependency>
8674

8775
<dependency>
8876
<groupId>org.projectlombok</groupId>

aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/CloudWatchAlarmEvent.java renamed to aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/CloudWatchCompositeAlarmEvent.java

+20-34
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,16 @@
55
import lombok.Data;
66
import lombok.NoArgsConstructor;
77

8-
import java.util.List;
9-
import java.util.Map;
10-
8+
/**
9+
* Represents an CloudWatch Composite Alarm event. This event occurs when a composite alarm is triggered.
10+
*
11+
* @see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions">Using Amazon CloudWatch alarms</a>
12+
*/
1113
@Data
1214
@Builder(setterPrefix = "with")
1315
@NoArgsConstructor
1416
@AllArgsConstructor
15-
public class CloudWatchAlarmEvent {
16-
17+
public class CloudWatchCompositeAlarmEvent {
1718
private String source;
1819
private String alarmArn;
1920
private String accountId;
@@ -28,57 +29,42 @@ public class CloudWatchAlarmEvent {
2829
public static class AlarmData {
2930
private String alarmName;
3031
private State state;
31-
private State previousState;
32+
private PreviousState previousState;
3233
private Configuration configuration;
3334
}
3435

3536
@Data
3637
@Builder(setterPrefix = "with")
3738
@NoArgsConstructor
3839
@AllArgsConstructor
39-
private static class State {
40+
public static class State {
4041
private String value;
4142
private String reason;
4243
private String reasonData;
4344
private String timestamp;
44-
private String actionsSuppressedBy;
45-
private String actionsSuppressedReason;
4645
}
4746

4847
@Data
4948
@Builder(setterPrefix = "with")
5049
@NoArgsConstructor
5150
@AllArgsConstructor
52-
private static class Configuration {
53-
private String description;
54-
private List<Metric> metrics;
55-
private Boolean returnData;
56-
57-
private String alarmRule;
58-
private String actionsSuppressor;
59-
private Integer actionsSuppressorWaitPeriod;
60-
private Integer actionsSuppressorExtensionPeriod;
61-
}
62-
63-
@Data
64-
@Builder(setterPrefix = "with")
65-
@NoArgsConstructor
66-
@AllArgsConstructor
67-
private static class Metric {
68-
private String id;
69-
private MetricStat metricStat;
70-
private Integer period;
71-
private String stat;
72-
private String unit;
51+
public static class PreviousState {
52+
private String value;
53+
private String reason;
54+
private String reasonData;
55+
private String timestamp;
56+
private String actionsSuppressedBy;
57+
private String actionsSuppressedReason;
7358
}
7459

7560
@Data
7661
@Builder(setterPrefix = "with")
7762
@NoArgsConstructor
7863
@AllArgsConstructor
79-
private static class MetricStat {
80-
private String namespace;
81-
private String name;
82-
private Map<String, String> dimensions;
64+
public static class Configuration {
65+
private String alarmRule;
66+
private String actionsSuppressor;
67+
private Integer actionsSuppressorWaitPeriod;
68+
private Integer actionsSuppressorExtensionPeriod;
8369
}
8470
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package com.amazonaws.services.lambda.runtime.events;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
8+
import java.util.List;
9+
import java.util.Map;
10+
11+
/**
12+
* Represents an CloudWatch Metric Alarm event. This event occurs when a metric alarm is triggered.
13+
*
14+
* @see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions">Using Amazon CloudWatch alarms</a>
15+
*/
16+
@Data
17+
@Builder(setterPrefix = "with")
18+
@NoArgsConstructor
19+
@AllArgsConstructor
20+
public class CloudWatchMetricAlarmEvent {
21+
private String source;
22+
private String alarmArn;
23+
private String accountId;
24+
private String time;
25+
private String region;
26+
private AlarmData alarmData;
27+
28+
@Data
29+
@Builder(setterPrefix = "with")
30+
@NoArgsConstructor
31+
@AllArgsConstructor
32+
public static class AlarmData {
33+
private String alarmName;
34+
private State state;
35+
private PreviousState previousState;
36+
private Configuration configuration;
37+
}
38+
39+
@Data
40+
@Builder(setterPrefix = "with")
41+
@NoArgsConstructor
42+
@AllArgsConstructor
43+
public static class State {
44+
private String value;
45+
private String reason;
46+
private String timestamp;
47+
}
48+
49+
@Data
50+
@Builder(setterPrefix = "with")
51+
@NoArgsConstructor
52+
@AllArgsConstructor
53+
public static class PreviousState {
54+
private String value;
55+
private String reason;
56+
private String reasonData;
57+
private String timestamp;
58+
}
59+
60+
@Data
61+
@Builder(setterPrefix = "with")
62+
@NoArgsConstructor
63+
@AllArgsConstructor
64+
public static class Configuration {
65+
private String description;
66+
private List<Metric> metrics;
67+
}
68+
69+
@Data
70+
@Builder(setterPrefix = "with")
71+
@NoArgsConstructor
72+
@AllArgsConstructor
73+
public static class Metric {
74+
private String id;
75+
private MetricStat metricStat;
76+
private Boolean returnData;
77+
}
78+
79+
@Data
80+
@Builder(setterPrefix = "with")
81+
@NoArgsConstructor
82+
@AllArgsConstructor
83+
public static class MetricStat {
84+
private MetricDetail metric;
85+
private Integer period;
86+
private String stat;
87+
private String unit;
88+
}
89+
90+
@Data
91+
@Builder(setterPrefix = "with")
92+
@NoArgsConstructor
93+
@AllArgsConstructor
94+
public static class MetricDetail {
95+
private String namespace;
96+
private String name;
97+
private Map<String, String> dimensions;
98+
}
99+
}

aws-lambda-java-events/src/test/java/com/amazonaws/services/lambda/runtime/events/CloudWatchAlarmEventTest.java

-58
This file was deleted.

aws-lambda-java-tests/src/main/java/com/amazonaws/services/lambda/runtime/tests/EventLoader.java

+8
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,18 @@ public static CloudFrontEvent loadCloudFrontEvent(String filename) {
4545
return loadEvent(filename, CloudFrontEvent.class);
4646
}
4747

48+
public static CloudWatchCompositeAlarmEvent loadCloudWatchCompositeAlarmEvent(String filename) {
49+
return loadEvent(filename, CloudWatchCompositeAlarmEvent.class);
50+
}
51+
4852
public static CloudWatchLogsEvent loadCloudWatchLogsEvent(String filename) {
4953
return loadEvent(filename, CloudWatchLogsEvent.class);
5054
}
5155

56+
public static CloudWatchMetricAlarmEvent loadCloudWatchMetricAlarmEvent(String filename) {
57+
return loadEvent(filename, CloudWatchMetricAlarmEvent.class);
58+
}
59+
5260
public static CodeCommitEvent loadCodeCommitEvent(String filename) {
5361
return loadEvent(filename, CodeCommitEvent.class);
5462
}

0 commit comments

Comments
 (0)