Repository: cloudtools/troposphere (python)

Issue:
Add support for Application Load Balancer to TargetGroup's valid types
Currently the valid TargetTypes include Instance, IP and Lambda.

ALB should also be added as a valid target group type - [ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-targettype).

Pull request description:
AWS::ElasticLoadBalancingV2::TargetGroup.TargetType
fix #1965

Patch:
diff --git a/troposphere/cassandra.py b/troposphere/cassandra.py
index 006d69e8..1a9418fe 100644
--- a/troposphere/cassandra.py
+++ b/troposphere/cassandra.py
@@ -78,6 +78,7 @@ class Table(AWSObject):
     props = {
         "BillingMode": (BillingMode, False),
         "ClusteringKeyColumns": ([ClusteringKeyColumn], False),
+        "DefaultTimeToLive": (integer, False),
         "EncryptionSpecification": (EncryptionSpecification, False),
         "KeyspaceName": (str, True),
         "PartitionKeyColumns": ([Column], True),
@@ -85,4 +86,5 @@ class Table(AWSObject):
         "RegularColumns": ([Column], False),
         "TableName": (str, False),
         "Tags": (Tags, False),
+        "TimeToLiveEnabled" : (boolean, False),
     }
diff --git a/troposphere/elasticloadbalancingv2.py b/troposphere/elasticloadbalancingv2.py
index e7258f2e..6fe44e1a 100644
--- a/troposphere/elasticloadbalancingv2.py
+++ b/troposphere/elasticloadbalancingv2.py
@@ -286,13 +286,19 @@ class ListenerRule(AWSObject):
     }
 
 
+TARGET_TYPE_ALB = "alb"
 TARGET_TYPE_INSTANCE = "instance"
 TARGET_TYPE_IP = "ip"
 TARGET_TYPE_LAMBDA = "lambda"
 
 
 def validate_target_type(target_type):
-    valid_types = [TARGET_TYPE_INSTANCE, TARGET_TYPE_IP, TARGET_TYPE_LAMBDA]
+    valid_types = [
+        TARGET_TYPE_ALB,
+        TARGET_TYPE_INSTANCE,
+        TARGET_TYPE_IP,
+        TARGET_TYPE_LAMBDA,
+    ]
     if target_type not in valid_types:
         raise ValueError(
             'TargetGroup.TargetType must be one of: "%s"' % ", ".join(valid_types)


Test patch:
diff --git a/tests/test_elasticloadbalancerv2.py b/tests/test_elasticloadbalancerv2.py
index e7db9e77..7a50dd63 100644
--- a/tests/test_elasticloadbalancerv2.py
+++ b/tests/test_elasticloadbalancerv2.py
@@ -131,7 +131,7 @@ class TestTargetGroup(unittest.TestCase):
                 VpcId="unknown",
             ).to_dict()
         self.assertEqual(
-            'TargetGroup.TargetType must be one of: "instance, ip, lambda"',
+            'TargetGroup.TargetType must be one of: "alb, instance, ip, lambda"',
             str(valueError.exception),
         )