def _get_policies(self, resource_properties):
policies = None<EOL>if self._contains_policies(resource_properties):<EOL><INDENT>policies = resource_properties[self.POLICIES_PROPERTY_NAME]<EOL><DEDENT>if not policies:<EOL><INDENT>return []<EOL><DEDENT>if not isinstance(policies, list):<EOL><INDENT>policies = [policies]<EOL><DEDENT>result = []<EOL>for policy in policies:<EOL><INDENT>policy_type = self._get_type(policy)<EOL>entry = PolicyEntry(data=policy, type=policy_type)<EOL>result.append(entry)<EOL><DEDENT>return result<EOL>
Returns a list of policies from the resource properties. This method knows how to interpret and handle
polymorphic nature of the policies property.

Policies can be one of the following:

    * Managed policy name: string
    * List of managed policy names: list of strings
    * IAM Policy document: dict containing Statement key
    * List of IAM Policy documents: list of IAM Policy Document
    * Policy Template: dict with only one key where key is in list of supported policy template names
    * List of Policy Templates: list of Policy Template


:param dict resource_properties: Dictionary of resource properties containing the policies property.
    It is assumed that this is already a dictionary and contains policies key.
:return list of PolicyEntry: List of policies, where each item is an instance of named tuple `PolicyEntry`