module Stratosphere.VerifiedPermissions.IdentitySource.OpenIdConnectConfigurationProperty (
        module Exports, OpenIdConnectConfigurationProperty(..),
        mkOpenIdConnectConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.VerifiedPermissions.IdentitySource.OpenIdConnectGroupConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.VerifiedPermissions.IdentitySource.OpenIdConnectTokenSelectionProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data OpenIdConnectConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-openidconnectconfiguration.html>
    OpenIdConnectConfigurationProperty {OpenIdConnectConfigurationProperty -> ()
haddock_workaround_ :: (),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-openidconnectconfiguration.html#cfn-verifiedpermissions-identitysource-openidconnectconfiguration-entityidprefix>
                                        OpenIdConnectConfigurationProperty -> Maybe (Value Text)
entityIdPrefix :: (Prelude.Maybe (Value Prelude.Text)),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-openidconnectconfiguration.html#cfn-verifiedpermissions-identitysource-openidconnectconfiguration-groupconfiguration>
                                        OpenIdConnectConfigurationProperty
-> Maybe OpenIdConnectGroupConfigurationProperty
groupConfiguration :: (Prelude.Maybe OpenIdConnectGroupConfigurationProperty),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-openidconnectconfiguration.html#cfn-verifiedpermissions-identitysource-openidconnectconfiguration-issuer>
                                        OpenIdConnectConfigurationProperty -> Value Text
issuer :: (Value Prelude.Text),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-openidconnectconfiguration.html#cfn-verifiedpermissions-identitysource-openidconnectconfiguration-tokenselection>
                                        OpenIdConnectConfigurationProperty
-> OpenIdConnectTokenSelectionProperty
tokenSelection :: OpenIdConnectTokenSelectionProperty}
  deriving stock (OpenIdConnectConfigurationProperty
-> OpenIdConnectConfigurationProperty -> Bool
(OpenIdConnectConfigurationProperty
 -> OpenIdConnectConfigurationProperty -> Bool)
-> (OpenIdConnectConfigurationProperty
    -> OpenIdConnectConfigurationProperty -> Bool)
-> Eq OpenIdConnectConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OpenIdConnectConfigurationProperty
-> OpenIdConnectConfigurationProperty -> Bool
== :: OpenIdConnectConfigurationProperty
-> OpenIdConnectConfigurationProperty -> Bool
$c/= :: OpenIdConnectConfigurationProperty
-> OpenIdConnectConfigurationProperty -> Bool
/= :: OpenIdConnectConfigurationProperty
-> OpenIdConnectConfigurationProperty -> Bool
Prelude.Eq, Int -> OpenIdConnectConfigurationProperty -> ShowS
[OpenIdConnectConfigurationProperty] -> ShowS
OpenIdConnectConfigurationProperty -> String
(Int -> OpenIdConnectConfigurationProperty -> ShowS)
-> (OpenIdConnectConfigurationProperty -> String)
-> ([OpenIdConnectConfigurationProperty] -> ShowS)
-> Show OpenIdConnectConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OpenIdConnectConfigurationProperty -> ShowS
showsPrec :: Int -> OpenIdConnectConfigurationProperty -> ShowS
$cshow :: OpenIdConnectConfigurationProperty -> String
show :: OpenIdConnectConfigurationProperty -> String
$cshowList :: [OpenIdConnectConfigurationProperty] -> ShowS
showList :: [OpenIdConnectConfigurationProperty] -> ShowS
Prelude.Show)
mkOpenIdConnectConfigurationProperty ::
  Value Prelude.Text
  -> OpenIdConnectTokenSelectionProperty
     -> OpenIdConnectConfigurationProperty
mkOpenIdConnectConfigurationProperty :: Value Text
-> OpenIdConnectTokenSelectionProperty
-> OpenIdConnectConfigurationProperty
mkOpenIdConnectConfigurationProperty Value Text
issuer OpenIdConnectTokenSelectionProperty
tokenSelection
  = OpenIdConnectConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), issuer :: Value Text
issuer = Value Text
issuer,
       tokenSelection :: OpenIdConnectTokenSelectionProperty
tokenSelection = OpenIdConnectTokenSelectionProperty
tokenSelection, entityIdPrefix :: Maybe (Value Text)
entityIdPrefix = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing,
       groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
groupConfiguration = Maybe OpenIdConnectGroupConfigurationProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties OpenIdConnectConfigurationProperty where
  toResourceProperties :: OpenIdConnectConfigurationProperty -> ResourceProperties
toResourceProperties OpenIdConnectConfigurationProperty {Maybe (Value Text)
Maybe OpenIdConnectGroupConfigurationProperty
()
Value Text
OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: OpenIdConnectConfigurationProperty -> ()
entityIdPrefix :: OpenIdConnectConfigurationProperty -> Maybe (Value Text)
groupConfiguration :: OpenIdConnectConfigurationProperty
-> Maybe OpenIdConnectGroupConfigurationProperty
issuer :: OpenIdConnectConfigurationProperty -> Value Text
tokenSelection :: OpenIdConnectConfigurationProperty
-> OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: ()
entityIdPrefix :: Maybe (Value Text)
groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
issuer :: Value Text
tokenSelection :: OpenIdConnectTokenSelectionProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::VerifiedPermissions::IdentitySource.OpenIdConnectConfiguration",
         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
"Issuer" 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
issuer, Key
"TokenSelection" Key -> OpenIdConnectTokenSelectionProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= OpenIdConnectTokenSelectionProperty
tokenSelection]
                           ([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
"EntityIdPrefix" (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)
entityIdPrefix,
                               Key -> OpenIdConnectGroupConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"GroupConfiguration" (OpenIdConnectGroupConfigurationProperty -> (Key, Value))
-> Maybe OpenIdConnectGroupConfigurationProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OpenIdConnectGroupConfigurationProperty
groupConfiguration]))}
instance JSON.ToJSON OpenIdConnectConfigurationProperty where
  toJSON :: OpenIdConnectConfigurationProperty -> Value
toJSON OpenIdConnectConfigurationProperty {Maybe (Value Text)
Maybe OpenIdConnectGroupConfigurationProperty
()
Value Text
OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: OpenIdConnectConfigurationProperty -> ()
entityIdPrefix :: OpenIdConnectConfigurationProperty -> Maybe (Value Text)
groupConfiguration :: OpenIdConnectConfigurationProperty
-> Maybe OpenIdConnectGroupConfigurationProperty
issuer :: OpenIdConnectConfigurationProperty -> Value Text
tokenSelection :: OpenIdConnectConfigurationProperty
-> OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: ()
entityIdPrefix :: Maybe (Value Text)
groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
issuer :: Value Text
tokenSelection :: OpenIdConnectTokenSelectionProperty
..}
    = [(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
"Issuer" 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
issuer, Key
"TokenSelection" Key -> OpenIdConnectTokenSelectionProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= OpenIdConnectTokenSelectionProperty
tokenSelection]
              ([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
"EntityIdPrefix" (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)
entityIdPrefix,
                  Key -> OpenIdConnectGroupConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"GroupConfiguration" (OpenIdConnectGroupConfigurationProperty -> (Key, Value))
-> Maybe OpenIdConnectGroupConfigurationProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OpenIdConnectGroupConfigurationProperty
groupConfiguration])))
instance Property "EntityIdPrefix" OpenIdConnectConfigurationProperty where
  type PropertyType "EntityIdPrefix" OpenIdConnectConfigurationProperty = Value Prelude.Text
  set :: PropertyType "EntityIdPrefix" OpenIdConnectConfigurationProperty
-> OpenIdConnectConfigurationProperty
-> OpenIdConnectConfigurationProperty
set PropertyType "EntityIdPrefix" OpenIdConnectConfigurationProperty
newValue OpenIdConnectConfigurationProperty {Maybe (Value Text)
Maybe OpenIdConnectGroupConfigurationProperty
()
Value Text
OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: OpenIdConnectConfigurationProperty -> ()
entityIdPrefix :: OpenIdConnectConfigurationProperty -> Maybe (Value Text)
groupConfiguration :: OpenIdConnectConfigurationProperty
-> Maybe OpenIdConnectGroupConfigurationProperty
issuer :: OpenIdConnectConfigurationProperty -> Value Text
tokenSelection :: OpenIdConnectConfigurationProperty
-> OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: ()
entityIdPrefix :: Maybe (Value Text)
groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
issuer :: Value Text
tokenSelection :: OpenIdConnectTokenSelectionProperty
..}
    = OpenIdConnectConfigurationProperty
        {entityIdPrefix :: Maybe (Value Text)
entityIdPrefix = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "EntityIdPrefix" OpenIdConnectConfigurationProperty
Value Text
newValue, Maybe OpenIdConnectGroupConfigurationProperty
()
Value Text
OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: ()
groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
issuer :: Value Text
tokenSelection :: OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: ()
groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
issuer :: Value Text
tokenSelection :: OpenIdConnectTokenSelectionProperty
..}
instance Property "GroupConfiguration" OpenIdConnectConfigurationProperty where
  type PropertyType "GroupConfiguration" OpenIdConnectConfigurationProperty = OpenIdConnectGroupConfigurationProperty
  set :: PropertyType
  "GroupConfiguration" OpenIdConnectConfigurationProperty
-> OpenIdConnectConfigurationProperty
-> OpenIdConnectConfigurationProperty
set PropertyType
  "GroupConfiguration" OpenIdConnectConfigurationProperty
newValue OpenIdConnectConfigurationProperty {Maybe (Value Text)
Maybe OpenIdConnectGroupConfigurationProperty
()
Value Text
OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: OpenIdConnectConfigurationProperty -> ()
entityIdPrefix :: OpenIdConnectConfigurationProperty -> Maybe (Value Text)
groupConfiguration :: OpenIdConnectConfigurationProperty
-> Maybe OpenIdConnectGroupConfigurationProperty
issuer :: OpenIdConnectConfigurationProperty -> Value Text
tokenSelection :: OpenIdConnectConfigurationProperty
-> OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: ()
entityIdPrefix :: Maybe (Value Text)
groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
issuer :: Value Text
tokenSelection :: OpenIdConnectTokenSelectionProperty
..}
    = OpenIdConnectConfigurationProperty
        {groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
groupConfiguration = OpenIdConnectGroupConfigurationProperty
-> Maybe OpenIdConnectGroupConfigurationProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType
  "GroupConfiguration" OpenIdConnectConfigurationProperty
OpenIdConnectGroupConfigurationProperty
newValue, Maybe (Value Text)
()
Value Text
OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: ()
entityIdPrefix :: Maybe (Value Text)
issuer :: Value Text
tokenSelection :: OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: ()
entityIdPrefix :: Maybe (Value Text)
issuer :: Value Text
tokenSelection :: OpenIdConnectTokenSelectionProperty
..}
instance Property "Issuer" OpenIdConnectConfigurationProperty where
  type PropertyType "Issuer" OpenIdConnectConfigurationProperty = Value Prelude.Text
  set :: PropertyType "Issuer" OpenIdConnectConfigurationProperty
-> OpenIdConnectConfigurationProperty
-> OpenIdConnectConfigurationProperty
set PropertyType "Issuer" OpenIdConnectConfigurationProperty
newValue OpenIdConnectConfigurationProperty {Maybe (Value Text)
Maybe OpenIdConnectGroupConfigurationProperty
()
Value Text
OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: OpenIdConnectConfigurationProperty -> ()
entityIdPrefix :: OpenIdConnectConfigurationProperty -> Maybe (Value Text)
groupConfiguration :: OpenIdConnectConfigurationProperty
-> Maybe OpenIdConnectGroupConfigurationProperty
issuer :: OpenIdConnectConfigurationProperty -> Value Text
tokenSelection :: OpenIdConnectConfigurationProperty
-> OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: ()
entityIdPrefix :: Maybe (Value Text)
groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
issuer :: Value Text
tokenSelection :: OpenIdConnectTokenSelectionProperty
..}
    = OpenIdConnectConfigurationProperty {issuer :: Value Text
issuer = PropertyType "Issuer" OpenIdConnectConfigurationProperty
Value Text
newValue, Maybe (Value Text)
Maybe OpenIdConnectGroupConfigurationProperty
()
OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: ()
entityIdPrefix :: Maybe (Value Text)
groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
tokenSelection :: OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: ()
entityIdPrefix :: Maybe (Value Text)
groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
tokenSelection :: OpenIdConnectTokenSelectionProperty
..}
instance Property "TokenSelection" OpenIdConnectConfigurationProperty where
  type PropertyType "TokenSelection" OpenIdConnectConfigurationProperty = OpenIdConnectTokenSelectionProperty
  set :: PropertyType "TokenSelection" OpenIdConnectConfigurationProperty
-> OpenIdConnectConfigurationProperty
-> OpenIdConnectConfigurationProperty
set PropertyType "TokenSelection" OpenIdConnectConfigurationProperty
newValue OpenIdConnectConfigurationProperty {Maybe (Value Text)
Maybe OpenIdConnectGroupConfigurationProperty
()
Value Text
OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: OpenIdConnectConfigurationProperty -> ()
entityIdPrefix :: OpenIdConnectConfigurationProperty -> Maybe (Value Text)
groupConfiguration :: OpenIdConnectConfigurationProperty
-> Maybe OpenIdConnectGroupConfigurationProperty
issuer :: OpenIdConnectConfigurationProperty -> Value Text
tokenSelection :: OpenIdConnectConfigurationProperty
-> OpenIdConnectTokenSelectionProperty
haddock_workaround_ :: ()
entityIdPrefix :: Maybe (Value Text)
groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
issuer :: Value Text
tokenSelection :: OpenIdConnectTokenSelectionProperty
..}
    = OpenIdConnectConfigurationProperty
        {tokenSelection :: OpenIdConnectTokenSelectionProperty
tokenSelection = PropertyType "TokenSelection" OpenIdConnectConfigurationProperty
OpenIdConnectTokenSelectionProperty
newValue, Maybe (Value Text)
Maybe OpenIdConnectGroupConfigurationProperty
()
Value Text
haddock_workaround_ :: ()
entityIdPrefix :: Maybe (Value Text)
groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
issuer :: Value Text
haddock_workaround_ :: ()
entityIdPrefix :: Maybe (Value Text)
groupConfiguration :: Maybe OpenIdConnectGroupConfigurationProperty
issuer :: Value Text
..}