def _construct_permission(self, function, source_arn=None, source_account=None, suffix="<STR_LIT>", event_source_token=None):
lambda_permission = LambdaPermission(self.logical_id + '<STR_LIT>' + suffix,<EOL>attributes=function.get_passthrough_resource_attributes())<EOL>try:<EOL><INDENT>function_name_or_arn = function.get_runtime_attr("<STR_LIT:name>")<EOL><DEDENT>except NotImplementedError:<EOL><INDENT>function_name_or_arn = function.get_runtime_attr("<STR_LIT>")<EOL><DEDENT>lambda_permission.Action = '<STR_LIT>'<EOL>lambda_permission.FunctionName = function_name_or_arn<EOL>lambda_permission.Principal = self.principal<EOL>lambda_permission.SourceArn = source_arn<EOL>lambda_permission.SourceAccount = source_account<EOL>lambda_permission.EventSourceToken = event_source_token<EOL>return lambda_permission<EOL>
Constructs the Lambda Permission resource allowing the source service to invoke the function this event
        source triggers.

        :returns: the permission resource
        :rtype: model.lambda_.LambdaPermission