{-# 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.ObjectIdentifier 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
data ObjectIdentifier = ObjectIdentifier'
{
ObjectIdentifier -> Maybe ObjectVersionId
versionId :: Prelude.Maybe ObjectVersionId,
ObjectIdentifier -> ObjectKey
key :: ObjectKey
}
deriving (ObjectIdentifier -> ObjectIdentifier -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ObjectIdentifier -> ObjectIdentifier -> Bool
$c/= :: ObjectIdentifier -> ObjectIdentifier -> Bool
== :: ObjectIdentifier -> ObjectIdentifier -> Bool
$c== :: ObjectIdentifier -> ObjectIdentifier -> Bool
Prelude.Eq, ReadPrec [ObjectIdentifier]
ReadPrec ObjectIdentifier
Int -> ReadS ObjectIdentifier
ReadS [ObjectIdentifier]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ObjectIdentifier]
$creadListPrec :: ReadPrec [ObjectIdentifier]
readPrec :: ReadPrec ObjectIdentifier
$creadPrec :: ReadPrec ObjectIdentifier
readList :: ReadS [ObjectIdentifier]
$creadList :: ReadS [ObjectIdentifier]
readsPrec :: Int -> ReadS ObjectIdentifier
$creadsPrec :: Int -> ReadS ObjectIdentifier
Prelude.Read, Int -> ObjectIdentifier -> ShowS
[ObjectIdentifier] -> ShowS
ObjectIdentifier -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ObjectIdentifier] -> ShowS
$cshowList :: [ObjectIdentifier] -> ShowS
show :: ObjectIdentifier -> String
$cshow :: ObjectIdentifier -> String
showsPrec :: Int -> ObjectIdentifier -> ShowS
$cshowsPrec :: Int -> ObjectIdentifier -> ShowS
Prelude.Show, forall x. Rep ObjectIdentifier x -> ObjectIdentifier
forall x. ObjectIdentifier -> Rep ObjectIdentifier x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ObjectIdentifier x -> ObjectIdentifier
$cfrom :: forall x. ObjectIdentifier -> Rep ObjectIdentifier x
Prelude.Generic)
newObjectIdentifier ::
ObjectKey ->
ObjectIdentifier
newObjectIdentifier :: ObjectKey -> ObjectIdentifier
newObjectIdentifier ObjectKey
pKey_ =
ObjectIdentifier'
{ $sel:versionId:ObjectIdentifier' :: Maybe ObjectVersionId
versionId = forall a. Maybe a
Prelude.Nothing,
$sel:key:ObjectIdentifier' :: ObjectKey
key = ObjectKey
pKey_
}
objectIdentifier_versionId :: Lens.Lens' ObjectIdentifier (Prelude.Maybe ObjectVersionId)
objectIdentifier_versionId :: Lens' ObjectIdentifier (Maybe ObjectVersionId)
objectIdentifier_versionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ObjectIdentifier' {Maybe ObjectVersionId
versionId :: Maybe ObjectVersionId
$sel:versionId:ObjectIdentifier' :: ObjectIdentifier -> Maybe ObjectVersionId
versionId} -> Maybe ObjectVersionId
versionId) (\s :: ObjectIdentifier
s@ObjectIdentifier' {} Maybe ObjectVersionId
a -> ObjectIdentifier
s {$sel:versionId:ObjectIdentifier' :: Maybe ObjectVersionId
versionId = Maybe ObjectVersionId
a} :: ObjectIdentifier)
objectIdentifier_key :: Lens.Lens' ObjectIdentifier ObjectKey
objectIdentifier_key :: Lens' ObjectIdentifier ObjectKey
objectIdentifier_key = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ObjectIdentifier' {ObjectKey
key :: ObjectKey
$sel:key:ObjectIdentifier' :: ObjectIdentifier -> ObjectKey
key} -> ObjectKey
key) (\s :: ObjectIdentifier
s@ObjectIdentifier' {} ObjectKey
a -> ObjectIdentifier
s {$sel:key:ObjectIdentifier' :: ObjectKey
key = ObjectKey
a} :: ObjectIdentifier)
instance Prelude.Hashable ObjectIdentifier where
hashWithSalt :: Int -> ObjectIdentifier -> Int
hashWithSalt Int
_salt ObjectIdentifier' {Maybe ObjectVersionId
ObjectKey
key :: ObjectKey
versionId :: Maybe ObjectVersionId
$sel:key:ObjectIdentifier' :: ObjectIdentifier -> ObjectKey
$sel:versionId:ObjectIdentifier' :: ObjectIdentifier -> Maybe ObjectVersionId
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ObjectVersionId
versionId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ObjectKey
key
instance Prelude.NFData ObjectIdentifier where
rnf :: ObjectIdentifier -> ()
rnf ObjectIdentifier' {Maybe ObjectVersionId
ObjectKey
key :: ObjectKey
versionId :: Maybe ObjectVersionId
$sel:key:ObjectIdentifier' :: ObjectIdentifier -> ObjectKey
$sel:versionId:ObjectIdentifier' :: ObjectIdentifier -> Maybe ObjectVersionId
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ObjectVersionId
versionId seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ObjectKey
key
instance Data.ToXML ObjectIdentifier where
toXML :: ObjectIdentifier -> XML
toXML ObjectIdentifier' {Maybe ObjectVersionId
ObjectKey
key :: ObjectKey
versionId :: Maybe ObjectVersionId
$sel:key:ObjectIdentifier' :: ObjectIdentifier -> ObjectKey
$sel:versionId:ObjectIdentifier' :: ObjectIdentifier -> Maybe ObjectVersionId
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[Name
"VersionId" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe ObjectVersionId
versionId, Name
"Key" forall a. ToXML a => Name -> a -> XML
Data.@= ObjectKey
key]