use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DescribeTrailsRequest {
#[serde(rename = "trailNameList")]
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub trail_name_list: Vec<String>,
#[serde(rename = "includeShadowTrails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub include_shadow_trails: Option<bool>,
}
impl DescribeTrailsRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
trail_name_list: vec![],
include_shadow_trails: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DescribeTrailsResponse {
#[serde(rename = "trailList")]
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub trail_list: Vec<Trail>,
}
impl DescribeTrailsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self { trail_list: vec![] }
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Trail {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub s3_bucket_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub s3_key_prefix: Option<String>,
#[serde(rename = "SnsTopicARN")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sns_topic_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_global_service_events: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_multi_region_trail: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub home_region: Option<String>,
#[serde(rename = "TrailARN")]
#[serde(skip_serializing_if = "Option::is_none")]
pub trail_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub log_file_validation_enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_logs_log_group_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_logs_role_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kms_key_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub has_custom_event_selectors: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub has_insight_selectors: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_organization_trail: Option<bool>,
}
impl Trail {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-name".into()),
s3_bucket_name: Some("test-s3_bucket_name".into()),
s3_key_prefix: Some("test-s3_key_prefix".into()),
sns_topic_arn: Some("test-sns_topic_arn".into()),
include_global_service_events: Some(false),
is_multi_region_trail: Some(false),
home_region: Some("test-home_region".into()),
trail_arn: Some("test-trail_arn".into()),
log_file_validation_enabled: Some(false),
cloud_watch_logs_log_group_arn: Some("test-cloud_watch_logs_log_group_arn".into()),
cloud_watch_logs_role_arn: Some("test-cloud_watch_logs_role_arn".into()),
kms_key_id: Some("test-kms_key_id".into()),
has_custom_event_selectors: Some(false),
has_insight_selectors: Some(false),
is_organization_trail: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetTrailStatusRequest {
pub name: String,
}
impl GetTrailStatusRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-name".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetTrailStatusResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_logging: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub latest_delivery_error: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub latest_notification_error: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub latest_delivery_time: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub latest_notification_time: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub start_logging_time: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub stop_logging_time: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub latest_cloud_watch_logs_delivery_error: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub latest_cloud_watch_logs_delivery_time: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub latest_digest_delivery_time: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub latest_digest_delivery_error: Option<String>,
}
impl GetTrailStatusResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
is_logging: Some(false),
latest_delivery_error: Some("test-latest_delivery_error".into()),
latest_notification_error: Some("test-latest_notification_error".into()),
latest_cloud_watch_logs_delivery_error: Some(
"test-latest_cloud_watch_logs_delivery_error".into(),
),
latest_digest_delivery_error: Some("test-latest_digest_delivery_error".into()),
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetEventSelectorsRequest {
pub trail_name: String,
}
impl GetEventSelectorsRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
trail_name: "test-trail_name".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetEventSelectorsResponse {
#[serde(rename = "TrailARN")]
#[serde(skip_serializing_if = "Option::is_none")]
pub trail_arn: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub event_selectors: Vec<EventSelector>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub advanced_event_selectors: Vec<AdvancedEventSelector>,
}
impl GetEventSelectorsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
trail_arn: Some("test-trail_arn".into()),
event_selectors: vec![],
advanced_event_selectors: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct EventSelector {
#[serde(skip_serializing_if = "Option::is_none")]
pub read_write_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_management_events: Option<bool>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub data_resources: Vec<DataResource>,
}
impl EventSelector {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
read_write_type: Some("test-read_write_type".into()),
include_management_events: Some(false),
data_resources: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DataResource {
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub values: Vec<String>,
}
impl DataResource {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
r#type: Some("test-type".into()),
values: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AdvancedEventSelector {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default)]
pub field_selectors: Vec<AdvancedFieldSelector>,
}
impl AdvancedEventSelector {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-name".into()),
field_selectors: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AdvancedFieldSelector {
pub field: String,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub equals: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub starts_with: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub ends_with: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub not_equals: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub not_starts_with: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub not_ends_with: Vec<String>,
}
impl AdvancedFieldSelector {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
field: "test-field".into(),
equals: vec![],
starts_with: vec![],
ends_with: vec![],
not_equals: vec![],
not_starts_with: vec![],
not_ends_with: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DeleteTrailRequest {
pub name: String,
}
impl DeleteTrailRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-name".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DeleteTrailResponse {}
impl DeleteTrailResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct UpdateTrailRequest {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub s3_bucket_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub s3_key_prefix: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sns_topic_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_global_service_events: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_multi_region_trail: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_log_file_validation: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_logs_log_group_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_logs_role_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kms_key_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_organization_trail: Option<bool>,
}
impl UpdateTrailRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-name".into(),
s3_bucket_name: Some("test-s3_bucket_name".into()),
s3_key_prefix: Some("test-s3_key_prefix".into()),
sns_topic_name: Some("test-sns_topic_name".into()),
include_global_service_events: Some(false),
is_multi_region_trail: Some(false),
enable_log_file_validation: Some(false),
cloud_watch_logs_log_group_arn: Some("test-cloud_watch_logs_log_group_arn".into()),
cloud_watch_logs_role_arn: Some("test-cloud_watch_logs_role_arn".into()),
kms_key_id: Some("test-kms_key_id".into()),
is_organization_trail: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct UpdateTrailResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub s3_bucket_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub s3_key_prefix: Option<String>,
#[serde(rename = "SnsTopicARN")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sns_topic_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_global_service_events: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_multi_region_trail: Option<bool>,
#[serde(rename = "TrailARN")]
#[serde(skip_serializing_if = "Option::is_none")]
pub trail_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub log_file_validation_enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_logs_log_group_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_logs_role_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kms_key_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_organization_trail: Option<bool>,
}
impl UpdateTrailResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-name".into()),
s3_bucket_name: Some("test-s3_bucket_name".into()),
s3_key_prefix: Some("test-s3_key_prefix".into()),
sns_topic_arn: Some("test-sns_topic_arn".into()),
include_global_service_events: Some(false),
is_multi_region_trail: Some(false),
trail_arn: Some("test-trail_arn".into()),
log_file_validation_enabled: Some(false),
cloud_watch_logs_log_group_arn: Some("test-cloud_watch_logs_log_group_arn".into()),
cloud_watch_logs_role_arn: Some("test-cloud_watch_logs_role_arn".into()),
kms_key_id: Some("test-kms_key_id".into()),
is_organization_trail: Some(false),
}
}
}