diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -365,9 +365,3 @@
 for such a notice.
 
 You may add additional accurate notices of copyright ownership.
-
-Exhibit B - "Incompatible With Secondary Licenses" Notice
----------------------------------------------------------
-
-  This Source Code Form is "Incompatible With Secondary Licenses", as
-  defined by the Mozilla Public License, v. 2.0.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.3.2`
+`1.3.3`
 
 
 ## Description
diff --git a/amazonka-kinesis.cabal b/amazonka-kinesis.cabal
--- a/amazonka-kinesis.cabal
+++ b/amazonka-kinesis.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-kinesis
-version:               1.3.2
+version:               1.3.3
 synopsis:              Amazon Kinesis SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -46,10 +46,12 @@
           Network.AWS.Kinesis
         , Network.AWS.Kinesis.AddTagsToStream
         , Network.AWS.Kinesis.CreateStream
+        , Network.AWS.Kinesis.DecreaseStreamRetentionPeriod
         , Network.AWS.Kinesis.DeleteStream
         , Network.AWS.Kinesis.DescribeStream
         , Network.AWS.Kinesis.GetRecords
         , Network.AWS.Kinesis.GetShardIterator
+        , Network.AWS.Kinesis.IncreaseStreamRetentionPeriod
         , Network.AWS.Kinesis.ListStreams
         , Network.AWS.Kinesis.ListTagsForStream
         , Network.AWS.Kinesis.MergeShards
@@ -65,7 +67,7 @@
         , Network.AWS.Kinesis.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.2.*
+          amazonka-core == 1.3.3.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-kinesis-test
@@ -85,9 +87,9 @@
         , Test.AWS.Kinesis.Internal
 
     build-depends:
-          amazonka-core == 1.3.2.*
-        , amazonka-test == 1.3.2.*
-        , amazonka-kinesis == 1.3.2.*
+          amazonka-core == 1.3.3.*
+        , amazonka-test == 1.3.3.*
+        , amazonka-kinesis == 1.3.3.*
         , base
         , bytestring
         , lens
diff --git a/fixture/DecreaseStreamRetentionPeriod.yaml b/fixture/DecreaseStreamRetentionPeriod.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DecreaseStreamRetentionPeriod.yaml
diff --git a/fixture/DecreaseStreamRetentionPeriodResponse.proto b/fixture/DecreaseStreamRetentionPeriodResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DecreaseStreamRetentionPeriodResponse.proto
diff --git a/fixture/IncreaseStreamRetentionPeriod.yaml b/fixture/IncreaseStreamRetentionPeriod.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/IncreaseStreamRetentionPeriod.yaml
diff --git a/fixture/IncreaseStreamRetentionPeriodResponse.proto b/fixture/IncreaseStreamRetentionPeriodResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/IncreaseStreamRetentionPeriodResponse.proto
diff --git a/gen/Network/AWS/Kinesis.hs b/gen/Network/AWS/Kinesis.hs
--- a/gen/Network/AWS/Kinesis.hs
+++ b/gen/Network/AWS/Kinesis.hs
@@ -55,6 +55,9 @@
     -- ** PutRecord
     , module Network.AWS.Kinesis.PutRecord
 
+    -- ** DecreaseStreamRetentionPeriod
+    , module Network.AWS.Kinesis.DecreaseStreamRetentionPeriod
+
     -- ** MergeShards
     , module Network.AWS.Kinesis.MergeShards
 
@@ -88,6 +91,9 @@
     -- ** SplitShard
     , module Network.AWS.Kinesis.SplitShard
 
+    -- ** IncreaseStreamRetentionPeriod
+    , module Network.AWS.Kinesis.IncreaseStreamRetentionPeriod
+
     -- ** DescribeStream (Paginated)
     , module Network.AWS.Kinesis.DescribeStream
 
@@ -151,6 +157,7 @@
     , sdStreamStatus
     , sdShards
     , sdHasMoreShards
+    , sdRetentionPeriodHours
 
     -- ** Tag
     , Tag
@@ -161,10 +168,12 @@
 
 import           Network.AWS.Kinesis.AddTagsToStream
 import           Network.AWS.Kinesis.CreateStream
+import           Network.AWS.Kinesis.DecreaseStreamRetentionPeriod
 import           Network.AWS.Kinesis.DeleteStream
 import           Network.AWS.Kinesis.DescribeStream
 import           Network.AWS.Kinesis.GetRecords
 import           Network.AWS.Kinesis.GetShardIterator
+import           Network.AWS.Kinesis.IncreaseStreamRetentionPeriod
 import           Network.AWS.Kinesis.ListStreams
 import           Network.AWS.Kinesis.ListTagsForStream
 import           Network.AWS.Kinesis.MergeShards
diff --git a/gen/Network/AWS/Kinesis/DecreaseStreamRetentionPeriod.hs b/gen/Network/AWS/Kinesis/DecreaseStreamRetentionPeriod.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Kinesis/DecreaseStreamRetentionPeriod.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.Kinesis.DecreaseStreamRetentionPeriod
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Decreases the stream\'s retention period, which is the length of time
+-- data records are accessible after they are added to the stream. The
+-- minimum value of a stream’s retention period is 24 hours.
+--
+-- This operation may result in lost data. For example, if the stream\'s
+-- retention period is 48 hours and is decreased to 24 hours, any data
+-- already in the stream that is older than 24 hours is inaccessible.
+--
+-- /See:/ <http://docs.aws.amazon.com/kinesis/latest/APIReference/API_DecreaseStreamRetentionPeriod.html AWS API Reference> for DecreaseStreamRetentionPeriod.
+module Network.AWS.Kinesis.DecreaseStreamRetentionPeriod
+    (
+    -- * Creating a Request
+      decreaseStreamRetentionPeriod
+    , DecreaseStreamRetentionPeriod
+    -- * Request Lenses
+    , dsrpStreamName
+    , dsrpRetentionPeriodHours
+
+    -- * Destructuring the Response
+    , decreaseStreamRetentionPeriodResponse
+    , DecreaseStreamRetentionPeriodResponse
+    ) where
+
+import           Network.AWS.Kinesis.Types
+import           Network.AWS.Kinesis.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | Represents the input for DecreaseStreamRetentionPeriod.
+--
+-- /See:/ 'decreaseStreamRetentionPeriod' smart constructor.
+data DecreaseStreamRetentionPeriod = DecreaseStreamRetentionPeriod'
+    { _dsrpStreamName           :: !Text
+    , _dsrpRetentionPeriodHours :: !Nat
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DecreaseStreamRetentionPeriod' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsrpStreamName'
+--
+-- * 'dsrpRetentionPeriodHours'
+decreaseStreamRetentionPeriod
+    :: Text -- ^ 'dsrpStreamName'
+    -> Natural -- ^ 'dsrpRetentionPeriodHours'
+    -> DecreaseStreamRetentionPeriod
+decreaseStreamRetentionPeriod pStreamName_ pRetentionPeriodHours_ =
+    DecreaseStreamRetentionPeriod'
+    { _dsrpStreamName = pStreamName_
+    , _dsrpRetentionPeriodHours = _Nat # pRetentionPeriodHours_
+    }
+
+-- | The name of the stream to modify.
+dsrpStreamName :: Lens' DecreaseStreamRetentionPeriod Text
+dsrpStreamName = lens _dsrpStreamName (\ s a -> s{_dsrpStreamName = a});
+
+-- | The new retention period of the stream, in hours. Must be less than the
+-- current retention period.
+dsrpRetentionPeriodHours :: Lens' DecreaseStreamRetentionPeriod Natural
+dsrpRetentionPeriodHours = lens _dsrpRetentionPeriodHours (\ s a -> s{_dsrpRetentionPeriodHours = a}) . _Nat;
+
+instance AWSRequest DecreaseStreamRetentionPeriod
+         where
+        type Rs DecreaseStreamRetentionPeriod =
+             DecreaseStreamRetentionPeriodResponse
+        request = postJSON kinesis
+        response
+          = receiveNull DecreaseStreamRetentionPeriodResponse'
+
+instance ToHeaders DecreaseStreamRetentionPeriod
+         where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("Kinesis_20131202.DecreaseStreamRetentionPeriod" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DecreaseStreamRetentionPeriod where
+        toJSON DecreaseStreamRetentionPeriod'{..}
+          = object
+              (catMaybes
+                 [Just ("StreamName" .= _dsrpStreamName),
+                  Just
+                    ("RetentionPeriodHours" .=
+                       _dsrpRetentionPeriodHours)])
+
+instance ToPath DecreaseStreamRetentionPeriod where
+        toPath = const "/"
+
+instance ToQuery DecreaseStreamRetentionPeriod where
+        toQuery = const mempty
+
+-- | /See:/ 'decreaseStreamRetentionPeriodResponse' smart constructor.
+data DecreaseStreamRetentionPeriodResponse =
+    DecreaseStreamRetentionPeriodResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DecreaseStreamRetentionPeriodResponse' with the minimum fields required to make a request.
+--
+decreaseStreamRetentionPeriodResponse
+    :: DecreaseStreamRetentionPeriodResponse
+decreaseStreamRetentionPeriodResponse = DecreaseStreamRetentionPeriodResponse'
diff --git a/gen/Network/AWS/Kinesis/DeleteStream.hs b/gen/Network/AWS/Kinesis/DeleteStream.hs
--- a/gen/Network/AWS/Kinesis/DeleteStream.hs
+++ b/gen/Network/AWS/Kinesis/DeleteStream.hs
@@ -59,7 +59,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | Represents the input for 'DeleteStream'.
+-- | Represents the input for DeleteStream.
 --
 -- /See:/ 'deleteStream' smart constructor.
 newtype DeleteStream = DeleteStream'
diff --git a/gen/Network/AWS/Kinesis/IncreaseStreamRetentionPeriod.hs b/gen/Network/AWS/Kinesis/IncreaseStreamRetentionPeriod.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Kinesis/IncreaseStreamRetentionPeriod.hs
@@ -0,0 +1,131 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.Kinesis.IncreaseStreamRetentionPeriod
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Increases the stream\'s retention period, which is the length of time
+-- data records are accessible after they are added to the stream. The
+-- maximum value of a stream’s retention period is 168 hours (7 days).
+--
+-- Upon choosing a longer stream retention period, this operation will
+-- increase the time period records are accessible that have not yet
+-- expired. However, it will not make previous data that has expired (older
+-- than the stream’s previous retention period) accessible after the
+-- operation has been called. For example, if a stream’s retention period
+-- is set to 24 hours and is increased to 168 hours, any data that is older
+-- than 24 hours will remain inaccessible to consumer applications.
+--
+-- /See:/ <http://docs.aws.amazon.com/kinesis/latest/APIReference/API_IncreaseStreamRetentionPeriod.html AWS API Reference> for IncreaseStreamRetentionPeriod.
+module Network.AWS.Kinesis.IncreaseStreamRetentionPeriod
+    (
+    -- * Creating a Request
+      increaseStreamRetentionPeriod
+    , IncreaseStreamRetentionPeriod
+    -- * Request Lenses
+    , isrpStreamName
+    , isrpRetentionPeriodHours
+
+    -- * Destructuring the Response
+    , increaseStreamRetentionPeriodResponse
+    , IncreaseStreamRetentionPeriodResponse
+    ) where
+
+import           Network.AWS.Kinesis.Types
+import           Network.AWS.Kinesis.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | Represents the input for IncreaseStreamRetentionPeriod.
+--
+-- /See:/ 'increaseStreamRetentionPeriod' smart constructor.
+data IncreaseStreamRetentionPeriod = IncreaseStreamRetentionPeriod'
+    { _isrpStreamName           :: !Text
+    , _isrpRetentionPeriodHours :: !Nat
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'IncreaseStreamRetentionPeriod' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'isrpStreamName'
+--
+-- * 'isrpRetentionPeriodHours'
+increaseStreamRetentionPeriod
+    :: Text -- ^ 'isrpStreamName'
+    -> Natural -- ^ 'isrpRetentionPeriodHours'
+    -> IncreaseStreamRetentionPeriod
+increaseStreamRetentionPeriod pStreamName_ pRetentionPeriodHours_ =
+    IncreaseStreamRetentionPeriod'
+    { _isrpStreamName = pStreamName_
+    , _isrpRetentionPeriodHours = _Nat # pRetentionPeriodHours_
+    }
+
+-- | The name of the stream to modify.
+isrpStreamName :: Lens' IncreaseStreamRetentionPeriod Text
+isrpStreamName = lens _isrpStreamName (\ s a -> s{_isrpStreamName = a});
+
+-- | The new retention period of the stream, in hours. Must be more than the
+-- current retention period.
+isrpRetentionPeriodHours :: Lens' IncreaseStreamRetentionPeriod Natural
+isrpRetentionPeriodHours = lens _isrpRetentionPeriodHours (\ s a -> s{_isrpRetentionPeriodHours = a}) . _Nat;
+
+instance AWSRequest IncreaseStreamRetentionPeriod
+         where
+        type Rs IncreaseStreamRetentionPeriod =
+             IncreaseStreamRetentionPeriodResponse
+        request = postJSON kinesis
+        response
+          = receiveNull IncreaseStreamRetentionPeriodResponse'
+
+instance ToHeaders IncreaseStreamRetentionPeriod
+         where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("Kinesis_20131202.IncreaseStreamRetentionPeriod" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON IncreaseStreamRetentionPeriod where
+        toJSON IncreaseStreamRetentionPeriod'{..}
+          = object
+              (catMaybes
+                 [Just ("StreamName" .= _isrpStreamName),
+                  Just
+                    ("RetentionPeriodHours" .=
+                       _isrpRetentionPeriodHours)])
+
+instance ToPath IncreaseStreamRetentionPeriod where
+        toPath = const "/"
+
+instance ToQuery IncreaseStreamRetentionPeriod where
+        toQuery = const mempty
+
+-- | /See:/ 'increaseStreamRetentionPeriodResponse' smart constructor.
+data IncreaseStreamRetentionPeriodResponse =
+    IncreaseStreamRetentionPeriodResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'IncreaseStreamRetentionPeriodResponse' with the minimum fields required to make a request.
+--
+increaseStreamRetentionPeriodResponse
+    :: IncreaseStreamRetentionPeriodResponse
+increaseStreamRetentionPeriodResponse = IncreaseStreamRetentionPeriodResponse'
diff --git a/gen/Network/AWS/Kinesis/PutRecord.hs b/gen/Network/AWS/Kinesis/PutRecord.hs
--- a/gen/Network/AWS/Kinesis/PutRecord.hs
+++ b/gen/Network/AWS/Kinesis/PutRecord.hs
@@ -58,8 +58,10 @@
 -- provisioned throughput on the shard involved in the request, 'PutRecord'
 -- throws 'ProvisionedThroughputExceededException'.
 --
--- Data records are accessible for only 24 hours from the time that they
--- are added to an Amazon Kinesis stream.
+-- By default, data records are accessible for only 24 hours from the time
+-- that they are added to an Amazon Kinesis stream. This retention period
+-- can be modified using the DecreaseStreamRetentionPeriod and
+-- IncreaseStreamRetentionPeriod operations.
 --
 -- /See:/ <http://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecord.html AWS API Reference> for PutRecord.
 module Network.AWS.Kinesis.PutRecord
diff --git a/gen/Network/AWS/Kinesis/PutRecords.hs b/gen/Network/AWS/Kinesis/PutRecords.hs
--- a/gen/Network/AWS/Kinesis/PutRecords.hs
+++ b/gen/Network/AWS/Kinesis/PutRecords.hs
@@ -80,8 +80,10 @@
 -- <http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-add-data-to-stream.html#kinesis-using-sdk-java-putrecords Adding Multiple Records with PutRecords>
 -- in the /Amazon Kinesis Developer Guide/.
 --
--- Data records are accessible for only 24 hours from the time that they
--- are added to an Amazon Kinesis stream.
+-- By default, data records are accessible for only 24 hours from the time
+-- that they are added to an Amazon Kinesis stream. This retention period
+-- can be modified using the DecreaseStreamRetentionPeriod and
+-- IncreaseStreamRetentionPeriod operations.
 --
 -- /See:/ <http://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecords.html AWS API Reference> for PutRecords.
 module Network.AWS.Kinesis.PutRecords
diff --git a/gen/Network/AWS/Kinesis/Types.hs b/gen/Network/AWS/Kinesis/Types.hs
--- a/gen/Network/AWS/Kinesis/Types.hs
+++ b/gen/Network/AWS/Kinesis/Types.hs
@@ -81,6 +81,7 @@
     , sdStreamStatus
     , sdShards
     , sdHasMoreShards
+    , sdRetentionPeriodHours
 
     -- * Tag
     , Tag
@@ -143,8 +144,9 @@
 _ProvisionedThroughputExceededException =
     _ServiceError . hasCode "ProvisionedThroughputExceededException"
 
--- | The requested resource could not be found. It might not be specified
--- correctly, or it might not be in the 'ACTIVE' state.
+-- | The requested resource could not be found. The stream might not be
+-- specified correctly, or it might not be in the 'ACTIVE' state if the
+-- operation requires it.
 _ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
 _ResourceNotFoundException =
     _ServiceError . hasCode "ResourceNotFoundException"
@@ -154,7 +156,7 @@
 _LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _LimitExceededException = _ServiceError . hasCode "LimitExceededException"
 
--- | The resource is not available for this operation. For example, you
--- attempted to split a shard but the stream is not in the 'ACTIVE' state.
+-- | The resource is not available for this operation. For successful
+-- operation, the resource needs to be in the 'ACTIVE' state.
 _ResourceInUseException :: AsError a => Getting (First ServiceError) a ServiceError
 _ResourceInUseException = _ServiceError . hasCode "ResourceInUseException"
diff --git a/gen/Network/AWS/Kinesis/Types/Product.hs b/gen/Network/AWS/Kinesis/Types/Product.hs
--- a/gen/Network/AWS/Kinesis/Types/Product.hs
+++ b/gen/Network/AWS/Kinesis/Types/Product.hs
@@ -375,15 +375,16 @@
                      <*> (x .: "HashKeyRange")
                      <*> (x .: "SequenceNumberRange"))
 
--- | Represents the output for 'DescribeStream'.
+-- | Represents the output for DescribeStream.
 --
 -- /See:/ 'streamDescription' smart constructor.
 data StreamDescription = StreamDescription'
-    { _sdStreamName    :: !Text
-    , _sdStreamARN     :: !Text
-    , _sdStreamStatus  :: !StreamStatus
-    , _sdShards        :: ![Shard]
-    , _sdHasMoreShards :: !Bool
+    { _sdStreamName           :: !Text
+    , _sdStreamARN            :: !Text
+    , _sdStreamStatus         :: !StreamStatus
+    , _sdShards               :: ![Shard]
+    , _sdHasMoreShards        :: !Bool
+    , _sdRetentionPeriodHours :: !Nat
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'StreamDescription' with the minimum fields required to make a request.
@@ -399,19 +400,23 @@
 -- * 'sdShards'
 --
 -- * 'sdHasMoreShards'
+--
+-- * 'sdRetentionPeriodHours'
 streamDescription
     :: Text -- ^ 'sdStreamName'
     -> Text -- ^ 'sdStreamARN'
     -> StreamStatus -- ^ 'sdStreamStatus'
     -> Bool -- ^ 'sdHasMoreShards'
+    -> Natural -- ^ 'sdRetentionPeriodHours'
     -> StreamDescription
-streamDescription pStreamName_ pStreamARN_ pStreamStatus_ pHasMoreShards_ =
+streamDescription pStreamName_ pStreamARN_ pStreamStatus_ pHasMoreShards_ pRetentionPeriodHours_ =
     StreamDescription'
     { _sdStreamName = pStreamName_
     , _sdStreamARN = pStreamARN_
     , _sdStreamStatus = pStreamStatus_
     , _sdShards = mempty
     , _sdHasMoreShards = pHasMoreShards_
+    , _sdRetentionPeriodHours = _Nat # pRetentionPeriodHours_
     }
 
 -- | The name of the stream being described.
@@ -447,6 +452,10 @@
 sdHasMoreShards :: Lens' StreamDescription Bool
 sdHasMoreShards = lens _sdHasMoreShards (\ s a -> s{_sdHasMoreShards = a});
 
+-- | The current retention period, in hours.
+sdRetentionPeriodHours :: Lens' StreamDescription Natural
+sdRetentionPeriodHours = lens _sdRetentionPeriodHours (\ s a -> s{_sdRetentionPeriodHours = a}) . _Nat;
+
 instance FromJSON StreamDescription where
         parseJSON
           = withObject "StreamDescription"
@@ -455,7 +464,8 @@
                    (x .: "StreamName") <*> (x .: "StreamARN") <*>
                      (x .: "StreamStatus")
                      <*> (x .:? "Shards" .!= mempty)
-                     <*> (x .: "HasMoreShards"))
+                     <*> (x .: "HasMoreShards")
+                     <*> (x .: "RetentionPeriodHours"))
 
 -- | Metadata assigned to the stream, consisting of a key-value pair.
 --
diff --git a/test/Test/AWS/Gen/Kinesis.hs b/test/Test/AWS/Gen/Kinesis.hs
--- a/test/Test/AWS/Gen/Kinesis.hs
+++ b/test/Test/AWS/Gen/Kinesis.hs
@@ -31,6 +31,9 @@
 --         [ testPutRecord $
 --             putRecord
 --
+--         , testDecreaseStreamRetentionPeriod $
+--             decreaseStreamRetentionPeriod
+--
 --         , testMergeShards $
 --             mergeShards
 --
@@ -64,6 +67,9 @@
 --         , testSplitShard $
 --             splitShard
 --
+--         , testIncreaseStreamRetentionPeriod $
+--             increaseStreamRetentionPeriod
+--
 --         , testDescribeStream $
 --             describeStream
 --
@@ -73,6 +79,9 @@
 --         [ testPutRecordResponse $
 --             putRecordResponse
 --
+--         , testDecreaseStreamRetentionPeriodResponse $
+--             decreaseStreamRetentionPeriodResponse
+--
 --         , testMergeShardsResponse $
 --             mergeShardsResponse
 --
@@ -106,6 +115,9 @@
 --         , testSplitShardResponse $
 --             splitShardResponse
 --
+--         , testIncreaseStreamRetentionPeriodResponse $
+--             increaseStreamRetentionPeriodResponse
+--
 --         , testDescribeStreamResponse $
 --             describeStreamResponse
 --
@@ -119,6 +131,11 @@
     "PutRecord"
     "fixture/PutRecord.yaml"
 
+testDecreaseStreamRetentionPeriod :: DecreaseStreamRetentionPeriod -> TestTree
+testDecreaseStreamRetentionPeriod = req
+    "DecreaseStreamRetentionPeriod"
+    "fixture/DecreaseStreamRetentionPeriod.yaml"
+
 testMergeShards :: MergeShards -> TestTree
 testMergeShards = req
     "MergeShards"
@@ -174,6 +191,11 @@
     "SplitShard"
     "fixture/SplitShard.yaml"
 
+testIncreaseStreamRetentionPeriod :: IncreaseStreamRetentionPeriod -> TestTree
+testIncreaseStreamRetentionPeriod = req
+    "IncreaseStreamRetentionPeriod"
+    "fixture/IncreaseStreamRetentionPeriod.yaml"
+
 testDescribeStream :: DescribeStream -> TestTree
 testDescribeStream = req
     "DescribeStream"
@@ -188,6 +210,13 @@
     kinesis
     (Proxy :: Proxy PutRecord)
 
+testDecreaseStreamRetentionPeriodResponse :: DecreaseStreamRetentionPeriodResponse -> TestTree
+testDecreaseStreamRetentionPeriodResponse = res
+    "DecreaseStreamRetentionPeriodResponse"
+    "fixture/DecreaseStreamRetentionPeriodResponse.proto"
+    kinesis
+    (Proxy :: Proxy DecreaseStreamRetentionPeriod)
+
 testMergeShardsResponse :: MergeShardsResponse -> TestTree
 testMergeShardsResponse = res
     "MergeShardsResponse"
@@ -264,6 +293,13 @@
     "fixture/SplitShardResponse.proto"
     kinesis
     (Proxy :: Proxy SplitShard)
+
+testIncreaseStreamRetentionPeriodResponse :: IncreaseStreamRetentionPeriodResponse -> TestTree
+testIncreaseStreamRetentionPeriodResponse = res
+    "IncreaseStreamRetentionPeriodResponse"
+    "fixture/IncreaseStreamRetentionPeriodResponse.proto"
+    kinesis
+    (Proxy :: Proxy IncreaseStreamRetentionPeriod)
 
 testDescribeStreamResponse :: DescribeStreamResponse -> TestTree
 testDescribeStreamResponse = res
