When a subscription is created using cloudformation:
```
"ProfileChangedSubscription": {
      "Type": "AWS::SNS::Subscription",
      "Properties": {
        "Endpoint": {
          "Fn::GetAtt": [
            "ProfileChangedQueue",
            "Arn"
          ]
        },
        "Protocol": "sqs",
        "FilterPolicy": {
          "eventType": [
            "created"
          ]
        },
        "TopicArn": {
          "Fn::ImportValue": {
            "Fn::Sub": "${ProfilesProfilePublishStack}-ProfileChangedTopic"
          }
        }
      }
    }
```

The specified subscription filter policy is not created. When I run `get-subscription-attributes`, I get information about non-existing filter policy:

```
{
    "Attributes": {
        "TopicArn": "arn:aws:sns:us-east-1:000000000000:profile-changed-topic",
        "Endpoint": "arn:aws:sqs:us-east-1:000000000000:profile-changed-queue",
        "Protocol": "sqs",
        "SubscriptionArn": "arn:aws:sns:us-east-1:000000000000:profile-changed-topic:936a58be-525b-4228-bfdb-c4b2f6048e8c",
        "FilterPolicy": "None"
    }
}
```
""" Convert data types in the "params" object, with the type defs
        specified in the 'types' attribute of "func_details". """
    types = func_details.get('types') or {}
    attr_names = types.keys() or []
    def cast(_obj, _type):
        if _type == bool:
            return _obj in ['True', 'true', True]
        if _type == str:
            return str(_obj)
        if _type == int:
            return int(_obj)
        return _obj
    def fix_types(o, **kwargs):
        if isinstance(o, dict):
            for k, v in o.items():
                if k in attr_names:
                    o[k] = cast(v, types[k])
        return o
    result = common.recurse_object(params, fix_types)
    return result
def remove_none_values(params):
    """ Remove None values recursively in the given object. """
    def remove_nones(o, **kwargs):