aws_lambda_events/event/cloudwatch_events/
mod.rs

1use chrono::{DateTime, Utc};
2use serde::{de::DeserializeOwned, Deserialize, Serialize};
3use serde_json::Value;
4
5pub mod cloudtrail;
6pub mod codedeploy;
7pub mod codepipeline;
8pub mod ec2;
9pub mod emr;
10pub mod gamelift;
11pub mod glue;
12pub mod health;
13pub mod kms;
14pub mod macie;
15pub mod opsworks;
16pub mod signin;
17pub mod sms;
18pub mod ssm;
19pub mod tag;
20pub mod trustedadvisor;
21
22/// `CloudWatchEvent` is the outer structure of an event sent via CloudWatch Events.
23/// For examples of events that come via CloudWatch Events, see <https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html>
24#[non_exhaustive]
25#[derive(Clone, Default, Debug, Deserialize, Eq, PartialEq, Serialize)]
26#[serde(rename_all = "camelCase")]
27pub struct CloudWatchEvent<T1 = Value>
28where
29    T1: DeserializeOwned,
30    T1: Serialize,
31{
32    #[serde(default)]
33    pub version: Option<String>,
34    #[serde(default)]
35    pub id: Option<String>,
36    #[serde(default)]
37    #[serde(rename = "detail-type")]
38    pub detail_type: Option<String>,
39    #[serde(default)]
40    pub source: Option<String>,
41    #[serde(default)]
42    #[serde(rename = "account")]
43    pub account_id: Option<String>,
44    pub time: DateTime<Utc>,
45    #[serde(default)]
46    pub region: Option<String>,
47    pub resources: Vec<String>,
48    #[serde(bound = "")]
49    pub detail: Option<T1>,
50    /// Catchall to catch any additional fields that were present but not explicitly defined by this struct.
51    /// Enabled with Cargo feature `catch-all-fields`.
52    /// If `catch-all-fields` is disabled, any additional fields that are present will be ignored.
53    #[cfg(feature = "catch-all-fields")]
54    #[cfg_attr(docsrs, doc(cfg(feature = "catch-all-fields")))]
55    #[serde(flatten)]
56    pub other: serde_json::Map<String, Value>,
57}