use std::collections::HashMap;
use serde::{Deserialize, Serialize};
#[non_exhaustive]
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct Context {
pub request_id: String,
pub deadline: u64,
pub invoked_function_arn: String,
pub xray_trace_id: String,
pub client_context: Option<ClientContext>,
pub identity: Option<CognitoIdentity>,
pub env_config: Config,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct ClientContext {
pub client: ClientApplication,
#[serde(default)]
pub custom: HashMap<String, String>,
#[serde(default, alias = "env")]
pub environment: HashMap<String, String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct ClientApplication {
#[serde(alias = "installationId")]
pub installation_id: String,
#[serde(alias = "appTitle")]
pub app_title: String,
#[serde(alias = "appVersionName")]
pub app_version_name: String,
#[serde(alias = "appVersionCode")]
pub app_version_code: String,
#[serde(alias = "appPackageName")]
pub app_package_name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct CognitoIdentity {
#[serde(alias = "identityId")]
pub identity_id: String,
#[serde(alias = "identityPoolId")]
pub identity_pool_id: String,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
pub struct Config {
pub endpoint: String,
pub function_name: String,
pub memory: i32,
pub version: String,
pub log_stream: String,
pub log_group: String,
}