packages feed

stratosphere-customerprofiles-1.0.0: gen/Stratosphere/CustomerProfiles/Domain/MatchingProperty.hs

module Stratosphere.CustomerProfiles.Domain.MatchingProperty (
        module Exports, MatchingProperty(..), mkMatchingProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CustomerProfiles.Domain.AutoMergingProperty as Exports
import {-# SOURCE #-} Stratosphere.CustomerProfiles.Domain.ExportingConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.CustomerProfiles.Domain.JobScheduleProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data MatchingProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-matching.html>
    MatchingProperty {haddock_workaround_ :: (),
                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-matching.html#cfn-customerprofiles-domain-matching-automerging>
                      autoMerging :: (Prelude.Maybe AutoMergingProperty),
                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-matching.html#cfn-customerprofiles-domain-matching-enabled>
                      enabled :: (Value Prelude.Bool),
                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-matching.html#cfn-customerprofiles-domain-matching-exportingconfig>
                      exportingConfig :: (Prelude.Maybe ExportingConfigProperty),
                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-matching.html#cfn-customerprofiles-domain-matching-jobschedule>
                      jobSchedule :: (Prelude.Maybe JobScheduleProperty)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkMatchingProperty :: Value Prelude.Bool -> MatchingProperty
mkMatchingProperty enabled
  = MatchingProperty
      {haddock_workaround_ = (), enabled = enabled,
       autoMerging = Prelude.Nothing, exportingConfig = Prelude.Nothing,
       jobSchedule = Prelude.Nothing}
instance ToResourceProperties MatchingProperty where
  toResourceProperties MatchingProperty {..}
    = ResourceProperties
        {awsType = "AWS::CustomerProfiles::Domain.Matching",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["Enabled" JSON..= enabled]
                           (Prelude.catMaybes
                              [(JSON..=) "AutoMerging" Prelude.<$> autoMerging,
                               (JSON..=) "ExportingConfig" Prelude.<$> exportingConfig,
                               (JSON..=) "JobSchedule" Prelude.<$> jobSchedule]))}
instance JSON.ToJSON MatchingProperty where
  toJSON MatchingProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["Enabled" JSON..= enabled]
              (Prelude.catMaybes
                 [(JSON..=) "AutoMerging" Prelude.<$> autoMerging,
                  (JSON..=) "ExportingConfig" Prelude.<$> exportingConfig,
                  (JSON..=) "JobSchedule" Prelude.<$> jobSchedule])))
instance Property "AutoMerging" MatchingProperty where
  type PropertyType "AutoMerging" MatchingProperty = AutoMergingProperty
  set newValue MatchingProperty {..}
    = MatchingProperty {autoMerging = Prelude.pure newValue, ..}
instance Property "Enabled" MatchingProperty where
  type PropertyType "Enabled" MatchingProperty = Value Prelude.Bool
  set newValue MatchingProperty {..}
    = MatchingProperty {enabled = newValue, ..}
instance Property "ExportingConfig" MatchingProperty where
  type PropertyType "ExportingConfig" MatchingProperty = ExportingConfigProperty
  set newValue MatchingProperty {..}
    = MatchingProperty {exportingConfig = Prelude.pure newValue, ..}
instance Property "JobSchedule" MatchingProperty where
  type PropertyType "JobSchedule" MatchingProperty = JobScheduleProperty
  set newValue MatchingProperty {..}
    = MatchingProperty {jobSchedule = Prelude.pure newValue, ..}