{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.SecretsManager.DeleteSecret
(
DeleteSecret (..),
newDeleteSecret,
deleteSecret_forceDeleteWithoutRecovery,
deleteSecret_recoveryWindowInDays,
deleteSecret_secretId,
DeleteSecretResponse (..),
newDeleteSecretResponse,
deleteSecretResponse_arn,
deleteSecretResponse_deletionDate,
deleteSecretResponse_name,
deleteSecretResponse_httpStatus,
)
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.SecretsManager.Types
data DeleteSecret = DeleteSecret'
{
DeleteSecret -> Maybe Bool
forceDeleteWithoutRecovery :: Prelude.Maybe Prelude.Bool,
DeleteSecret -> Maybe Integer
recoveryWindowInDays :: Prelude.Maybe Prelude.Integer,
DeleteSecret -> Text
secretId :: Prelude.Text
}
deriving (DeleteSecret -> DeleteSecret -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteSecret -> DeleteSecret -> Bool
$c/= :: DeleteSecret -> DeleteSecret -> Bool
== :: DeleteSecret -> DeleteSecret -> Bool
$c== :: DeleteSecret -> DeleteSecret -> Bool
Prelude.Eq, ReadPrec [DeleteSecret]
ReadPrec DeleteSecret
Int -> ReadS DeleteSecret
ReadS [DeleteSecret]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteSecret]
$creadListPrec :: ReadPrec [DeleteSecret]
readPrec :: ReadPrec DeleteSecret
$creadPrec :: ReadPrec DeleteSecret
readList :: ReadS [DeleteSecret]
$creadList :: ReadS [DeleteSecret]
readsPrec :: Int -> ReadS DeleteSecret
$creadsPrec :: Int -> ReadS DeleteSecret
Prelude.Read, Int -> DeleteSecret -> ShowS
[DeleteSecret] -> ShowS
DeleteSecret -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteSecret] -> ShowS
$cshowList :: [DeleteSecret] -> ShowS
show :: DeleteSecret -> String
$cshow :: DeleteSecret -> String
showsPrec :: Int -> DeleteSecret -> ShowS
$cshowsPrec :: Int -> DeleteSecret -> ShowS
Prelude.Show, forall x. Rep DeleteSecret x -> DeleteSecret
forall x. DeleteSecret -> Rep DeleteSecret x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteSecret x -> DeleteSecret
$cfrom :: forall x. DeleteSecret -> Rep DeleteSecret x
Prelude.Generic)
newDeleteSecret ::
Prelude.Text ->
DeleteSecret
newDeleteSecret :: Text -> DeleteSecret
newDeleteSecret Text
pSecretId_ =
DeleteSecret'
{ $sel:forceDeleteWithoutRecovery:DeleteSecret' :: Maybe Bool
forceDeleteWithoutRecovery =
forall a. Maybe a
Prelude.Nothing,
$sel:recoveryWindowInDays:DeleteSecret' :: Maybe Integer
recoveryWindowInDays = forall a. Maybe a
Prelude.Nothing,
$sel:secretId:DeleteSecret' :: Text
secretId = Text
pSecretId_
}
deleteSecret_forceDeleteWithoutRecovery :: Lens.Lens' DeleteSecret (Prelude.Maybe Prelude.Bool)
deleteSecret_forceDeleteWithoutRecovery :: Lens' DeleteSecret (Maybe Bool)
deleteSecret_forceDeleteWithoutRecovery = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteSecret' {Maybe Bool
forceDeleteWithoutRecovery :: Maybe Bool
$sel:forceDeleteWithoutRecovery:DeleteSecret' :: DeleteSecret -> Maybe Bool
forceDeleteWithoutRecovery} -> Maybe Bool
forceDeleteWithoutRecovery) (\s :: DeleteSecret
s@DeleteSecret' {} Maybe Bool
a -> DeleteSecret
s {$sel:forceDeleteWithoutRecovery:DeleteSecret' :: Maybe Bool
forceDeleteWithoutRecovery = Maybe Bool
a} :: DeleteSecret)
deleteSecret_recoveryWindowInDays :: Lens.Lens' DeleteSecret (Prelude.Maybe Prelude.Integer)
deleteSecret_recoveryWindowInDays :: Lens' DeleteSecret (Maybe Integer)
deleteSecret_recoveryWindowInDays = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteSecret' {Maybe Integer
recoveryWindowInDays :: Maybe Integer
$sel:recoveryWindowInDays:DeleteSecret' :: DeleteSecret -> Maybe Integer
recoveryWindowInDays} -> Maybe Integer
recoveryWindowInDays) (\s :: DeleteSecret
s@DeleteSecret' {} Maybe Integer
a -> DeleteSecret
s {$sel:recoveryWindowInDays:DeleteSecret' :: Maybe Integer
recoveryWindowInDays = Maybe Integer
a} :: DeleteSecret)
deleteSecret_secretId :: Lens.Lens' DeleteSecret Prelude.Text
deleteSecret_secretId :: Lens' DeleteSecret Text
deleteSecret_secretId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteSecret' {Text
secretId :: Text
$sel:secretId:DeleteSecret' :: DeleteSecret -> Text
secretId} -> Text
secretId) (\s :: DeleteSecret
s@DeleteSecret' {} Text
a -> DeleteSecret
s {$sel:secretId:DeleteSecret' :: Text
secretId = Text
a} :: DeleteSecret)
instance Core.AWSRequest DeleteSecret where
type AWSResponse DeleteSecret = DeleteSecretResponse
request :: (Service -> Service) -> DeleteSecret -> Request DeleteSecret
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DeleteSecret
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DeleteSecret)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe Text
-> Maybe POSIX -> Maybe Text -> Int -> DeleteSecretResponse
DeleteSecretResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ARN")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"DeletionDate")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Name")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable DeleteSecret where
hashWithSalt :: Int -> DeleteSecret -> Int
hashWithSalt Int
_salt DeleteSecret' {Maybe Bool
Maybe Integer
Text
secretId :: Text
recoveryWindowInDays :: Maybe Integer
forceDeleteWithoutRecovery :: Maybe Bool
$sel:secretId:DeleteSecret' :: DeleteSecret -> Text
$sel:recoveryWindowInDays:DeleteSecret' :: DeleteSecret -> Maybe Integer
$sel:forceDeleteWithoutRecovery:DeleteSecret' :: DeleteSecret -> Maybe Bool
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
forceDeleteWithoutRecovery
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
recoveryWindowInDays
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
secretId
instance Prelude.NFData DeleteSecret where
rnf :: DeleteSecret -> ()
rnf DeleteSecret' {Maybe Bool
Maybe Integer
Text
secretId :: Text
recoveryWindowInDays :: Maybe Integer
forceDeleteWithoutRecovery :: Maybe Bool
$sel:secretId:DeleteSecret' :: DeleteSecret -> Text
$sel:recoveryWindowInDays:DeleteSecret' :: DeleteSecret -> Maybe Integer
$sel:forceDeleteWithoutRecovery:DeleteSecret' :: DeleteSecret -> Maybe Bool
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
forceDeleteWithoutRecovery
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
recoveryWindowInDays
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
secretId
instance Data.ToHeaders DeleteSecret where
toHeaders :: DeleteSecret -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"secretsmanager.DeleteSecret" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON DeleteSecret where
toJSON :: DeleteSecret -> Value
toJSON DeleteSecret' {Maybe Bool
Maybe Integer
Text
secretId :: Text
recoveryWindowInDays :: Maybe Integer
forceDeleteWithoutRecovery :: Maybe Bool
$sel:secretId:DeleteSecret' :: DeleteSecret -> Text
$sel:recoveryWindowInDays:DeleteSecret' :: DeleteSecret -> Maybe Integer
$sel:forceDeleteWithoutRecovery:DeleteSecret' :: DeleteSecret -> Maybe Bool
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"ForceDeleteWithoutRecovery" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
forceDeleteWithoutRecovery,
(Key
"RecoveryWindowInDays" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Integer
recoveryWindowInDays,
forall a. a -> Maybe a
Prelude.Just (Key
"SecretId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
secretId)
]
)
instance Data.ToPath DeleteSecret where
toPath :: DeleteSecret -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DeleteSecret where
toQuery :: DeleteSecret -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DeleteSecretResponse = DeleteSecretResponse'
{
DeleteSecretResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
DeleteSecretResponse -> Maybe POSIX
deletionDate :: Prelude.Maybe Data.POSIX,
DeleteSecretResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
DeleteSecretResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DeleteSecretResponse -> DeleteSecretResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteSecretResponse -> DeleteSecretResponse -> Bool
$c/= :: DeleteSecretResponse -> DeleteSecretResponse -> Bool
== :: DeleteSecretResponse -> DeleteSecretResponse -> Bool
$c== :: DeleteSecretResponse -> DeleteSecretResponse -> Bool
Prelude.Eq, ReadPrec [DeleteSecretResponse]
ReadPrec DeleteSecretResponse
Int -> ReadS DeleteSecretResponse
ReadS [DeleteSecretResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteSecretResponse]
$creadListPrec :: ReadPrec [DeleteSecretResponse]
readPrec :: ReadPrec DeleteSecretResponse
$creadPrec :: ReadPrec DeleteSecretResponse
readList :: ReadS [DeleteSecretResponse]
$creadList :: ReadS [DeleteSecretResponse]
readsPrec :: Int -> ReadS DeleteSecretResponse
$creadsPrec :: Int -> ReadS DeleteSecretResponse
Prelude.Read, Int -> DeleteSecretResponse -> ShowS
[DeleteSecretResponse] -> ShowS
DeleteSecretResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteSecretResponse] -> ShowS
$cshowList :: [DeleteSecretResponse] -> ShowS
show :: DeleteSecretResponse -> String
$cshow :: DeleteSecretResponse -> String
showsPrec :: Int -> DeleteSecretResponse -> ShowS
$cshowsPrec :: Int -> DeleteSecretResponse -> ShowS
Prelude.Show, forall x. Rep DeleteSecretResponse x -> DeleteSecretResponse
forall x. DeleteSecretResponse -> Rep DeleteSecretResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteSecretResponse x -> DeleteSecretResponse
$cfrom :: forall x. DeleteSecretResponse -> Rep DeleteSecretResponse x
Prelude.Generic)
newDeleteSecretResponse ::
Prelude.Int ->
DeleteSecretResponse
newDeleteSecretResponse :: Int -> DeleteSecretResponse
newDeleteSecretResponse Int
pHttpStatus_ =
DeleteSecretResponse'
{ $sel:arn:DeleteSecretResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
$sel:deletionDate:DeleteSecretResponse' :: Maybe POSIX
deletionDate = forall a. Maybe a
Prelude.Nothing,
$sel:name:DeleteSecretResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DeleteSecretResponse' :: Int
httpStatus = Int
pHttpStatus_
}
deleteSecretResponse_arn :: Lens.Lens' DeleteSecretResponse (Prelude.Maybe Prelude.Text)
deleteSecretResponse_arn :: Lens' DeleteSecretResponse (Maybe Text)
deleteSecretResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteSecretResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:DeleteSecretResponse' :: DeleteSecretResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: DeleteSecretResponse
s@DeleteSecretResponse' {} Maybe Text
a -> DeleteSecretResponse
s {$sel:arn:DeleteSecretResponse' :: Maybe Text
arn = Maybe Text
a} :: DeleteSecretResponse)
deleteSecretResponse_deletionDate :: Lens.Lens' DeleteSecretResponse (Prelude.Maybe Prelude.UTCTime)
deleteSecretResponse_deletionDate :: Lens' DeleteSecretResponse (Maybe UTCTime)
deleteSecretResponse_deletionDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteSecretResponse' {Maybe POSIX
deletionDate :: Maybe POSIX
$sel:deletionDate:DeleteSecretResponse' :: DeleteSecretResponse -> Maybe POSIX
deletionDate} -> Maybe POSIX
deletionDate) (\s :: DeleteSecretResponse
s@DeleteSecretResponse' {} Maybe POSIX
a -> DeleteSecretResponse
s {$sel:deletionDate:DeleteSecretResponse' :: Maybe POSIX
deletionDate = Maybe POSIX
a} :: DeleteSecretResponse) 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
deleteSecretResponse_name :: Lens.Lens' DeleteSecretResponse (Prelude.Maybe Prelude.Text)
deleteSecretResponse_name :: Lens' DeleteSecretResponse (Maybe Text)
deleteSecretResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteSecretResponse' {Maybe Text
name :: Maybe Text
$sel:name:DeleteSecretResponse' :: DeleteSecretResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: DeleteSecretResponse
s@DeleteSecretResponse' {} Maybe Text
a -> DeleteSecretResponse
s {$sel:name:DeleteSecretResponse' :: Maybe Text
name = Maybe Text
a} :: DeleteSecretResponse)
deleteSecretResponse_httpStatus :: Lens.Lens' DeleteSecretResponse Prelude.Int
deleteSecretResponse_httpStatus :: Lens' DeleteSecretResponse Int
deleteSecretResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteSecretResponse' {Int
httpStatus :: Int
$sel:httpStatus:DeleteSecretResponse' :: DeleteSecretResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DeleteSecretResponse
s@DeleteSecretResponse' {} Int
a -> DeleteSecretResponse
s {$sel:httpStatus:DeleteSecretResponse' :: Int
httpStatus = Int
a} :: DeleteSecretResponse)
instance Prelude.NFData DeleteSecretResponse where
rnf :: DeleteSecretResponse -> ()
rnf DeleteSecretResponse' {Int
Maybe Text
Maybe POSIX
httpStatus :: Int
name :: Maybe Text
deletionDate :: Maybe POSIX
arn :: Maybe Text
$sel:httpStatus:DeleteSecretResponse' :: DeleteSecretResponse -> Int
$sel:name:DeleteSecretResponse' :: DeleteSecretResponse -> Maybe Text
$sel:deletionDate:DeleteSecretResponse' :: DeleteSecretResponse -> Maybe POSIX
$sel:arn:DeleteSecretResponse' :: DeleteSecretResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
deletionDate
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus