namespace Amazon.Lambda.Core
{
using System;
///
/// Object that allows you to access useful information available within
/// the Lambda execution environment.
///
public interface ILambdaContext
{
///
/// The AWS request ID associated with the request.
/// This is the same ID returned to the client that called invoke().
/// This ID is reused for retries on the same request.
///
string AwsRequestId { get; }
///
/// Information about the client application and device when invoked
/// through the AWS Mobile SDK. It can be null.
/// Client context provides client information such as client ID,
/// application title, version name, version code, and the application
/// package name.
///
IClientContext ClientContext { get; }
///
/// Name of the Lambda function that is running.
///
string FunctionName { get; }
///
/// The Lambda function version that is executing.
/// If an alias is used to invoke the function, then this will be
/// the version the alias points to.
///
string FunctionVersion { get; }
///
/// Information about the Amazon Cognito identity provider when
/// invoked through the AWS Mobile SDK.
/// Can be null.
///
ICognitoIdentity Identity { get; }
///
/// The ARN used to invoke this function.
/// It can be function ARN or alias ARN.
/// An unqualified ARN executes the $LATEST version and aliases execute
/// the function version they are pointing to.
///
string InvokedFunctionArn { get; }
///
/// Lambda logger associated with the Context object.
///
ILambdaLogger Logger { get; }
///
/// The CloudWatch log group name associated with the invoked function.
/// It can be null if the IAM user provided does not have permission for
/// CloudWatch actions.
///
string LogGroupName { get; }
///
/// The CloudWatch log stream name for this function execution.
/// It can be null if the IAM user provided does not have permission
/// for CloudWatch actions.
///
string LogStreamName { get; }
///
/// Memory limit, in MB, you configured for the Lambda function.
///
int MemoryLimitInMB { get; }
///
/// Remaining execution time till the function will be terminated.
/// At the time you create the Lambda function you set maximum time
/// limit, at which time AWS Lambda will terminate the function
/// execution.
/// Information about the remaining time of function execution can be
/// used to specify function behavior when nearing the timeout.
///
TimeSpan RemainingTime { get; }
}
}