module Stratosphere.QuickSight.Topic.NamedEntityDefinitionProperty (
        module Exports, NamedEntityDefinitionProperty(..),
        mkNamedEntityDefinitionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.QuickSight.Topic.NamedEntityDefinitionMetricProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data NamedEntityDefinitionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-topic-namedentitydefinition.html>
    NamedEntityDefinitionProperty {NamedEntityDefinitionProperty -> ()
haddock_workaround_ :: (),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-topic-namedentitydefinition.html#cfn-quicksight-topic-namedentitydefinition-fieldname>
                                   NamedEntityDefinitionProperty -> Maybe (Value Text)
fieldName :: (Prelude.Maybe (Value Prelude.Text)),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-topic-namedentitydefinition.html#cfn-quicksight-topic-namedentitydefinition-metric>
                                   NamedEntityDefinitionProperty
-> Maybe NamedEntityDefinitionMetricProperty
metric :: (Prelude.Maybe NamedEntityDefinitionMetricProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-topic-namedentitydefinition.html#cfn-quicksight-topic-namedentitydefinition-propertyname>
                                   NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyName :: (Prelude.Maybe (Value Prelude.Text)),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-topic-namedentitydefinition.html#cfn-quicksight-topic-namedentitydefinition-propertyrole>
                                   NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyRole :: (Prelude.Maybe (Value Prelude.Text)),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-topic-namedentitydefinition.html#cfn-quicksight-topic-namedentitydefinition-propertyusage>
                                   NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyUsage :: (Prelude.Maybe (Value Prelude.Text))}
  deriving stock (NamedEntityDefinitionProperty
-> NamedEntityDefinitionProperty -> Bool
(NamedEntityDefinitionProperty
 -> NamedEntityDefinitionProperty -> Bool)
-> (NamedEntityDefinitionProperty
    -> NamedEntityDefinitionProperty -> Bool)
-> Eq NamedEntityDefinitionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NamedEntityDefinitionProperty
-> NamedEntityDefinitionProperty -> Bool
== :: NamedEntityDefinitionProperty
-> NamedEntityDefinitionProperty -> Bool
$c/= :: NamedEntityDefinitionProperty
-> NamedEntityDefinitionProperty -> Bool
/= :: NamedEntityDefinitionProperty
-> NamedEntityDefinitionProperty -> Bool
Prelude.Eq, Int -> NamedEntityDefinitionProperty -> ShowS
[NamedEntityDefinitionProperty] -> ShowS
NamedEntityDefinitionProperty -> String
(Int -> NamedEntityDefinitionProperty -> ShowS)
-> (NamedEntityDefinitionProperty -> String)
-> ([NamedEntityDefinitionProperty] -> ShowS)
-> Show NamedEntityDefinitionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NamedEntityDefinitionProperty -> ShowS
showsPrec :: Int -> NamedEntityDefinitionProperty -> ShowS
$cshow :: NamedEntityDefinitionProperty -> String
show :: NamedEntityDefinitionProperty -> String
$cshowList :: [NamedEntityDefinitionProperty] -> ShowS
showList :: [NamedEntityDefinitionProperty] -> ShowS
Prelude.Show)
mkNamedEntityDefinitionProperty :: NamedEntityDefinitionProperty
mkNamedEntityDefinitionProperty :: NamedEntityDefinitionProperty
mkNamedEntityDefinitionProperty
  = NamedEntityDefinitionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), fieldName :: Maybe (Value Text)
fieldName = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing,
       metric :: Maybe NamedEntityDefinitionMetricProperty
metric = Maybe NamedEntityDefinitionMetricProperty
forall a. Maybe a
Prelude.Nothing, propertyName :: Maybe (Value Text)
propertyName = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing,
       propertyRole :: Maybe (Value Text)
propertyRole = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing, propertyUsage :: Maybe (Value Text)
propertyUsage = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties NamedEntityDefinitionProperty where
  toResourceProperties :: NamedEntityDefinitionProperty -> ResourceProperties
toResourceProperties NamedEntityDefinitionProperty {Maybe (Value Text)
Maybe NamedEntityDefinitionMetricProperty
()
haddock_workaround_ :: NamedEntityDefinitionProperty -> ()
fieldName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
metric :: NamedEntityDefinitionProperty
-> Maybe NamedEntityDefinitionMetricProperty
propertyName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyRole :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyUsage :: NamedEntityDefinitionProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyName :: Maybe (Value Text)
propertyRole :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::QuickSight::Topic.NamedEntityDefinition",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [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..=) Key
"FieldName" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
fieldName,
                            Key -> NamedEntityDefinitionMetricProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Metric" (NamedEntityDefinitionMetricProperty -> (Key, Value))
-> Maybe NamedEntityDefinitionMetricProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe NamedEntityDefinitionMetricProperty
metric,
                            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..=) Key
"PropertyName" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
propertyName,
                            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..=) Key
"PropertyRole" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
propertyRole,
                            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..=) Key
"PropertyUsage" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
propertyUsage])}
instance JSON.ToJSON NamedEntityDefinitionProperty where
  toJSON :: NamedEntityDefinitionProperty -> Value
toJSON NamedEntityDefinitionProperty {Maybe (Value Text)
Maybe NamedEntityDefinitionMetricProperty
()
haddock_workaround_ :: NamedEntityDefinitionProperty -> ()
fieldName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
metric :: NamedEntityDefinitionProperty
-> Maybe NamedEntityDefinitionMetricProperty
propertyName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyRole :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyUsage :: NamedEntityDefinitionProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyName :: Maybe (Value Text)
propertyRole :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [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..=) Key
"FieldName" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
fieldName,
               Key -> NamedEntityDefinitionMetricProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Metric" (NamedEntityDefinitionMetricProperty -> (Key, Value))
-> Maybe NamedEntityDefinitionMetricProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe NamedEntityDefinitionMetricProperty
metric,
               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..=) Key
"PropertyName" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
propertyName,
               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..=) Key
"PropertyRole" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
propertyRole,
               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..=) Key
"PropertyUsage" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
propertyUsage]))
instance Property "FieldName" NamedEntityDefinitionProperty where
  type PropertyType "FieldName" NamedEntityDefinitionProperty = Value Prelude.Text
  set :: PropertyType "FieldName" NamedEntityDefinitionProperty
-> NamedEntityDefinitionProperty -> NamedEntityDefinitionProperty
set PropertyType "FieldName" NamedEntityDefinitionProperty
newValue NamedEntityDefinitionProperty {Maybe (Value Text)
Maybe NamedEntityDefinitionMetricProperty
()
haddock_workaround_ :: NamedEntityDefinitionProperty -> ()
fieldName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
metric :: NamedEntityDefinitionProperty
-> Maybe NamedEntityDefinitionMetricProperty
propertyName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyRole :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyUsage :: NamedEntityDefinitionProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyName :: Maybe (Value Text)
propertyRole :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
..}
    = NamedEntityDefinitionProperty
        {fieldName :: Maybe (Value Text)
fieldName = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "FieldName" NamedEntityDefinitionProperty
Value Text
newValue, Maybe (Value Text)
Maybe NamedEntityDefinitionMetricProperty
()
haddock_workaround_ :: ()
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyName :: Maybe (Value Text)
propertyRole :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
haddock_workaround_ :: ()
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyName :: Maybe (Value Text)
propertyRole :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
..}
instance Property "Metric" NamedEntityDefinitionProperty where
  type PropertyType "Metric" NamedEntityDefinitionProperty = NamedEntityDefinitionMetricProperty
  set :: PropertyType "Metric" NamedEntityDefinitionProperty
-> NamedEntityDefinitionProperty -> NamedEntityDefinitionProperty
set PropertyType "Metric" NamedEntityDefinitionProperty
newValue NamedEntityDefinitionProperty {Maybe (Value Text)
Maybe NamedEntityDefinitionMetricProperty
()
haddock_workaround_ :: NamedEntityDefinitionProperty -> ()
fieldName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
metric :: NamedEntityDefinitionProperty
-> Maybe NamedEntityDefinitionMetricProperty
propertyName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyRole :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyUsage :: NamedEntityDefinitionProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyName :: Maybe (Value Text)
propertyRole :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
..}
    = NamedEntityDefinitionProperty
        {metric :: Maybe NamedEntityDefinitionMetricProperty
metric = NamedEntityDefinitionMetricProperty
-> Maybe NamedEntityDefinitionMetricProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Metric" NamedEntityDefinitionProperty
NamedEntityDefinitionMetricProperty
newValue, Maybe (Value Text)
()
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
propertyName :: Maybe (Value Text)
propertyRole :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
propertyName :: Maybe (Value Text)
propertyRole :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
..}
instance Property "PropertyName" NamedEntityDefinitionProperty where
  type PropertyType "PropertyName" NamedEntityDefinitionProperty = Value Prelude.Text
  set :: PropertyType "PropertyName" NamedEntityDefinitionProperty
-> NamedEntityDefinitionProperty -> NamedEntityDefinitionProperty
set PropertyType "PropertyName" NamedEntityDefinitionProperty
newValue NamedEntityDefinitionProperty {Maybe (Value Text)
Maybe NamedEntityDefinitionMetricProperty
()
haddock_workaround_ :: NamedEntityDefinitionProperty -> ()
fieldName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
metric :: NamedEntityDefinitionProperty
-> Maybe NamedEntityDefinitionMetricProperty
propertyName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyRole :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyUsage :: NamedEntityDefinitionProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyName :: Maybe (Value Text)
propertyRole :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
..}
    = NamedEntityDefinitionProperty
        {propertyName :: Maybe (Value Text)
propertyName = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "PropertyName" NamedEntityDefinitionProperty
Value Text
newValue, Maybe (Value Text)
Maybe NamedEntityDefinitionMetricProperty
()
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyRole :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyRole :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
..}
instance Property "PropertyRole" NamedEntityDefinitionProperty where
  type PropertyType "PropertyRole" NamedEntityDefinitionProperty = Value Prelude.Text
  set :: PropertyType "PropertyRole" NamedEntityDefinitionProperty
-> NamedEntityDefinitionProperty -> NamedEntityDefinitionProperty
set PropertyType "PropertyRole" NamedEntityDefinitionProperty
newValue NamedEntityDefinitionProperty {Maybe (Value Text)
Maybe NamedEntityDefinitionMetricProperty
()
haddock_workaround_ :: NamedEntityDefinitionProperty -> ()
fieldName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
metric :: NamedEntityDefinitionProperty
-> Maybe NamedEntityDefinitionMetricProperty
propertyName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyRole :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyUsage :: NamedEntityDefinitionProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyName :: Maybe (Value Text)
propertyRole :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
..}
    = NamedEntityDefinitionProperty
        {propertyRole :: Maybe (Value Text)
propertyRole = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "PropertyRole" NamedEntityDefinitionProperty
Value Text
newValue, Maybe (Value Text)
Maybe NamedEntityDefinitionMetricProperty
()
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyName :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyName :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
..}
instance Property "PropertyUsage" NamedEntityDefinitionProperty where
  type PropertyType "PropertyUsage" NamedEntityDefinitionProperty = Value Prelude.Text
  set :: PropertyType "PropertyUsage" NamedEntityDefinitionProperty
-> NamedEntityDefinitionProperty -> NamedEntityDefinitionProperty
set PropertyType "PropertyUsage" NamedEntityDefinitionProperty
newValue NamedEntityDefinitionProperty {Maybe (Value Text)
Maybe NamedEntityDefinitionMetricProperty
()
haddock_workaround_ :: NamedEntityDefinitionProperty -> ()
fieldName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
metric :: NamedEntityDefinitionProperty
-> Maybe NamedEntityDefinitionMetricProperty
propertyName :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyRole :: NamedEntityDefinitionProperty -> Maybe (Value Text)
propertyUsage :: NamedEntityDefinitionProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyName :: Maybe (Value Text)
propertyRole :: Maybe (Value Text)
propertyUsage :: Maybe (Value Text)
..}
    = NamedEntityDefinitionProperty
        {propertyUsage :: Maybe (Value Text)
propertyUsage = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "PropertyUsage" NamedEntityDefinitionProperty
Value Text
newValue, Maybe (Value Text)
Maybe NamedEntityDefinitionMetricProperty
()
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyName :: Maybe (Value Text)
propertyRole :: Maybe (Value Text)
haddock_workaround_ :: ()
fieldName :: Maybe (Value Text)
metric :: Maybe NamedEntityDefinitionMetricProperty
propertyName :: Maybe (Value Text)
propertyRole :: Maybe (Value Text)
..}