module Stratosphere.CleanRooms.Membership ( module Exports, Membership(..), mkMembership ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.CleanRooms.Membership.MembershipPaymentConfigurationProperty as Exports import {-# SOURCE #-} Stratosphere.CleanRooms.Membership.MembershipProtectedJobResultConfigurationProperty as Exports import {-# SOURCE #-} Stratosphere.CleanRooms.Membership.MembershipProtectedQueryResultConfigurationProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data Membership = -- | See: Membership {haddock_workaround_ :: (), -- | See: collaborationIdentifier :: (Value Prelude.Text), -- | See: defaultJobResultConfiguration :: (Prelude.Maybe MembershipProtectedJobResultConfigurationProperty), -- | See: defaultResultConfiguration :: (Prelude.Maybe MembershipProtectedQueryResultConfigurationProperty), -- | See: jobLogStatus :: (Prelude.Maybe (Value Prelude.Text)), -- | See: paymentConfiguration :: (Prelude.Maybe MembershipPaymentConfigurationProperty), -- | See: queryLogStatus :: (Value Prelude.Text), -- | See: tags :: (Prelude.Maybe [Tag])} deriving stock (Prelude.Eq, Prelude.Show) mkMembership :: Value Prelude.Text -> Value Prelude.Text -> Membership mkMembership collaborationIdentifier queryLogStatus = Membership {haddock_workaround_ = (), collaborationIdentifier = collaborationIdentifier, queryLogStatus = queryLogStatus, defaultJobResultConfiguration = Prelude.Nothing, defaultResultConfiguration = Prelude.Nothing, jobLogStatus = Prelude.Nothing, paymentConfiguration = Prelude.Nothing, tags = Prelude.Nothing} instance ToResourceProperties Membership where toResourceProperties Membership {..} = ResourceProperties {awsType = "AWS::CleanRooms::Membership", supportsTags = Prelude.True, properties = Prelude.fromList ((Prelude.<>) ["CollaborationIdentifier" JSON..= collaborationIdentifier, "QueryLogStatus" JSON..= queryLogStatus] (Prelude.catMaybes [(JSON..=) "DefaultJobResultConfiguration" Prelude.<$> defaultJobResultConfiguration, (JSON..=) "DefaultResultConfiguration" Prelude.<$> defaultResultConfiguration, (JSON..=) "JobLogStatus" Prelude.<$> jobLogStatus, (JSON..=) "PaymentConfiguration" Prelude.<$> paymentConfiguration, (JSON..=) "Tags" Prelude.<$> tags]))} instance JSON.ToJSON Membership where toJSON Membership {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["CollaborationIdentifier" JSON..= collaborationIdentifier, "QueryLogStatus" JSON..= queryLogStatus] (Prelude.catMaybes [(JSON..=) "DefaultJobResultConfiguration" Prelude.<$> defaultJobResultConfiguration, (JSON..=) "DefaultResultConfiguration" Prelude.<$> defaultResultConfiguration, (JSON..=) "JobLogStatus" Prelude.<$> jobLogStatus, (JSON..=) "PaymentConfiguration" Prelude.<$> paymentConfiguration, (JSON..=) "Tags" Prelude.<$> tags]))) instance Property "CollaborationIdentifier" Membership where type PropertyType "CollaborationIdentifier" Membership = Value Prelude.Text set newValue Membership {..} = Membership {collaborationIdentifier = newValue, ..} instance Property "DefaultJobResultConfiguration" Membership where type PropertyType "DefaultJobResultConfiguration" Membership = MembershipProtectedJobResultConfigurationProperty set newValue Membership {..} = Membership {defaultJobResultConfiguration = Prelude.pure newValue, ..} instance Property "DefaultResultConfiguration" Membership where type PropertyType "DefaultResultConfiguration" Membership = MembershipProtectedQueryResultConfigurationProperty set newValue Membership {..} = Membership {defaultResultConfiguration = Prelude.pure newValue, ..} instance Property "JobLogStatus" Membership where type PropertyType "JobLogStatus" Membership = Value Prelude.Text set newValue Membership {..} = Membership {jobLogStatus = Prelude.pure newValue, ..} instance Property "PaymentConfiguration" Membership where type PropertyType "PaymentConfiguration" Membership = MembershipPaymentConfigurationProperty set newValue Membership {..} = Membership {paymentConfiguration = Prelude.pure newValue, ..} instance Property "QueryLogStatus" Membership where type PropertyType "QueryLogStatus" Membership = Value Prelude.Text set newValue Membership {..} = Membership {queryLogStatus = newValue, ..} instance Property "Tags" Membership where type PropertyType "Tags" Membership = [Tag] set newValue Membership {..} = Membership {tags = Prelude.pure newValue, ..}