use super::encodings::Body;
use crate::custom_serde::*;
use http::{HeaderMap, Method};
use query_map::QueryMap;
use serde::de::DeserializeOwned;
use serde::ser::Serialize;
use serde_json::Value;
use std::collections::HashMap;
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayProxyRequest<T1 = Value>
where
T1: DeserializeOwned,
T1: Serialize,
{
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub resource: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub path: Option<String>,
#[serde(with = "http_method")]
pub http_method: Method,
#[serde(deserialize_with = "deserialize_headers", default)]
#[serde(serialize_with = "serialize_headers")]
pub headers: HeaderMap,
#[serde(deserialize_with = "deserialize_headers", default)]
#[serde(serialize_with = "serialize_multi_value_headers")]
pub multi_value_headers: HeaderMap,
#[serde(
default,
deserialize_with = "query_map::serde::standard::deserialize_empty"
)]
pub query_string_parameters: QueryMap,
#[serde(
default,
deserialize_with = "query_map::serde::standard::deserialize_empty"
)]
pub multi_value_query_string_parameters: QueryMap,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub path_parameters: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub stage_variables: HashMap<String, String>,
#[serde(default)]
#[serde(bound = "")]
pub request_context: ApiGatewayProxyRequestContext<T1>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub body: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_base64_encoded: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayProxyResponse {
pub status_code: i64,
#[serde(deserialize_with = "deserialize_headers", default)]
#[serde(serialize_with = "serialize_headers")]
pub headers: HeaderMap,
#[serde(deserialize_with = "deserialize_headers", default)]
#[serde(serialize_with = "serialize_multi_value_headers")]
pub multi_value_headers: HeaderMap,
#[serde(skip_serializing_if = "Option::is_none")]
pub body: Option<Body>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_base64_encoded: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayProxyRequestContext<T1 = Value>
where
T1: DeserializeOwned,
T1: Serialize,
{
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub account_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub resource_id: Option<String>,
pub operation_name: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub stage: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub domain_name: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub domain_prefix: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub request_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub protocol: Option<String>,
#[serde(default)]
pub identity: ApiGatewayRequestIdentity,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub resource_path: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
#[serde(bound = "")]
pub authorizer: HashMap<String, T1>,
#[serde(with = "http_method")]
pub http_method: Method,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub request_time: Option<String>,
pub request_time_epoch: i64,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
#[serde(rename = "apiId")]
pub apiid: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayV2httpRequest {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub version: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub route_key: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub raw_path: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub raw_query_string: Option<String>,
pub cookies: Option<Vec<String>>,
#[serde(deserialize_with = "deserialize_headers", default)]
#[serde(serialize_with = "serialize_headers")]
pub headers: HeaderMap,
#[serde(
default,
deserialize_with = "query_map::serde::aws_api_gateway_v2::deserialize_empty"
)]
pub query_string_parameters: QueryMap,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub path_parameters: HashMap<String, String>,
pub request_context: ApiGatewayV2httpRequestContext,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub stage_variables: HashMap<String, String>,
pub body: Option<String>,
pub is_base64_encoded: bool,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayV2httpRequestContext<T1 = Value>
where
T1: DeserializeOwned,
T1: Serialize,
{
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub route_key: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub account_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub stage: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub request_id: Option<String>,
#[serde(bound = "", default)]
pub authorizer: Option<ApiGatewayV2httpRequestContextAuthorizerDescription<T1>>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
#[serde(rename = "apiId")]
pub apiid: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub domain_name: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub domain_prefix: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub time: Option<String>,
pub time_epoch: i64,
pub http: ApiGatewayV2httpRequestContextHttpDescription,
pub authentication: Option<ApiGatewayV2httpRequestContextAuthentication>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayV2httpRequestContextAuthorizerDescription<T1 = Value>
where
T1: DeserializeOwned,
T1: Serialize,
{
pub jwt: Option<ApiGatewayV2httpRequestContextAuthorizerJwtDescription>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
#[serde(bound = "")]
pub lambda: HashMap<String, T1>,
pub iam: Option<ApiGatewayV2httpRequestContextAuthorizerIamDescription>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayV2httpRequestContextAuthorizerJwtDescription {
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub claims: HashMap<String, String>,
pub scopes: Option<Vec<String>>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayV2httpRequestContextAuthorizerIamDescription {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub access_key: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub account_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub caller_id: Option<String>,
pub cognito_identity: Option<ApiGatewayV2httpRequestContextAuthorizerCognitoIdentity>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub principal_org_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub user_arn: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub user_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayV2httpRequestContextAuthorizerCognitoIdentity {
pub amr: Vec<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub identity_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub identity_pool_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayV2httpRequestContextHttpDescription {
#[serde(with = "http_method")]
pub method: Method,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub path: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub protocol: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub source_ip: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub user_agent: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayV2httpResponse {
pub status_code: i64,
#[serde(deserialize_with = "deserialize_headers", default)]
#[serde(serialize_with = "serialize_headers")]
pub headers: HeaderMap,
#[serde(deserialize_with = "deserialize_headers", default)]
#[serde(serialize_with = "serialize_multi_value_headers")]
pub multi_value_headers: HeaderMap,
#[serde(skip_serializing_if = "Option::is_none")]
pub body: Option<Body>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_base64_encoded: Option<bool>,
pub cookies: Vec<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayRequestIdentity {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub cognito_identity_pool_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub account_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub cognito_identity_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub caller: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub api_key: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub api_key_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub access_key: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub source_ip: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub cognito_authentication_type: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub cognito_authentication_provider: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub user_arn: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub user_agent: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub user: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayWebsocketProxyRequest<T1 = Value, T2 = Value>
where
T1: DeserializeOwned,
T1: Serialize,
T2: DeserializeOwned,
T2: Serialize,
{
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub resource: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub path: Option<String>,
#[serde(deserialize_with = "http_method::deserialize_optional")]
#[serde(serialize_with = "http_method::serialize_optional")]
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub http_method: Option<Method>,
#[serde(deserialize_with = "deserialize_headers", default)]
#[serde(serialize_with = "serialize_headers")]
pub headers: HeaderMap,
#[serde(deserialize_with = "deserialize_headers", default)]
#[serde(serialize_with = "serialize_multi_value_headers")]
pub multi_value_headers: HeaderMap,
#[serde(
default,
deserialize_with = "query_map::serde::standard::deserialize_empty"
)]
pub query_string_parameters: QueryMap,
#[serde(
default,
deserialize_with = "query_map::serde::standard::deserialize_empty"
)]
pub multi_value_query_string_parameters: QueryMap,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub path_parameters: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub stage_variables: HashMap<String, String>,
#[serde(bound = "", default)]
pub request_context: ApiGatewayWebsocketProxyRequestContext<T1, T2>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub body: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_base64_encoded: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayWebsocketProxyRequestContext<T1 = Value, T2 = Value>
where
T1: DeserializeOwned,
T1: Serialize,
T2: DeserializeOwned,
T2: Serialize,
{
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub account_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub resource_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub stage: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub request_id: Option<String>,
#[serde(default)]
pub identity: ApiGatewayRequestIdentity,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub resource_path: Option<String>,
#[serde(bound = "")]
pub authorizer: Option<T1>,
#[serde(deserialize_with = "http_method::deserialize_optional")]
#[serde(serialize_with = "http_method::serialize_optional")]
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub http_method: Option<Method>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
#[serde(rename = "apiId")]
pub apiid: Option<String>,
pub connected_at: i64,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub connection_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub domain_name: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub error: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub event_type: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub extended_request_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub integration_latency: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub message_direction: Option<String>,
#[serde(bound = "")]
pub message_id: Option<T2>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub request_time: Option<String>,
pub request_time_epoch: i64,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub route_key: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub status: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayCustomAuthorizerRequestTypeRequestIdentity {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub api_key: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub source_ip: Option<String>,
#[serde(default)]
pub client_cert: Option<ApiGatewayCustomAuthorizerRequestTypeRequestIdentityClientCert>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayCustomAuthorizerRequestTypeRequestIdentityClientCert {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub client_cert_pem: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
#[serde(rename = "issuerDN")]
pub issuer_dn: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub serial_number: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
#[serde(rename = "subjectDN")]
pub subject_dn: Option<String>,
pub validity: ApiGatewayCustomAuthorizerRequestTypeRequestIdentityClientCertValidity,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayCustomAuthorizerRequestTypeRequestIdentityClientCertValidity {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub not_after: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub not_before: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayV2httpRequestContextAuthentication {
#[serde(default)]
pub client_cert: Option<ApiGatewayV2httpRequestContextAuthenticationClientCert>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayV2httpRequestContextAuthenticationClientCert {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub client_cert_pem: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
#[serde(rename = "issuerDN")]
pub issuer_dn: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub serial_number: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
#[serde(rename = "subjectDN")]
pub subject_dn: Option<String>,
pub validity: ApiGatewayV2httpRequestContextAuthenticationClientCertValidity,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayV2httpRequestContextAuthenticationClientCertValidity {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub not_after: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub not_before: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayCustomAuthorizerContext {
pub principal_id: Option<String>,
pub string_key: Option<String>,
pub num_key: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bool_key: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayCustomAuthorizerRequestTypeRequestContext {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub path: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub account_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub resource_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub stage: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub request_id: Option<String>,
#[serde(default)]
pub identity: Option<ApiGatewayCustomAuthorizerRequestTypeRequestIdentity>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub resource_path: Option<String>,
#[serde(with = "http_method")]
pub http_method: Method,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
#[serde(rename = "apiId")]
pub apiid: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayCustomAuthorizerRequest {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub type_: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub authorization_token: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub method_arn: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayCustomAuthorizerRequestTypeRequest {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub type_: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub method_arn: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub resource: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub path: Option<String>,
#[serde(with = "http_method")]
pub http_method: Method,
#[serde(deserialize_with = "deserialize_headers", default)]
#[serde(serialize_with = "serialize_headers")]
pub headers: HeaderMap,
#[serde(deserialize_with = "deserialize_headers", default)]
#[serde(serialize_with = "serialize_multi_value_headers")]
pub multi_value_headers: HeaderMap,
#[serde(
default,
deserialize_with = "query_map::serde::standard::deserialize_empty"
)]
pub query_string_parameters: QueryMap,
#[serde(
default,
deserialize_with = "query_map::serde::standard::deserialize_empty"
)]
pub multi_value_query_string_parameters: QueryMap,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub path_parameters: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub stage_variables: HashMap<String, String>,
pub request_context: ApiGatewayCustomAuthorizerRequestTypeRequestContext,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayCustomAuthorizerResponse<T1 = Value>
where
T1: DeserializeOwned,
T1: Serialize,
{
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub principal_id: Option<String>,
pub policy_document: ApiGatewayCustomAuthorizerPolicy,
#[serde(bound = "", default)]
pub context: T1,
pub usage_identifier_key: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayV2CustomAuthorizerSimpleResponse<T1 = Value>
where
T1: DeserializeOwned,
T1: Serialize,
{
pub is_authorized: bool,
#[serde(bound = "", default)]
pub context: T1,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApiGatewayCustomAuthorizerPolicy {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
#[serde(rename = "Version")]
pub version: Option<String>,
#[serde(rename = "Statement")]
pub statement: Vec<IamPolicyStatement>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct IamPolicyStatement {
#[serde(rename = "Action")]
pub action: Vec<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
#[serde(rename = "Effect")]
pub effect: Option<String>,
#[serde(rename = "Resource")]
pub resource: Vec<String>,
}
#[cfg(test)]
mod test {
use super::*;
extern crate serde_json;
#[test]
#[cfg(feature = "apigw")]
fn example_apigw_custom_auth_request_type_request() {
let data = include_bytes!(
"../generated/fixtures/example-apigw-custom-auth-request-type-request.json"
);
let parsed: ApiGatewayCustomAuthorizerRequestTypeRequest =
serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: ApiGatewayCustomAuthorizerRequestTypeRequest =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "apigw")]
fn example_apigw_custom_auth_request() {
let data = include_bytes!("../generated/fixtures/example-apigw-custom-auth-request.json");
let parsed: ApiGatewayCustomAuthorizerRequest = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: ApiGatewayCustomAuthorizerRequest =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "apigw")]
fn example_apigw_custom_auth_response() {
let data = include_bytes!("../generated/fixtures/example-apigw-custom-auth-response.json");
let parsed: ApiGatewayCustomAuthorizerResponse = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: ApiGatewayCustomAuthorizerResponse =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "apigw")]
fn example_apigw_request() {
let data = include_bytes!("../generated/fixtures/example-apigw-request.json");
let parsed: ApiGatewayProxyRequest = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: ApiGatewayProxyRequest = serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "apigw")]
fn example_apigw_response() {
let data = include_bytes!("../generated/fixtures/example-apigw-response.json");
let parsed: ApiGatewayProxyResponse = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: ApiGatewayProxyResponse = serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "apigw")]
fn example_apigw_restapi_openapi_request() {
let data =
include_bytes!("../generated/fixtures/example-apigw-restapi-openapi-request.json");
let parsed: ApiGatewayProxyRequest = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: ApiGatewayProxyRequest = serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "apigw")]
fn example_apigw_v2_request_iam() {
let data = include_bytes!("../generated/fixtures/example-apigw-v2-request-iam.json");
let parsed: ApiGatewayV2httpRequest = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: ApiGatewayV2httpRequest = serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "apigw")]
fn example_apigw_v2_request_jwt_authorizer() {
let data =
include_bytes!("../generated/fixtures/example-apigw-v2-request-jwt-authorizer.json");
let parsed: ApiGatewayV2httpRequest = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: ApiGatewayV2httpRequest = serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "apigw")]
fn example_apigw_v2_request_lambda_authorizer() {
let data =
include_bytes!("../generated/fixtures/example-apigw-v2-request-lambda-authorizer.json");
let parsed: ApiGatewayV2httpRequest = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: ApiGatewayV2httpRequest = serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "apigw")]
fn example_apigw_v2_request_no_authorizer() {
let data =
include_bytes!("../generated/fixtures/example-apigw-v2-request-no-authorizer.json");
let parsed: ApiGatewayV2httpRequest = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: ApiGatewayV2httpRequest = serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "apigw")]
fn example_apigw_websocket_request() {
let data = include_bytes!("../generated/fixtures/example-apigw-websocket-request.json");
let parsed: ApiGatewayWebsocketProxyRequest = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: ApiGatewayWebsocketProxyRequest =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "apigw")]
fn example_apigw_console_test_request() {
let data = include_bytes!("../generated/fixtures/example-apigw-console-test-request.json");
let parsed: ApiGatewayProxyRequest = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: ApiGatewayProxyRequest = serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "apigw")]
fn example_apigw_websocket_request_without_method() {
let data = include_bytes!(
"../generated/fixtures/example-apigw-websocket-request-without-method.json"
);
let parsed: ApiGatewayWebsocketProxyRequest = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: ApiGatewayWebsocketProxyRequest =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
}