public async Task <CloudFormationResponse> FunctionHandler(SnapStackRequest input, ILambdaContext context)
        {
            if (string.Equals("Delete", input.RequestType, StringComparison.OrdinalIgnoreCase))
            {
                return(await CloudFormationResponse.CompleteCloudFormationResponse(null, input, context));
            }

            return(await SnapshotStackResources(input, context));
        }
        private async Task <CloudFormationResponse> SnapshotStackResources(SnapStackRequest input, ILambdaContext context)
        {
            try
            {
                var stackName = input.StackId.Split('/')[1];
                var results   = await GetStackResource(input, stackName);
                await StoreResultsInDynamo(results, input.ResourceProperties, stackName);

                return(await CloudFormationResponse.CompleteCloudFormationResponse(null, input, context));
            }
            catch (Exception ex)
            {
                return(await CloudFormationResponse.CompleteCloudFormationResponse(ex, input, context));
            }
        }