use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Tag {
pub key: String,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Target {
pub id: String,
pub arn: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub role_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub input: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub input_path: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub input_transformer: Option<InputTransformer>,
#[serde(skip_serializing_if = "Option::is_none")]
pub run_command_parameters: Option<Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ecs_parameters: Option<Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub batch_parameters: Option<Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sqs_parameters: Option<Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub http_parameters: Option<Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub redshift_data_parameters: Option<Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sage_maker_pipeline_parameters: Option<Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dead_letter_config: Option<DeadLetterConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub retry_policy: Option<RetryPolicy>,
#[serde(skip_serializing_if = "Option::is_none")]
pub app_sync_parameters: Option<Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct InputTransformer {
#[serde(default, skip_serializing_if = "HashMap::is_empty")]
pub input_paths_map: HashMap<String, String>,
pub input_template: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DeadLetterConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct RetryPolicy {
#[serde(skip_serializing_if = "Option::is_none")]
pub maximum_retry_attempts: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub maximum_event_age_in_seconds: Option<i32>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Rule {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub event_pattern: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_expression: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub role_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub managed_by: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub event_bus_name: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct EventBus {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub policy: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct PutEventsResultEntry {
#[serde(skip_serializing_if = "Option::is_none")]
pub event_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error_message: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct PutTargetsResultEntry {
#[serde(skip_serializing_if = "Option::is_none")]
pub target_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error_message: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct RemoveTargetsResultEntry {
#[serde(skip_serializing_if = "Option::is_none")]
pub target_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error_message: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Condition {
#[serde(rename = "Type")]
pub condition_type: String,
pub key: String,
pub value: String,
}