packages feed

stratosphere-cleanrooms-1.0.0: gen/Stratosphere/CleanRooms/Collaboration.hs

module Stratosphere.CleanRooms.Collaboration (
        module Exports, Collaboration(..), mkCollaboration
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CleanRooms.Collaboration.DataEncryptionMetadataProperty as Exports
import {-# SOURCE #-} Stratosphere.CleanRooms.Collaboration.MLMemberAbilitiesProperty as Exports
import {-# SOURCE #-} Stratosphere.CleanRooms.Collaboration.MemberSpecificationProperty as Exports
import {-# SOURCE #-} Stratosphere.CleanRooms.Collaboration.PaymentConfigurationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data Collaboration
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html>
    Collaboration {haddock_workaround_ :: (),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html#cfn-cleanrooms-collaboration-analyticsengine>
                   analyticsEngine :: (Prelude.Maybe (Value Prelude.Text)),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html#cfn-cleanrooms-collaboration-autoapprovedchangetypes>
                   autoApprovedChangeTypes :: (Prelude.Maybe (ValueList Prelude.Text)),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html#cfn-cleanrooms-collaboration-creatordisplayname>
                   creatorDisplayName :: (Value Prelude.Text),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html#cfn-cleanrooms-collaboration-creatormlmemberabilities>
                   creatorMLMemberAbilities :: (Prelude.Maybe MLMemberAbilitiesProperty),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html#cfn-cleanrooms-collaboration-creatormemberabilities>
                   creatorMemberAbilities :: (Prelude.Maybe (ValueList Prelude.Text)),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html#cfn-cleanrooms-collaboration-creatorpaymentconfiguration>
                   creatorPaymentConfiguration :: (Prelude.Maybe PaymentConfigurationProperty),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html#cfn-cleanrooms-collaboration-dataencryptionmetadata>
                   dataEncryptionMetadata :: (Prelude.Maybe DataEncryptionMetadataProperty),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html#cfn-cleanrooms-collaboration-description>
                   description :: (Value Prelude.Text),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html#cfn-cleanrooms-collaboration-joblogstatus>
                   jobLogStatus :: (Prelude.Maybe (Value Prelude.Text)),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html#cfn-cleanrooms-collaboration-members>
                   members :: (Prelude.Maybe [MemberSpecificationProperty]),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html#cfn-cleanrooms-collaboration-name>
                   name :: (Value Prelude.Text),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html#cfn-cleanrooms-collaboration-querylogstatus>
                   queryLogStatus :: (Value Prelude.Text),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html#cfn-cleanrooms-collaboration-tags>
                   tags :: (Prelude.Maybe [Tag])}
  deriving stock (Prelude.Eq, Prelude.Show)
mkCollaboration ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text -> Value Prelude.Text -> Collaboration
mkCollaboration creatorDisplayName description name queryLogStatus
  = Collaboration
      {haddock_workaround_ = (), creatorDisplayName = creatorDisplayName,
       description = description, name = name,
       queryLogStatus = queryLogStatus, analyticsEngine = Prelude.Nothing,
       autoApprovedChangeTypes = Prelude.Nothing,
       creatorMLMemberAbilities = Prelude.Nothing,
       creatorMemberAbilities = Prelude.Nothing,
       creatorPaymentConfiguration = Prelude.Nothing,
       dataEncryptionMetadata = Prelude.Nothing,
       jobLogStatus = Prelude.Nothing, members = Prelude.Nothing,
       tags = Prelude.Nothing}
instance ToResourceProperties Collaboration where
  toResourceProperties Collaboration {..}
    = ResourceProperties
        {awsType = "AWS::CleanRooms::Collaboration",
         supportsTags = Prelude.True,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["CreatorDisplayName" JSON..= creatorDisplayName,
                            "Description" JSON..= description, "Name" JSON..= name,
                            "QueryLogStatus" JSON..= queryLogStatus]
                           (Prelude.catMaybes
                              [(JSON..=) "AnalyticsEngine" Prelude.<$> analyticsEngine,
                               (JSON..=) "AutoApprovedChangeTypes"
                                 Prelude.<$> autoApprovedChangeTypes,
                               (JSON..=) "CreatorMLMemberAbilities"
                                 Prelude.<$> creatorMLMemberAbilities,
                               (JSON..=) "CreatorMemberAbilities"
                                 Prelude.<$> creatorMemberAbilities,
                               (JSON..=) "CreatorPaymentConfiguration"
                                 Prelude.<$> creatorPaymentConfiguration,
                               (JSON..=) "DataEncryptionMetadata"
                                 Prelude.<$> dataEncryptionMetadata,
                               (JSON..=) "JobLogStatus" Prelude.<$> jobLogStatus,
                               (JSON..=) "Members" Prelude.<$> members,
                               (JSON..=) "Tags" Prelude.<$> tags]))}
instance JSON.ToJSON Collaboration where
  toJSON Collaboration {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["CreatorDisplayName" JSON..= creatorDisplayName,
               "Description" JSON..= description, "Name" JSON..= name,
               "QueryLogStatus" JSON..= queryLogStatus]
              (Prelude.catMaybes
                 [(JSON..=) "AnalyticsEngine" Prelude.<$> analyticsEngine,
                  (JSON..=) "AutoApprovedChangeTypes"
                    Prelude.<$> autoApprovedChangeTypes,
                  (JSON..=) "CreatorMLMemberAbilities"
                    Prelude.<$> creatorMLMemberAbilities,
                  (JSON..=) "CreatorMemberAbilities"
                    Prelude.<$> creatorMemberAbilities,
                  (JSON..=) "CreatorPaymentConfiguration"
                    Prelude.<$> creatorPaymentConfiguration,
                  (JSON..=) "DataEncryptionMetadata"
                    Prelude.<$> dataEncryptionMetadata,
                  (JSON..=) "JobLogStatus" Prelude.<$> jobLogStatus,
                  (JSON..=) "Members" Prelude.<$> members,
                  (JSON..=) "Tags" Prelude.<$> tags])))
instance Property "AnalyticsEngine" Collaboration where
  type PropertyType "AnalyticsEngine" Collaboration = Value Prelude.Text
  set newValue Collaboration {..}
    = Collaboration {analyticsEngine = Prelude.pure newValue, ..}
instance Property "AutoApprovedChangeTypes" Collaboration where
  type PropertyType "AutoApprovedChangeTypes" Collaboration = ValueList Prelude.Text
  set newValue Collaboration {..}
    = Collaboration
        {autoApprovedChangeTypes = Prelude.pure newValue, ..}
instance Property "CreatorDisplayName" Collaboration where
  type PropertyType "CreatorDisplayName" Collaboration = Value Prelude.Text
  set newValue Collaboration {..}
    = Collaboration {creatorDisplayName = newValue, ..}
instance Property "CreatorMLMemberAbilities" Collaboration where
  type PropertyType "CreatorMLMemberAbilities" Collaboration = MLMemberAbilitiesProperty
  set newValue Collaboration {..}
    = Collaboration
        {creatorMLMemberAbilities = Prelude.pure newValue, ..}
instance Property "CreatorMemberAbilities" Collaboration where
  type PropertyType "CreatorMemberAbilities" Collaboration = ValueList Prelude.Text
  set newValue Collaboration {..}
    = Collaboration
        {creatorMemberAbilities = Prelude.pure newValue, ..}
instance Property "CreatorPaymentConfiguration" Collaboration where
  type PropertyType "CreatorPaymentConfiguration" Collaboration = PaymentConfigurationProperty
  set newValue Collaboration {..}
    = Collaboration
        {creatorPaymentConfiguration = Prelude.pure newValue, ..}
instance Property "DataEncryptionMetadata" Collaboration where
  type PropertyType "DataEncryptionMetadata" Collaboration = DataEncryptionMetadataProperty
  set newValue Collaboration {..}
    = Collaboration
        {dataEncryptionMetadata = Prelude.pure newValue, ..}
instance Property "Description" Collaboration where
  type PropertyType "Description" Collaboration = Value Prelude.Text
  set newValue Collaboration {..}
    = Collaboration {description = newValue, ..}
instance Property "JobLogStatus" Collaboration where
  type PropertyType "JobLogStatus" Collaboration = Value Prelude.Text
  set newValue Collaboration {..}
    = Collaboration {jobLogStatus = Prelude.pure newValue, ..}
instance Property "Members" Collaboration where
  type PropertyType "Members" Collaboration = [MemberSpecificationProperty]
  set newValue Collaboration {..}
    = Collaboration {members = Prelude.pure newValue, ..}
instance Property "Name" Collaboration where
  type PropertyType "Name" Collaboration = Value Prelude.Text
  set newValue Collaboration {..}
    = Collaboration {name = newValue, ..}
instance Property "QueryLogStatus" Collaboration where
  type PropertyType "QueryLogStatus" Collaboration = Value Prelude.Text
  set newValue Collaboration {..}
    = Collaboration {queryLogStatus = newValue, ..}
instance Property "Tags" Collaboration where
  type PropertyType "Tags" Collaboration = [Tag]
  set newValue Collaboration {..}
    = Collaboration {tags = Prelude.pure newValue, ..}