# Path: stacker_blueprints/policies.py
# def lambda_basic_execution_statements(function_name):
#     log_group = Join("/", ["/aws/lambda", function_name])
#     return cloudwatch_logs_write_statements(log_group)
# 
# def lambda_vpc_execution_statements():
#     """Allow Lambda to manipuate EC2 ENIs for VPC support."""
#     return [
#         Statement(
#             Effect=Allow,
#             Resource=['*'],
#             Action=[
#                 ec2.CreateNetworkInterface,
#                 ec2.DescribeNetworkInterfaces,
#                 ec2.DeleteNetworkInterface,
#             ]
#         )
#     ]


import logging
import awacs.logs
import awacs.kinesis
import awacs.dynamodb
from stacker.blueprints.base import Blueprint
from stacker.blueprints.variables.types import TroposphereType
from stacker.util import cf_safe_name
from troposphere import (
    NoValue,
    Output,
    Ref,
    Sub,
    iam,
)
from troposphere import awslambda
from troposphere import events
from awacs.aws import Statement, Allow, Policy
from awacs.helpers.trust import get_lambda_assumerole_policy
from .policies import (
    lambda_basic_execution_statements,
    lambda_vpc_execution_statements,
)

        Args:
            statements (:class:`awacs.aws.Statement` or list): Either a single
                Statment, or a list of statements.
        """
        if isinstance(statements, Statement):
            statements = [statements]
        self._policy_statements.extend(statements)

    def extended_policy_statements(self):
        """Override this and add statements to add them to the lambda policy

        Returns:
            list: A list of :class:`awacs.aws.Statement` objects.
        """
        return []

    def generate_policy_statements(self):
        """Generates the policy statements for the role used by the function.

        To add additional statements you can either override the
        `extended_policy_statements` method to return a list of Statements
        to be added to the policy, or override this method itself if you
        need more control.

        Returns:
            list: A list of :class:`awacs.aws.Statement` objects.
        """
        statements = self._policy_statements
        statements.extend(

# Path: stacker_blueprints/policies.py
# def lambda_basic_execution_statements(function_name):
#     log_group = Join("/", ["/aws/lambda", function_name])
#     return cloudwatch_logs_write_statements(log_group)
# 
# def lambda_vpc_execution_statements():
#     """Allow Lambda to manipuate EC2 ENIs for VPC support."""
#     return [
#         Statement(
#             Effect=Allow,
#             Resource=['*'],
#             Action=[
#                 ec2.CreateNetworkInterface,
#                 ec2.DescribeNetworkInterfaces,
#                 ec2.DeleteNetworkInterface,
#             ]
#         )
#     ]


# Path: stacker_blueprints/aws_lambda.py
import logging
import awacs.logs
import awacs.kinesis
import awacs.dynamodb
from stacker.blueprints.base import Blueprint
from stacker.blueprints.variables.types import TroposphereType
from stacker.util import cf_safe_name
from troposphere import (
    NoValue,
    Output,
    Ref,
    Sub,
    iam,
)
from troposphere import awslambda
from troposphere import events
from awacs.aws import Statement, Allow, Policy
from awacs.helpers.trust import get_lambda_assumerole_policy
from .policies import (
    lambda_basic_execution_statements,
    lambda_vpc_execution_statements,
)


        Args:
            statements (:class:`awacs.aws.Statement` or list): Either a single
                Statment, or a list of statements.
        """
        if isinstance(statements, Statement):
            statements = [statements]
        self._policy_statements.extend(statements)

    def extended_policy_statements(self):
        """Override this and add statements to add them to the lambda policy

        Returns:
            list: A list of :class:`awacs.aws.Statement` objects.
        """
        return []

    def generate_policy_statements(self):
        """Generates the policy statements for the role used by the function.

        To add additional statements you can either override the
        `extended_policy_statements` method to return a list of Statements
        to be added to the policy, or override this method itself if you
        need more control.

        Returns:
            list: A list of :class:`awacs.aws.Statement` objects.
        """
        statements = self._policy_statements
        statements.extend(

            lambda_basic_execution_statements(