From 462d7103734f9f8eefc4eba7a9fc3b02a74d9983 Mon Sep 17 00:00:00 2001 From: Scott Speice Date: Thu, 16 Dec 2021 17:41:52 -0800 Subject: [PATCH] Update Kinesis per 2021-12-09 (#1988) Co-authored-by: Scott Speice --- troposphere/kinesis.py | 12 +++++++++++- troposphere/validators.py | 7 +++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/troposphere/kinesis.py b/troposphere/kinesis.py index 21373c96d..56e7239e3 100644 --- a/troposphere/kinesis.py +++ b/troposphere/kinesis.py @@ -4,7 +4,10 @@ # See LICENSE file for full license. from . import AWSObject, AWSProperty, Tags -from .validators import integer +from .validators import ( + integer, + kinesis_stream_mode +) class StreamEncryption(AWSProperty): @@ -14,6 +17,12 @@ class StreamEncryption(AWSProperty): } +class StreamModeDetails(AWSProperty): + props = { + "StreamMode": (kinesis_stream_mode, True) + } + + class Stream(AWSObject): resource_type = "AWS::Kinesis::Stream" @@ -22,6 +31,7 @@ class Stream(AWSObject): "RetentionPeriodHours": (integer, False), "ShardCount": (integer, True), "StreamEncryption": (StreamEncryption, False), + "StreamModeDetails": (StreamModeDetails, False), "Tags": ((Tags, list), False), } diff --git a/troposphere/validators.py b/troposphere/validators.py index 88ebde9e6..79fb5f1a8 100644 --- a/troposphere/validators.py +++ b/troposphere/validators.py @@ -708,3 +708,10 @@ def wafv2_custom_body_response_content_type(content_type): if content_type not in valid_types: raise ValueError('ContentType must be one of: "%s"' % (", ".join(valid_types))) return content_type + + +def kinesis_stream_mode(mode): + valid_modes = ["ON_DEMAND", "PROVISIONED"] + if mode not in valid_modes: + raise ValueError('ContentType must be one of: "%s"' % (", ".join(valid_modes))) + return mode