using System;
using System.Collections.Generic;
namespace Amazon.Lambda.ApplicationLoadBalancerEvents
{
///
/// For request coming in from Application Load Balancer.
/// https://docs.aws.amazon.com/elasticloadbalancing/latest/application/lambda-functions.html
///
public class ApplicationLoadBalancerRequest
{
///
/// The request context for the request
///
public ALBRequestContext RequestContext { get; set; }
///
/// The url path for the caller
///
public string Path { get; set; }
///
/// The HTTP method used
///
public string HttpMethod { get; set; }
///
/// The headers sent with the request
/// Note: Use this property when "Multi value headers" is disabled on ELB Target Group.
///
public IDictionary Headers { get; set; }
///
/// The headers sent with the request
/// Note: Use this property when "Multi value headers" is enabled on ELB Target Group.
///
public IDictionary> MultiValueHeaders { get; set; }
///
/// The query string parameters that were part of the request
/// Note: Use this property when "Multi value headers" is disabled on ELB Target Group.
///
public IDictionary QueryStringParameters { get; set; }
///
/// The query string parameters that were part of the request
/// Note: Use this property when "Multi value headers" is enabled on ELB Target Group.
///
public IDictionary> MultiValueQueryStringParameters { get; set; }
///
/// The HTTP request body.
///
public string Body { get; set; }
///
/// True if the body of the request is base 64 encoded.
///
public bool IsBase64Encoded { get; set; }
///
/// Information from the AWS resources invoke the Lambda function.
///
public class ALBRequestContext
{
///
/// Information about the source Application Load Balancer.
///
public ElbInfo Elb { get; set; }
}
///
/// Information from the source Elastic Load Balancer.
///
public class ElbInfo
{
///
/// The Application Load Balancer target group arn.
///
public string TargetGroupArn { get; set; }
}
}
}