module Stratosphere.Connect.IntegrationAssociation (
        IntegrationAssociation(..), mkIntegrationAssociation
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data IntegrationAssociation
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-integrationassociation.html>
    IntegrationAssociation {IntegrationAssociation -> ()
haddock_workaround_ :: (),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-integrationassociation.html#cfn-connect-integrationassociation-instanceid>
                            IntegrationAssociation -> Value Text
instanceId :: (Value Prelude.Text),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-integrationassociation.html#cfn-connect-integrationassociation-integrationarn>
                            IntegrationAssociation -> Value Text
integrationArn :: (Value Prelude.Text),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-integrationassociation.html#cfn-connect-integrationassociation-integrationtype>
                            IntegrationAssociation -> Value Text
integrationType :: (Value Prelude.Text)}
  deriving stock (IntegrationAssociation -> IntegrationAssociation -> Bool
(IntegrationAssociation -> IntegrationAssociation -> Bool)
-> (IntegrationAssociation -> IntegrationAssociation -> Bool)
-> Eq IntegrationAssociation
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: IntegrationAssociation -> IntegrationAssociation -> Bool
== :: IntegrationAssociation -> IntegrationAssociation -> Bool
$c/= :: IntegrationAssociation -> IntegrationAssociation -> Bool
/= :: IntegrationAssociation -> IntegrationAssociation -> Bool
Prelude.Eq, Int -> IntegrationAssociation -> ShowS
[IntegrationAssociation] -> ShowS
IntegrationAssociation -> String
(Int -> IntegrationAssociation -> ShowS)
-> (IntegrationAssociation -> String)
-> ([IntegrationAssociation] -> ShowS)
-> Show IntegrationAssociation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> IntegrationAssociation -> ShowS
showsPrec :: Int -> IntegrationAssociation -> ShowS
$cshow :: IntegrationAssociation -> String
show :: IntegrationAssociation -> String
$cshowList :: [IntegrationAssociation] -> ShowS
showList :: [IntegrationAssociation] -> ShowS
Prelude.Show)
mkIntegrationAssociation ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text -> IntegrationAssociation
mkIntegrationAssociation :: Value Text -> Value Text -> Value Text -> IntegrationAssociation
mkIntegrationAssociation Value Text
instanceId Value Text
integrationArn Value Text
integrationType
  = IntegrationAssociation
      {haddock_workaround_ :: ()
haddock_workaround_ = (), instanceId :: Value Text
instanceId = Value Text
instanceId,
       integrationArn :: Value Text
integrationArn = Value Text
integrationArn, integrationType :: Value Text
integrationType = Value Text
integrationType}
instance ToResourceProperties IntegrationAssociation where
  toResourceProperties :: IntegrationAssociation -> ResourceProperties
toResourceProperties IntegrationAssociation {()
Value Text
haddock_workaround_ :: IntegrationAssociation -> ()
instanceId :: IntegrationAssociation -> Value Text
integrationArn :: IntegrationAssociation -> Value Text
integrationType :: IntegrationAssociation -> Value Text
haddock_workaround_ :: ()
instanceId :: Value Text
integrationArn :: Value Text
integrationType :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Connect::IntegrationAssociation",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"InstanceId" 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
instanceId,
                       Key
"IntegrationArn" 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
integrationArn,
                       Key
"IntegrationType" 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
integrationType]}
instance JSON.ToJSON IntegrationAssociation where
  toJSON :: IntegrationAssociation -> Value
toJSON IntegrationAssociation {()
Value Text
haddock_workaround_ :: IntegrationAssociation -> ()
instanceId :: IntegrationAssociation -> Value Text
integrationArn :: IntegrationAssociation -> Value Text
integrationType :: IntegrationAssociation -> Value Text
haddock_workaround_ :: ()
instanceId :: Value Text
integrationArn :: Value Text
integrationType :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"InstanceId" 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
instanceId,
         Key
"IntegrationArn" 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
integrationArn,
         Key
"IntegrationType" 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
integrationType]
instance Property "InstanceId" IntegrationAssociation where
  type PropertyType "InstanceId" IntegrationAssociation = Value Prelude.Text
  set :: PropertyType "InstanceId" IntegrationAssociation
-> IntegrationAssociation -> IntegrationAssociation
set PropertyType "InstanceId" IntegrationAssociation
newValue IntegrationAssociation {()
Value Text
haddock_workaround_ :: IntegrationAssociation -> ()
instanceId :: IntegrationAssociation -> Value Text
integrationArn :: IntegrationAssociation -> Value Text
integrationType :: IntegrationAssociation -> Value Text
haddock_workaround_ :: ()
instanceId :: Value Text
integrationArn :: Value Text
integrationType :: Value Text
..}
    = IntegrationAssociation {instanceId :: Value Text
instanceId = PropertyType "InstanceId" IntegrationAssociation
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
integrationArn :: Value Text
integrationType :: Value Text
haddock_workaround_ :: ()
integrationArn :: Value Text
integrationType :: Value Text
..}
instance Property "IntegrationArn" IntegrationAssociation where
  type PropertyType "IntegrationArn" IntegrationAssociation = Value Prelude.Text
  set :: PropertyType "IntegrationArn" IntegrationAssociation
-> IntegrationAssociation -> IntegrationAssociation
set PropertyType "IntegrationArn" IntegrationAssociation
newValue IntegrationAssociation {()
Value Text
haddock_workaround_ :: IntegrationAssociation -> ()
instanceId :: IntegrationAssociation -> Value Text
integrationArn :: IntegrationAssociation -> Value Text
integrationType :: IntegrationAssociation -> Value Text
haddock_workaround_ :: ()
instanceId :: Value Text
integrationArn :: Value Text
integrationType :: Value Text
..}
    = IntegrationAssociation {integrationArn :: Value Text
integrationArn = PropertyType "IntegrationArn" IntegrationAssociation
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
instanceId :: Value Text
integrationType :: Value Text
haddock_workaround_ :: ()
instanceId :: Value Text
integrationType :: Value Text
..}
instance Property "IntegrationType" IntegrationAssociation where
  type PropertyType "IntegrationType" IntegrationAssociation = Value Prelude.Text
  set :: PropertyType "IntegrationType" IntegrationAssociation
-> IntegrationAssociation -> IntegrationAssociation
set PropertyType "IntegrationType" IntegrationAssociation
newValue IntegrationAssociation {()
Value Text
haddock_workaround_ :: IntegrationAssociation -> ()
instanceId :: IntegrationAssociation -> Value Text
integrationArn :: IntegrationAssociation -> Value Text
integrationType :: IntegrationAssociation -> Value Text
haddock_workaround_ :: ()
instanceId :: Value Text
integrationArn :: Value Text
integrationType :: Value Text
..}
    = IntegrationAssociation {integrationType :: Value Text
integrationType = PropertyType "IntegrationType" IntegrationAssociation
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
instanceId :: Value Text
integrationArn :: Value Text
haddock_workaround_ :: ()
instanceId :: Value Text
integrationArn :: Value Text
..}