{-# 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.Organizations.DetachPolicy
(
DetachPolicy (..),
newDetachPolicy,
detachPolicy_policyId,
detachPolicy_targetId,
DetachPolicyResponse (..),
newDetachPolicyResponse,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Organizations.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data DetachPolicy = DetachPolicy'
{
DetachPolicy -> Text
policyId :: Prelude.Text,
DetachPolicy -> Text
targetId :: Prelude.Text
}
deriving (DetachPolicy -> DetachPolicy -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DetachPolicy -> DetachPolicy -> Bool
$c/= :: DetachPolicy -> DetachPolicy -> Bool
== :: DetachPolicy -> DetachPolicy -> Bool
$c== :: DetachPolicy -> DetachPolicy -> Bool
Prelude.Eq, ReadPrec [DetachPolicy]
ReadPrec DetachPolicy
Int -> ReadS DetachPolicy
ReadS [DetachPolicy]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DetachPolicy]
$creadListPrec :: ReadPrec [DetachPolicy]
readPrec :: ReadPrec DetachPolicy
$creadPrec :: ReadPrec DetachPolicy
readList :: ReadS [DetachPolicy]
$creadList :: ReadS [DetachPolicy]
readsPrec :: Int -> ReadS DetachPolicy
$creadsPrec :: Int -> ReadS DetachPolicy
Prelude.Read, Int -> DetachPolicy -> ShowS
[DetachPolicy] -> ShowS
DetachPolicy -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DetachPolicy] -> ShowS
$cshowList :: [DetachPolicy] -> ShowS
show :: DetachPolicy -> String
$cshow :: DetachPolicy -> String
showsPrec :: Int -> DetachPolicy -> ShowS
$cshowsPrec :: Int -> DetachPolicy -> ShowS
Prelude.Show, forall x. Rep DetachPolicy x -> DetachPolicy
forall x. DetachPolicy -> Rep DetachPolicy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DetachPolicy x -> DetachPolicy
$cfrom :: forall x. DetachPolicy -> Rep DetachPolicy x
Prelude.Generic)
newDetachPolicy ::
Prelude.Text ->
Prelude.Text ->
DetachPolicy
newDetachPolicy :: Text -> Text -> DetachPolicy
newDetachPolicy Text
pPolicyId_ Text
pTargetId_ =
DetachPolicy'
{ $sel:policyId:DetachPolicy' :: Text
policyId = Text
pPolicyId_,
$sel:targetId:DetachPolicy' :: Text
targetId = Text
pTargetId_
}
detachPolicy_policyId :: Lens.Lens' DetachPolicy Prelude.Text
detachPolicy_policyId :: Lens' DetachPolicy Text
detachPolicy_policyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DetachPolicy' {Text
policyId :: Text
$sel:policyId:DetachPolicy' :: DetachPolicy -> Text
policyId} -> Text
policyId) (\s :: DetachPolicy
s@DetachPolicy' {} Text
a -> DetachPolicy
s {$sel:policyId:DetachPolicy' :: Text
policyId = Text
a} :: DetachPolicy)
detachPolicy_targetId :: Lens.Lens' DetachPolicy Prelude.Text
detachPolicy_targetId :: Lens' DetachPolicy Text
detachPolicy_targetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DetachPolicy' {Text
targetId :: Text
$sel:targetId:DetachPolicy' :: DetachPolicy -> Text
targetId} -> Text
targetId) (\s :: DetachPolicy
s@DetachPolicy' {} Text
a -> DetachPolicy
s {$sel:targetId:DetachPolicy' :: Text
targetId = Text
a} :: DetachPolicy)
instance Core.AWSRequest DetachPolicy where
type AWSResponse DetachPolicy = DetachPolicyResponse
request :: (Service -> Service) -> DetachPolicy -> Request DetachPolicy
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 DetachPolicy
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DetachPolicy)))
response = forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull DetachPolicyResponse
DetachPolicyResponse'
instance Prelude.Hashable DetachPolicy where
hashWithSalt :: Int -> DetachPolicy -> Int
hashWithSalt Int
_salt DetachPolicy' {Text
targetId :: Text
policyId :: Text
$sel:targetId:DetachPolicy' :: DetachPolicy -> Text
$sel:policyId:DetachPolicy' :: DetachPolicy -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
policyId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
targetId
instance Prelude.NFData DetachPolicy where
rnf :: DetachPolicy -> ()
rnf DetachPolicy' {Text
targetId :: Text
policyId :: Text
$sel:targetId:DetachPolicy' :: DetachPolicy -> Text
$sel:policyId:DetachPolicy' :: DetachPolicy -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
policyId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
targetId
instance Data.ToHeaders DetachPolicy where
toHeaders :: DetachPolicy -> [Header]
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 -> [Header]
Data.=# ( ByteString
"AWSOrganizationsV20161128.DetachPolicy" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON DetachPolicy where
toJSON :: DetachPolicy -> Value
toJSON DetachPolicy' {Text
targetId :: Text
policyId :: Text
$sel:targetId:DetachPolicy' :: DetachPolicy -> Text
$sel:policyId:DetachPolicy' :: DetachPolicy -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"PolicyId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
policyId),
forall a. a -> Maybe a
Prelude.Just (Key
"TargetId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
targetId)
]
)
instance Data.ToPath DetachPolicy where
toPath :: DetachPolicy -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DetachPolicy where
toQuery :: DetachPolicy -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DetachPolicyResponse = DetachPolicyResponse'
{
}
deriving (DetachPolicyResponse -> DetachPolicyResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DetachPolicyResponse -> DetachPolicyResponse -> Bool
$c/= :: DetachPolicyResponse -> DetachPolicyResponse -> Bool
== :: DetachPolicyResponse -> DetachPolicyResponse -> Bool
$c== :: DetachPolicyResponse -> DetachPolicyResponse -> Bool
Prelude.Eq, ReadPrec [DetachPolicyResponse]
ReadPrec DetachPolicyResponse
Int -> ReadS DetachPolicyResponse
ReadS [DetachPolicyResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DetachPolicyResponse]
$creadListPrec :: ReadPrec [DetachPolicyResponse]
readPrec :: ReadPrec DetachPolicyResponse
$creadPrec :: ReadPrec DetachPolicyResponse
readList :: ReadS [DetachPolicyResponse]
$creadList :: ReadS [DetachPolicyResponse]
readsPrec :: Int -> ReadS DetachPolicyResponse
$creadsPrec :: Int -> ReadS DetachPolicyResponse
Prelude.Read, Int -> DetachPolicyResponse -> ShowS
[DetachPolicyResponse] -> ShowS
DetachPolicyResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DetachPolicyResponse] -> ShowS
$cshowList :: [DetachPolicyResponse] -> ShowS
show :: DetachPolicyResponse -> String
$cshow :: DetachPolicyResponse -> String
showsPrec :: Int -> DetachPolicyResponse -> ShowS
$cshowsPrec :: Int -> DetachPolicyResponse -> ShowS
Prelude.Show, forall x. Rep DetachPolicyResponse x -> DetachPolicyResponse
forall x. DetachPolicyResponse -> Rep DetachPolicyResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DetachPolicyResponse x -> DetachPolicyResponse
$cfrom :: forall x. DetachPolicyResponse -> Rep DetachPolicyResponse x
Prelude.Generic)
newDetachPolicyResponse ::
DetachPolicyResponse
newDetachPolicyResponse :: DetachPolicyResponse
newDetachPolicyResponse = DetachPolicyResponse
DetachPolicyResponse'
instance Prelude.NFData DetachPolicyResponse where
rnf :: DetachPolicyResponse -> ()
rnf DetachPolicyResponse
_ = ()