content: 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
    = ProjectMembership {designation :: (Value Prelude.Text),
                         domainIdentifier :: (Value Prelude.Text),
                         member :: MemberProperty,
                         projectIdentifier :: (Value Prelude.Text)}
    deriving stock (Prelude.Eq, Prelude.Show)
  mkProjectMembership ::
    Value Prelude.Text
    -> Value Prelude.Text
       -> MemberProperty -> Value Prelude.Text -> ProjectMembership
  mkProjectMembership
    designation
    domainIdentifier
    member
    projectIdentifier
    = ProjectMembership
        {designation = designation, domainIdentifier = domainIdentifier,
         member = member, projectIdentifier = projectIdentifier}
  instance ToResourceProperties ProjectMembership where
    toResourceProperties ProjectMembership {..}
      = ResourceProperties
          {awsType = "AWS::DataZone::ProjectMembership",
           supportsTags = Prelude.False,
           properties = ["Designation" JSON..= designation,
                         "DomainIdentifier" JSON..= domainIdentifier,
                         "Member" JSON..= member,
                         "ProjectIdentifier" JSON..= projectIdentifier]}
  instance JSON.ToJSON ProjectMembership where
    toJSON ProjectMembership {..}
      = JSON.object
          ["Designation" JSON..= designation,
           "DomainIdentifier" JSON..= domainIdentifier,
           "Member" JSON..= member,
           "ProjectIdentifier" JSON..= projectIdentifier]
  instance Property "Designation" ProjectMembership where
    type PropertyType "Designation" ProjectMembership = Value Prelude.Text
    set newValue ProjectMembership {..}
      = ProjectMembership {designation = newValue, ..}
  instance Property "DomainIdentifier" ProjectMembership where
    type PropertyType "DomainIdentifier" ProjectMembership = Value Prelude.Text
    set newValue ProjectMembership {..}
      = ProjectMembership {domainIdentifier = newValue, ..}
  instance Property "Member" ProjectMembership where
    type PropertyType "Member" ProjectMembership = MemberProperty
    set newValue ProjectMembership {..}
      = ProjectMembership {member = newValue, ..}
  instance Property "ProjectIdentifier" ProjectMembership where
    type PropertyType "ProjectIdentifier" ProjectMembership = Value Prelude.Text
    set newValue ProjectMembership {..}
      = ProjectMembership {projectIdentifier = newValue, ..}