-- | 'Snapshot' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'sDescription' @::@ 'Text'
--
-- * 'sEncrypted' @::@ 'Bool'
--
-- * 'sKmsKeyId' @::@ 'Maybe' 'Text'
--
-- * 'sOwnerAlias' @::@ 'Maybe' 'Text'
--
-- * 'sOwnerId' @::@ 'Text'
--
-- * 'sProgress' @::@ 'Text'
--
-- * 'sSnapshotId' @::@ 'Text'
--
-- * 'sStartTime' @::@ 'UTCTime'
--
-- * 'sState' @::@ 'SnapshotState'
--
-- * 'sTags' @::@ ['Tag']
--
-- * 'sVolumeId' @::@ 'Text'
--
-- * 'sVolumeSize' @::@ 'Int'
--
snapshot :: Text -- ^ 'sSnapshotId'
         -> Text -- ^ 'sVolumeId'
         -> SnapshotState -- ^ 'sState'
         -> UTCTime -- ^ 'sStartTime'
         -> Text -- ^ 'sProgress'
         -> Text -- ^ 'sOwnerId'
         -> Text -- ^ 'sDescription'
         -> Int -- ^ 'sVolumeSize'
         -> Bool -- ^ 'sEncrypted'
         -> Snapshot
snapshot p1 p2 p3 p4 p5 p6 p7 p8 p9 = Snapshot
    { _sSnapshotId  = p1
    , _sVolumeId    = p2
    , _sState       = p3
    , _sStartTime   = withIso _Time (const id) p4
    , _sProgress    = p5
    , _sOwnerId     = p6
    , _sDescription = p7
    , _sVolumeSize  = p8
    , _sEncrypted   = p9
    , _sOwnerAlias  = Nothing
    , _sTags        = mempty
    , _sKmsKeyId    = Nothing
    }
snapshot :: Text -- ^ 'sSnapshotId'
         -> Text -- ^ 'sVolumeId'
         -> SnapshotState -- ^ 'sState'
         -> UTCTime -- ^ 'sStartTime'
         -> Text -- ^ 'sProgress'
         -> Text -- ^ 'sOwnerId'
         -> Text -- ^ 'sDescription'
         -> Int -- ^ 'sVolumeSize'
         -> Bool -- ^ 'sEncrypted'
         -> Snapshot
snapshot p1 p2 p3 p4 p5 p6 p7 p8 p9 = Snapshot
    { _sSnapshotId  = p1
    , _sVolumeId    = p2
    , _sState       = p3
    , _sStartTime   = withIso _Time (const id) p4
    , _sProgress    = p5
    , _sOwnerId     = p6
    , _sDescription = p7
    , _sVolumeSize  = p8
    , _sEncrypted   = p9
    , _sOwnerAlias  = Nothing
    , _sTags        = mempty
    , _sKmsKeyId    = Nothing
    }
snapshot p1 p2 p3 p4 p5 p6 p7 p8 p9 = Snapshot
    { _sSnapshotId  = p1
    , _sVolumeId    = p2
    , _sState       = p3
    , _sStartTime   = withIso _Time (const id) p4
    , _sProgress    = p5
    , _sOwnerId     = p6
    , _sDescription = p7
    , _sVolumeSize  = p8
    , _sEncrypted   = p9
    , _sOwnerAlias  = Nothing
    , _sTags        = mempty
    , _sKmsKeyId    = Nothing
    }