{-# 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.Cloud9.CreateEnvironmentMembership
(
CreateEnvironmentMembership (..),
newCreateEnvironmentMembership,
createEnvironmentMembership_environmentId,
createEnvironmentMembership_userArn,
createEnvironmentMembership_permissions,
CreateEnvironmentMembershipResponse (..),
newCreateEnvironmentMembershipResponse,
createEnvironmentMembershipResponse_httpStatus,
createEnvironmentMembershipResponse_membership,
)
where
import Amazonka.Cloud9.Types
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
data CreateEnvironmentMembership = CreateEnvironmentMembership'
{
CreateEnvironmentMembership -> Text
environmentId :: Prelude.Text,
CreateEnvironmentMembership -> Text
userArn :: Prelude.Text,
CreateEnvironmentMembership -> MemberPermissions
permissions :: MemberPermissions
}
deriving (CreateEnvironmentMembership -> CreateEnvironmentMembership -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateEnvironmentMembership -> CreateEnvironmentMembership -> Bool
$c/= :: CreateEnvironmentMembership -> CreateEnvironmentMembership -> Bool
== :: CreateEnvironmentMembership -> CreateEnvironmentMembership -> Bool
$c== :: CreateEnvironmentMembership -> CreateEnvironmentMembership -> Bool
Prelude.Eq, ReadPrec [CreateEnvironmentMembership]
ReadPrec CreateEnvironmentMembership
Int -> ReadS CreateEnvironmentMembership
ReadS [CreateEnvironmentMembership]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateEnvironmentMembership]
$creadListPrec :: ReadPrec [CreateEnvironmentMembership]
readPrec :: ReadPrec CreateEnvironmentMembership
$creadPrec :: ReadPrec CreateEnvironmentMembership
readList :: ReadS [CreateEnvironmentMembership]
$creadList :: ReadS [CreateEnvironmentMembership]
readsPrec :: Int -> ReadS CreateEnvironmentMembership
$creadsPrec :: Int -> ReadS CreateEnvironmentMembership
Prelude.Read, Int -> CreateEnvironmentMembership -> ShowS
[CreateEnvironmentMembership] -> ShowS
CreateEnvironmentMembership -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateEnvironmentMembership] -> ShowS
$cshowList :: [CreateEnvironmentMembership] -> ShowS
show :: CreateEnvironmentMembership -> String
$cshow :: CreateEnvironmentMembership -> String
showsPrec :: Int -> CreateEnvironmentMembership -> ShowS
$cshowsPrec :: Int -> CreateEnvironmentMembership -> ShowS
Prelude.Show, forall x.
Rep CreateEnvironmentMembership x -> CreateEnvironmentMembership
forall x.
CreateEnvironmentMembership -> Rep CreateEnvironmentMembership x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateEnvironmentMembership x -> CreateEnvironmentMembership
$cfrom :: forall x.
CreateEnvironmentMembership -> Rep CreateEnvironmentMembership x
Prelude.Generic)
newCreateEnvironmentMembership ::
Prelude.Text ->
Prelude.Text ->
MemberPermissions ->
CreateEnvironmentMembership
newCreateEnvironmentMembership :: Text -> Text -> MemberPermissions -> CreateEnvironmentMembership
newCreateEnvironmentMembership
Text
pEnvironmentId_
Text
pUserArn_
MemberPermissions
pPermissions_ =
CreateEnvironmentMembership'
{ $sel:environmentId:CreateEnvironmentMembership' :: Text
environmentId =
Text
pEnvironmentId_,
$sel:userArn:CreateEnvironmentMembership' :: Text
userArn = Text
pUserArn_,
$sel:permissions:CreateEnvironmentMembership' :: MemberPermissions
permissions = MemberPermissions
pPermissions_
}
createEnvironmentMembership_environmentId :: Lens.Lens' CreateEnvironmentMembership Prelude.Text
createEnvironmentMembership_environmentId :: Lens' CreateEnvironmentMembership Text
createEnvironmentMembership_environmentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEnvironmentMembership' {Text
environmentId :: Text
$sel:environmentId:CreateEnvironmentMembership' :: CreateEnvironmentMembership -> Text
environmentId} -> Text
environmentId) (\s :: CreateEnvironmentMembership
s@CreateEnvironmentMembership' {} Text
a -> CreateEnvironmentMembership
s {$sel:environmentId:CreateEnvironmentMembership' :: Text
environmentId = Text
a} :: CreateEnvironmentMembership)
createEnvironmentMembership_userArn :: Lens.Lens' CreateEnvironmentMembership Prelude.Text
createEnvironmentMembership_userArn :: Lens' CreateEnvironmentMembership Text
createEnvironmentMembership_userArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEnvironmentMembership' {Text
userArn :: Text
$sel:userArn:CreateEnvironmentMembership' :: CreateEnvironmentMembership -> Text
userArn} -> Text
userArn) (\s :: CreateEnvironmentMembership
s@CreateEnvironmentMembership' {} Text
a -> CreateEnvironmentMembership
s {$sel:userArn:CreateEnvironmentMembership' :: Text
userArn = Text
a} :: CreateEnvironmentMembership)
createEnvironmentMembership_permissions :: Lens.Lens' CreateEnvironmentMembership MemberPermissions
createEnvironmentMembership_permissions :: Lens' CreateEnvironmentMembership MemberPermissions
createEnvironmentMembership_permissions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEnvironmentMembership' {MemberPermissions
permissions :: MemberPermissions
$sel:permissions:CreateEnvironmentMembership' :: CreateEnvironmentMembership -> MemberPermissions
permissions} -> MemberPermissions
permissions) (\s :: CreateEnvironmentMembership
s@CreateEnvironmentMembership' {} MemberPermissions
a -> CreateEnvironmentMembership
s {$sel:permissions:CreateEnvironmentMembership' :: MemberPermissions
permissions = MemberPermissions
a} :: CreateEnvironmentMembership)
instance Core.AWSRequest CreateEnvironmentMembership where
type
AWSResponse CreateEnvironmentMembership =
CreateEnvironmentMembershipResponse
request :: (Service -> Service)
-> CreateEnvironmentMembership
-> Request CreateEnvironmentMembership
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 CreateEnvironmentMembership
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateEnvironmentMembership)))
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 ->
Int -> EnvironmentMember -> CreateEnvironmentMembershipResponse
CreateEnvironmentMembershipResponse'
forall (f :: * -> *) a b. Functor 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))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"membership")
)
instance Prelude.Hashable CreateEnvironmentMembership where
hashWithSalt :: Int -> CreateEnvironmentMembership -> Int
hashWithSalt Int
_salt CreateEnvironmentMembership' {Text
MemberPermissions
permissions :: MemberPermissions
userArn :: Text
environmentId :: Text
$sel:permissions:CreateEnvironmentMembership' :: CreateEnvironmentMembership -> MemberPermissions
$sel:userArn:CreateEnvironmentMembership' :: CreateEnvironmentMembership -> Text
$sel:environmentId:CreateEnvironmentMembership' :: CreateEnvironmentMembership -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
environmentId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
userArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` MemberPermissions
permissions
instance Prelude.NFData CreateEnvironmentMembership where
rnf :: CreateEnvironmentMembership -> ()
rnf CreateEnvironmentMembership' {Text
MemberPermissions
permissions :: MemberPermissions
userArn :: Text
environmentId :: Text
$sel:permissions:CreateEnvironmentMembership' :: CreateEnvironmentMembership -> MemberPermissions
$sel:userArn:CreateEnvironmentMembership' :: CreateEnvironmentMembership -> Text
$sel:environmentId:CreateEnvironmentMembership' :: CreateEnvironmentMembership -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
environmentId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
userArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf MemberPermissions
permissions
instance Data.ToHeaders CreateEnvironmentMembership where
toHeaders :: CreateEnvironmentMembership -> 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
"AWSCloud9WorkspaceManagementService.CreateEnvironmentMembership" ::
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 CreateEnvironmentMembership where
toJSON :: CreateEnvironmentMembership -> Value
toJSON CreateEnvironmentMembership' {Text
MemberPermissions
permissions :: MemberPermissions
userArn :: Text
environmentId :: Text
$sel:permissions:CreateEnvironmentMembership' :: CreateEnvironmentMembership -> MemberPermissions
$sel:userArn:CreateEnvironmentMembership' :: CreateEnvironmentMembership -> Text
$sel:environmentId:CreateEnvironmentMembership' :: CreateEnvironmentMembership -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"environmentId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
environmentId),
forall a. a -> Maybe a
Prelude.Just (Key
"userArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
userArn),
forall a. a -> Maybe a
Prelude.Just (Key
"permissions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= MemberPermissions
permissions)
]
)
instance Data.ToPath CreateEnvironmentMembership where
toPath :: CreateEnvironmentMembership -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateEnvironmentMembership where
toQuery :: CreateEnvironmentMembership -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateEnvironmentMembershipResponse = CreateEnvironmentMembershipResponse'
{
CreateEnvironmentMembershipResponse -> Int
httpStatus :: Prelude.Int,
CreateEnvironmentMembershipResponse -> EnvironmentMember
membership :: EnvironmentMember
}
deriving (CreateEnvironmentMembershipResponse
-> CreateEnvironmentMembershipResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateEnvironmentMembershipResponse
-> CreateEnvironmentMembershipResponse -> Bool
$c/= :: CreateEnvironmentMembershipResponse
-> CreateEnvironmentMembershipResponse -> Bool
== :: CreateEnvironmentMembershipResponse
-> CreateEnvironmentMembershipResponse -> Bool
$c== :: CreateEnvironmentMembershipResponse
-> CreateEnvironmentMembershipResponse -> Bool
Prelude.Eq, ReadPrec [CreateEnvironmentMembershipResponse]
ReadPrec CreateEnvironmentMembershipResponse
Int -> ReadS CreateEnvironmentMembershipResponse
ReadS [CreateEnvironmentMembershipResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateEnvironmentMembershipResponse]
$creadListPrec :: ReadPrec [CreateEnvironmentMembershipResponse]
readPrec :: ReadPrec CreateEnvironmentMembershipResponse
$creadPrec :: ReadPrec CreateEnvironmentMembershipResponse
readList :: ReadS [CreateEnvironmentMembershipResponse]
$creadList :: ReadS [CreateEnvironmentMembershipResponse]
readsPrec :: Int -> ReadS CreateEnvironmentMembershipResponse
$creadsPrec :: Int -> ReadS CreateEnvironmentMembershipResponse
Prelude.Read, Int -> CreateEnvironmentMembershipResponse -> ShowS
[CreateEnvironmentMembershipResponse] -> ShowS
CreateEnvironmentMembershipResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateEnvironmentMembershipResponse] -> ShowS
$cshowList :: [CreateEnvironmentMembershipResponse] -> ShowS
show :: CreateEnvironmentMembershipResponse -> String
$cshow :: CreateEnvironmentMembershipResponse -> String
showsPrec :: Int -> CreateEnvironmentMembershipResponse -> ShowS
$cshowsPrec :: Int -> CreateEnvironmentMembershipResponse -> ShowS
Prelude.Show, forall x.
Rep CreateEnvironmentMembershipResponse x
-> CreateEnvironmentMembershipResponse
forall x.
CreateEnvironmentMembershipResponse
-> Rep CreateEnvironmentMembershipResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateEnvironmentMembershipResponse x
-> CreateEnvironmentMembershipResponse
$cfrom :: forall x.
CreateEnvironmentMembershipResponse
-> Rep CreateEnvironmentMembershipResponse x
Prelude.Generic)
newCreateEnvironmentMembershipResponse ::
Prelude.Int ->
EnvironmentMember ->
CreateEnvironmentMembershipResponse
newCreateEnvironmentMembershipResponse :: Int -> EnvironmentMember -> CreateEnvironmentMembershipResponse
newCreateEnvironmentMembershipResponse
Int
pHttpStatus_
EnvironmentMember
pMembership_ =
CreateEnvironmentMembershipResponse'
{ $sel:httpStatus:CreateEnvironmentMembershipResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:membership:CreateEnvironmentMembershipResponse' :: EnvironmentMember
membership = EnvironmentMember
pMembership_
}
createEnvironmentMembershipResponse_httpStatus :: Lens.Lens' CreateEnvironmentMembershipResponse Prelude.Int
createEnvironmentMembershipResponse_httpStatus :: Lens' CreateEnvironmentMembershipResponse Int
createEnvironmentMembershipResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEnvironmentMembershipResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateEnvironmentMembershipResponse' :: CreateEnvironmentMembershipResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateEnvironmentMembershipResponse
s@CreateEnvironmentMembershipResponse' {} Int
a -> CreateEnvironmentMembershipResponse
s {$sel:httpStatus:CreateEnvironmentMembershipResponse' :: Int
httpStatus = Int
a} :: CreateEnvironmentMembershipResponse)
createEnvironmentMembershipResponse_membership :: Lens.Lens' CreateEnvironmentMembershipResponse EnvironmentMember
createEnvironmentMembershipResponse_membership :: Lens' CreateEnvironmentMembershipResponse EnvironmentMember
createEnvironmentMembershipResponse_membership = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEnvironmentMembershipResponse' {EnvironmentMember
membership :: EnvironmentMember
$sel:membership:CreateEnvironmentMembershipResponse' :: CreateEnvironmentMembershipResponse -> EnvironmentMember
membership} -> EnvironmentMember
membership) (\s :: CreateEnvironmentMembershipResponse
s@CreateEnvironmentMembershipResponse' {} EnvironmentMember
a -> CreateEnvironmentMembershipResponse
s {$sel:membership:CreateEnvironmentMembershipResponse' :: EnvironmentMember
membership = EnvironmentMember
a} :: CreateEnvironmentMembershipResponse)
instance
Prelude.NFData
CreateEnvironmentMembershipResponse
where
rnf :: CreateEnvironmentMembershipResponse -> ()
rnf CreateEnvironmentMembershipResponse' {Int
EnvironmentMember
membership :: EnvironmentMember
httpStatus :: Int
$sel:membership:CreateEnvironmentMembershipResponse' :: CreateEnvironmentMembershipResponse -> EnvironmentMember
$sel:httpStatus:CreateEnvironmentMembershipResponse' :: CreateEnvironmentMembershipResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf EnvironmentMember
membership