Repository: cloud-custodian/cloud-custodian

Issue:
Cannot filter dms-endpoints on tags
**Describe the bug**

I would like to try and check dms-endpoint resources for tag compliance. For example I want to be able to check to see if the Owner tag exists. When I write a policy to check for such a tag, it returns all dms-endpoint resources, regardless of whether the Owner tag actually exists.

**To Reproduce**

1. Create a dms endpoint "endpoint-A" and set the Owner tag to "FooBar:
2. Create a dms endpoint "endpoint-B" but do not set any tags
3. Run the policy below using custodian run
4. Report on the policy below using custodian report

**Expected behavior**

There should only be one endpoint reported on - "endpoint-B" as the Owner tag is absent


**Background (please complete the following information):**

 - OS: OSX 10.15.3
 - Python Version: Python 3.8.2
 - Custodian Version: 0.8.46.1
- Boto3 version: 1.12.31
 - Cloud Provider: aws
 - Policy: 
```yaml
policies:
  - name: aws-dms-endpoint-tag-compliance
    resource: dms-endpoint
    description: dms-endpoint must have Owner tag
    filters:
      - "tag:Owner": absent
```




Discussion:

Resolving patch:
diff --git a/c7n/resources/dms.py b/c7n/resources/dms.py
--- a/c7n/resources/dms.py
+++ b/c7n/resources/dms.py
@@ -21,7 +21,7 @@
 from c7n.filters.vpc import SecurityGroupFilter, SubnetFilter, VpcFilter
 from c7n.filters.kms import KmsRelatedFilter
 from c7n.filters import FilterRegistry
-from c7n.tags import RemoveTag, Tag, TagActionFilter, TagDelayedAction
+from c7n.tags import RemoveTag, Tag, TagActionFilter, TagDelayedAction, universal_augment
 
 
 @resources.register('dms-instance')
@@ -55,6 +55,10 @@ class resource_type(TypeInfo):
         enum_spec = ('describe_endpoints', 'Endpoints', None)
         arn = id = 'EndpointArn'
         name = 'EndpointIdentifier'
+        arn_type = 'endpoint'
+        universal_taggable = object()
+
+    augment = universal_augment
 
 
 class InstanceDescribe(DescribeSource):


Test patch:
diff --git a/tests/data/placebo/test_dms_endpoint_delete/dms.DeleteEndpoint_1.json b/tests/data/placebo/test_dms_endpoint_delete/dms.DeleteEndpoint_1.json
--- a/tests/data/placebo/test_dms_endpoint_delete/dms.DeleteEndpoint_1.json
+++ b/tests/data/placebo/test_dms_endpoint_delete/dms.DeleteEndpoint_1.json
@@ -2,29 +2,18 @@
     "status_code": 200,
     "data": {
         "Endpoint": {
-            "Username": "erwerwerrs",
-            "Status": "deleting",
-            "EndpointArn": "arn:aws:dms:us-east-1:0123456789012:endpoint:BICKTYIAQR4U6TPFW7Z7ORGSY4",
-            "ServerName": "c7n-test",
-            "CertificateArn": "arn:aws:dms:us-east-1:0123456789012:cert:KAU6PM6MZGOKW7NUFW2LYQD6TA",
-            "EndpointType": "SOURCE",
-            "SslMode": "verify-ca",
-            "KmsKeyId": "arn:aws:kms:us-east-1:0123456789012:key/1462981a-3f7f-40d1-a81f-f10728064be9",
-            "EngineDisplayName": "MariaDB",
-            "EngineName": "mariadb",
             "EndpointIdentifier": "c7n-test",
-            "Port": 32342
+            "EndpointType": "SOURCE",
+            "EngineName": "aurora",
+            "EngineDisplayName": "Amazon Aurora MySQL",
+            "Username": "1234",
+            "ServerName": "test",
+            "Port": 1234,
+            "Status": "deleting",
+            "KmsKeyId": "arn:aws:kms:us-east-1:1112223334445:key/219c196b-3893-4778-b277-a05322f0ea0d",
+            "EndpointArn": "arn:aws:dms:us-east-1:1112223334445:endpoint:TS4PNUPPMTS3VDXUFUUGLKM2FQ",
+            "SslMode": "none"
         },
-        "ResponseMetadata": {
-            "RetryAttempts": 0,
-            "HTTPStatusCode": 200,
-            "RequestId": "017b3a78-4b50-11e8-844c-6bd72d6d5073",
-            "HTTPHeaders": {
-                "x-amzn-requestid": "017b3a78-4b50-11e8-844c-6bd72d6d5073",
-                "date": "Sun, 29 Apr 2018 01:52:42 GMT",
-                "content-length": "542",
-                "content-type": "application/x-amz-json-1.1"
-            }
-        }
+        "ResponseMetadata": {}
     }
-}
+}
\ No newline at end of file
diff --git a/tests/data/placebo/test_dms_endpoint_delete/dms.DescribeEndpoints_1.json b/tests/data/placebo/test_dms_endpoint_delete/dms.DescribeEndpoints_1.json
--- a/tests/data/placebo/test_dms_endpoint_delete/dms.DescribeEndpoints_1.json
+++ b/tests/data/placebo/test_dms_endpoint_delete/dms.DescribeEndpoints_1.json
@@ -3,86 +3,19 @@
     "data": {
         "Endpoints": [
             {
-                "Username": "erwerwerrs",
-                "Status": "active",
-                "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:BICKTYIDPR4U6TPFW7Z7ORGSY4",
-                "ServerName": "c7n-test",
-                "CertificateArn": "arn:aws:dms:us-east-1:123456789012:cert:KAU6PM6MFLOKW7NUFW2LYQD6TA",
-                "EndpointType": "SOURCE",
-                "SslMode": "verify-ca",
-                "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/fffffffff-3f7f-40d1-a81f-f10728064be9",
-                "EngineDisplayName": "MariaDB",
-                "EngineName": "mariadb",
                 "EndpointIdentifier": "c7n-test",
-                "Port": 32342
-            },
-            {
-                "Username": "admin",
-                "Status": "active",
-                "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:2YQDQ2L56H2HKJPMADIRK5E5QU",
-                "ServerName": "rds-isamdev-mysql-cluster.cluster-chlbxczddovi.us-east-1.rds.amazonaws.com",
-                "EndpointType": "TARGET",
-                "SslMode": "none",
-                "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/fffffff-0ae2-42af-9494-f946f8df695c",
-                "ExtraConnectionAttributes": "parallelLoadThreads=1",
-                "EngineDisplayName": "MySQL",
-                "EngineName": "mysql",
-                "EndpointIdentifier": "dms-isamdev-mysql",
-                "Port": 3306
-            },
-            {
-                "Username": "system",
-                "Status": "active",
-                "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:PO3YXFKLUQDY4HA4CWGRBROXHM",
-                "ServerName": "161.179.239.118",
                 "EndpointType": "SOURCE",
-                "SslMode": "none",
-                "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/ffffffff-0ae2-42af-9494-f946f8df695c",
-                "DatabaseName": "isamdev.world",
-                "EngineDisplayName": "Oracle",
-                "EngineName": "oracle",
-                "EndpointIdentifier": "dms-isamdev-oracle",
-                "Port": 1562
-            },
-            {
-                "Username": "AWS",
-                "Status": "active",
-                "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:3SNCBLLMQBJUPB47RI4Q4VMS6Y",
-                "ServerName": "1234556.company.domain.com",
-                "EndpointType": "SOURCE",
-                "SslMode": "none",
-                "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/1462981a-3f7f-40d1-a81f-f10728064be9",
-                "DatabaseName": "IDWQ",
-                "EngineDisplayName": "Oracle",
-                "EngineName": "oracle",
-                "EndpointIdentifier": "prodendpoint",
-                "Port": 1532
-            },
-            {
-                "Username": "AWS",
+                "EngineName": "aurora",
+                "EngineDisplayName": "Amazon Aurora MySQL",
+                "Username": "1234",
+                "ServerName": "test",
+                "Port": 1234,
                 "Status": "active",
-                "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:P4WO7C3HTQU66LE6JYJ3MWF2XI",
-                "ServerName": "1234556.company.domain.com",
-                "EndpointType": "SOURCE",
-                "SslMode": "none",
-                "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/1462981a-3f7f-40d1-a81f-f10728064be9",
-                "DatabaseName": "IDWQ",
-                "EngineDisplayName": "Oracle",
-                "EngineName": "oracle",
-                "EndpointIdentifier": "prodendpoint333",
-                "Port": 1532
+                "KmsKeyId": "arn:aws:kms:us-east-1:1112223334445:key/219c196b-3893-4778-b277-a05322f0ea0d",
+                "EndpointArn": "arn:aws:dms:us-east-1:1112223334445:endpoint:TS4PNUPPMTS3VDXUFUUGLKM2FQ",
+                "SslMode": "none"
             }
         ],
-        "ResponseMetadata": {
-            "RetryAttempts": 0,
-            "HTTPStatusCode": 200,
-            "RequestId": "013c353f-4b50-11e8-a505-61dbe6461519",
-            "HTTPHeaders": {
-                "x-amzn-requestid": "013c353f-4b50-11e8-a505-61dbe6461519",
-                "date": "Sun, 29 Apr 2018 01:52:41 GMT",
-                "content-length": "2512",
-                "content-type": "application/x-amz-json-1.1"
-            }
-        }
+        "ResponseMetadata": {}
     }
-}
+}
\ No newline at end of file
diff --git a/tests/data/placebo/test_dms_endpoint_delete/dms.DescribeEndpoints_2.json b/tests/data/placebo/test_dms_endpoint_delete/dms.DescribeEndpoints_2.json
--- a/tests/data/placebo/test_dms_endpoint_delete/dms.DescribeEndpoints_2.json
+++ b/tests/data/placebo/test_dms_endpoint_delete/dms.DescribeEndpoints_2.json
@@ -3,30 +3,19 @@
     "data": {
         "Endpoints": [
             {
-                "Username": "erwerwerrs",
-                "Status": "deleting",
-                "EndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:BICKTYIAQIJD8TPFW7Z7ORGSY4",
-                "ServerName": "c7n-test",
-                "CertificateArn": "arn:aws:dms:us-east-1:123456789012:cert:KAU6PM6MZGOKODVUFW2LYQD6TA",
-                "EndpointType": "SOURCE",
-                "SslMode": "verify-ca",
-                "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/1212212121-3f7f-40d1-a81f-f10728064be9",
-                "EngineDisplayName": "MariaDB",
-                "EngineName": "mariadb",
                 "EndpointIdentifier": "c7n-test",
-                "Port": 32342
+                "EndpointType": "SOURCE",
+                "EngineName": "aurora",
+                "EngineDisplayName": "Amazon Aurora MySQL",
+                "Username": "1234",
+                "ServerName": "test",
+                "Port": 1234,
+                "Status": "deleting",
+                "KmsKeyId": "arn:aws:kms:us-east-1:1112223334445:key/219c196b-3893-4778-b277-a05322f0ea0d",
+                "EndpointArn": "arn:aws:dms:us-east-1:1112223334445:endpoint:TS4PNUPPMTS3VDXUFUUGLKM2FQ",
+                "SslMode": "none"
             }
         ],
-        "ResponseMetadata": {
-            "RetryAttempts": 0,
-            "HTTPStatusCode": 200,
-            "RequestId": "01bd257c-4b50-11e8-844c-6bd72d6d5073",
-            "HTTPHeaders": {
-                "x-amzn-requestid": "01bd257c-4b50-11e8-844c-6bd72d6d5073",
-                "date": "Sun, 29 Apr 2018 01:52:42 GMT",
-                "content-length": "545",
-                "content-type": "application/x-amz-json-1.1"
-            }
-        }
+        "ResponseMetadata": {}
     }
-}
+}
\ No newline at end of file
diff --git a/tests/data/placebo/test_dms_endpoint_delete/tagging.GetResources_1.json b/tests/data/placebo/test_dms_endpoint_delete/tagging.GetResources_1.json
new file mode 100644
--- /dev/null
+++ b/tests/data/placebo/test_dms_endpoint_delete/tagging.GetResources_1.json
@@ -0,0 +1,8 @@
+{
+    "status_code": 200,
+    "data": {
+        "PaginationToken": "",
+        "ResourceTagMappingList": [],
+        "ResponseMetadata": {}
+    }
+}
\ No newline at end of file
diff --git a/tests/data/placebo/test_dms_modify_endpoint_sql/dms.DescribeEndpoints_1.json b/tests/data/placebo/test_dms_modify_endpoint_sql/dms.DescribeEndpoints_1.json
--- a/tests/data/placebo/test_dms_modify_endpoint_sql/dms.DescribeEndpoints_1.json
+++ b/tests/data/placebo/test_dms_modify_endpoint_sql/dms.DescribeEndpoints_1.json
@@ -1,31 +1,21 @@
 {
-    "status_code": 200, 
+    "status_code": 200,
     "data": {
         "Endpoints": [
             {
-                "Username": "madmin", 
-                "Status": "active", 
-                "EndpointArn": "arn:aws:dms:us-east-1:644160558196:endpoint:XNUBIZJM2WRWOEEOZJHNEM6IYE", 
-                "ServerName": "c7n-sql-db", 
-                "EndpointType": "SOURCE", 
-                "KmsKeyId": "arn:aws:kms:us-east-1:644160558196:key/f1f33a6b-91aa-4b0a-904c-f2a0378277f0", 
-                "DatabaseName": "c7n-db", 
-                "SslMode": "none", 
-                "EngineName": "sqlserver", 
-                "EndpointIdentifier": "c7n-dms-sql-ep", 
-                "Port": 1443
+                "EndpointIdentifier": "c7n-dms-sql-ep",
+                "EndpointType": "SOURCE",
+                "EngineName": "sqlserver",
+                "EngineDisplayName": "Microsoft SQL Server",
+                "Username": "1234",
+                "ServerName": "c7n-sql-db",
+                "Port": 1234,
+                "Status": "active",
+                "KmsKeyId": "arn:aws:kms:us-east-1:1112223334445:key/219c196b-3893-4778-b277-a05322f0ea0d",
+                "EndpointArn": "arn:aws:dms:us-east-1:1112223334445:endpoint:QOEESZJWK5BMGC7AT7QNZ56S44",
+                "SslMode": "none"
             }
-        ], 
-        "ResponseMetadata": {
-            "RetryAttempts": 0, 
-            "HTTPStatusCode": 200, 
-            "RequestId": "06c89b3a-261c-11e8-807c-61ba73499dd1", 
-            "HTTPHeaders": {
-                "x-amzn-requestid": "06c89b3a-261c-11e8-807c-61ba73499dd1", 
-                "date": "Mon, 12 Mar 2018 17:37:24 GMT", 
-                "content-length": "494", 
-                "content-type": "application/x-amz-json-1.1"
-            }
-        }
+        ],
+        "ResponseMetadata": {}
     }
 }
\ No newline at end of file
diff --git a/tests/data/placebo/test_dms_modify_endpoint_sql/dms.DescribeEndpoints_2.json b/tests/data/placebo/test_dms_modify_endpoint_sql/dms.DescribeEndpoints_2.json
--- a/tests/data/placebo/test_dms_modify_endpoint_sql/dms.DescribeEndpoints_2.json
+++ b/tests/data/placebo/test_dms_modify_endpoint_sql/dms.DescribeEndpoints_2.json
@@ -1,31 +1,22 @@
 {
-    "status_code": 200, 
+    "status_code": 200,
     "data": {
         "Endpoints": [
             {
-                "Username": "admin", 
-                "Status": "active", 
-                "EndpointArn": "arn:aws:dms:us-east-1:644160558196:endpoint:XNUBIZJM2WRWOEEOZJHNEM6IYE", 
-                "ServerName": "c7n-sql-db-02", 
-                "EndpointType": "SOURCE", 
-                "KmsKeyId": "arn:aws:kms:us-east-1:644160558196:key/f1f33a6b-91aa-4b0a-904c-f2a0378277f0", 
-                "DatabaseName": "c7n-db-02", 
-                "SslMode": "require", 
-                "EngineName": "sqlserver", 
-                "EndpointIdentifier": "c7n-dms-sql-ep", 
-                "Port": 3305
+                "EndpointIdentifier": "c7n-dms-sql-ep",
+                "EndpointType": "SOURCE",
+                "EngineName": "sqlserver",
+                "EngineDisplayName": "Microsoft SQL Server",
+                "Username": "admin",
+                "ServerName": "c7n-sql-db-02",
+                "Port": 3305,
+                "DatabaseName": "c7n-db-02",
+                "Status": "active",
+                "KmsKeyId": "arn:aws:kms:us-east-1:1112223334445:key/219c196b-3893-4778-b277-a05322f0ea0d",
+                "EndpointArn": "arn:aws:dms:us-east-1:1112223334445:endpoint:QOEESZJWK5BMGC7AT7QNZ56S44",
+                "SslMode": "require"
             }
-        ], 
-        "ResponseMetadata": {
-            "RetryAttempts": 0, 
-            "HTTPStatusCode": 200, 
-            "RequestId": "0764db3e-261c-11e8-807c-61ba73499dd1", 
-            "HTTPHeaders": {
-                "x-amzn-requestid": "0764db3e-261c-11e8-807c-61ba73499dd1", 
-                "date": "Mon, 12 Mar 2018 17:37:25 GMT", 
-                "content-length": "502", 
-                "content-type": "application/x-amz-json-1.1"
-            }
-        }
+        ],
+        "ResponseMetadata": {}
     }
 }
\ No newline at end of file
diff --git a/tests/data/placebo/test_dms_modify_endpoint_sql/dms.ModifyEndpoint_1.json b/tests/data/placebo/test_dms_modify_endpoint_sql/dms.ModifyEndpoint_1.json
--- a/tests/data/placebo/test_dms_modify_endpoint_sql/dms.ModifyEndpoint_1.json
+++ b/tests/data/placebo/test_dms_modify_endpoint_sql/dms.ModifyEndpoint_1.json
@@ -1,29 +1,20 @@
 {
-    "status_code": 200, 
+    "status_code": 200,
     "data": {
         "Endpoint": {
-            "Username": "admin", 
-            "Status": "active", 
-            "EndpointArn": "arn:aws:dms:us-east-1:644160558196:endpoint:XNUBIZJM2WRWOEEOZJHNEM6IYE", 
-            "ServerName": "c7n-sql-db-02", 
-            "EndpointType": "SOURCE", 
-            "KmsKeyId": "arn:aws:kms:us-east-1:644160558196:key/f1f33a6b-91aa-4b0a-904c-f2a0378277f0", 
-            "DatabaseName": "c7n-db-02", 
-            "SslMode": "require", 
-            "EngineName": "sqlserver", 
-            "EndpointIdentifier": "c7n-dms-sql-ep", 
-            "Port": 3305
-        }, 
-        "ResponseMetadata": {
-            "RetryAttempts": 0, 
-            "HTTPStatusCode": 200, 
-            "RequestId": "07116452-261c-11e8-8019-531c4ec63182", 
-            "HTTPHeaders": {
-                "x-amzn-requestid": "07116452-261c-11e8-8019-531c4ec63182", 
-                "date": "Mon, 12 Mar 2018 17:37:24 GMT", 
-                "content-length": "499", 
-                "content-type": "application/x-amz-json-1.1"
-            }
-        }
+            "EndpointIdentifier": "c7n-dms-sql-ep",
+            "EndpointType": "SOURCE",
+            "EngineName": "sqlserver",
+            "EngineDisplayName": "Microsoft SQL Server",
+            "Username": "admin",
+            "ServerName": "c7n-sql-db-02",
+            "Port": 3305,
+            "DatabaseName": "c7n-db-02",
+            "Status": "active",
+            "KmsKeyId": "arn:aws:kms:us-east-1:1112223334445:key/219c196b-3893-4778-b277-a05322f0ea0d",
+            "EndpointArn": "arn:aws:dms:us-east-1:1112223334445:endpoint:QOEESZJWK5BMGC7AT7QNZ56S44",
+            "SslMode": "require"
+        },
+        "ResponseMetadata": {}
     }
 }
\ No newline at end of file
diff --git a/tests/data/placebo/test_dms_modify_endpoint_sql/tagging.GetResources_1.json b/tests/data/placebo/test_dms_modify_endpoint_sql/tagging.GetResources_1.json
new file mode 100644
--- /dev/null
+++ b/tests/data/placebo/test_dms_modify_endpoint_sql/tagging.GetResources_1.json
@@ -0,0 +1,8 @@
+{
+    "status_code": 200,
+    "data": {
+        "PaginationToken": "",
+        "ResourceTagMappingList": [],
+        "ResponseMetadata": {}
+    }
+}
\ No newline at end of file
diff --git a/tests/data/placebo/test_dms_resource_query/dms.DescribeEndpoints_1.json b/tests/data/placebo/test_dms_resource_query/dms.DescribeEndpoints_1.json
--- a/tests/data/placebo/test_dms_resource_query/dms.DescribeEndpoints_1.json
+++ b/tests/data/placebo/test_dms_resource_query/dms.DescribeEndpoints_1.json
@@ -1,33 +1,21 @@
 {
-    "status_code": 200, 
+    "status_code": 200,
     "data": {
         "Endpoints": [
             {
-                "Status": "active", 
-                "S3Settings": {
-                    "ServiceAccessRoleArn": "arn:aws:iam::644160558196:role/dms-vpc-role", 
-                    "ExternalTableDefinition": "{\n    \"TableCount\": \"1\",\n    \"Tables\": [\n        {\n            \"TableName\": \"employee\",\n            \"TablePath\": \"hr/employee/\",\n            \"TableOwner\": \"hr\",\n            \"TableColumns\": [\n                {\n                    \"ColumnName\": \"Id\",\n                    \"ColumnType\": \"INT8\",\n                    \"ColumnNullable\": \"false\",\n                    \"ColumnIsPk\": \"true\"\n                },\n                {\n                    \"ColumnName\": \"LastName\",\n                    \"ColumnType\": \"STRING\",\n                    \"ColumnLength\": \"20\"\n                },\n                {\n                    \"ColumnName\": \"FirstName\",\n                    \"ColumnType\": \"STRING\",\n                    \"ColumnLength\": \"30\"\n                },\n                {\n                    \"ColumnName\": \"HireDate\",\n                    \"ColumnType\": \"DATETIME\"\n                },\n                {\n                    \"ColumnName\": \"OfficeLocation\",\n                    \"ColumnType\": \"STRING\",\n                    \"ColumnLength\": \"20\"\n                }\n            ],\n            \"TableColumnsTotal\": \"5\"\n        }\n    ]\n}", 
-                    "BucketName": "c7n-sm-test", 
-                    "BucketFolder": "dms"
-                }, 
-                "EndpointType": "SOURCE", 
-                "EndpointArn": "arn:aws:dms:us-east-1:644160558196:endpoint:YWWPQ44VI4JFKHFFASJ2AXBOXE", 
-                "ExtraConnectionAttributes": "bucketName=c7n-sm-test;bucketFolder=dms;cdcPath=dms/cdc", 
-                "SslMode": "require", 
-                "EngineName": "s3", 
-                "EndpointIdentifier": "endpointtest"
+                "EndpointIdentifier": "c7n-dms-sql-ep",
+                "EndpointType": "SOURCE",
+                "EngineName": "mysql",
+                "EngineDisplayName": "MySQL",
+                "Username": "1234",
+                "ServerName": "c7n-sql-db",
+                "Port": 1234,
+                "Status": "active",
+                "KmsKeyId": "arn:aws:kms:us-east-1:1112223334445:key/219c196b-3893-4778-b277-a05322f0ea0d",
+                "EndpointArn": "arn:aws:dms:us-east-1:1112223334445:endpoint:QOEESZJWK5BMGC7AT7QNZ56S44",
+                "SslMode": "none"
             }
-        ], 
-        "ResponseMetadata": {
-            "RetryAttempts": 0, 
-            "HTTPStatusCode": 200, 
-            "RequestId": "93495f1a-1e56-11e8-8e6e-61fbd598f11f", 
-            "HTTPHeaders": {
-                "x-amzn-requestid": "93495f1a-1e56-11e8-8e6e-61fbd598f11f", 
-                "date": "Fri, 02 Mar 2018 20:16:21 GMT", 
-                "content-length": "3103", 
-                "content-type": "application/x-amz-json-1.1"
-            }
-        }
+        ],
+        "ResponseMetadata": {}
     }
 }
\ No newline at end of file
diff --git a/tests/data/placebo/test_dms_resource_query/tagging.GetResources_1.json b/tests/data/placebo/test_dms_resource_query/tagging.GetResources_1.json
new file mode 100644
--- /dev/null
+++ b/tests/data/placebo/test_dms_resource_query/tagging.GetResources_1.json
@@ -0,0 +1,8 @@
+{
+    "status_code": 200,
+    "data": {
+        "PaginationToken": "",
+        "ResourceTagMappingList": [],
+        "ResponseMetadata": {}
+    }
+}
\ No newline at end of file
diff --git a/tests/data/placebo/test_dms_tag_filter/dms.DescribeEndpoints_1.json b/tests/data/placebo/test_dms_tag_filter/dms.DescribeEndpoints_1.json
new file mode 100644
--- /dev/null
+++ b/tests/data/placebo/test_dms_tag_filter/dms.DescribeEndpoints_1.json
@@ -0,0 +1,22 @@
+{
+    "status_code": 200,
+    "data": {
+        "Endpoints": [
+            {
+                "EndpointIdentifier": "myendpoint",
+                "EndpointType": "SOURCE",
+                "EngineName": "oracle",
+                "EngineDisplayName": "Oracle",
+                "Username": "1234",
+                "ServerName": "orkie",
+                "Port": 1234,
+                "DatabaseName": "orkle",
+                "Status": "active",
+                "KmsKeyId": "arn:aws:kms:us-east-1:1112223334445:key/219c196b-3893-4778-b277-a05322f0ea0d",
+                "EndpointArn": "arn:aws:dms:us-east-1:1112223334445:endpoint:AFDRQSDLIZ2X6KNOS4PBGNWUWQ",
+                "SslMode": "none"
+            }
+        ],
+        "ResponseMetadata": {}
+    }
+}
\ No newline at end of file
diff --git a/tests/data/placebo/test_dms_tag_filter/tagging.GetResources_1.json b/tests/data/placebo/test_dms_tag_filter/tagging.GetResources_1.json
new file mode 100644
--- /dev/null
+++ b/tests/data/placebo/test_dms_tag_filter/tagging.GetResources_1.json
@@ -0,0 +1,18 @@
+{
+    "status_code": 200,
+    "data": {
+        "PaginationToken": "",
+        "ResourceTagMappingList": [
+            {
+                "ResourceARN": "arn:aws:dms:us-east-1:1112223334445:endpoint:AFDRQSDLIZ2X6KNOS4PBGNWUWQ",
+                "Tags": [
+                    {
+                        "Key": "Owner",
+                        "Value": "pikachu"
+                    }
+                ]
+            }
+        ],
+        "ResponseMetadata": {}
+    }
+}
\ No newline at end of file
diff --git a/tests/test_dms.py b/tests/test_dms.py
--- a/tests/test_dms.py
+++ b/tests/test_dms.py
@@ -250,6 +250,22 @@ def test_endpoint_modify_sql(self):
             [3305, "require", "admin", "c7n-sql-db-02", "c7n-db-02"],
         )
 
+    def test_endpoint_tag_filter(self):
+        session_factory = self.replay_flight_data("test_dms_tag_filter")
+        p = self.load_policy(
+            {
+                "name": "dms-sql-ssl",
+                "resource": "dms-endpoint",
+                "filters": [
+                    {"tag:Owner": "pikachu"},
+                ]
+            },
+            session_factory=session_factory,
+        )
+        resources = p.run()
+        self.assertEqual(len(resources), 1)
+        self.assertEqual(resources[0]['Tags'], [{'Key': 'Owner', 'Value': 'pikachu'}])
+
     def test_dms_endpoint_delete(self):
         session_factory = self.replay_flight_data("test_dms_endpoint_delete")
         policy = {