module Stratosphere.QBusiness.WebExperience.IdentityProviderConfigurationProperty (
        module Exports, IdentityProviderConfigurationProperty(..),
        mkIdentityProviderConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.QBusiness.WebExperience.OpenIDConnectProviderConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.QBusiness.WebExperience.SamlProviderConfigurationProperty as Exports
import Stratosphere.ResourceProperties
data IdentityProviderConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qbusiness-webexperience-identityproviderconfiguration.html>
    IdentityProviderConfigurationProperty {IdentityProviderConfigurationProperty -> ()
haddock_workaround_ :: (),
                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qbusiness-webexperience-identityproviderconfiguration.html#cfn-qbusiness-webexperience-identityproviderconfiguration-openidconnectconfiguration>
                                           IdentityProviderConfigurationProperty
-> Maybe OpenIDConnectProviderConfigurationProperty
openIDConnectConfiguration :: (Prelude.Maybe OpenIDConnectProviderConfigurationProperty),
                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qbusiness-webexperience-identityproviderconfiguration.html#cfn-qbusiness-webexperience-identityproviderconfiguration-samlconfiguration>
                                           IdentityProviderConfigurationProperty
-> Maybe SamlProviderConfigurationProperty
samlConfiguration :: (Prelude.Maybe SamlProviderConfigurationProperty)}
  deriving stock (IdentityProviderConfigurationProperty
-> IdentityProviderConfigurationProperty -> Bool
(IdentityProviderConfigurationProperty
 -> IdentityProviderConfigurationProperty -> Bool)
-> (IdentityProviderConfigurationProperty
    -> IdentityProviderConfigurationProperty -> Bool)
-> Eq IdentityProviderConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: IdentityProviderConfigurationProperty
-> IdentityProviderConfigurationProperty -> Bool
== :: IdentityProviderConfigurationProperty
-> IdentityProviderConfigurationProperty -> Bool
$c/= :: IdentityProviderConfigurationProperty
-> IdentityProviderConfigurationProperty -> Bool
/= :: IdentityProviderConfigurationProperty
-> IdentityProviderConfigurationProperty -> Bool
Prelude.Eq, Int -> IdentityProviderConfigurationProperty -> ShowS
[IdentityProviderConfigurationProperty] -> ShowS
IdentityProviderConfigurationProperty -> String
(Int -> IdentityProviderConfigurationProperty -> ShowS)
-> (IdentityProviderConfigurationProperty -> String)
-> ([IdentityProviderConfigurationProperty] -> ShowS)
-> Show IdentityProviderConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> IdentityProviderConfigurationProperty -> ShowS
showsPrec :: Int -> IdentityProviderConfigurationProperty -> ShowS
$cshow :: IdentityProviderConfigurationProperty -> String
show :: IdentityProviderConfigurationProperty -> String
$cshowList :: [IdentityProviderConfigurationProperty] -> ShowS
showList :: [IdentityProviderConfigurationProperty] -> ShowS
Prelude.Show)
mkIdentityProviderConfigurationProperty ::
  IdentityProviderConfigurationProperty
mkIdentityProviderConfigurationProperty :: IdentityProviderConfigurationProperty
mkIdentityProviderConfigurationProperty
  = IdentityProviderConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       openIDConnectConfiguration :: Maybe OpenIDConnectProviderConfigurationProperty
openIDConnectConfiguration = Maybe OpenIDConnectProviderConfigurationProperty
forall a. Maybe a
Prelude.Nothing,
       samlConfiguration :: Maybe SamlProviderConfigurationProperty
samlConfiguration = Maybe SamlProviderConfigurationProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties IdentityProviderConfigurationProperty where
  toResourceProperties :: IdentityProviderConfigurationProperty -> ResourceProperties
toResourceProperties IdentityProviderConfigurationProperty {Maybe OpenIDConnectProviderConfigurationProperty
Maybe SamlProviderConfigurationProperty
()
haddock_workaround_ :: IdentityProviderConfigurationProperty -> ()
openIDConnectConfiguration :: IdentityProviderConfigurationProperty
-> Maybe OpenIDConnectProviderConfigurationProperty
samlConfiguration :: IdentityProviderConfigurationProperty
-> Maybe SamlProviderConfigurationProperty
haddock_workaround_ :: ()
openIDConnectConfiguration :: Maybe OpenIDConnectProviderConfigurationProperty
samlConfiguration :: Maybe SamlProviderConfigurationProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::QBusiness::WebExperience.IdentityProviderConfiguration",
         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 -> OpenIDConnectProviderConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"OpenIDConnectConfiguration"
                              (OpenIDConnectProviderConfigurationProperty -> (Key, Value))
-> Maybe OpenIDConnectProviderConfigurationProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OpenIDConnectProviderConfigurationProperty
openIDConnectConfiguration,
                            Key -> SamlProviderConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"SamlConfiguration" (SamlProviderConfigurationProperty -> (Key, Value))
-> Maybe SamlProviderConfigurationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SamlProviderConfigurationProperty
samlConfiguration])}
instance JSON.ToJSON IdentityProviderConfigurationProperty where
  toJSON :: IdentityProviderConfigurationProperty -> Value
toJSON IdentityProviderConfigurationProperty {Maybe OpenIDConnectProviderConfigurationProperty
Maybe SamlProviderConfigurationProperty
()
haddock_workaround_ :: IdentityProviderConfigurationProperty -> ()
openIDConnectConfiguration :: IdentityProviderConfigurationProperty
-> Maybe OpenIDConnectProviderConfigurationProperty
samlConfiguration :: IdentityProviderConfigurationProperty
-> Maybe SamlProviderConfigurationProperty
haddock_workaround_ :: ()
openIDConnectConfiguration :: Maybe OpenIDConnectProviderConfigurationProperty
samlConfiguration :: Maybe SamlProviderConfigurationProperty
..}
    = [(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 -> OpenIDConnectProviderConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"OpenIDConnectConfiguration"
                 (OpenIDConnectProviderConfigurationProperty -> (Key, Value))
-> Maybe OpenIDConnectProviderConfigurationProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OpenIDConnectProviderConfigurationProperty
openIDConnectConfiguration,
               Key -> SamlProviderConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"SamlConfiguration" (SamlProviderConfigurationProperty -> (Key, Value))
-> Maybe SamlProviderConfigurationProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SamlProviderConfigurationProperty
samlConfiguration]))
instance Property "OpenIDConnectConfiguration" IdentityProviderConfigurationProperty where
  type PropertyType "OpenIDConnectConfiguration" IdentityProviderConfigurationProperty = OpenIDConnectProviderConfigurationProperty
  set :: PropertyType
  "OpenIDConnectConfiguration" IdentityProviderConfigurationProperty
-> IdentityProviderConfigurationProperty
-> IdentityProviderConfigurationProperty
set PropertyType
  "OpenIDConnectConfiguration" IdentityProviderConfigurationProperty
newValue IdentityProviderConfigurationProperty {Maybe OpenIDConnectProviderConfigurationProperty
Maybe SamlProviderConfigurationProperty
()
haddock_workaround_ :: IdentityProviderConfigurationProperty -> ()
openIDConnectConfiguration :: IdentityProviderConfigurationProperty
-> Maybe OpenIDConnectProviderConfigurationProperty
samlConfiguration :: IdentityProviderConfigurationProperty
-> Maybe SamlProviderConfigurationProperty
haddock_workaround_ :: ()
openIDConnectConfiguration :: Maybe OpenIDConnectProviderConfigurationProperty
samlConfiguration :: Maybe SamlProviderConfigurationProperty
..}
    = IdentityProviderConfigurationProperty
        {openIDConnectConfiguration :: Maybe OpenIDConnectProviderConfigurationProperty
openIDConnectConfiguration = OpenIDConnectProviderConfigurationProperty
-> Maybe OpenIDConnectProviderConfigurationProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType
  "OpenIDConnectConfiguration" IdentityProviderConfigurationProperty
OpenIDConnectProviderConfigurationProperty
newValue, Maybe SamlProviderConfigurationProperty
()
haddock_workaround_ :: ()
samlConfiguration :: Maybe SamlProviderConfigurationProperty
haddock_workaround_ :: ()
samlConfiguration :: Maybe SamlProviderConfigurationProperty
..}
instance Property "SamlConfiguration" IdentityProviderConfigurationProperty where
  type PropertyType "SamlConfiguration" IdentityProviderConfigurationProperty = SamlProviderConfigurationProperty
  set :: PropertyType
  "SamlConfiguration" IdentityProviderConfigurationProperty
-> IdentityProviderConfigurationProperty
-> IdentityProviderConfigurationProperty
set PropertyType
  "SamlConfiguration" IdentityProviderConfigurationProperty
newValue IdentityProviderConfigurationProperty {Maybe OpenIDConnectProviderConfigurationProperty
Maybe SamlProviderConfigurationProperty
()
haddock_workaround_ :: IdentityProviderConfigurationProperty -> ()
openIDConnectConfiguration :: IdentityProviderConfigurationProperty
-> Maybe OpenIDConnectProviderConfigurationProperty
samlConfiguration :: IdentityProviderConfigurationProperty
-> Maybe SamlProviderConfigurationProperty
haddock_workaround_ :: ()
openIDConnectConfiguration :: Maybe OpenIDConnectProviderConfigurationProperty
samlConfiguration :: Maybe SamlProviderConfigurationProperty
..}
    = IdentityProviderConfigurationProperty
        {samlConfiguration :: Maybe SamlProviderConfigurationProperty
samlConfiguration = SamlProviderConfigurationProperty
-> Maybe SamlProviderConfigurationProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType
  "SamlConfiguration" IdentityProviderConfigurationProperty
SamlProviderConfigurationProperty
newValue, Maybe OpenIDConnectProviderConfigurationProperty
()
haddock_workaround_ :: ()
openIDConnectConfiguration :: Maybe OpenIDConnectProviderConfigurationProperty
haddock_workaround_ :: ()
openIDConnectConfiguration :: Maybe OpenIDConnectProviderConfigurationProperty
..}