Skip to content

Commit ea4a8f6

Browse files
Make EcrScanEvent severities optional (#783)
* Make EcrScanEvent severities optional * Add the ecr example json file needed by test
1 parent 99eb031 commit ea4a8f6

File tree

2 files changed

+44
-6
lines changed

2 files changed

+44
-6
lines changed

lambda-events/src/event/ecr_scan/mod.rs

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,24 @@ pub struct EcrScanEventDetailType {
4343
#[derive(Debug, Clone, Eq, PartialEq, Deserialize, Serialize)]
4444
#[serde(rename_all = "camelCase")]
4545
pub struct EcrScanEventFindingSeverityCounts {
46+
#[serde(default)]
4647
#[serde(rename = "CRITICAL")]
47-
pub critical: i64,
48+
pub critical: Option<i64>,
49+
#[serde(default)]
4850
#[serde(rename = "HIGH")]
49-
pub high: i64,
51+
pub high: Option<i64>,
52+
#[serde(default)]
5053
#[serde(rename = "MEDIUM")]
51-
pub medium: i64,
54+
pub medium: Option<i64>,
55+
#[serde(default)]
5256
#[serde(rename = "LOW")]
53-
pub low: i64,
57+
pub low: Option<i64>,
58+
#[serde(default)]
5459
#[serde(rename = "INFORMATIONAL")]
55-
pub informational: i64,
60+
pub informational: Option<i64>,
61+
#[serde(default)]
5662
#[serde(rename = "UNDEFINED")]
57-
pub undefined: i64,
63+
pub undefined: Option<i64>,
5864
}
5965

6066
#[cfg(test)]
@@ -70,4 +76,14 @@ mod test {
7076
let reparsed: EcrScanEvent = serde_json::from_slice(output.as_bytes()).unwrap();
7177
assert_eq!(parsed, reparsed);
7278
}
79+
80+
#[test]
81+
#[cfg(feature = "ecr_scan")]
82+
fn example_ecr_image_scan_event_with_missing_severities() {
83+
let data = include_bytes!("../../fixtures/example-ecr-image-scan-event-with-missing-severities.json");
84+
let parsed: EcrScanEvent = serde_json::from_slice(data).unwrap();
85+
let output: String = serde_json::to_string(&parsed).unwrap();
86+
let reparsed: EcrScanEvent = serde_json::from_slice(output.as_bytes()).unwrap();
87+
assert_eq!(parsed, reparsed);
88+
}
7389
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"version": "0",
3+
"id": "85fc3613-e913-7fc4-a80c-a3753e4aa9ae",
4+
"detail-type": "ECR Image Scan",
5+
"source": "aws.ecr",
6+
"account": "123456789012",
7+
"time": "2019-10-29T02:36:48Z",
8+
"region": "us-east-1",
9+
"resources": [
10+
"arn:aws:ecr:us-east-1:123456789012:repository/my-repository-name"
11+
],
12+
"detail": {
13+
"scan-status": "COMPLETE",
14+
"repository-name": "my-repository-name",
15+
"finding-severity-counts": {
16+
"CRITICAL": 10,
17+
"MEDIUM": 9
18+
},
19+
"image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
20+
"image-tags": []
21+
}
22+
}

0 commit comments

Comments
 (0)