{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.S3.Types.ObjectVersion where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.S3.Internal
import Amazonka.S3.Types.ChecksumAlgorithm
import Amazonka.S3.Types.ObjectVersionStorageClass
import Amazonka.S3.Types.Owner
data ObjectVersion = ObjectVersion'
{
ObjectVersion -> Maybe [ChecksumAlgorithm]
checksumAlgorithm :: Prelude.Maybe [ChecksumAlgorithm],
ObjectVersion -> Maybe ETag
eTag :: Prelude.Maybe ETag,
ObjectVersion -> Maybe Bool
isLatest :: Prelude.Maybe Prelude.Bool,
ObjectVersion -> Maybe ObjectKey
key :: Prelude.Maybe ObjectKey,
ObjectVersion -> Maybe RFC822
lastModified :: Prelude.Maybe Data.RFC822,
ObjectVersion -> Maybe Owner
owner :: Prelude.Maybe Owner,
ObjectVersion -> Maybe Integer
size :: Prelude.Maybe Prelude.Integer,
ObjectVersion -> Maybe ObjectVersionStorageClass
storageClass :: Prelude.Maybe ObjectVersionStorageClass,
ObjectVersion -> Maybe ObjectVersionId
versionId :: Prelude.Maybe ObjectVersionId
}
deriving (ObjectVersion -> ObjectVersion -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ObjectVersion -> ObjectVersion -> Bool
$c/= :: ObjectVersion -> ObjectVersion -> Bool
== :: ObjectVersion -> ObjectVersion -> Bool
$c== :: ObjectVersion -> ObjectVersion -> Bool
Prelude.Eq, ReadPrec [ObjectVersion]
ReadPrec ObjectVersion
Int -> ReadS ObjectVersion
ReadS [ObjectVersion]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ObjectVersion]
$creadListPrec :: ReadPrec [ObjectVersion]
readPrec :: ReadPrec ObjectVersion
$creadPrec :: ReadPrec ObjectVersion
readList :: ReadS [ObjectVersion]
$creadList :: ReadS [ObjectVersion]
readsPrec :: Int -> ReadS ObjectVersion
$creadsPrec :: Int -> ReadS ObjectVersion
Prelude.Read, Int -> ObjectVersion -> ShowS
[ObjectVersion] -> ShowS
ObjectVersion -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ObjectVersion] -> ShowS
$cshowList :: [ObjectVersion] -> ShowS
show :: ObjectVersion -> String
$cshow :: ObjectVersion -> String
showsPrec :: Int -> ObjectVersion -> ShowS
$cshowsPrec :: Int -> ObjectVersion -> ShowS
Prelude.Show, forall x. Rep ObjectVersion x -> ObjectVersion
forall x. ObjectVersion -> Rep ObjectVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ObjectVersion x -> ObjectVersion
$cfrom :: forall x. ObjectVersion -> Rep ObjectVersion x
Prelude.Generic)
newObjectVersion ::
ObjectVersion
newObjectVersion :: ObjectVersion
newObjectVersion =
ObjectVersion'
{ $sel:checksumAlgorithm:ObjectVersion' :: Maybe [ChecksumAlgorithm]
checksumAlgorithm = forall a. Maybe a
Prelude.Nothing,
$sel:eTag:ObjectVersion' :: Maybe ETag
eTag = forall a. Maybe a
Prelude.Nothing,
$sel:isLatest:ObjectVersion' :: Maybe Bool
isLatest = forall a. Maybe a
Prelude.Nothing,
$sel:key:ObjectVersion' :: Maybe ObjectKey
key = forall a. Maybe a
Prelude.Nothing,
$sel:lastModified:ObjectVersion' :: Maybe RFC822
lastModified = forall a. Maybe a
Prelude.Nothing,
$sel:owner:ObjectVersion' :: Maybe Owner
owner = forall a. Maybe a
Prelude.Nothing,
$sel:size:ObjectVersion' :: Maybe Integer
size = forall a. Maybe a
Prelude.Nothing,
$sel:storageClass:ObjectVersion' :: Maybe ObjectVersionStorageClass
storageClass = forall a. Maybe a
Prelude.Nothing,
$sel:versionId:ObjectVersion' :: Maybe ObjectVersionId
versionId = forall a. Maybe a
Prelude.Nothing
}
objectVersion_checksumAlgorithm :: Lens.Lens' ObjectVersion (Prelude.Maybe [ChecksumAlgorithm])
objectVersion_checksumAlgorithm :: Lens' ObjectVersion (Maybe [ChecksumAlgorithm])
objectVersion_checksumAlgorithm = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ObjectVersion' {Maybe [ChecksumAlgorithm]
checksumAlgorithm :: Maybe [ChecksumAlgorithm]
$sel:checksumAlgorithm:ObjectVersion' :: ObjectVersion -> Maybe [ChecksumAlgorithm]
checksumAlgorithm} -> Maybe [ChecksumAlgorithm]
checksumAlgorithm) (\s :: ObjectVersion
s@ObjectVersion' {} Maybe [ChecksumAlgorithm]
a -> ObjectVersion
s {$sel:checksumAlgorithm:ObjectVersion' :: Maybe [ChecksumAlgorithm]
checksumAlgorithm = Maybe [ChecksumAlgorithm]
a} :: ObjectVersion) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
objectVersion_eTag :: Lens.Lens' ObjectVersion (Prelude.Maybe ETag)
objectVersion_eTag :: Lens' ObjectVersion (Maybe ETag)
objectVersion_eTag = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ObjectVersion' {Maybe ETag
eTag :: Maybe ETag
$sel:eTag:ObjectVersion' :: ObjectVersion -> Maybe ETag
eTag} -> Maybe ETag
eTag) (\s :: ObjectVersion
s@ObjectVersion' {} Maybe ETag
a -> ObjectVersion
s {$sel:eTag:ObjectVersion' :: Maybe ETag
eTag = Maybe ETag
a} :: ObjectVersion)
objectVersion_isLatest :: Lens.Lens' ObjectVersion (Prelude.Maybe Prelude.Bool)
objectVersion_isLatest :: Lens' ObjectVersion (Maybe Bool)
objectVersion_isLatest = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ObjectVersion' {Maybe Bool
isLatest :: Maybe Bool
$sel:isLatest:ObjectVersion' :: ObjectVersion -> Maybe Bool
isLatest} -> Maybe Bool
isLatest) (\s :: ObjectVersion
s@ObjectVersion' {} Maybe Bool
a -> ObjectVersion
s {$sel:isLatest:ObjectVersion' :: Maybe Bool
isLatest = Maybe Bool
a} :: ObjectVersion)
objectVersion_key :: Lens.Lens' ObjectVersion (Prelude.Maybe ObjectKey)
objectVersion_key :: Lens' ObjectVersion (Maybe ObjectKey)
objectVersion_key = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ObjectVersion' {Maybe ObjectKey
key :: Maybe ObjectKey
$sel:key:ObjectVersion' :: ObjectVersion -> Maybe ObjectKey
key} -> Maybe ObjectKey
key) (\s :: ObjectVersion
s@ObjectVersion' {} Maybe ObjectKey
a -> ObjectVersion
s {$sel:key:ObjectVersion' :: Maybe ObjectKey
key = Maybe ObjectKey
a} :: ObjectVersion)
objectVersion_lastModified :: Lens.Lens' ObjectVersion (Prelude.Maybe Prelude.UTCTime)
objectVersion_lastModified :: Lens' ObjectVersion (Maybe UTCTime)
objectVersion_lastModified = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ObjectVersion' {Maybe RFC822
lastModified :: Maybe RFC822
$sel:lastModified:ObjectVersion' :: ObjectVersion -> Maybe RFC822
lastModified} -> Maybe RFC822
lastModified) (\s :: ObjectVersion
s@ObjectVersion' {} Maybe RFC822
a -> ObjectVersion
s {$sel:lastModified:ObjectVersion' :: Maybe RFC822
lastModified = Maybe RFC822
a} :: ObjectVersion) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
objectVersion_owner :: Lens.Lens' ObjectVersion (Prelude.Maybe Owner)
objectVersion_owner :: Lens' ObjectVersion (Maybe Owner)
objectVersion_owner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ObjectVersion' {Maybe Owner
owner :: Maybe Owner
$sel:owner:ObjectVersion' :: ObjectVersion -> Maybe Owner
owner} -> Maybe Owner
owner) (\s :: ObjectVersion
s@ObjectVersion' {} Maybe Owner
a -> ObjectVersion
s {$sel:owner:ObjectVersion' :: Maybe Owner
owner = Maybe Owner
a} :: ObjectVersion)
objectVersion_size :: Lens.Lens' ObjectVersion (Prelude.Maybe Prelude.Integer)
objectVersion_size :: Lens' ObjectVersion (Maybe Integer)
objectVersion_size = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ObjectVersion' {Maybe Integer
size :: Maybe Integer
$sel:size:ObjectVersion' :: ObjectVersion -> Maybe Integer
size} -> Maybe Integer
size) (\s :: ObjectVersion
s@ObjectVersion' {} Maybe Integer
a -> ObjectVersion
s {$sel:size:ObjectVersion' :: Maybe Integer
size = Maybe Integer
a} :: ObjectVersion)
objectVersion_storageClass :: Lens.Lens' ObjectVersion (Prelude.Maybe ObjectVersionStorageClass)
objectVersion_storageClass :: Lens' ObjectVersion (Maybe ObjectVersionStorageClass)
objectVersion_storageClass = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ObjectVersion' {Maybe ObjectVersionStorageClass
storageClass :: Maybe ObjectVersionStorageClass
$sel:storageClass:ObjectVersion' :: ObjectVersion -> Maybe ObjectVersionStorageClass
storageClass} -> Maybe ObjectVersionStorageClass
storageClass) (\s :: ObjectVersion
s@ObjectVersion' {} Maybe ObjectVersionStorageClass
a -> ObjectVersion
s {$sel:storageClass:ObjectVersion' :: Maybe ObjectVersionStorageClass
storageClass = Maybe ObjectVersionStorageClass
a} :: ObjectVersion)
objectVersion_versionId :: Lens.Lens' ObjectVersion (Prelude.Maybe ObjectVersionId)
objectVersion_versionId :: Lens' ObjectVersion (Maybe ObjectVersionId)
objectVersion_versionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ObjectVersion' {Maybe ObjectVersionId
versionId :: Maybe ObjectVersionId
$sel:versionId:ObjectVersion' :: ObjectVersion -> Maybe ObjectVersionId
versionId} -> Maybe ObjectVersionId
versionId) (\s :: ObjectVersion
s@ObjectVersion' {} Maybe ObjectVersionId
a -> ObjectVersion
s {$sel:versionId:ObjectVersion' :: Maybe ObjectVersionId
versionId = Maybe ObjectVersionId
a} :: ObjectVersion)
instance Data.FromXML ObjectVersion where
parseXML :: [Node] -> Either String ObjectVersion
parseXML [Node]
x =
Maybe [ChecksumAlgorithm]
-> Maybe ETag
-> Maybe Bool
-> Maybe ObjectKey
-> Maybe RFC822
-> Maybe Owner
-> Maybe Integer
-> Maybe ObjectVersionStorageClass
-> Maybe ObjectVersionId
-> ObjectVersion
ObjectVersion'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"ChecksumAlgorithm") [Node]
x)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ETag")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"IsLatest")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Key")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"LastModified")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Owner")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Size")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"StorageClass")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"VersionId")
instance Prelude.Hashable ObjectVersion where
hashWithSalt :: Int -> ObjectVersion -> Int
hashWithSalt Int
_salt ObjectVersion' {Maybe Bool
Maybe Integer
Maybe [ChecksumAlgorithm]
Maybe RFC822
Maybe ObjectKey
Maybe ObjectVersionId
Maybe ETag
Maybe ObjectVersionStorageClass
Maybe Owner
versionId :: Maybe ObjectVersionId
storageClass :: Maybe ObjectVersionStorageClass
size :: Maybe Integer
owner :: Maybe Owner
lastModified :: Maybe RFC822
key :: Maybe ObjectKey
isLatest :: Maybe Bool
eTag :: Maybe ETag
checksumAlgorithm :: Maybe [ChecksumAlgorithm]
$sel:versionId:ObjectVersion' :: ObjectVersion -> Maybe ObjectVersionId
$sel:storageClass:ObjectVersion' :: ObjectVersion -> Maybe ObjectVersionStorageClass
$sel:size:ObjectVersion' :: ObjectVersion -> Maybe Integer
$sel:owner:ObjectVersion' :: ObjectVersion -> Maybe Owner
$sel:lastModified:ObjectVersion' :: ObjectVersion -> Maybe RFC822
$sel:key:ObjectVersion' :: ObjectVersion -> Maybe ObjectKey
$sel:isLatest:ObjectVersion' :: ObjectVersion -> Maybe Bool
$sel:eTag:ObjectVersion' :: ObjectVersion -> Maybe ETag
$sel:checksumAlgorithm:ObjectVersion' :: ObjectVersion -> Maybe [ChecksumAlgorithm]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ChecksumAlgorithm]
checksumAlgorithm
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ETag
eTag
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
isLatest
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ObjectKey
key
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RFC822
lastModified
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Owner
owner
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
size
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ObjectVersionStorageClass
storageClass
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ObjectVersionId
versionId
instance Prelude.NFData ObjectVersion where
rnf :: ObjectVersion -> ()
rnf ObjectVersion' {Maybe Bool
Maybe Integer
Maybe [ChecksumAlgorithm]
Maybe RFC822
Maybe ObjectKey
Maybe ObjectVersionId
Maybe ETag
Maybe ObjectVersionStorageClass
Maybe Owner
versionId :: Maybe ObjectVersionId
storageClass :: Maybe ObjectVersionStorageClass
size :: Maybe Integer
owner :: Maybe Owner
lastModified :: Maybe RFC822
key :: Maybe ObjectKey
isLatest :: Maybe Bool
eTag :: Maybe ETag
checksumAlgorithm :: Maybe [ChecksumAlgorithm]
$sel:versionId:ObjectVersion' :: ObjectVersion -> Maybe ObjectVersionId
$sel:storageClass:ObjectVersion' :: ObjectVersion -> Maybe ObjectVersionStorageClass
$sel:size:ObjectVersion' :: ObjectVersion -> Maybe Integer
$sel:owner:ObjectVersion' :: ObjectVersion -> Maybe Owner
$sel:lastModified:ObjectVersion' :: ObjectVersion -> Maybe RFC822
$sel:key:ObjectVersion' :: ObjectVersion -> Maybe ObjectKey
$sel:isLatest:ObjectVersion' :: ObjectVersion -> Maybe Bool
$sel:eTag:ObjectVersion' :: ObjectVersion -> Maybe ETag
$sel:checksumAlgorithm:ObjectVersion' :: ObjectVersion -> Maybe [ChecksumAlgorithm]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [ChecksumAlgorithm]
checksumAlgorithm
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ETag
eTag
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
isLatest
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ObjectKey
key
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RFC822
lastModified
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Owner
owner
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
size
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ObjectVersionStorageClass
storageClass
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ObjectVersionId
versionId