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: Collaboration {haddock_workaround_ :: (), -- | See: analyticsEngine :: (Prelude.Maybe (Value Prelude.Text)), -- | See: autoApprovedChangeTypes :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: creatorDisplayName :: (Value Prelude.Text), -- | See: creatorMLMemberAbilities :: (Prelude.Maybe MLMemberAbilitiesProperty), -- | See: creatorMemberAbilities :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: creatorPaymentConfiguration :: (Prelude.Maybe PaymentConfigurationProperty), -- | See: dataEncryptionMetadata :: (Prelude.Maybe DataEncryptionMetadataProperty), -- | See: description :: (Value Prelude.Text), -- | See: jobLogStatus :: (Prelude.Maybe (Value Prelude.Text)), -- | See: members :: (Prelude.Maybe [MemberSpecificationProperty]), -- | See: name :: (Value Prelude.Text), -- | See: queryLogStatus :: (Value Prelude.Text), -- | See: 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, ..}