module Stratosphere.CustomerProfiles.Domain.AttributeTypesSelectorProperty (
        AttributeTypesSelectorProperty(..),
        mkAttributeTypesSelectorProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AttributeTypesSelectorProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-attributetypesselector.html>
    AttributeTypesSelectorProperty {AttributeTypesSelectorProperty -> ()
haddock_workaround_ :: (),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-attributetypesselector.html#cfn-customerprofiles-domain-attributetypesselector-address>
                                    AttributeTypesSelectorProperty -> Maybe (ValueList Text)
address :: (Prelude.Maybe (ValueList Prelude.Text)),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-attributetypesselector.html#cfn-customerprofiles-domain-attributetypesselector-attributematchingmodel>
                                    AttributeTypesSelectorProperty -> Value Text
attributeMatchingModel :: (Value Prelude.Text),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-attributetypesselector.html#cfn-customerprofiles-domain-attributetypesselector-emailaddress>
                                    AttributeTypesSelectorProperty -> Maybe (ValueList Text)
emailAddress :: (Prelude.Maybe (ValueList Prelude.Text)),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-attributetypesselector.html#cfn-customerprofiles-domain-attributetypesselector-phonenumber>
                                    AttributeTypesSelectorProperty -> Maybe (ValueList Text)
phoneNumber :: (Prelude.Maybe (ValueList Prelude.Text))}
  deriving stock (AttributeTypesSelectorProperty
-> AttributeTypesSelectorProperty -> Bool
(AttributeTypesSelectorProperty
 -> AttributeTypesSelectorProperty -> Bool)
-> (AttributeTypesSelectorProperty
    -> AttributeTypesSelectorProperty -> Bool)
-> Eq AttributeTypesSelectorProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AttributeTypesSelectorProperty
-> AttributeTypesSelectorProperty -> Bool
== :: AttributeTypesSelectorProperty
-> AttributeTypesSelectorProperty -> Bool
$c/= :: AttributeTypesSelectorProperty
-> AttributeTypesSelectorProperty -> Bool
/= :: AttributeTypesSelectorProperty
-> AttributeTypesSelectorProperty -> Bool
Prelude.Eq, Int -> AttributeTypesSelectorProperty -> ShowS
[AttributeTypesSelectorProperty] -> ShowS
AttributeTypesSelectorProperty -> String
(Int -> AttributeTypesSelectorProperty -> ShowS)
-> (AttributeTypesSelectorProperty -> String)
-> ([AttributeTypesSelectorProperty] -> ShowS)
-> Show AttributeTypesSelectorProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AttributeTypesSelectorProperty -> ShowS
showsPrec :: Int -> AttributeTypesSelectorProperty -> ShowS
$cshow :: AttributeTypesSelectorProperty -> String
show :: AttributeTypesSelectorProperty -> String
$cshowList :: [AttributeTypesSelectorProperty] -> ShowS
showList :: [AttributeTypesSelectorProperty] -> ShowS
Prelude.Show)
mkAttributeTypesSelectorProperty ::
  Value Prelude.Text -> AttributeTypesSelectorProperty
mkAttributeTypesSelectorProperty :: Value Text -> AttributeTypesSelectorProperty
mkAttributeTypesSelectorProperty Value Text
attributeMatchingModel
  = AttributeTypesSelectorProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       attributeMatchingModel :: Value Text
attributeMatchingModel = Value Text
attributeMatchingModel,
       address :: Maybe (ValueList Text)
address = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing, emailAddress :: Maybe (ValueList Text)
emailAddress = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing,
       phoneNumber :: Maybe (ValueList Text)
phoneNumber = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties AttributeTypesSelectorProperty where
  toResourceProperties :: AttributeTypesSelectorProperty -> ResourceProperties
toResourceProperties AttributeTypesSelectorProperty {Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: AttributeTypesSelectorProperty -> ()
address :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
attributeMatchingModel :: AttributeTypesSelectorProperty -> Value Text
emailAddress :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
phoneNumber :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
haddock_workaround_ :: ()
address :: Maybe (ValueList Text)
attributeMatchingModel :: Value Text
emailAddress :: Maybe (ValueList Text)
phoneNumber :: Maybe (ValueList Text)
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::CustomerProfiles::Domain.AttributeTypesSelector",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"AttributeMatchingModel" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
attributeMatchingModel]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Address" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
address,
                               Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"EmailAddress" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
emailAddress,
                               Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"PhoneNumber" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
phoneNumber]))}
instance JSON.ToJSON AttributeTypesSelectorProperty where
  toJSON :: AttributeTypesSelectorProperty -> Value
toJSON AttributeTypesSelectorProperty {Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: AttributeTypesSelectorProperty -> ()
address :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
attributeMatchingModel :: AttributeTypesSelectorProperty -> Value Text
emailAddress :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
phoneNumber :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
haddock_workaround_ :: ()
address :: Maybe (ValueList Text)
attributeMatchingModel :: Value Text
emailAddress :: Maybe (ValueList Text)
phoneNumber :: Maybe (ValueList Text)
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"AttributeMatchingModel" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
attributeMatchingModel]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Address" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
address,
                  Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"EmailAddress" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
emailAddress,
                  Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"PhoneNumber" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
phoneNumber])))
instance Property "Address" AttributeTypesSelectorProperty where
  type PropertyType "Address" AttributeTypesSelectorProperty = ValueList Prelude.Text
  set :: PropertyType "Address" AttributeTypesSelectorProperty
-> AttributeTypesSelectorProperty -> AttributeTypesSelectorProperty
set PropertyType "Address" AttributeTypesSelectorProperty
newValue AttributeTypesSelectorProperty {Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: AttributeTypesSelectorProperty -> ()
address :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
attributeMatchingModel :: AttributeTypesSelectorProperty -> Value Text
emailAddress :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
phoneNumber :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
haddock_workaround_ :: ()
address :: Maybe (ValueList Text)
attributeMatchingModel :: Value Text
emailAddress :: Maybe (ValueList Text)
phoneNumber :: Maybe (ValueList Text)
..}
    = AttributeTypesSelectorProperty
        {address :: Maybe (ValueList Text)
address = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Address" AttributeTypesSelectorProperty
ValueList Text
newValue, Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ()
attributeMatchingModel :: Value Text
emailAddress :: Maybe (ValueList Text)
phoneNumber :: Maybe (ValueList Text)
haddock_workaround_ :: ()
attributeMatchingModel :: Value Text
emailAddress :: Maybe (ValueList Text)
phoneNumber :: Maybe (ValueList Text)
..}
instance Property "AttributeMatchingModel" AttributeTypesSelectorProperty where
  type PropertyType "AttributeMatchingModel" AttributeTypesSelectorProperty = Value Prelude.Text
  set :: PropertyType
  "AttributeMatchingModel" AttributeTypesSelectorProperty
-> AttributeTypesSelectorProperty -> AttributeTypesSelectorProperty
set PropertyType
  "AttributeMatchingModel" AttributeTypesSelectorProperty
newValue AttributeTypesSelectorProperty {Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: AttributeTypesSelectorProperty -> ()
address :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
attributeMatchingModel :: AttributeTypesSelectorProperty -> Value Text
emailAddress :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
phoneNumber :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
haddock_workaround_ :: ()
address :: Maybe (ValueList Text)
attributeMatchingModel :: Value Text
emailAddress :: Maybe (ValueList Text)
phoneNumber :: Maybe (ValueList Text)
..}
    = AttributeTypesSelectorProperty
        {attributeMatchingModel :: Value Text
attributeMatchingModel = PropertyType
  "AttributeMatchingModel" AttributeTypesSelectorProperty
Value Text
newValue, Maybe (ValueList Text)
()
haddock_workaround_ :: ()
address :: Maybe (ValueList Text)
emailAddress :: Maybe (ValueList Text)
phoneNumber :: Maybe (ValueList Text)
haddock_workaround_ :: ()
address :: Maybe (ValueList Text)
emailAddress :: Maybe (ValueList Text)
phoneNumber :: Maybe (ValueList Text)
..}
instance Property "EmailAddress" AttributeTypesSelectorProperty where
  type PropertyType "EmailAddress" AttributeTypesSelectorProperty = ValueList Prelude.Text
  set :: PropertyType "EmailAddress" AttributeTypesSelectorProperty
-> AttributeTypesSelectorProperty -> AttributeTypesSelectorProperty
set PropertyType "EmailAddress" AttributeTypesSelectorProperty
newValue AttributeTypesSelectorProperty {Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: AttributeTypesSelectorProperty -> ()
address :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
attributeMatchingModel :: AttributeTypesSelectorProperty -> Value Text
emailAddress :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
phoneNumber :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
haddock_workaround_ :: ()
address :: Maybe (ValueList Text)
attributeMatchingModel :: Value Text
emailAddress :: Maybe (ValueList Text)
phoneNumber :: Maybe (ValueList Text)
..}
    = AttributeTypesSelectorProperty
        {emailAddress :: Maybe (ValueList Text)
emailAddress = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "EmailAddress" AttributeTypesSelectorProperty
ValueList Text
newValue, Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ()
address :: Maybe (ValueList Text)
attributeMatchingModel :: Value Text
phoneNumber :: Maybe (ValueList Text)
haddock_workaround_ :: ()
address :: Maybe (ValueList Text)
attributeMatchingModel :: Value Text
phoneNumber :: Maybe (ValueList Text)
..}
instance Property "PhoneNumber" AttributeTypesSelectorProperty where
  type PropertyType "PhoneNumber" AttributeTypesSelectorProperty = ValueList Prelude.Text
  set :: PropertyType "PhoneNumber" AttributeTypesSelectorProperty
-> AttributeTypesSelectorProperty -> AttributeTypesSelectorProperty
set PropertyType "PhoneNumber" AttributeTypesSelectorProperty
newValue AttributeTypesSelectorProperty {Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: AttributeTypesSelectorProperty -> ()
address :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
attributeMatchingModel :: AttributeTypesSelectorProperty -> Value Text
emailAddress :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
phoneNumber :: AttributeTypesSelectorProperty -> Maybe (ValueList Text)
haddock_workaround_ :: ()
address :: Maybe (ValueList Text)
attributeMatchingModel :: Value Text
emailAddress :: Maybe (ValueList Text)
phoneNumber :: Maybe (ValueList Text)
..}
    = AttributeTypesSelectorProperty
        {phoneNumber :: Maybe (ValueList Text)
phoneNumber = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "PhoneNumber" AttributeTypesSelectorProperty
ValueList Text
newValue, Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ()
address :: Maybe (ValueList Text)
attributeMatchingModel :: Value Text
emailAddress :: Maybe (ValueList Text)
haddock_workaround_ :: ()
address :: Maybe (ValueList Text)
attributeMatchingModel :: Value Text
emailAddress :: Maybe (ValueList Text)
..}