module Stratosphere.DataZone.ProjectMembership (
        module Exports, ProjectMembership(..), mkProjectMembership
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.DataZone.ProjectMembership.MemberProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ProjectMembership
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectmembership.html>
    ProjectMembership {ProjectMembership -> ()
haddock_workaround_ :: (),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectmembership.html#cfn-datazone-projectmembership-designation>
                       ProjectMembership -> Value Text
designation :: (Value Prelude.Text),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectmembership.html#cfn-datazone-projectmembership-domainidentifier>
                       ProjectMembership -> Value Text
domainIdentifier :: (Value Prelude.Text),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectmembership.html#cfn-datazone-projectmembership-member>
                       ProjectMembership -> MemberProperty
member :: MemberProperty,
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectmembership.html#cfn-datazone-projectmembership-projectidentifier>
                       ProjectMembership -> Value Text
projectIdentifier :: (Value Prelude.Text)}
  deriving stock (ProjectMembership -> ProjectMembership -> Bool
(ProjectMembership -> ProjectMembership -> Bool)
-> (ProjectMembership -> ProjectMembership -> Bool)
-> Eq ProjectMembership
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ProjectMembership -> ProjectMembership -> Bool
== :: ProjectMembership -> ProjectMembership -> Bool
$c/= :: ProjectMembership -> ProjectMembership -> Bool
/= :: ProjectMembership -> ProjectMembership -> Bool
Prelude.Eq, Int -> ProjectMembership -> ShowS
[ProjectMembership] -> ShowS
ProjectMembership -> String
(Int -> ProjectMembership -> ShowS)
-> (ProjectMembership -> String)
-> ([ProjectMembership] -> ShowS)
-> Show ProjectMembership
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ProjectMembership -> ShowS
showsPrec :: Int -> ProjectMembership -> ShowS
$cshow :: ProjectMembership -> String
show :: ProjectMembership -> String
$cshowList :: [ProjectMembership] -> ShowS
showList :: [ProjectMembership] -> ShowS
Prelude.Show)
mkProjectMembership ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> MemberProperty -> Value Prelude.Text -> ProjectMembership
mkProjectMembership :: Value Text
-> Value Text -> MemberProperty -> Value Text -> ProjectMembership
mkProjectMembership
  Value Text
designation
  Value Text
domainIdentifier
  MemberProperty
member
  Value Text
projectIdentifier
  = ProjectMembership
      {haddock_workaround_ :: ()
haddock_workaround_ = (), designation :: Value Text
designation = Value Text
designation,
       domainIdentifier :: Value Text
domainIdentifier = Value Text
domainIdentifier, member :: MemberProperty
member = MemberProperty
member,
       projectIdentifier :: Value Text
projectIdentifier = Value Text
projectIdentifier}
instance ToResourceProperties ProjectMembership where
  toResourceProperties :: ProjectMembership -> ResourceProperties
toResourceProperties ProjectMembership {()
Value Text
MemberProperty
haddock_workaround_ :: ProjectMembership -> ()
designation :: ProjectMembership -> Value Text
domainIdentifier :: ProjectMembership -> Value Text
member :: ProjectMembership -> MemberProperty
projectIdentifier :: ProjectMembership -> Value Text
haddock_workaround_ :: ()
designation :: Value Text
domainIdentifier :: Value Text
member :: MemberProperty
projectIdentifier :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::DataZone::ProjectMembership",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Designation" 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
designation,
                       Key
"DomainIdentifier" 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
domainIdentifier,
                       Key
"Member" Key -> MemberProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= MemberProperty
member,
                       Key
"ProjectIdentifier" 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
projectIdentifier]}
instance JSON.ToJSON ProjectMembership where
  toJSON :: ProjectMembership -> Value
toJSON ProjectMembership {()
Value Text
MemberProperty
haddock_workaround_ :: ProjectMembership -> ()
designation :: ProjectMembership -> Value Text
domainIdentifier :: ProjectMembership -> Value Text
member :: ProjectMembership -> MemberProperty
projectIdentifier :: ProjectMembership -> Value Text
haddock_workaround_ :: ()
designation :: Value Text
domainIdentifier :: Value Text
member :: MemberProperty
projectIdentifier :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Designation" 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
designation,
         Key
"DomainIdentifier" 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
domainIdentifier,
         Key
"Member" Key -> MemberProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= MemberProperty
member,
         Key
"ProjectIdentifier" 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
projectIdentifier]
instance Property "Designation" ProjectMembership where
  type PropertyType "Designation" ProjectMembership = Value Prelude.Text
  set :: PropertyType "Designation" ProjectMembership
-> ProjectMembership -> ProjectMembership
set PropertyType "Designation" ProjectMembership
newValue ProjectMembership {()
Value Text
MemberProperty
haddock_workaround_ :: ProjectMembership -> ()
designation :: ProjectMembership -> Value Text
domainIdentifier :: ProjectMembership -> Value Text
member :: ProjectMembership -> MemberProperty
projectIdentifier :: ProjectMembership -> Value Text
haddock_workaround_ :: ()
designation :: Value Text
domainIdentifier :: Value Text
member :: MemberProperty
projectIdentifier :: Value Text
..}
    = ProjectMembership {designation :: Value Text
designation = PropertyType "Designation" ProjectMembership
Value Text
newValue, ()
Value Text
MemberProperty
haddock_workaround_ :: ()
domainIdentifier :: Value Text
member :: MemberProperty
projectIdentifier :: Value Text
haddock_workaround_ :: ()
domainIdentifier :: Value Text
member :: MemberProperty
projectIdentifier :: Value Text
..}
instance Property "DomainIdentifier" ProjectMembership where
  type PropertyType "DomainIdentifier" ProjectMembership = Value Prelude.Text
  set :: PropertyType "DomainIdentifier" ProjectMembership
-> ProjectMembership -> ProjectMembership
set PropertyType "DomainIdentifier" ProjectMembership
newValue ProjectMembership {()
Value Text
MemberProperty
haddock_workaround_ :: ProjectMembership -> ()
designation :: ProjectMembership -> Value Text
domainIdentifier :: ProjectMembership -> Value Text
member :: ProjectMembership -> MemberProperty
projectIdentifier :: ProjectMembership -> Value Text
haddock_workaround_ :: ()
designation :: Value Text
domainIdentifier :: Value Text
member :: MemberProperty
projectIdentifier :: Value Text
..}
    = ProjectMembership {domainIdentifier :: Value Text
domainIdentifier = PropertyType "DomainIdentifier" ProjectMembership
Value Text
newValue, ()
Value Text
MemberProperty
haddock_workaround_ :: ()
designation :: Value Text
member :: MemberProperty
projectIdentifier :: Value Text
haddock_workaround_ :: ()
designation :: Value Text
member :: MemberProperty
projectIdentifier :: Value Text
..}
instance Property "Member" ProjectMembership where
  type PropertyType "Member" ProjectMembership = MemberProperty
  set :: PropertyType "Member" ProjectMembership
-> ProjectMembership -> ProjectMembership
set PropertyType "Member" ProjectMembership
newValue ProjectMembership {()
Value Text
MemberProperty
haddock_workaround_ :: ProjectMembership -> ()
designation :: ProjectMembership -> Value Text
domainIdentifier :: ProjectMembership -> Value Text
member :: ProjectMembership -> MemberProperty
projectIdentifier :: ProjectMembership -> Value Text
haddock_workaround_ :: ()
designation :: Value Text
domainIdentifier :: Value Text
member :: MemberProperty
projectIdentifier :: Value Text
..}
    = ProjectMembership {member :: MemberProperty
member = PropertyType "Member" ProjectMembership
MemberProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
designation :: Value Text
domainIdentifier :: Value Text
projectIdentifier :: Value Text
haddock_workaround_ :: ()
designation :: Value Text
domainIdentifier :: Value Text
projectIdentifier :: Value Text
..}
instance Property "ProjectIdentifier" ProjectMembership where
  type PropertyType "ProjectIdentifier" ProjectMembership = Value Prelude.Text
  set :: PropertyType "ProjectIdentifier" ProjectMembership
-> ProjectMembership -> ProjectMembership
set PropertyType "ProjectIdentifier" ProjectMembership
newValue ProjectMembership {()
Value Text
MemberProperty
haddock_workaround_ :: ProjectMembership -> ()
designation :: ProjectMembership -> Value Text
domainIdentifier :: ProjectMembership -> Value Text
member :: ProjectMembership -> MemberProperty
projectIdentifier :: ProjectMembership -> Value Text
haddock_workaround_ :: ()
designation :: Value Text
domainIdentifier :: Value Text
member :: MemberProperty
projectIdentifier :: Value Text
..}
    = ProjectMembership {projectIdentifier :: Value Text
projectIdentifier = PropertyType "ProjectIdentifier" ProjectMembership
Value Text
newValue, ()
Value Text
MemberProperty
haddock_workaround_ :: ()
designation :: Value Text
domainIdentifier :: Value Text
member :: MemberProperty
haddock_workaround_ :: ()
designation :: Value Text
domainIdentifier :: Value Text
member :: MemberProperty
..}