module Stratosphere.IdentityStore.GroupMembership (
        module Exports, GroupMembership(..), mkGroupMembership
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.IdentityStore.GroupMembership.MemberIdProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data GroupMembership
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-identitystore-groupmembership.html>
    GroupMembership {GroupMembership -> ()
haddock_workaround_ :: (),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-identitystore-groupmembership.html#cfn-identitystore-groupmembership-groupid>
                     GroupMembership -> Value Text
groupId :: (Value Prelude.Text),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-identitystore-groupmembership.html#cfn-identitystore-groupmembership-identitystoreid>
                     GroupMembership -> Value Text
identityStoreId :: (Value Prelude.Text),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-identitystore-groupmembership.html#cfn-identitystore-groupmembership-memberid>
                     GroupMembership -> MemberIdProperty
memberId :: MemberIdProperty}
  deriving stock (GroupMembership -> GroupMembership -> Bool
(GroupMembership -> GroupMembership -> Bool)
-> (GroupMembership -> GroupMembership -> Bool)
-> Eq GroupMembership
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: GroupMembership -> GroupMembership -> Bool
== :: GroupMembership -> GroupMembership -> Bool
$c/= :: GroupMembership -> GroupMembership -> Bool
/= :: GroupMembership -> GroupMembership -> Bool
Prelude.Eq, Int -> GroupMembership -> ShowS
[GroupMembership] -> ShowS
GroupMembership -> String
(Int -> GroupMembership -> ShowS)
-> (GroupMembership -> String)
-> ([GroupMembership] -> ShowS)
-> Show GroupMembership
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GroupMembership -> ShowS
showsPrec :: Int -> GroupMembership -> ShowS
$cshow :: GroupMembership -> String
show :: GroupMembership -> String
$cshowList :: [GroupMembership] -> ShowS
showList :: [GroupMembership] -> ShowS
Prelude.Show)
mkGroupMembership ::
  Value Prelude.Text
  -> Value Prelude.Text -> MemberIdProperty -> GroupMembership
mkGroupMembership :: Value Text -> Value Text -> MemberIdProperty -> GroupMembership
mkGroupMembership Value Text
groupId Value Text
identityStoreId MemberIdProperty
memberId
  = GroupMembership
      {haddock_workaround_ :: ()
haddock_workaround_ = (), groupId :: Value Text
groupId = Value Text
groupId,
       identityStoreId :: Value Text
identityStoreId = Value Text
identityStoreId, memberId :: MemberIdProperty
memberId = MemberIdProperty
memberId}
instance ToResourceProperties GroupMembership where
  toResourceProperties :: GroupMembership -> ResourceProperties
toResourceProperties GroupMembership {()
Value Text
MemberIdProperty
haddock_workaround_ :: GroupMembership -> ()
groupId :: GroupMembership -> Value Text
identityStoreId :: GroupMembership -> Value Text
memberId :: GroupMembership -> MemberIdProperty
haddock_workaround_ :: ()
groupId :: Value Text
identityStoreId :: Value Text
memberId :: MemberIdProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IdentityStore::GroupMembership",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"GroupId" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
groupId,
                       Key
"IdentityStoreId" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
identityStoreId,
                       Key
"MemberId" Key -> MemberIdProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= MemberIdProperty
memberId]}
instance JSON.ToJSON GroupMembership where
  toJSON :: GroupMembership -> Value
toJSON GroupMembership {()
Value Text
MemberIdProperty
haddock_workaround_ :: GroupMembership -> ()
groupId :: GroupMembership -> Value Text
identityStoreId :: GroupMembership -> Value Text
memberId :: GroupMembership -> MemberIdProperty
haddock_workaround_ :: ()
groupId :: Value Text
identityStoreId :: Value Text
memberId :: MemberIdProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"GroupId" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
groupId,
         Key
"IdentityStoreId" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
identityStoreId,
         Key
"MemberId" Key -> MemberIdProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= MemberIdProperty
memberId]
instance Property "GroupId" GroupMembership where
  type PropertyType "GroupId" GroupMembership = Value Prelude.Text
  set :: PropertyType "GroupId" GroupMembership
-> GroupMembership -> GroupMembership
set PropertyType "GroupId" GroupMembership
newValue GroupMembership {()
Value Text
MemberIdProperty
haddock_workaround_ :: GroupMembership -> ()
groupId :: GroupMembership -> Value Text
identityStoreId :: GroupMembership -> Value Text
memberId :: GroupMembership -> MemberIdProperty
haddock_workaround_ :: ()
groupId :: Value Text
identityStoreId :: Value Text
memberId :: MemberIdProperty
..}
    = GroupMembership {groupId :: Value Text
groupId = PropertyType "GroupId" GroupMembership
Value Text
newValue, ()
Value Text
MemberIdProperty
haddock_workaround_ :: ()
identityStoreId :: Value Text
memberId :: MemberIdProperty
haddock_workaround_ :: ()
identityStoreId :: Value Text
memberId :: MemberIdProperty
..}
instance Property "IdentityStoreId" GroupMembership where
  type PropertyType "IdentityStoreId" GroupMembership = Value Prelude.Text
  set :: PropertyType "IdentityStoreId" GroupMembership
-> GroupMembership -> GroupMembership
set PropertyType "IdentityStoreId" GroupMembership
newValue GroupMembership {()
Value Text
MemberIdProperty
haddock_workaround_ :: GroupMembership -> ()
groupId :: GroupMembership -> Value Text
identityStoreId :: GroupMembership -> Value Text
memberId :: GroupMembership -> MemberIdProperty
haddock_workaround_ :: ()
groupId :: Value Text
identityStoreId :: Value Text
memberId :: MemberIdProperty
..}
    = GroupMembership {identityStoreId :: Value Text
identityStoreId = PropertyType "IdentityStoreId" GroupMembership
Value Text
newValue, ()
Value Text
MemberIdProperty
haddock_workaround_ :: ()
groupId :: Value Text
memberId :: MemberIdProperty
haddock_workaround_ :: ()
groupId :: Value Text
memberId :: MemberIdProperty
..}
instance Property "MemberId" GroupMembership where
  type PropertyType "MemberId" GroupMembership = MemberIdProperty
  set :: PropertyType "MemberId" GroupMembership
-> GroupMembership -> GroupMembership
set PropertyType "MemberId" GroupMembership
newValue GroupMembership {()
Value Text
MemberIdProperty
haddock_workaround_ :: GroupMembership -> ()
groupId :: GroupMembership -> Value Text
identityStoreId :: GroupMembership -> Value Text
memberId :: GroupMembership -> MemberIdProperty
haddock_workaround_ :: ()
groupId :: Value Text
identityStoreId :: Value Text
memberId :: MemberIdProperty
..}
    = GroupMembership {memberId :: MemberIdProperty
memberId = PropertyType "MemberId" GroupMembership
MemberIdProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
groupId :: Value Text
identityStoreId :: Value Text
haddock_workaround_ :: ()
groupId :: Value Text
identityStoreId :: Value Text
..}