module Stratosphere.Wisdom.AIAgent.AssociationConfigurationProperty (
        module Exports, AssociationConfigurationProperty(..),
        mkAssociationConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Wisdom.AIAgent.AssociationConfigurationDataProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AssociationConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-aiagent-associationconfiguration.html>
    AssociationConfigurationProperty {AssociationConfigurationProperty -> ()
haddock_workaround_ :: (),
                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-aiagent-associationconfiguration.html#cfn-wisdom-aiagent-associationconfiguration-associationconfigurationdata>
                                      AssociationConfigurationProperty
-> Maybe AssociationConfigurationDataProperty
associationConfigurationData :: (Prelude.Maybe AssociationConfigurationDataProperty),
                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-aiagent-associationconfiguration.html#cfn-wisdom-aiagent-associationconfiguration-associationid>
                                      AssociationConfigurationProperty -> Maybe (Value Text)
associationId :: (Prelude.Maybe (Value Prelude.Text)),
                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-aiagent-associationconfiguration.html#cfn-wisdom-aiagent-associationconfiguration-associationtype>
                                      AssociationConfigurationProperty -> Maybe (Value Text)
associationType :: (Prelude.Maybe (Value Prelude.Text))}
  deriving stock (AssociationConfigurationProperty
-> AssociationConfigurationProperty -> Bool
(AssociationConfigurationProperty
 -> AssociationConfigurationProperty -> Bool)
-> (AssociationConfigurationProperty
    -> AssociationConfigurationProperty -> Bool)
-> Eq AssociationConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AssociationConfigurationProperty
-> AssociationConfigurationProperty -> Bool
== :: AssociationConfigurationProperty
-> AssociationConfigurationProperty -> Bool
$c/= :: AssociationConfigurationProperty
-> AssociationConfigurationProperty -> Bool
/= :: AssociationConfigurationProperty
-> AssociationConfigurationProperty -> Bool
Prelude.Eq, Int -> AssociationConfigurationProperty -> ShowS
[AssociationConfigurationProperty] -> ShowS
AssociationConfigurationProperty -> String
(Int -> AssociationConfigurationProperty -> ShowS)
-> (AssociationConfigurationProperty -> String)
-> ([AssociationConfigurationProperty] -> ShowS)
-> Show AssociationConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AssociationConfigurationProperty -> ShowS
showsPrec :: Int -> AssociationConfigurationProperty -> ShowS
$cshow :: AssociationConfigurationProperty -> String
show :: AssociationConfigurationProperty -> String
$cshowList :: [AssociationConfigurationProperty] -> ShowS
showList :: [AssociationConfigurationProperty] -> ShowS
Prelude.Show)
mkAssociationConfigurationProperty ::
  AssociationConfigurationProperty
mkAssociationConfigurationProperty :: AssociationConfigurationProperty
mkAssociationConfigurationProperty
  = AssociationConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       associationConfigurationData :: Maybe AssociationConfigurationDataProperty
associationConfigurationData = Maybe AssociationConfigurationDataProperty
forall a. Maybe a
Prelude.Nothing,
       associationId :: Maybe (Value Text)
associationId = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing, associationType :: Maybe (Value Text)
associationType = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties AssociationConfigurationProperty where
  toResourceProperties :: AssociationConfigurationProperty -> ResourceProperties
toResourceProperties AssociationConfigurationProperty {Maybe (Value Text)
Maybe AssociationConfigurationDataProperty
()
haddock_workaround_ :: AssociationConfigurationProperty -> ()
associationConfigurationData :: AssociationConfigurationProperty
-> Maybe AssociationConfigurationDataProperty
associationId :: AssociationConfigurationProperty -> Maybe (Value Text)
associationType :: AssociationConfigurationProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
associationConfigurationData :: Maybe AssociationConfigurationDataProperty
associationId :: Maybe (Value Text)
associationType :: Maybe (Value Text)
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Wisdom::AIAgent.AssociationConfiguration",
         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 -> AssociationConfigurationDataProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AssociationConfigurationData"
                              (AssociationConfigurationDataProperty -> (Key, Value))
-> Maybe AssociationConfigurationDataProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AssociationConfigurationDataProperty
associationConfigurationData,
                            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
"AssociationId" (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)
associationId,
                            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
"AssociationType" (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)
associationType])}
instance JSON.ToJSON AssociationConfigurationProperty where
  toJSON :: AssociationConfigurationProperty -> Value
toJSON AssociationConfigurationProperty {Maybe (Value Text)
Maybe AssociationConfigurationDataProperty
()
haddock_workaround_ :: AssociationConfigurationProperty -> ()
associationConfigurationData :: AssociationConfigurationProperty
-> Maybe AssociationConfigurationDataProperty
associationId :: AssociationConfigurationProperty -> Maybe (Value Text)
associationType :: AssociationConfigurationProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
associationConfigurationData :: Maybe AssociationConfigurationDataProperty
associationId :: Maybe (Value Text)
associationType :: 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 -> AssociationConfigurationDataProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AssociationConfigurationData"
                 (AssociationConfigurationDataProperty -> (Key, Value))
-> Maybe AssociationConfigurationDataProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AssociationConfigurationDataProperty
associationConfigurationData,
               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
"AssociationId" (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)
associationId,
               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
"AssociationType" (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)
associationType]))
instance Property "AssociationConfigurationData" AssociationConfigurationProperty where
  type PropertyType "AssociationConfigurationData" AssociationConfigurationProperty = AssociationConfigurationDataProperty
  set :: PropertyType
  "AssociationConfigurationData" AssociationConfigurationProperty
-> AssociationConfigurationProperty
-> AssociationConfigurationProperty
set PropertyType
  "AssociationConfigurationData" AssociationConfigurationProperty
newValue AssociationConfigurationProperty {Maybe (Value Text)
Maybe AssociationConfigurationDataProperty
()
haddock_workaround_ :: AssociationConfigurationProperty -> ()
associationConfigurationData :: AssociationConfigurationProperty
-> Maybe AssociationConfigurationDataProperty
associationId :: AssociationConfigurationProperty -> Maybe (Value Text)
associationType :: AssociationConfigurationProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
associationConfigurationData :: Maybe AssociationConfigurationDataProperty
associationId :: Maybe (Value Text)
associationType :: Maybe (Value Text)
..}
    = AssociationConfigurationProperty
        {associationConfigurationData :: Maybe AssociationConfigurationDataProperty
associationConfigurationData = AssociationConfigurationDataProperty
-> Maybe AssociationConfigurationDataProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType
  "AssociationConfigurationData" AssociationConfigurationProperty
AssociationConfigurationDataProperty
newValue, Maybe (Value Text)
()
haddock_workaround_ :: ()
associationId :: Maybe (Value Text)
associationType :: Maybe (Value Text)
haddock_workaround_ :: ()
associationId :: Maybe (Value Text)
associationType :: Maybe (Value Text)
..}
instance Property "AssociationId" AssociationConfigurationProperty where
  type PropertyType "AssociationId" AssociationConfigurationProperty = Value Prelude.Text
  set :: PropertyType "AssociationId" AssociationConfigurationProperty
-> AssociationConfigurationProperty
-> AssociationConfigurationProperty
set PropertyType "AssociationId" AssociationConfigurationProperty
newValue AssociationConfigurationProperty {Maybe (Value Text)
Maybe AssociationConfigurationDataProperty
()
haddock_workaround_ :: AssociationConfigurationProperty -> ()
associationConfigurationData :: AssociationConfigurationProperty
-> Maybe AssociationConfigurationDataProperty
associationId :: AssociationConfigurationProperty -> Maybe (Value Text)
associationType :: AssociationConfigurationProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
associationConfigurationData :: Maybe AssociationConfigurationDataProperty
associationId :: Maybe (Value Text)
associationType :: Maybe (Value Text)
..}
    = AssociationConfigurationProperty
        {associationId :: Maybe (Value Text)
associationId = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "AssociationId" AssociationConfigurationProperty
Value Text
newValue, Maybe (Value Text)
Maybe AssociationConfigurationDataProperty
()
haddock_workaround_ :: ()
associationConfigurationData :: Maybe AssociationConfigurationDataProperty
associationType :: Maybe (Value Text)
haddock_workaround_ :: ()
associationConfigurationData :: Maybe AssociationConfigurationDataProperty
associationType :: Maybe (Value Text)
..}
instance Property "AssociationType" AssociationConfigurationProperty where
  type PropertyType "AssociationType" AssociationConfigurationProperty = Value Prelude.Text
  set :: PropertyType "AssociationType" AssociationConfigurationProperty
-> AssociationConfigurationProperty
-> AssociationConfigurationProperty
set PropertyType "AssociationType" AssociationConfigurationProperty
newValue AssociationConfigurationProperty {Maybe (Value Text)
Maybe AssociationConfigurationDataProperty
()
haddock_workaround_ :: AssociationConfigurationProperty -> ()
associationConfigurationData :: AssociationConfigurationProperty
-> Maybe AssociationConfigurationDataProperty
associationId :: AssociationConfigurationProperty -> Maybe (Value Text)
associationType :: AssociationConfigurationProperty -> Maybe (Value Text)
haddock_workaround_ :: ()
associationConfigurationData :: Maybe AssociationConfigurationDataProperty
associationId :: Maybe (Value Text)
associationType :: Maybe (Value Text)
..}
    = AssociationConfigurationProperty
        {associationType :: Maybe (Value Text)
associationType = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "AssociationType" AssociationConfigurationProperty
Value Text
newValue, Maybe (Value Text)
Maybe AssociationConfigurationDataProperty
()
haddock_workaround_ :: ()
associationConfigurationData :: Maybe AssociationConfigurationDataProperty
associationId :: Maybe (Value Text)
haddock_workaround_ :: ()
associationConfigurationData :: Maybe AssociationConfigurationDataProperty
associationId :: Maybe (Value Text)
..}