{-# 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.IAM.CreateServiceLinkedRole
(
CreateServiceLinkedRole (..),
newCreateServiceLinkedRole,
createServiceLinkedRole_customSuffix,
createServiceLinkedRole_description,
createServiceLinkedRole_aWSServiceName,
CreateServiceLinkedRoleResponse (..),
newCreateServiceLinkedRoleResponse,
createServiceLinkedRoleResponse_role,
createServiceLinkedRoleResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IAM.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateServiceLinkedRole = CreateServiceLinkedRole'
{
CreateServiceLinkedRole -> Maybe Text
customSuffix :: Prelude.Maybe Prelude.Text,
CreateServiceLinkedRole -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
CreateServiceLinkedRole -> Text
aWSServiceName :: Prelude.Text
}
deriving (CreateServiceLinkedRole -> CreateServiceLinkedRole -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateServiceLinkedRole -> CreateServiceLinkedRole -> Bool
$c/= :: CreateServiceLinkedRole -> CreateServiceLinkedRole -> Bool
== :: CreateServiceLinkedRole -> CreateServiceLinkedRole -> Bool
$c== :: CreateServiceLinkedRole -> CreateServiceLinkedRole -> Bool
Prelude.Eq, ReadPrec [CreateServiceLinkedRole]
ReadPrec CreateServiceLinkedRole
Int -> ReadS CreateServiceLinkedRole
ReadS [CreateServiceLinkedRole]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateServiceLinkedRole]
$creadListPrec :: ReadPrec [CreateServiceLinkedRole]
readPrec :: ReadPrec CreateServiceLinkedRole
$creadPrec :: ReadPrec CreateServiceLinkedRole
readList :: ReadS [CreateServiceLinkedRole]
$creadList :: ReadS [CreateServiceLinkedRole]
readsPrec :: Int -> ReadS CreateServiceLinkedRole
$creadsPrec :: Int -> ReadS CreateServiceLinkedRole
Prelude.Read, Int -> CreateServiceLinkedRole -> ShowS
[CreateServiceLinkedRole] -> ShowS
CreateServiceLinkedRole -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateServiceLinkedRole] -> ShowS
$cshowList :: [CreateServiceLinkedRole] -> ShowS
show :: CreateServiceLinkedRole -> String
$cshow :: CreateServiceLinkedRole -> String
showsPrec :: Int -> CreateServiceLinkedRole -> ShowS
$cshowsPrec :: Int -> CreateServiceLinkedRole -> ShowS
Prelude.Show, forall x. Rep CreateServiceLinkedRole x -> CreateServiceLinkedRole
forall x. CreateServiceLinkedRole -> Rep CreateServiceLinkedRole x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateServiceLinkedRole x -> CreateServiceLinkedRole
$cfrom :: forall x. CreateServiceLinkedRole -> Rep CreateServiceLinkedRole x
Prelude.Generic)
newCreateServiceLinkedRole ::
Prelude.Text ->
CreateServiceLinkedRole
newCreateServiceLinkedRole :: Text -> CreateServiceLinkedRole
newCreateServiceLinkedRole Text
pAWSServiceName_ =
CreateServiceLinkedRole'
{ $sel:customSuffix:CreateServiceLinkedRole' :: Maybe Text
customSuffix =
forall a. Maybe a
Prelude.Nothing,
$sel:description:CreateServiceLinkedRole' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:aWSServiceName:CreateServiceLinkedRole' :: Text
aWSServiceName = Text
pAWSServiceName_
}
createServiceLinkedRole_customSuffix :: Lens.Lens' CreateServiceLinkedRole (Prelude.Maybe Prelude.Text)
createServiceLinkedRole_customSuffix :: Lens' CreateServiceLinkedRole (Maybe Text)
createServiceLinkedRole_customSuffix = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateServiceLinkedRole' {Maybe Text
customSuffix :: Maybe Text
$sel:customSuffix:CreateServiceLinkedRole' :: CreateServiceLinkedRole -> Maybe Text
customSuffix} -> Maybe Text
customSuffix) (\s :: CreateServiceLinkedRole
s@CreateServiceLinkedRole' {} Maybe Text
a -> CreateServiceLinkedRole
s {$sel:customSuffix:CreateServiceLinkedRole' :: Maybe Text
customSuffix = Maybe Text
a} :: CreateServiceLinkedRole)
createServiceLinkedRole_description :: Lens.Lens' CreateServiceLinkedRole (Prelude.Maybe Prelude.Text)
createServiceLinkedRole_description :: Lens' CreateServiceLinkedRole (Maybe Text)
createServiceLinkedRole_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateServiceLinkedRole' {Maybe Text
description :: Maybe Text
$sel:description:CreateServiceLinkedRole' :: CreateServiceLinkedRole -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateServiceLinkedRole
s@CreateServiceLinkedRole' {} Maybe Text
a -> CreateServiceLinkedRole
s {$sel:description:CreateServiceLinkedRole' :: Maybe Text
description = Maybe Text
a} :: CreateServiceLinkedRole)
createServiceLinkedRole_aWSServiceName :: Lens.Lens' CreateServiceLinkedRole Prelude.Text
createServiceLinkedRole_aWSServiceName :: Lens' CreateServiceLinkedRole Text
createServiceLinkedRole_aWSServiceName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateServiceLinkedRole' {Text
aWSServiceName :: Text
$sel:aWSServiceName:CreateServiceLinkedRole' :: CreateServiceLinkedRole -> Text
aWSServiceName} -> Text
aWSServiceName) (\s :: CreateServiceLinkedRole
s@CreateServiceLinkedRole' {} Text
a -> CreateServiceLinkedRole
s {$sel:aWSServiceName:CreateServiceLinkedRole' :: Text
aWSServiceName = Text
a} :: CreateServiceLinkedRole)
instance Core.AWSRequest CreateServiceLinkedRole where
type
AWSResponse CreateServiceLinkedRole =
CreateServiceLinkedRoleResponse
request :: (Service -> Service)
-> CreateServiceLinkedRole -> Request CreateServiceLinkedRole
request Service -> Service
overrides =
forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateServiceLinkedRole
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateServiceLinkedRole)))
response =
forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
-> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
Text
"CreateServiceLinkedRoleResult"
( \Int
s ResponseHeaders
h [Node]
x ->
Maybe Role -> Int -> CreateServiceLinkedRoleResponse
CreateServiceLinkedRoleResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Role")
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 CreateServiceLinkedRole where
hashWithSalt :: Int -> CreateServiceLinkedRole -> Int
hashWithSalt Int
_salt CreateServiceLinkedRole' {Maybe Text
Text
aWSServiceName :: Text
description :: Maybe Text
customSuffix :: Maybe Text
$sel:aWSServiceName:CreateServiceLinkedRole' :: CreateServiceLinkedRole -> Text
$sel:description:CreateServiceLinkedRole' :: CreateServiceLinkedRole -> Maybe Text
$sel:customSuffix:CreateServiceLinkedRole' :: CreateServiceLinkedRole -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
customSuffix
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
aWSServiceName
instance Prelude.NFData CreateServiceLinkedRole where
rnf :: CreateServiceLinkedRole -> ()
rnf CreateServiceLinkedRole' {Maybe Text
Text
aWSServiceName :: Text
description :: Maybe Text
customSuffix :: Maybe Text
$sel:aWSServiceName:CreateServiceLinkedRole' :: CreateServiceLinkedRole -> Text
$sel:description:CreateServiceLinkedRole' :: CreateServiceLinkedRole -> Maybe Text
$sel:customSuffix:CreateServiceLinkedRole' :: CreateServiceLinkedRole -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
customSuffix
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
aWSServiceName
instance Data.ToHeaders CreateServiceLinkedRole where
toHeaders :: CreateServiceLinkedRole -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath CreateServiceLinkedRole where
toPath :: CreateServiceLinkedRole -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateServiceLinkedRole where
toQuery :: CreateServiceLinkedRole -> QueryString
toQuery CreateServiceLinkedRole' {Maybe Text
Text
aWSServiceName :: Text
description :: Maybe Text
customSuffix :: Maybe Text
$sel:aWSServiceName:CreateServiceLinkedRole' :: CreateServiceLinkedRole -> Text
$sel:description:CreateServiceLinkedRole' :: CreateServiceLinkedRole -> Maybe Text
$sel:customSuffix:CreateServiceLinkedRole' :: CreateServiceLinkedRole -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"Action"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"CreateServiceLinkedRole" :: Prelude.ByteString),
ByteString
"Version"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2010-05-08" :: Prelude.ByteString),
ByteString
"CustomSuffix" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
customSuffix,
ByteString
"Description" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
description,
ByteString
"AWSServiceName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
aWSServiceName
]
data CreateServiceLinkedRoleResponse = CreateServiceLinkedRoleResponse'
{
CreateServiceLinkedRoleResponse -> Maybe Role
role' :: Prelude.Maybe Role,
CreateServiceLinkedRoleResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateServiceLinkedRoleResponse
-> CreateServiceLinkedRoleResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateServiceLinkedRoleResponse
-> CreateServiceLinkedRoleResponse -> Bool
$c/= :: CreateServiceLinkedRoleResponse
-> CreateServiceLinkedRoleResponse -> Bool
== :: CreateServiceLinkedRoleResponse
-> CreateServiceLinkedRoleResponse -> Bool
$c== :: CreateServiceLinkedRoleResponse
-> CreateServiceLinkedRoleResponse -> Bool
Prelude.Eq, ReadPrec [CreateServiceLinkedRoleResponse]
ReadPrec CreateServiceLinkedRoleResponse
Int -> ReadS CreateServiceLinkedRoleResponse
ReadS [CreateServiceLinkedRoleResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateServiceLinkedRoleResponse]
$creadListPrec :: ReadPrec [CreateServiceLinkedRoleResponse]
readPrec :: ReadPrec CreateServiceLinkedRoleResponse
$creadPrec :: ReadPrec CreateServiceLinkedRoleResponse
readList :: ReadS [CreateServiceLinkedRoleResponse]
$creadList :: ReadS [CreateServiceLinkedRoleResponse]
readsPrec :: Int -> ReadS CreateServiceLinkedRoleResponse
$creadsPrec :: Int -> ReadS CreateServiceLinkedRoleResponse
Prelude.Read, Int -> CreateServiceLinkedRoleResponse -> ShowS
[CreateServiceLinkedRoleResponse] -> ShowS
CreateServiceLinkedRoleResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateServiceLinkedRoleResponse] -> ShowS
$cshowList :: [CreateServiceLinkedRoleResponse] -> ShowS
show :: CreateServiceLinkedRoleResponse -> String
$cshow :: CreateServiceLinkedRoleResponse -> String
showsPrec :: Int -> CreateServiceLinkedRoleResponse -> ShowS
$cshowsPrec :: Int -> CreateServiceLinkedRoleResponse -> ShowS
Prelude.Show, forall x.
Rep CreateServiceLinkedRoleResponse x
-> CreateServiceLinkedRoleResponse
forall x.
CreateServiceLinkedRoleResponse
-> Rep CreateServiceLinkedRoleResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateServiceLinkedRoleResponse x
-> CreateServiceLinkedRoleResponse
$cfrom :: forall x.
CreateServiceLinkedRoleResponse
-> Rep CreateServiceLinkedRoleResponse x
Prelude.Generic)
newCreateServiceLinkedRoleResponse ::
Prelude.Int ->
CreateServiceLinkedRoleResponse
newCreateServiceLinkedRoleResponse :: Int -> CreateServiceLinkedRoleResponse
newCreateServiceLinkedRoleResponse Int
pHttpStatus_ =
CreateServiceLinkedRoleResponse'
{ $sel:role':CreateServiceLinkedRoleResponse' :: Maybe Role
role' =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateServiceLinkedRoleResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createServiceLinkedRoleResponse_role :: Lens.Lens' CreateServiceLinkedRoleResponse (Prelude.Maybe Role)
createServiceLinkedRoleResponse_role :: Lens' CreateServiceLinkedRoleResponse (Maybe Role)
createServiceLinkedRoleResponse_role = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateServiceLinkedRoleResponse' {Maybe Role
role' :: Maybe Role
$sel:role':CreateServiceLinkedRoleResponse' :: CreateServiceLinkedRoleResponse -> Maybe Role
role'} -> Maybe Role
role') (\s :: CreateServiceLinkedRoleResponse
s@CreateServiceLinkedRoleResponse' {} Maybe Role
a -> CreateServiceLinkedRoleResponse
s {$sel:role':CreateServiceLinkedRoleResponse' :: Maybe Role
role' = Maybe Role
a} :: CreateServiceLinkedRoleResponse)
createServiceLinkedRoleResponse_httpStatus :: Lens.Lens' CreateServiceLinkedRoleResponse Prelude.Int
createServiceLinkedRoleResponse_httpStatus :: Lens' CreateServiceLinkedRoleResponse Int
createServiceLinkedRoleResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateServiceLinkedRoleResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateServiceLinkedRoleResponse' :: CreateServiceLinkedRoleResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateServiceLinkedRoleResponse
s@CreateServiceLinkedRoleResponse' {} Int
a -> CreateServiceLinkedRoleResponse
s {$sel:httpStatus:CreateServiceLinkedRoleResponse' :: Int
httpStatus = Int
a} :: CreateServiceLinkedRoleResponse)
instance
Prelude.NFData
CreateServiceLinkedRoleResponse
where
rnf :: CreateServiceLinkedRoleResponse -> ()
rnf CreateServiceLinkedRoleResponse' {Int
Maybe Role
httpStatus :: Int
role' :: Maybe Role
$sel:httpStatus:CreateServiceLinkedRoleResponse' :: CreateServiceLinkedRoleResponse -> Int
$sel:role':CreateServiceLinkedRoleResponse' :: CreateServiceLinkedRoleResponse -> Maybe Role
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Role
role'
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus