From 6737f9577604005eb79e4fc2261fef61a6928c56 Mon Sep 17 00:00:00 2001 From: Martin Madsen Date: Tue, 4 Jan 2022 22:57:27 +0100 Subject: [PATCH 1/7] Add (some) CloudWatch events Adds structs for all the events that are directly listed here: - https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html --- .../src/cloudwatch-events/cloudtrail.rs | 47 ++++ .../src/cloudwatch-events/codedeploy.rs | 35 +++ .../src/cloudwatch-events/codepipeline.rs | 47 ++++ .../src/cloudwatch-events/ec2.rs | 11 + .../src/cloudwatch-events/emr.rs | 50 ++++ .../src/cloudwatch-events/gamelift.rs | 118 +++++++++ .../src/cloudwatch-events/glue.rs | 89 +++++++ .../src/cloudwatch-events/health.rs | 30 +++ .../src/cloudwatch-events/kms.rs | 9 + .../src/cloudwatch-events/macie.rs | 221 ++++++++++++++++ .../src/cloudwatch-events/opsworks.rs | 55 ++++ .../src/cloudwatch-events/signin.rs | 50 ++++ .../src/cloudwatch-events/sms.rs | 15 ++ .../src/cloudwatch-events/ssm.rs | 238 ++++++++++++++++++ .../src/cloudwatch-events/tag.rs | 14 ++ .../src/cloudwatch-events/trustedadvisor.rs | 16 ++ 16 files changed, 1045 insertions(+) create mode 100644 aws_lambda_events/src/cloudwatch-events/cloudtrail.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/codedeploy.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/codepipeline.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/ec2.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/emr.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/gamelift.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/glue.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/health.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/kms.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/macie.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/opsworks.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/signin.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/sms.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/ssm.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/tag.rs create mode 100644 aws_lambda_events/src/cloudwatch-events/trustedadvisor.rs diff --git a/aws_lambda_events/src/cloudwatch-events/cloudtrail.rs b/aws_lambda_events/src/cloudwatch-events/cloudtrail.rs new file mode 100644 index 0000000..4742176 --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/cloudtrail.rs @@ -0,0 +1,47 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; +use serde_json::Value; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AWSAPICall { + pub event_version: String, + pub user_identity: UserIdentity, + pub event_time: String, + pub event_source: String, + pub event_name: String, + pub aws_region: String, + #[serde(rename = "sourceIPAddress")] + pub source_ipaddress: String, + pub user_agent: String, + pub request_parameters: T, + pub response_elements: Value, + #[serde(rename = "requestID")] + pub request_id: String, + #[serde(rename = "eventID")] + pub event_id: String, + pub event_type: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct UserIdentity { + pub r#type: String, + pub principal_id: String, + pub arn: String, + pub account_id: String, + pub session_context: SessionContext, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SessionContext { + pub attributes: Attributes, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Attributes { + pub mfa_authenticated: String, + pub creation_date: String, +} diff --git a/aws_lambda_events/src/cloudwatch-events/codedeploy.rs b/aws_lambda_events/src/cloudwatch-events/codedeploy.rs new file mode 100644 index 0000000..b7bbb4b --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/codedeploy.rs @@ -0,0 +1,35 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct StateChangeNotification { + pub instance_group_id: String, + pub region: String, + pub application: String, + pub deployment_id: String, + pub state: String, + pub deployment_group: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct InstanceStateChangeNotification { + pub instance_id: String, + pub region: String, + pub state: String, + pub application: String, + pub deployment_id: String, + pub instance_group_id: String, + pub deployment_group: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct InstanceStateChangeNotification { + pub pipeline: String, + pub version: String, + pub state: String, + #[serde(rename = "execution-id")] + pub execution_id: String, +} diff --git a/aws_lambda_events/src/cloudwatch-events/codepipeline.rs b/aws_lambda_events/src/cloudwatch-events/codepipeline.rs new file mode 100644 index 0000000..2524c39 --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/codepipeline.rs @@ -0,0 +1,47 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PipelineExecutionStateChange { + pub pipeline: String, + pub version: String, + pub state: String, + #[serde(rename = "execution-id")] + pub execution_id: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct StageExecutionStateChange { + pub pipeline: String, + pub version: String, + #[serde(rename = "execution-id")] + pub execution_id: String, + pub stage: String, + pub state: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ActionExecutionStateChange { + pub pipeline: String, + pub version: i64, + #[serde(rename = "execution-id")] + pub execution_id: String, + pub stage: String, + pub action: String, + pub state: String, + pub region: String, + #[serde(rename = "type")] + pub type_field: ActionExecutionStateChangeType, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ActionExecutionStateChangeType { + pub owner: String, + pub category: String, + pub provider: String, + pub version: i64, +} diff --git a/aws_lambda_events/src/cloudwatch-events/ec2.rs b/aws_lambda_events/src/cloudwatch-events/ec2.rs new file mode 100644 index 0000000..6ffdaec --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/ec2.rs @@ -0,0 +1,11 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct InstanceStateChange { + #[serde(rename = "instance-id")] + pub instance_id: String, + pub state: String, +} diff --git a/aws_lambda_events/src/cloudwatch-events/emr.rs b/aws_lambda_events/src/cloudwatch-events/emr.rs new file mode 100644 index 0000000..4ff72f2 --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/emr.rs @@ -0,0 +1,50 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AutoScalingPolicyStateChange { + pub resource_id: String, + pub cluster_id: String, + pub state: String, + pub message: String, + pub scaling_resource_type: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ClusterStateChange { + pub severity: String, + pub state_change_reason: String, + pub name: String, + pub cluster_id: String, + pub state: String, + pub message: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct InstanceGroupStateChange { + pub market: String, + pub severity: String, + pub requested_instance_count: String, + pub instance_type: String, + pub instance_group_type: String, + pub instance_group_id: String, + pub cluster_id: String, + pub running_instance_count: String, + pub state: String, + pub message: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct StepStatusChange { + pub severity: String, + pub action_on_failure: String, + pub step_id: String, + pub name: String, + pub cluster_id: String, + pub state: String, + pub message: String, +} diff --git a/aws_lambda_events/src/cloudwatch-events/gamelift.rs b/aws_lambda_events/src/cloudwatch-events/gamelift.rs new file mode 100644 index 0000000..4521aef --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/gamelift.rs @@ -0,0 +1,118 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct MatchmakingSearching { + pub tickets: Vec, + pub estimated_wait_millis: String, + pub r#type: String, + pub game_session_info: GameSessionInfo, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Ticket { + pub ticket_id: String, + pub start_time: String, + pub players: Vec, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Player { + pub player_id: String, + pub team: Option, + pub accepted: Option, + pub player_session_id: Option, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct GameSessionInfo { + pub players: Vec, +} + + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PotentialMatchCreated { + pub tickets: Vec, + pub acceptance_timeout: i64, + pub rule_evaluation_metrics: Vec, + pub acceptance_required: bool, + pub r#type: String, + pub game_session_info: GameSessionInfo, + pub match_id: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct RuleEvaluationMetric { + pub rule_name: String, + pub passed_count: i64, + pub failed_count: i64, +} + + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AcceptMatch { + pub tickets: Vec, + pub r#type: String, + pub game_session_info: GameSessionInfo, + pub match_id: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AcceptMatchCompleted { + pub tickets: Vec, + pub acceptance: String, + pub r#type: String, + pub game_session_info: GameSessionInfo, + pub match_id: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct MatchmakingSucceeded { + pub tickets: Vec, + pub r#type: String, + pub game_session_info: GameSessionInfo, + pub match_id: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct MatchmakingTimedOut { + pub reason: String, + pub tickets: Vec, + pub rule_evaluation_metrics: Vec, + pub r#type: String, + pub message: String, + pub game_session_info: GameSessionInfo, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct MatchmakingCancelled { + pub reason: String, + pub tickets: Vec, + pub rule_evaluation_metrics: Vec, + pub r#type: String, + pub message: String, + pub game_session_info: GameSessionInfo, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct MatchmakingFailed { + pub tickets: Vec, + pub custom_event_data: String, + pub r#type: String, + pub reason: String, + pub message: String, + pub game_session_info: GameSessionInfo, + pub match_id: String, +} diff --git a/aws_lambda_events/src/cloudwatch-events/glue.rs b/aws_lambda_events/src/cloudwatch-events/glue.rs new file mode 100644 index 0000000..865d652 --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/glue.rs @@ -0,0 +1,89 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct JobRunStateChange { + pub job_name: String, + pub severity: String, + pub state: String, + pub job_run_id: String, + pub message: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct CrawlerStarted { + pub account_id: String, + pub crawler_name: String, + pub start_time: String, + pub state: String, + pub message: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct CrawlerSucceeded { + pub tables_created: String, + pub warning_message: String, + pub partitions_updated: String, + pub tables_updated: String, + pub message: String, + pub partitions_deleted: String, + pub account_id: String, + #[serde(rename = "runningTime (sec)")] + pub running_time_sec: String, + pub tables_deleted: String, + pub crawler_name: String, + pub completion_date: String, + pub state: String, + pub partitions_created: String, + pub cloud_watch_log_link: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct CrawlerFailed { + pub crawler_name: String, + pub error_message: String, + pub account_id: String, + pub cloud_watch_log_link: String, + pub state: String, + pub message: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct JobRunStatus { + pub job_name: String, + pub severity: String, + pub notification_condition: NotificationCondition, + pub state: String, + pub job_run_id: String, + pub message: String, + pub started_on: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct NotificationCondition { + #[serde(rename = "NotifyDelayAfter")] + pub notify_delay_after: f64, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct DataCatalogTableStateChange { + pub database_name: String, + pub changed_partitions: Vec, + pub type_of_change: String, + pub table_name: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct DataCatalogDatabaseStateChange { + pub database_name: String, + pub type_of_change: String, + pub changed_tables: Vec, +} diff --git a/aws_lambda_events/src/cloudwatch-events/health.rs b/aws_lambda_events/src/cloudwatch-events/health.rs new file mode 100644 index 0000000..235da37 --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/health.rs @@ -0,0 +1,30 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Event { + pub event_arn: String, + pub service: String, + pub event_type_code: String, + pub event_type_category: String, + pub start_time: String, + pub end_time: String, + pub event_description: Vec, + pub affected_entities: Option>, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EventDescription { + pub language: String, + pub latest_description: String, +} + + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Entity { + pub entity_value: String, + pub tags: HashMap, +} diff --git a/aws_lambda_events/src/cloudwatch-events/kms.rs b/aws_lambda_events/src/cloudwatch-events/kms.rs new file mode 100644 index 0000000..d095607 --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/kms.rs @@ -0,0 +1,9 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct CMKEvent { + #[serde(rename = "key-id")] + pub key_id: String, +} diff --git a/aws_lambda_events/src/cloudwatch-events/macie.rs b/aws_lambda_events/src/cloudwatch-events/macie.rs new file mode 100644 index 0000000..233b2ed --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/macie.rs @@ -0,0 +1,221 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Alert { + #[serde(rename = "notification-type")] + pub notification_type: String, + pub name: String, + pub tags: Vec, + pub url: String, + #[serde(rename = "alert-arn")] + pub alert_arn: String, + #[serde(rename = "risk-score")] + pub risk_score: i64, + pub trigger: Trigger, + #[serde(rename = "created-at")] + pub created_at: String, + pub actor: String, + pub summary: T, +} + +pub type BucketScanAlert = Alert; +pub type BucketWritableAlert = Alert; +pub type BucketContainsHighRiskObjectAlert = Alert; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Trigger { + #[serde(rename = "rule-arn")] + pub rule_arn: String, + #[serde(rename = "alert-type")] + pub alert_type: String, + #[serde(rename = "created-at")] + pub created_at: String, + pub description: String, + pub risk: i64, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct BucketScanSummary { + #[serde(rename = "Description")] + pub description: String, + #[serde(rename = "IP")] + pub ip: Ip, + #[serde(rename = "Time Range")] + pub time_range: Vec, + #[serde(rename = "Source ARN")] + pub source_arn: String, + #[serde(rename = "Record Count")] + pub record_count: i64, + #[serde(rename = "Location")] + pub location: Location, + #[serde(rename = "Event Count")] + pub event_count: i64, + #[serde(rename = "Events")] + pub events: HashMap, + pub recipient_account_id: HashMap, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Ip { + #[serde(rename = "34.199.185.34")] + pub n34_199_185_34: i64, + #[serde(rename = "34.205.153.2")] + pub n34_205_153_2: i64, + #[serde(rename = "72.21.196.70")] + pub n72_21_196_70: i64, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TimeRange { + pub count: i64, + pub start: String, + pub end: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Location { + #[serde(rename = "us-east-1")] + pub us_east_1: i64, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ActionInfo { + pub count: i64, + #[serde(rename = "ISP")] + pub isp: Isp, + pub error_code: Option>, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct BucketWritableSummary { + #[serde(rename = "Description")] + pub description: String, + #[serde(rename = "Bucket")] + pub bucket: Bucket, + #[serde(rename = "Record Count")] + pub record_count: i64, + #[serde(rename = "ACL")] + pub acl: Acl, + #[serde(rename = "Event Count")] + pub event_count: i64, + #[serde(rename = "Timestamps")] + pub timestamps: HashMap, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Bucket { + #[serde(rename = "secret-bucket-name")] + pub secret_bucket_name: i64, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Acl { + #[serde(rename = "secret-bucket-name")] + pub secret_bucket_name: Vec, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SecretBucketName { + #[serde(rename = "Owner")] + pub owner: Owner, + #[serde(rename = "Grants")] + pub grants: Vec, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Owner { + #[serde(rename = "DisplayName")] + pub display_name: String, + #[serde(rename = "ID")] + pub id: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Grant { + #[serde(rename = "Grantee")] + pub grantee: Grantee, + #[serde(rename = "Permission")] + pub permission: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Grantee { + pub r#type: String, + #[serde(rename = "URI")] + pub uri: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct BucketContainsHighRiskObjectSummary { + #[serde(rename = "Description")] + pub description: String, + #[serde(rename = "Object")] + pub object: HashMap, + #[serde(rename = "Record Count")] + pub record_count: i64, + #[serde(rename = "Themes")] + pub themes: HashMap, + #[serde(rename = "Event Count")] + pub event_count: i64, + #[serde(rename = "DLP risk")] + pub dlp_risk: HashMap, + #[serde(rename = "Owner")] + pub owner: HashMap, + #[serde(rename = "Timestamps")] + pub timestamps: Timestamps, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AlertUpdated { + #[serde(rename = "notification-type")] + pub notification_type: String, + pub name: String, + pub tags: Vec, + pub url: String, + #[serde(rename = "alert-arn")] + pub alert_arn: String, + #[serde(rename = "risk-score")] + pub risk_score: i64, + #[serde(rename = "created-at")] + pub created_at: String, + pub actor: String, + pub trigger: Trigger, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Trigger { + #[serde(rename = "alert-type")] + pub alert_type: String, + pub features: HashMap, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct FeatureInfo { + pub name: String, + pub description: String, + pub narrative: String, + pub anomalous: bool, + pub multiplier: f64, + #[serde(rename = "excession_times")] + pub excession_times: Vec, + pub risk: i64, +} diff --git a/aws_lambda_events/src/cloudwatch-events/opsworks.rs b/aws_lambda_events/src/cloudwatch-events/opsworks.rs new file mode 100644 index 0000000..92b5671 --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/opsworks.rs @@ -0,0 +1,55 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct InstanceStateChange { + #[serde(rename = "initiated_by")] + pub initiated_by: String, + pub hostname: String, + #[serde(rename = "stack-id")] + pub stack_id: String, + #[serde(rename = "layer-ids")] + pub layer_ids: Vec, + #[serde(rename = "instance-id")] + pub instance_id: String, + #[serde(rename = "ec2-instance-id")] + pub ec2_instance_id: String, + pub status: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct CommandStateChange { + #[serde(rename = "command-id")] + pub command_id: String, + #[serde(rename = "instance-id")] + pub instance_id: String, + pub r#type: String, + pub status: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct DeploymentStateChange { + pub duration: i64, + #[serde(rename = "stack-id")] + pub stack_id: String, + #[serde(rename = "instance-ids")] + pub instance_ids: Vec, + #[serde(rename = "deployment-id")] + pub deployment_id: String, + pub command: String, + pub status: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Alert { + #[serde(rename = "stack-id")] + pub stack_id: String, + #[serde(rename = "instance-id")] + pub instance_id: String, + pub r#type: String, + pub message: String, +} diff --git a/aws_lambda_events/src/cloudwatch-events/signin.rs b/aws_lambda_events/src/cloudwatch-events/signin.rs new file mode 100644 index 0000000..211a466 --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/signin.rs @@ -0,0 +1,50 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; +use serde_json::Value; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SignIn { + pub event_version: String, + pub user_identity: UserIdentity, + pub event_time: String, + pub event_source: String, + pub event_name: String, + pub aws_region: String, + #[serde(rename = "sourceIPAddress")] + pub source_ipaddress: String, + pub user_agent: String, + pub request_parameters: Value, + pub response_elements: ResponseElements, + pub additional_event_data: AdditionalEventData, + #[serde(rename = "eventID")] + pub event_id: String, + pub event_type: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct UserIdentity { + pub r#type: String, + pub principal_id: String, + pub arn: String, + pub account_id: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ResponseElements { + #[serde(rename = "ConsoleLogin")] + pub console_login: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AdditionalEventData { + #[serde(rename = "LoginTo")] + pub login_to: String, + #[serde(rename = "MobileVersion")] + pub mobile_version: String, + #[serde(rename = "MFAUsed")] + pub mfaused: String, +} diff --git a/aws_lambda_events/src/cloudwatch-events/sms.rs b/aws_lambda_events/src/cloudwatch-events/sms.rs new file mode 100644 index 0000000..4deceea --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/sms.rs @@ -0,0 +1,15 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct JobStateChange { + pub state: String, + #[serde(rename = "replication-run-id")] + pub replication_run_id: String, + #[serde(rename = "replication-job-id")] + pub replication_job_id: String, + #[serde(rename = "ami-id")] + pub ami_id: Option, + pub version: String, +} diff --git a/aws_lambda_events/src/cloudwatch-events/ssm.rs b/aws_lambda_events/src/cloudwatch-events/ssm.rs new file mode 100644 index 0000000..b6cef07 --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/ssm.rs @@ -0,0 +1,238 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EC2AutomationStepStatusChange { + #[serde(rename = "ExecutionId")] + pub execution_id: String, + #[serde(rename = "Definition")] + pub definition: String, + #[serde(rename = "DefinitionVersion")] + pub definition_version: f64, + #[serde(rename = "Status")] + pub status: String, + #[serde(rename = "EndTime")] + pub end_time: String, + #[serde(rename = "StartTime")] + pub start_time: String, + #[serde(rename = "Time")] + pub time: f64, + #[serde(rename = "StepName")] + pub step_name: String, + #[serde(rename = "Action")] + pub action: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EC2AutomationExecutionStatusChange { + #[serde(rename = "ExecutionId")] + pub execution_id: String, + #[serde(rename = "Definition")] + pub definition: String, + #[serde(rename = "DefinitionVersion")] + pub definition_version: f64, + #[serde(rename = "Status")] + pub status: String, + #[serde(rename = "StartTime")] + pub start_time: String, + #[serde(rename = "EndTime")] + pub end_time: String, + #[serde(rename = "Time")] + pub time: f64, + #[serde(rename = "ExecutedBy")] + pub executed_by: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct StateChange { + pub state: String, + pub at_time: String, + pub next_transition_time: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ConfigurationComplianceStateChange { + #[serde(rename = "last-runtime")] + pub last_runtime: Option, + #[serde(rename = "compliance-status")] + pub compliance_status: String, + #[serde(rename = "resource-type")] + pub resource_type: String, + #[serde(rename = "resource-id")] + pub resource_id: String, + #[serde(rename = "compliance-type")] + pub compliance_type: String, + #[serde(rename = "patch-baseline-id")] + pub patch_baseline_id: Option, + pub serverity: Option, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct MaintenanceWindowTargetRegistration { + #[serde(rename = "window-target-id")] + pub window_target_id: String, + #[serde(rename = "window-id")] + pub window_id: String, + pub status: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct MaintenanceWindowExecutionStateChange { + #[serde(rename = "start-time")] + pub start_time: String, + #[serde(rename = "end-time")] + pub end_time: String, + #[serde(rename = "window-id")] + pub window_id: String, + #[serde(rename = "window-execution-id")] + pub window_execution_id: String, + pub status: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct MaintenanceWindowTaskExecutionStateChange { + #[serde(rename = "start-time")] + pub start_time: String, + #[serde(rename = "task-execution-id")] + pub task_execution_id: String, + #[serde(rename = "end-time")] + pub end_time: String, + #[serde(rename = "window-id")] + pub window_id: String, + #[serde(rename = "window-execution-id")] + pub window_execution_id: String, + pub status: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct MaintenanceWindowTaskTargetInvocationStateChange { + #[serde(rename = "start-time")] + pub start_time: String, + #[serde(rename = "end-time")] + pub end_time: String, + #[serde(rename = "window-id")] + pub window_id: String, + #[serde(rename = "window-execution-id")] + pub window_execution_id: String, + #[serde(rename = "task-execution-id")] + pub task_execution_id: String, + #[serde(rename = "window-target-id")] + pub window_target_id: String, + pub status: String, + #[serde(rename = "owner-information")] + pub owner_information: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct MaintenanceWindowStateChange { + #[serde(rename = "window-id")] + pub window_id: String, + pub status: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ParameterStoreStateChange { + pub operation: String, + pub name: String, + pub r#type: String, + pub description: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EC2CommandStatusChange { + #[serde(rename = "command-id")] + pub command_id: String, + #[serde(rename = "document-name")] + pub document_name: String, + #[serde(rename = "expire-after")] + pub expire_after: String, + pub parameters: HashMap, + #[serde(rename = "requested-date-time")] + pub requested_date_time: String, + pub status: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EC2CommandInvocationStatusChange { + #[serde(rename = "command-id")] + pub command_id: String, + #[serde(rename = "document-name")] + pub document_name: String, + #[serde(rename = "instance-id")] + pub instance_id: String, + #[serde(rename = "requested-date-time")] + pub requested_date_time: String, + pub status: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EC2StateManagerAssociationStateChange { + #[serde(rename = "association-id")] + pub association_id: String, + #[serde(rename = "document-name")] + pub document_name: String, + #[serde(rename = "association-version")] + pub association_version: String, + #[serde(rename = "document-version")] + pub document_version: String, + pub targets: String, + #[serde(rename = "creation-date")] + pub creation_date: String, + #[serde(rename = "last-successful-execution-date")] + pub last_successful_execution_date: String, + #[serde(rename = "last-execution-date")] + pub last_execution_date: String, + #[serde(rename = "last-updated-date")] + pub last_updated_date: String, + pub status: String, + #[serde(rename = "association-status-aggregated-count")] + pub association_status_aggregated_count: String, + #[serde(rename = "schedule-expression")] + pub schedule_expression: String, + #[serde(rename = "association-cwe-version")] + pub association_cwe_version: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EC2StateManagerInstanceAssociationStateChange { + #[serde(rename = "association-id")] + pub association_id: String, + #[serde(rename = "instance-id")] + pub instance_id: String, + #[serde(rename = "document-name")] + pub document_name: String, + #[serde(rename = "document-version")] + pub document_version: String, + pub targets: String, + #[serde(rename = "creation-date")] + pub creation_date: String, + #[serde(rename = "last-successful-execution-date")] + pub last_successful_execution_date: String, + #[serde(rename = "last-execution-date")] + pub last_execution_date: String, + pub status: String, + #[serde(rename = "detailed-status")] + pub detailed_status: String, + #[serde(rename = "error-code")] + pub error_code: String, + #[serde(rename = "execution-summary")] + pub execution_summary: String, + #[serde(rename = "output-url")] + pub output_url: String, + #[serde(rename = "instance-association-cwe-version")] + pub instance_association_cwe_version: String, +} diff --git a/aws_lambda_events/src/cloudwatch-events/tag.rs b/aws_lambda_events/src/cloudwatch-events/tag.rs new file mode 100644 index 0000000..72a7f5a --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/tag.rs @@ -0,0 +1,14 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TagChangeOnResource { + #[serde(rename = "changed-tag-keys")] + pub changed_tag_keys: Vec, + pub service: String, + #[serde(rename = "resource-type")] + pub resource_type: String, + pub version: i64, + pub tags: HashMap, +} diff --git a/aws_lambda_events/src/cloudwatch-events/trustedadvisor.rs b/aws_lambda_events/src/cloudwatch-events/trustedadvisor.rs new file mode 100644 index 0000000..7b17716 --- /dev/null +++ b/aws_lambda_events/src/cloudwatch-events/trustedadvisor.rs @@ -0,0 +1,16 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; +use serde_json::Value; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct CheckItemRefreshNotification { + #[serde(rename = "check-name")] + pub check_name: String, + #[serde(rename = "check-item-detail")] + pub check_item_detail: HashMap, + pub status: String, + #[serde(rename = "resource_id")] + pub resource_id: String, + pub uuid: String, +} From 524dce29d3f5b64a5da7bfe315c3d3dbebe912a5 Mon Sep 17 00:00:00 2001 From: Martin Madsen Date: Tue, 4 Jan 2022 23:29:53 +0100 Subject: [PATCH 2/7] Rename directory for CloudWatch events --- .../src/{cloudwatch-events => cloudwatch_events}/cloudtrail.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/codedeploy.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/codepipeline.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/ec2.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/emr.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/gamelift.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/glue.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/health.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/kms.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/macie.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/opsworks.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/signin.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/sms.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/ssm.rs | 0 .../src/{cloudwatch-events => cloudwatch_events}/tag.rs | 0 .../{cloudwatch-events => cloudwatch_events}/trustedadvisor.rs | 0 16 files changed, 0 insertions(+), 0 deletions(-) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/cloudtrail.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/codedeploy.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/codepipeline.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/ec2.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/emr.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/gamelift.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/glue.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/health.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/kms.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/macie.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/opsworks.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/signin.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/sms.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/ssm.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/tag.rs (100%) rename aws_lambda_events/src/{cloudwatch-events => cloudwatch_events}/trustedadvisor.rs (100%) diff --git a/aws_lambda_events/src/cloudwatch-events/cloudtrail.rs b/aws_lambda_events/src/cloudwatch_events/cloudtrail.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/cloudtrail.rs rename to aws_lambda_events/src/cloudwatch_events/cloudtrail.rs diff --git a/aws_lambda_events/src/cloudwatch-events/codedeploy.rs b/aws_lambda_events/src/cloudwatch_events/codedeploy.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/codedeploy.rs rename to aws_lambda_events/src/cloudwatch_events/codedeploy.rs diff --git a/aws_lambda_events/src/cloudwatch-events/codepipeline.rs b/aws_lambda_events/src/cloudwatch_events/codepipeline.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/codepipeline.rs rename to aws_lambda_events/src/cloudwatch_events/codepipeline.rs diff --git a/aws_lambda_events/src/cloudwatch-events/ec2.rs b/aws_lambda_events/src/cloudwatch_events/ec2.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/ec2.rs rename to aws_lambda_events/src/cloudwatch_events/ec2.rs diff --git a/aws_lambda_events/src/cloudwatch-events/emr.rs b/aws_lambda_events/src/cloudwatch_events/emr.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/emr.rs rename to aws_lambda_events/src/cloudwatch_events/emr.rs diff --git a/aws_lambda_events/src/cloudwatch-events/gamelift.rs b/aws_lambda_events/src/cloudwatch_events/gamelift.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/gamelift.rs rename to aws_lambda_events/src/cloudwatch_events/gamelift.rs diff --git a/aws_lambda_events/src/cloudwatch-events/glue.rs b/aws_lambda_events/src/cloudwatch_events/glue.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/glue.rs rename to aws_lambda_events/src/cloudwatch_events/glue.rs diff --git a/aws_lambda_events/src/cloudwatch-events/health.rs b/aws_lambda_events/src/cloudwatch_events/health.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/health.rs rename to aws_lambda_events/src/cloudwatch_events/health.rs diff --git a/aws_lambda_events/src/cloudwatch-events/kms.rs b/aws_lambda_events/src/cloudwatch_events/kms.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/kms.rs rename to aws_lambda_events/src/cloudwatch_events/kms.rs diff --git a/aws_lambda_events/src/cloudwatch-events/macie.rs b/aws_lambda_events/src/cloudwatch_events/macie.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/macie.rs rename to aws_lambda_events/src/cloudwatch_events/macie.rs diff --git a/aws_lambda_events/src/cloudwatch-events/opsworks.rs b/aws_lambda_events/src/cloudwatch_events/opsworks.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/opsworks.rs rename to aws_lambda_events/src/cloudwatch_events/opsworks.rs diff --git a/aws_lambda_events/src/cloudwatch-events/signin.rs b/aws_lambda_events/src/cloudwatch_events/signin.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/signin.rs rename to aws_lambda_events/src/cloudwatch_events/signin.rs diff --git a/aws_lambda_events/src/cloudwatch-events/sms.rs b/aws_lambda_events/src/cloudwatch_events/sms.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/sms.rs rename to aws_lambda_events/src/cloudwatch_events/sms.rs diff --git a/aws_lambda_events/src/cloudwatch-events/ssm.rs b/aws_lambda_events/src/cloudwatch_events/ssm.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/ssm.rs rename to aws_lambda_events/src/cloudwatch_events/ssm.rs diff --git a/aws_lambda_events/src/cloudwatch-events/tag.rs b/aws_lambda_events/src/cloudwatch_events/tag.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/tag.rs rename to aws_lambda_events/src/cloudwatch_events/tag.rs diff --git a/aws_lambda_events/src/cloudwatch-events/trustedadvisor.rs b/aws_lambda_events/src/cloudwatch_events/trustedadvisor.rs similarity index 100% rename from aws_lambda_events/src/cloudwatch-events/trustedadvisor.rs rename to aws_lambda_events/src/cloudwatch_events/trustedadvisor.rs From 6cb82a09a07afbedfee3ec1ed706b1f63b859f09 Mon Sep 17 00:00:00 2001 From: Martin Madsen Date: Tue, 4 Jan 2022 23:39:58 +0100 Subject: [PATCH 3/7] Make CloudWatch events public --- aws_lambda_events/src/cloudwatch_events/mod.rs | 16 ++++++++++++++++ aws_lambda_events/src/lib.rs | 3 +++ 2 files changed, 19 insertions(+) create mode 100644 aws_lambda_events/src/cloudwatch_events/mod.rs diff --git a/aws_lambda_events/src/cloudwatch_events/mod.rs b/aws_lambda_events/src/cloudwatch_events/mod.rs new file mode 100644 index 0000000..27c07bd --- /dev/null +++ b/aws_lambda_events/src/cloudwatch_events/mod.rs @@ -0,0 +1,16 @@ +pub mod cloudtrail; +pub mod codedeploy; +pub mod codepipeline; +pub mod ec2; +pub mod emr; +pub mod gamelift; +pub mod glue; +pub mod health; +pub mod kms; +pub mod macie; +pub mod opsworks; +pub mod signin; +pub mod sms; +pub mod ssm; +pub mod tag; +pub mod trustedadvisor; diff --git a/aws_lambda_events/src/lib.rs b/aws_lambda_events/src/lib.rs index a7b3c01..66f6f07 100644 --- a/aws_lambda_events/src/lib.rs +++ b/aws_lambda_events/src/lib.rs @@ -20,4 +20,7 @@ mod custom_serde; pub mod encodings; /// AWS Lambda event definitions. pub mod event; +/// CloudWatch Events payload +pub mod cloudwatch_events; + mod generated; From c00042b8006ab4f0b1f57cee3e76862e1506dc36 Mon Sep 17 00:00:00 2001 From: Martin Madsen Date: Tue, 4 Jan 2022 23:46:53 +0100 Subject: [PATCH 4/7] Resolve naming conflicts and import HashMap --- aws_lambda_events/src/cloudwatch_events/codedeploy.rs | 2 +- aws_lambda_events/src/cloudwatch_events/health.rs | 2 ++ aws_lambda_events/src/cloudwatch_events/macie.rs | 10 ++++++---- aws_lambda_events/src/cloudwatch_events/ssm.rs | 2 ++ aws_lambda_events/src/cloudwatch_events/tag.rs | 2 ++ .../src/cloudwatch_events/trustedadvisor.rs | 2 ++ 6 files changed, 15 insertions(+), 5 deletions(-) diff --git a/aws_lambda_events/src/cloudwatch_events/codedeploy.rs b/aws_lambda_events/src/cloudwatch_events/codedeploy.rs index b7bbb4b..6fc5938 100644 --- a/aws_lambda_events/src/cloudwatch_events/codedeploy.rs +++ b/aws_lambda_events/src/cloudwatch_events/codedeploy.rs @@ -14,7 +14,7 @@ pub struct StateChangeNotification { #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] -pub struct InstanceStateChangeNotification { +pub struct DeploymentStateChangeNotification { pub instance_id: String, pub region: String, pub state: String, diff --git a/aws_lambda_events/src/cloudwatch_events/health.rs b/aws_lambda_events/src/cloudwatch_events/health.rs index 235da37..981fb0e 100644 --- a/aws_lambda_events/src/cloudwatch_events/health.rs +++ b/aws_lambda_events/src/cloudwatch_events/health.rs @@ -1,3 +1,5 @@ +use std::collections::HashMap; + use serde_derive::Deserialize; use serde_derive::Serialize; diff --git a/aws_lambda_events/src/cloudwatch_events/macie.rs b/aws_lambda_events/src/cloudwatch_events/macie.rs index 233b2ed..658a090 100644 --- a/aws_lambda_events/src/cloudwatch_events/macie.rs +++ b/aws_lambda_events/src/cloudwatch_events/macie.rs @@ -1,3 +1,5 @@ +use std::collections::HashMap; + use serde_derive::Deserialize; use serde_derive::Serialize; @@ -90,7 +92,7 @@ pub struct Location { pub struct ActionInfo { pub count: i64, #[serde(rename = "ISP")] - pub isp: Isp, + pub isp: HashMap, pub error_code: Option>, } @@ -178,7 +180,7 @@ pub struct BucketContainsHighRiskObjectSummary { #[serde(rename = "Owner")] pub owner: HashMap, #[serde(rename = "Timestamps")] - pub timestamps: Timestamps, + pub timestamps: HashMap, } #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] @@ -196,12 +198,12 @@ pub struct AlertUpdated { #[serde(rename = "created-at")] pub created_at: String, pub actor: String, - pub trigger: Trigger, + pub trigger: UpdatedTrigger, } #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] -pub struct Trigger { +pub struct UpdatedTrigger { #[serde(rename = "alert-type")] pub alert_type: String, pub features: HashMap, diff --git a/aws_lambda_events/src/cloudwatch_events/ssm.rs b/aws_lambda_events/src/cloudwatch_events/ssm.rs index b6cef07..a4995cc 100644 --- a/aws_lambda_events/src/cloudwatch_events/ssm.rs +++ b/aws_lambda_events/src/cloudwatch_events/ssm.rs @@ -1,3 +1,5 @@ +use std::collections::HashMap; + use serde_derive::Deserialize; use serde_derive::Serialize; diff --git a/aws_lambda_events/src/cloudwatch_events/tag.rs b/aws_lambda_events/src/cloudwatch_events/tag.rs index 72a7f5a..e839ff6 100644 --- a/aws_lambda_events/src/cloudwatch_events/tag.rs +++ b/aws_lambda_events/src/cloudwatch_events/tag.rs @@ -1,3 +1,5 @@ +use std::collections::HashMap; + use serde_derive::Deserialize; use serde_derive::Serialize; diff --git a/aws_lambda_events/src/cloudwatch_events/trustedadvisor.rs b/aws_lambda_events/src/cloudwatch_events/trustedadvisor.rs index 7b17716..19229e2 100644 --- a/aws_lambda_events/src/cloudwatch_events/trustedadvisor.rs +++ b/aws_lambda_events/src/cloudwatch_events/trustedadvisor.rs @@ -1,3 +1,5 @@ +use std::collections::HashMap; + use serde_derive::Deserialize; use serde_derive::Serialize; use serde_json::Value; From 20d7db02b0f9e41b04592f024d1a96cb711af1c1 Mon Sep 17 00:00:00 2001 From: Martin Madsen Date: Tue, 4 Jan 2022 23:48:34 +0100 Subject: [PATCH 5/7] Correct signature of aws.Event.affected_entities --- aws_lambda_events/src/cloudwatch_events/health.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws_lambda_events/src/cloudwatch_events/health.rs b/aws_lambda_events/src/cloudwatch_events/health.rs index 981fb0e..642f781 100644 --- a/aws_lambda_events/src/cloudwatch_events/health.rs +++ b/aws_lambda_events/src/cloudwatch_events/health.rs @@ -13,7 +13,7 @@ pub struct Event { pub start_time: String, pub end_time: String, pub event_description: Vec, - pub affected_entities: Option>, + pub affected_entities: Option>, } #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] From b76b341222129f1367b01c3f6c025c53e906eb5c Mon Sep 17 00:00:00 2001 From: Martin Madsen Date: Mon, 10 Jan 2022 20:06:00 +0100 Subject: [PATCH 6/7] Allow mapping request_parameters and response_elements --- aws_lambda_events/src/cloudwatch_events/cloudtrail.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/aws_lambda_events/src/cloudwatch_events/cloudtrail.rs b/aws_lambda_events/src/cloudwatch_events/cloudtrail.rs index 4742176..353a5ca 100644 --- a/aws_lambda_events/src/cloudwatch_events/cloudtrail.rs +++ b/aws_lambda_events/src/cloudwatch_events/cloudtrail.rs @@ -4,7 +4,7 @@ use serde_json::Value; #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] -pub struct AWSAPICall { +pub struct AWSAPICall { pub event_version: String, pub user_identity: UserIdentity, pub event_time: String, @@ -14,8 +14,8 @@ pub struct AWSAPICall { #[serde(rename = "sourceIPAddress")] pub source_ipaddress: String, pub user_agent: String, - pub request_parameters: T, - pub response_elements: Value, + pub request_parameters: I, + pub response_elements: O, #[serde(rename = "requestID")] pub request_id: String, #[serde(rename = "eventID")] From 97043fed16279b3cfacc00e100a4eb3ea382dee0 Mon Sep 17 00:00:00 2001 From: Martin Madsen Date: Thu, 10 Feb 2022 18:20:26 +0100 Subject: [PATCH 7/7] Run cargofmt and clippy --- aws_lambda_events/src/cloudwatch_events/ec2.rs | 1 - aws_lambda_events/src/cloudwatch_events/gamelift.rs | 4 +--- aws_lambda_events/src/cloudwatch_events/health.rs | 1 - aws_lambda_events/src/lib.rs | 4 ++-- 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/aws_lambda_events/src/cloudwatch_events/ec2.rs b/aws_lambda_events/src/cloudwatch_events/ec2.rs index 6ffdaec..d901355 100644 --- a/aws_lambda_events/src/cloudwatch_events/ec2.rs +++ b/aws_lambda_events/src/cloudwatch_events/ec2.rs @@ -1,7 +1,6 @@ use serde_derive::Deserialize; use serde_derive::Serialize; - #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct InstanceStateChange { diff --git a/aws_lambda_events/src/cloudwatch_events/gamelift.rs b/aws_lambda_events/src/cloudwatch_events/gamelift.rs index 4521aef..4b53706 100644 --- a/aws_lambda_events/src/cloudwatch_events/gamelift.rs +++ b/aws_lambda_events/src/cloudwatch_events/gamelift.rs @@ -33,7 +33,6 @@ pub struct GameSessionInfo { pub players: Vec, } - #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct PotentialMatchCreated { @@ -54,7 +53,6 @@ pub struct RuleEvaluationMetric { pub failed_count: i64, } - #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct AcceptMatch { @@ -66,7 +64,7 @@ pub struct AcceptMatch { #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] -pub struct AcceptMatchCompleted { +pub struct AcceptMatchCompleted { pub tickets: Vec, pub acceptance: String, pub r#type: String, diff --git a/aws_lambda_events/src/cloudwatch_events/health.rs b/aws_lambda_events/src/cloudwatch_events/health.rs index 642f781..6192ee2 100644 --- a/aws_lambda_events/src/cloudwatch_events/health.rs +++ b/aws_lambda_events/src/cloudwatch_events/health.rs @@ -23,7 +23,6 @@ pub struct EventDescription { pub latest_description: String, } - #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Entity { diff --git a/aws_lambda_events/src/lib.rs b/aws_lambda_events/src/lib.rs index 66f6f07..ae188d4 100644 --- a/aws_lambda_events/src/lib.rs +++ b/aws_lambda_events/src/lib.rs @@ -15,12 +15,12 @@ extern crate http_serde; #[cfg(not(test))] extern crate serde_json; +/// CloudWatch Events payload +pub mod cloudwatch_events; mod custom_serde; /// Encodings used in AWS Lambda json event values. pub mod encodings; /// AWS Lambda event definitions. pub mod event; -/// CloudWatch Events payload -pub mod cloudwatch_events; mod generated;