{-# 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.SSMSAP.PutResourcePermission
(
PutResourcePermission (..),
newPutResourcePermission,
putResourcePermission_actionType,
putResourcePermission_sourceResourceArn,
putResourcePermission_resourceArn,
PutResourcePermissionResponse (..),
newPutResourcePermissionResponse,
putResourcePermissionResponse_policy,
putResourcePermissionResponse_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.SSMSAP.Types
data PutResourcePermission = PutResourcePermission'
{ PutResourcePermission -> PermissionActionType
actionType :: PermissionActionType,
PutResourcePermission -> Text
sourceResourceArn :: Prelude.Text,
PutResourcePermission -> Text
resourceArn :: Prelude.Text
}
deriving (PutResourcePermission -> PutResourcePermission -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutResourcePermission -> PutResourcePermission -> Bool
$c/= :: PutResourcePermission -> PutResourcePermission -> Bool
== :: PutResourcePermission -> PutResourcePermission -> Bool
$c== :: PutResourcePermission -> PutResourcePermission -> Bool
Prelude.Eq, ReadPrec [PutResourcePermission]
ReadPrec PutResourcePermission
Int -> ReadS PutResourcePermission
ReadS [PutResourcePermission]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutResourcePermission]
$creadListPrec :: ReadPrec [PutResourcePermission]
readPrec :: ReadPrec PutResourcePermission
$creadPrec :: ReadPrec PutResourcePermission
readList :: ReadS [PutResourcePermission]
$creadList :: ReadS [PutResourcePermission]
readsPrec :: Int -> ReadS PutResourcePermission
$creadsPrec :: Int -> ReadS PutResourcePermission
Prelude.Read, Int -> PutResourcePermission -> ShowS
[PutResourcePermission] -> ShowS
PutResourcePermission -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutResourcePermission] -> ShowS
$cshowList :: [PutResourcePermission] -> ShowS
show :: PutResourcePermission -> String
$cshow :: PutResourcePermission -> String
showsPrec :: Int -> PutResourcePermission -> ShowS
$cshowsPrec :: Int -> PutResourcePermission -> ShowS
Prelude.Show, forall x. Rep PutResourcePermission x -> PutResourcePermission
forall x. PutResourcePermission -> Rep PutResourcePermission x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PutResourcePermission x -> PutResourcePermission
$cfrom :: forall x. PutResourcePermission -> Rep PutResourcePermission x
Prelude.Generic)
newPutResourcePermission ::
PermissionActionType ->
Prelude.Text ->
Prelude.Text ->
PutResourcePermission
newPutResourcePermission :: PermissionActionType -> Text -> Text -> PutResourcePermission
newPutResourcePermission
PermissionActionType
pActionType_
Text
pSourceResourceArn_
Text
pResourceArn_ =
PutResourcePermission'
{ $sel:actionType:PutResourcePermission' :: PermissionActionType
actionType = PermissionActionType
pActionType_,
$sel:sourceResourceArn:PutResourcePermission' :: Text
sourceResourceArn = Text
pSourceResourceArn_,
$sel:resourceArn:PutResourcePermission' :: Text
resourceArn = Text
pResourceArn_
}
putResourcePermission_actionType :: Lens.Lens' PutResourcePermission PermissionActionType
putResourcePermission_actionType :: Lens' PutResourcePermission PermissionActionType
putResourcePermission_actionType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutResourcePermission' {PermissionActionType
actionType :: PermissionActionType
$sel:actionType:PutResourcePermission' :: PutResourcePermission -> PermissionActionType
actionType} -> PermissionActionType
actionType) (\s :: PutResourcePermission
s@PutResourcePermission' {} PermissionActionType
a -> PutResourcePermission
s {$sel:actionType:PutResourcePermission' :: PermissionActionType
actionType = PermissionActionType
a} :: PutResourcePermission)
putResourcePermission_sourceResourceArn :: Lens.Lens' PutResourcePermission Prelude.Text
putResourcePermission_sourceResourceArn :: Lens' PutResourcePermission Text
putResourcePermission_sourceResourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutResourcePermission' {Text
sourceResourceArn :: Text
$sel:sourceResourceArn:PutResourcePermission' :: PutResourcePermission -> Text
sourceResourceArn} -> Text
sourceResourceArn) (\s :: PutResourcePermission
s@PutResourcePermission' {} Text
a -> PutResourcePermission
s {$sel:sourceResourceArn:PutResourcePermission' :: Text
sourceResourceArn = Text
a} :: PutResourcePermission)
putResourcePermission_resourceArn :: Lens.Lens' PutResourcePermission Prelude.Text
putResourcePermission_resourceArn :: Lens' PutResourcePermission Text
putResourcePermission_resourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutResourcePermission' {Text
resourceArn :: Text
$sel:resourceArn:PutResourcePermission' :: PutResourcePermission -> Text
resourceArn} -> Text
resourceArn) (\s :: PutResourcePermission
s@PutResourcePermission' {} Text
a -> PutResourcePermission
s {$sel:resourceArn:PutResourcePermission' :: Text
resourceArn = Text
a} :: PutResourcePermission)
instance Core.AWSRequest PutResourcePermission where
type
AWSResponse PutResourcePermission =
PutResourcePermissionResponse
request :: (Service -> Service)
-> PutResourcePermission -> Request PutResourcePermission
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 PutResourcePermission
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse PutResourcePermission)))
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 -> Int -> PutResourcePermissionResponse
PutResourcePermissionResponse'
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
"Policy")
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 PutResourcePermission where
hashWithSalt :: Int -> PutResourcePermission -> Int
hashWithSalt Int
_salt PutResourcePermission' {Text
PermissionActionType
resourceArn :: Text
sourceResourceArn :: Text
actionType :: PermissionActionType
$sel:resourceArn:PutResourcePermission' :: PutResourcePermission -> Text
$sel:sourceResourceArn:PutResourcePermission' :: PutResourcePermission -> Text
$sel:actionType:PutResourcePermission' :: PutResourcePermission -> PermissionActionType
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` PermissionActionType
actionType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
sourceResourceArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceArn
instance Prelude.NFData PutResourcePermission where
rnf :: PutResourcePermission -> ()
rnf PutResourcePermission' {Text
PermissionActionType
resourceArn :: Text
sourceResourceArn :: Text
actionType :: PermissionActionType
$sel:resourceArn:PutResourcePermission' :: PutResourcePermission -> Text
$sel:sourceResourceArn:PutResourcePermission' :: PutResourcePermission -> Text
$sel:actionType:PutResourcePermission' :: PutResourcePermission -> PermissionActionType
..} =
forall a. NFData a => a -> ()
Prelude.rnf PermissionActionType
actionType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
sourceResourceArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
resourceArn
instance Data.ToHeaders PutResourcePermission where
toHeaders :: PutResourcePermission -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON PutResourcePermission where
toJSON :: PutResourcePermission -> Value
toJSON PutResourcePermission' {Text
PermissionActionType
resourceArn :: Text
sourceResourceArn :: Text
actionType :: PermissionActionType
$sel:resourceArn:PutResourcePermission' :: PutResourcePermission -> Text
$sel:sourceResourceArn:PutResourcePermission' :: PutResourcePermission -> Text
$sel:actionType:PutResourcePermission' :: PutResourcePermission -> PermissionActionType
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"ActionType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= PermissionActionType
actionType),
forall a. a -> Maybe a
Prelude.Just
(Key
"SourceResourceArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
sourceResourceArn),
forall a. a -> Maybe a
Prelude.Just (Key
"ResourceArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
resourceArn)
]
)
instance Data.ToPath PutResourcePermission where
toPath :: PutResourcePermission -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/put-resource-permission"
instance Data.ToQuery PutResourcePermission where
toQuery :: PutResourcePermission -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data PutResourcePermissionResponse = PutResourcePermissionResponse'
{ PutResourcePermissionResponse -> Maybe Text
policy :: Prelude.Maybe Prelude.Text,
PutResourcePermissionResponse -> Int
httpStatus :: Prelude.Int
}
deriving (PutResourcePermissionResponse
-> PutResourcePermissionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutResourcePermissionResponse
-> PutResourcePermissionResponse -> Bool
$c/= :: PutResourcePermissionResponse
-> PutResourcePermissionResponse -> Bool
== :: PutResourcePermissionResponse
-> PutResourcePermissionResponse -> Bool
$c== :: PutResourcePermissionResponse
-> PutResourcePermissionResponse -> Bool
Prelude.Eq, ReadPrec [PutResourcePermissionResponse]
ReadPrec PutResourcePermissionResponse
Int -> ReadS PutResourcePermissionResponse
ReadS [PutResourcePermissionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutResourcePermissionResponse]
$creadListPrec :: ReadPrec [PutResourcePermissionResponse]
readPrec :: ReadPrec PutResourcePermissionResponse
$creadPrec :: ReadPrec PutResourcePermissionResponse
readList :: ReadS [PutResourcePermissionResponse]
$creadList :: ReadS [PutResourcePermissionResponse]
readsPrec :: Int -> ReadS PutResourcePermissionResponse
$creadsPrec :: Int -> ReadS PutResourcePermissionResponse
Prelude.Read, Int -> PutResourcePermissionResponse -> ShowS
[PutResourcePermissionResponse] -> ShowS
PutResourcePermissionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutResourcePermissionResponse] -> ShowS
$cshowList :: [PutResourcePermissionResponse] -> ShowS
show :: PutResourcePermissionResponse -> String
$cshow :: PutResourcePermissionResponse -> String
showsPrec :: Int -> PutResourcePermissionResponse -> ShowS
$cshowsPrec :: Int -> PutResourcePermissionResponse -> ShowS
Prelude.Show, forall x.
Rep PutResourcePermissionResponse x
-> PutResourcePermissionResponse
forall x.
PutResourcePermissionResponse
-> Rep PutResourcePermissionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PutResourcePermissionResponse x
-> PutResourcePermissionResponse
$cfrom :: forall x.
PutResourcePermissionResponse
-> Rep PutResourcePermissionResponse x
Prelude.Generic)
newPutResourcePermissionResponse ::
Prelude.Int ->
PutResourcePermissionResponse
newPutResourcePermissionResponse :: Int -> PutResourcePermissionResponse
newPutResourcePermissionResponse Int
pHttpStatus_ =
PutResourcePermissionResponse'
{ $sel:policy:PutResourcePermissionResponse' :: Maybe Text
policy =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:PutResourcePermissionResponse' :: Int
httpStatus = Int
pHttpStatus_
}
putResourcePermissionResponse_policy :: Lens.Lens' PutResourcePermissionResponse (Prelude.Maybe Prelude.Text)
putResourcePermissionResponse_policy :: Lens' PutResourcePermissionResponse (Maybe Text)
putResourcePermissionResponse_policy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutResourcePermissionResponse' {Maybe Text
policy :: Maybe Text
$sel:policy:PutResourcePermissionResponse' :: PutResourcePermissionResponse -> Maybe Text
policy} -> Maybe Text
policy) (\s :: PutResourcePermissionResponse
s@PutResourcePermissionResponse' {} Maybe Text
a -> PutResourcePermissionResponse
s {$sel:policy:PutResourcePermissionResponse' :: Maybe Text
policy = Maybe Text
a} :: PutResourcePermissionResponse)
putResourcePermissionResponse_httpStatus :: Lens.Lens' PutResourcePermissionResponse Prelude.Int
putResourcePermissionResponse_httpStatus :: Lens' PutResourcePermissionResponse Int
putResourcePermissionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutResourcePermissionResponse' {Int
httpStatus :: Int
$sel:httpStatus:PutResourcePermissionResponse' :: PutResourcePermissionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: PutResourcePermissionResponse
s@PutResourcePermissionResponse' {} Int
a -> PutResourcePermissionResponse
s {$sel:httpStatus:PutResourcePermissionResponse' :: Int
httpStatus = Int
a} :: PutResourcePermissionResponse)
instance Prelude.NFData PutResourcePermissionResponse where
rnf :: PutResourcePermissionResponse -> ()
rnf PutResourcePermissionResponse' {Int
Maybe Text
httpStatus :: Int
policy :: Maybe Text
$sel:httpStatus:PutResourcePermissionResponse' :: PutResourcePermissionResponse -> Int
$sel:policy:PutResourcePermissionResponse' :: PutResourcePermissionResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
policy
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus