def METHOD_NAME(self, logical_id, resource_type, resource_properties):  # type: ignore[no-untyped-def]
    """
    Hook method that gets called before "each" SAM resource gets processed
    :param string logical_id: Logical ID of the resource being processed
    :param string resource_type: Type of the resource being processed
    :param dict resource_properties: Properties of the resource
    """
    if not self._is_supported(resource_type):  # type: ignore[no-untyped-call]
        return
    function_policies = ResourcePolicies(resource_properties, self._policy_template_processor)
    if len(function_policies) == 0:
        # No policies to process
        return
    result = []
    for policy_entry in function_policies.get():  # type: ignore[no-untyped-call]
        if policy_entry.type is not PolicyTypes.POLICY_TEMPLATE:
            # If we don't know the type, skip processing and pass to result as is.
            result.append(policy_entry.data)
            continue
        if is_intrinsic_if(policy_entry.data):
            # If policy is an intrinsic if, we need to process each sub-statement separately
            processed_intrinsic_if = self._process_intrinsic_if_policy_template(logical_id, policy_entry)  # type: ignore[no-untyped-call]
            result.append(processed_intrinsic_if)
            continue
        converted_policy = self._process_policy_template(logical_id, policy_entry.data)  # type: ignore[no-untyped-call]
        result.append(converted_policy)
    # Save the modified policies list to the input
    resource_properties[ResourcePolicies.POLICIES_PROPERTY_NAME] = result