Repository: cloud-custodian/cloud-custodian

Issue:
Feature Request - Firehose  add tagging support
Kinesis Firehose supports tagging but the firehose resource in c7n does not currently support tags.  Requesting tagging support be added to firehose.  Thanks


Discussion:

Resolving patch:
diff --git a/c7n/resources/apigw.py b/c7n/resources/apigw.py
--- a/c7n/resources/apigw.py
+++ b/c7n/resources/apigw.py
@@ -256,6 +256,7 @@ class resource_type(query.TypeInfo):
         date = 'createdDate'
         universal_taggable = True
         config_type = "AWS::ApiGateway::Stage"
+        arn_type = 'stages'
 
     def get_source(self, source_type):
         if source_type == 'describe-rest-stage':
diff --git a/c7n/resources/glacier.py b/c7n/resources/glacier.py
--- a/c7n/resources/glacier.py
+++ b/c7n/resources/glacier.py
@@ -35,6 +35,7 @@ class resource_type(TypeInfo):
         enum_spec = ('list_vaults', 'VaultList', None)
         name = "VaultName"
         arn = id = "VaultARN"
+        arn_type = 'vaults'
         universal_taggable = True
 
     def augment(self, resources):
diff --git a/c7n/resources/kinesis.py b/c7n/resources/kinesis.py
--- a/c7n/resources/kinesis.py
+++ b/c7n/resources/kinesis.py
@@ -101,6 +101,11 @@ class resource_type(TypeInfo):
         name = id = 'DeliveryStreamName'
         date = 'CreateTimestamp'
         dimension = 'DeliveryStreamName'
+        universal_taggable = object()
+
+    def augment(self, resources):
+        return universal_augment(
+            self, super(DeliveryStream, self).augment(resources))
 
 
 @DeliveryStream.action_registry.register('delete')
@@ -218,6 +223,12 @@ class resource_type(TypeInfo):
                        'ApplicationName', 'ApplicationDetail')
         name = "ApplicationName"
         arn = id = "ApplicationARN"
+        arn_type = 'application'
+        universal_taggable = object()
+
+    def augment(self, resources):
+        return universal_augment(
+            self, super(AnalyticsApp, self).augment(resources))
 
 
 @AnalyticsApp.action_registry.register('delete')


Test patch:
diff --git a/tests/data/placebo/test_firehose_elasticsearch_encrypt_s3_destination/tagging.GetResources_1.json b/tests/data/placebo/test_firehose_elasticsearch_encrypt_s3_destination/tagging.GetResources_1.json
new file mode 100644
--- /dev/null
+++ b/tests/data/placebo/test_firehose_elasticsearch_encrypt_s3_destination/tagging.GetResources_1.json
@@ -0,0 +1 @@
+{"status_code": 200, "data": {"PaginationToken": "", "ResourceTagMappingList": []}}
diff --git a/tests/data/placebo/test_firehose_ext_s3_encrypt_s3_destination/tagging.GetResources_1.json b/tests/data/placebo/test_firehose_ext_s3_encrypt_s3_destination/tagging.GetResources_1.json
new file mode 100644
--- /dev/null
+++ b/tests/data/placebo/test_firehose_ext_s3_encrypt_s3_destination/tagging.GetResources_1.json
@@ -0,0 +1 @@
+{"status_code": 200, "data": {"PaginationToken": "", "ResourceTagMappingList": []}}
diff --git a/tests/data/placebo/test_firehose_redshift_encrypt_s3_destination/tagging.GetResources_1.json b/tests/data/placebo/test_firehose_redshift_encrypt_s3_destination/tagging.GetResources_1.json
new file mode 100644
--- /dev/null
+++ b/tests/data/placebo/test_firehose_redshift_encrypt_s3_destination/tagging.GetResources_1.json
@@ -0,0 +1 @@
+{"status_code": 200, "data": {"PaginationToken": "", "ResourceTagMappingList": []}}
diff --git a/tests/data/placebo/test_firehose_splunk_encrypt_s3_destination/tagging.GetResources_1.json b/tests/data/placebo/test_firehose_splunk_encrypt_s3_destination/tagging.GetResources_1.json
new file mode 100644
--- /dev/null
+++ b/tests/data/placebo/test_firehose_splunk_encrypt_s3_destination/tagging.GetResources_1.json
@@ -0,0 +1 @@
+{"status_code": 200, "data": {"PaginationToken": "", "ResourceTagMappingList": []}}
diff --git a/tests/data/placebo/test_kinesis_analytics_delete/tagging.GetResources_1.json b/tests/data/placebo/test_kinesis_analytics_delete/tagging.GetResources_1.json
new file mode 100644
--- /dev/null
+++ b/tests/data/placebo/test_kinesis_analytics_delete/tagging.GetResources_1.json
@@ -0,0 +1 @@
+{"status_code": 200, "data": {"PaginationToken": "", "ResourceTagMappingList": []}}
diff --git a/tests/data/placebo/test_kinesis_analytics_query/tagging.GetResources_1.json b/tests/data/placebo/test_kinesis_analytics_query/tagging.GetResources_1.json
new file mode 100644
--- /dev/null
+++ b/tests/data/placebo/test_kinesis_analytics_query/tagging.GetResources_1.json
@@ -0,0 +1 @@
+{"status_code": 200, "data": {"PaginationToken": "", "ResourceTagMappingList": []}}
diff --git a/tests/data/placebo/test_kinesis_hose_delete/tagging.GetResources_1.json b/tests/data/placebo/test_kinesis_hose_delete/tagging.GetResources_1.json
new file mode 100644
--- /dev/null
+++ b/tests/data/placebo/test_kinesis_hose_delete/tagging.GetResources_1.json
@@ -0,0 +1 @@
+{"status_code": 200, "data": {"PaginationToken": "", "ResourceTagMappingList": []}}
diff --git a/tests/data/placebo/test_kinesis_hose_query/tagging.GetResources_1.json b/tests/data/placebo/test_kinesis_hose_query/tagging.GetResources_1.json
new file mode 100644
--- /dev/null
+++ b/tests/data/placebo/test_kinesis_hose_query/tagging.GetResources_1.json
@@ -0,0 +1 @@
+{"status_code": 200, "data": {"PaginationToken": "", "ResourceTagMappingList": []}}