{-# 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.WorkMail.DeleteOrganization
(
DeleteOrganization (..),
newDeleteOrganization,
deleteOrganization_clientToken,
deleteOrganization_organizationId,
deleteOrganization_deleteDirectory,
DeleteOrganizationResponse (..),
newDeleteOrganizationResponse,
deleteOrganizationResponse_organizationId,
deleteOrganizationResponse_state,
deleteOrganizationResponse_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.WorkMail.Types
data DeleteOrganization = DeleteOrganization'
{
DeleteOrganization -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
DeleteOrganization -> Text
organizationId :: Prelude.Text,
DeleteOrganization -> Bool
deleteDirectory :: Prelude.Bool
}
deriving (DeleteOrganization -> DeleteOrganization -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteOrganization -> DeleteOrganization -> Bool
$c/= :: DeleteOrganization -> DeleteOrganization -> Bool
== :: DeleteOrganization -> DeleteOrganization -> Bool
$c== :: DeleteOrganization -> DeleteOrganization -> Bool
Prelude.Eq, ReadPrec [DeleteOrganization]
ReadPrec DeleteOrganization
Int -> ReadS DeleteOrganization
ReadS [DeleteOrganization]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteOrganization]
$creadListPrec :: ReadPrec [DeleteOrganization]
readPrec :: ReadPrec DeleteOrganization
$creadPrec :: ReadPrec DeleteOrganization
readList :: ReadS [DeleteOrganization]
$creadList :: ReadS [DeleteOrganization]
readsPrec :: Int -> ReadS DeleteOrganization
$creadsPrec :: Int -> ReadS DeleteOrganization
Prelude.Read, Int -> DeleteOrganization -> ShowS
[DeleteOrganization] -> ShowS
DeleteOrganization -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteOrganization] -> ShowS
$cshowList :: [DeleteOrganization] -> ShowS
show :: DeleteOrganization -> String
$cshow :: DeleteOrganization -> String
showsPrec :: Int -> DeleteOrganization -> ShowS
$cshowsPrec :: Int -> DeleteOrganization -> ShowS
Prelude.Show, forall x. Rep DeleteOrganization x -> DeleteOrganization
forall x. DeleteOrganization -> Rep DeleteOrganization x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteOrganization x -> DeleteOrganization
$cfrom :: forall x. DeleteOrganization -> Rep DeleteOrganization x
Prelude.Generic)
newDeleteOrganization ::
Prelude.Text ->
Prelude.Bool ->
DeleteOrganization
newDeleteOrganization :: Text -> Bool -> DeleteOrganization
newDeleteOrganization
Text
pOrganizationId_
Bool
pDeleteDirectory_ =
DeleteOrganization'
{ $sel:clientToken:DeleteOrganization' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
$sel:organizationId:DeleteOrganization' :: Text
organizationId = Text
pOrganizationId_,
$sel:deleteDirectory:DeleteOrganization' :: Bool
deleteDirectory = Bool
pDeleteDirectory_
}
deleteOrganization_clientToken :: Lens.Lens' DeleteOrganization (Prelude.Maybe Prelude.Text)
deleteOrganization_clientToken :: Lens' DeleteOrganization (Maybe Text)
deleteOrganization_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteOrganization' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:DeleteOrganization' :: DeleteOrganization -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: DeleteOrganization
s@DeleteOrganization' {} Maybe Text
a -> DeleteOrganization
s {$sel:clientToken:DeleteOrganization' :: Maybe Text
clientToken = Maybe Text
a} :: DeleteOrganization)
deleteOrganization_organizationId :: Lens.Lens' DeleteOrganization Prelude.Text
deleteOrganization_organizationId :: Lens' DeleteOrganization Text
deleteOrganization_organizationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteOrganization' {Text
organizationId :: Text
$sel:organizationId:DeleteOrganization' :: DeleteOrganization -> Text
organizationId} -> Text
organizationId) (\s :: DeleteOrganization
s@DeleteOrganization' {} Text
a -> DeleteOrganization
s {$sel:organizationId:DeleteOrganization' :: Text
organizationId = Text
a} :: DeleteOrganization)
deleteOrganization_deleteDirectory :: Lens.Lens' DeleteOrganization Prelude.Bool
deleteOrganization_deleteDirectory :: Lens' DeleteOrganization Bool
deleteOrganization_deleteDirectory = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteOrganization' {Bool
deleteDirectory :: Bool
$sel:deleteDirectory:DeleteOrganization' :: DeleteOrganization -> Bool
deleteDirectory} -> Bool
deleteDirectory) (\s :: DeleteOrganization
s@DeleteOrganization' {} Bool
a -> DeleteOrganization
s {$sel:deleteDirectory:DeleteOrganization' :: Bool
deleteDirectory = Bool
a} :: DeleteOrganization)
instance Core.AWSRequest DeleteOrganization where
type
AWSResponse DeleteOrganization =
DeleteOrganizationResponse
request :: (Service -> Service)
-> DeleteOrganization -> Request DeleteOrganization
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 DeleteOrganization
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse DeleteOrganization)))
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 Text -> Int -> DeleteOrganizationResponse
DeleteOrganizationResponse'
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
"OrganizationId")
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
"State")
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 DeleteOrganization where
hashWithSalt :: Int -> DeleteOrganization -> Int
hashWithSalt Int
_salt DeleteOrganization' {Bool
Maybe Text
Text
deleteDirectory :: Bool
organizationId :: Text
clientToken :: Maybe Text
$sel:deleteDirectory:DeleteOrganization' :: DeleteOrganization -> Bool
$sel:organizationId:DeleteOrganization' :: DeleteOrganization -> Text
$sel:clientToken:DeleteOrganization' :: DeleteOrganization -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
organizationId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Bool
deleteDirectory
instance Prelude.NFData DeleteOrganization where
rnf :: DeleteOrganization -> ()
rnf DeleteOrganization' {Bool
Maybe Text
Text
deleteDirectory :: Bool
organizationId :: Text
clientToken :: Maybe Text
$sel:deleteDirectory:DeleteOrganization' :: DeleteOrganization -> Bool
$sel:organizationId:DeleteOrganization' :: DeleteOrganization -> Text
$sel:clientToken:DeleteOrganization' :: DeleteOrganization -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
organizationId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Bool
deleteDirectory
instance Data.ToHeaders DeleteOrganization where
toHeaders :: DeleteOrganization -> 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
"WorkMailService.DeleteOrganization" ::
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 DeleteOrganization where
toJSON :: DeleteOrganization -> Value
toJSON DeleteOrganization' {Bool
Maybe Text
Text
deleteDirectory :: Bool
organizationId :: Text
clientToken :: Maybe Text
$sel:deleteDirectory:DeleteOrganization' :: DeleteOrganization -> Bool
$sel:organizationId:DeleteOrganization' :: DeleteOrganization -> Text
$sel:clientToken:DeleteOrganization' :: DeleteOrganization -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"ClientToken" 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 Text
clientToken,
forall a. a -> Maybe a
Prelude.Just
(Key
"OrganizationId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
organizationId),
forall a. a -> Maybe a
Prelude.Just
(Key
"DeleteDirectory" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Bool
deleteDirectory)
]
)
instance Data.ToPath DeleteOrganization where
toPath :: DeleteOrganization -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DeleteOrganization where
toQuery :: DeleteOrganization -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DeleteOrganizationResponse = DeleteOrganizationResponse'
{
DeleteOrganizationResponse -> Maybe Text
organizationId :: Prelude.Maybe Prelude.Text,
DeleteOrganizationResponse -> Maybe Text
state :: Prelude.Maybe Prelude.Text,
DeleteOrganizationResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DeleteOrganizationResponse -> DeleteOrganizationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteOrganizationResponse -> DeleteOrganizationResponse -> Bool
$c/= :: DeleteOrganizationResponse -> DeleteOrganizationResponse -> Bool
== :: DeleteOrganizationResponse -> DeleteOrganizationResponse -> Bool
$c== :: DeleteOrganizationResponse -> DeleteOrganizationResponse -> Bool
Prelude.Eq, ReadPrec [DeleteOrganizationResponse]
ReadPrec DeleteOrganizationResponse
Int -> ReadS DeleteOrganizationResponse
ReadS [DeleteOrganizationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteOrganizationResponse]
$creadListPrec :: ReadPrec [DeleteOrganizationResponse]
readPrec :: ReadPrec DeleteOrganizationResponse
$creadPrec :: ReadPrec DeleteOrganizationResponse
readList :: ReadS [DeleteOrganizationResponse]
$creadList :: ReadS [DeleteOrganizationResponse]
readsPrec :: Int -> ReadS DeleteOrganizationResponse
$creadsPrec :: Int -> ReadS DeleteOrganizationResponse
Prelude.Read, Int -> DeleteOrganizationResponse -> ShowS
[DeleteOrganizationResponse] -> ShowS
DeleteOrganizationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteOrganizationResponse] -> ShowS
$cshowList :: [DeleteOrganizationResponse] -> ShowS
show :: DeleteOrganizationResponse -> String
$cshow :: DeleteOrganizationResponse -> String
showsPrec :: Int -> DeleteOrganizationResponse -> ShowS
$cshowsPrec :: Int -> DeleteOrganizationResponse -> ShowS
Prelude.Show, forall x.
Rep DeleteOrganizationResponse x -> DeleteOrganizationResponse
forall x.
DeleteOrganizationResponse -> Rep DeleteOrganizationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteOrganizationResponse x -> DeleteOrganizationResponse
$cfrom :: forall x.
DeleteOrganizationResponse -> Rep DeleteOrganizationResponse x
Prelude.Generic)
newDeleteOrganizationResponse ::
Prelude.Int ->
DeleteOrganizationResponse
newDeleteOrganizationResponse :: Int -> DeleteOrganizationResponse
newDeleteOrganizationResponse Int
pHttpStatus_ =
DeleteOrganizationResponse'
{ $sel:organizationId:DeleteOrganizationResponse' :: Maybe Text
organizationId =
forall a. Maybe a
Prelude.Nothing,
$sel:state:DeleteOrganizationResponse' :: Maybe Text
state = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DeleteOrganizationResponse' :: Int
httpStatus = Int
pHttpStatus_
}
deleteOrganizationResponse_organizationId :: Lens.Lens' DeleteOrganizationResponse (Prelude.Maybe Prelude.Text)
deleteOrganizationResponse_organizationId :: Lens' DeleteOrganizationResponse (Maybe Text)
deleteOrganizationResponse_organizationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteOrganizationResponse' {Maybe Text
organizationId :: Maybe Text
$sel:organizationId:DeleteOrganizationResponse' :: DeleteOrganizationResponse -> Maybe Text
organizationId} -> Maybe Text
organizationId) (\s :: DeleteOrganizationResponse
s@DeleteOrganizationResponse' {} Maybe Text
a -> DeleteOrganizationResponse
s {$sel:organizationId:DeleteOrganizationResponse' :: Maybe Text
organizationId = Maybe Text
a} :: DeleteOrganizationResponse)
deleteOrganizationResponse_state :: Lens.Lens' DeleteOrganizationResponse (Prelude.Maybe Prelude.Text)
deleteOrganizationResponse_state :: Lens' DeleteOrganizationResponse (Maybe Text)
deleteOrganizationResponse_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteOrganizationResponse' {Maybe Text
state :: Maybe Text
$sel:state:DeleteOrganizationResponse' :: DeleteOrganizationResponse -> Maybe Text
state} -> Maybe Text
state) (\s :: DeleteOrganizationResponse
s@DeleteOrganizationResponse' {} Maybe Text
a -> DeleteOrganizationResponse
s {$sel:state:DeleteOrganizationResponse' :: Maybe Text
state = Maybe Text
a} :: DeleteOrganizationResponse)
deleteOrganizationResponse_httpStatus :: Lens.Lens' DeleteOrganizationResponse Prelude.Int
deleteOrganizationResponse_httpStatus :: Lens' DeleteOrganizationResponse Int
deleteOrganizationResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteOrganizationResponse' {Int
httpStatus :: Int
$sel:httpStatus:DeleteOrganizationResponse' :: DeleteOrganizationResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DeleteOrganizationResponse
s@DeleteOrganizationResponse' {} Int
a -> DeleteOrganizationResponse
s {$sel:httpStatus:DeleteOrganizationResponse' :: Int
httpStatus = Int
a} :: DeleteOrganizationResponse)
instance Prelude.NFData DeleteOrganizationResponse where
rnf :: DeleteOrganizationResponse -> ()
rnf DeleteOrganizationResponse' {Int
Maybe Text
httpStatus :: Int
state :: Maybe Text
organizationId :: Maybe Text
$sel:httpStatus:DeleteOrganizationResponse' :: DeleteOrganizationResponse -> Int
$sel:state:DeleteOrganizationResponse' :: DeleteOrganizationResponse -> Maybe Text
$sel:organizationId:DeleteOrganizationResponse' :: DeleteOrganizationResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
organizationId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
state
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus